homebank-5.9.1/0000775000175000017500000000000015006374032007055 5homebank-5.9.1/configure.ac0000644000175000017500000000752015000657630011267 # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.71]) AC_INIT([homebank],[5.9.1]) #AC_INIT([homebank],[x.x-rc]) AC_CONFIG_HEADERS(config.h) AM_INIT_AUTOMAKE([1.9 foreign]) # If the source code has changed at all, increment REVISION # If any interfaces have been added, removed, or changed, increment CURRENT, and set REVISION to 0. # If any interfaces have been added since the last public release, then increment AGE. # If any interfaces have been removed since the last public release, then set AGE to 0. # Reference: http://www.gnu.org/software/libtool/manual.html#Versioning AC_PREFIX_DEFAULT(/usr) # Checks for programs. AC_PROG_CC AC_PROG_LN_S AC_PROG_INSTALL IT_PROG_INTLTOOL # Checks for libraries. PKG_CHECK_MODULES(DEPS, gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62) AC_SUBST(DEPS_CFLAGS) AC_SUBST(DEPS_LIBS) AC_CHECK_LIB(m, pow) PKG_CHECK_MODULES(LIBSOUP, [libsoup-3.0 >= 3.0]) AC_SUBST(LIBSOUP_CFLAGS) AC_SUBST(LIBSOUP_LIBS) # general usage flags CFLAGS="${CFLAGS} -Wall -Wmissing-prototypes" # enable/disable deprecated warnings #CFLAGS="${CFLAGS} -Wdeprecated-declarations" CFLAGS="${CFLAGS} -Wno-deprecated-declarations" # extended flags #CFLAGS="${CFLAGS} -Wextra -Wno-unused-parameter -Wno-cast-function-type" # profiling valgrind/gprof flags #CFLAGS="${CFLAGS} -g -O0 -pg" # pre-relase # 2 - error as warning for #CFLAGS="${CFLAGS} -Werror" # GTK4 migration #CFLAGS="${CFLAGS} -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED" # Check for libofx AC_CHECK_HEADER(libofx/libofx.h,,noofx=true) AC_ARG_WITH(ofx, [ --without-ofx build without ofx support [default=with]], [build_ofx=$withval], [build_ofx=yes] ) if test x$build_ofx != xno then if test x$noofx != xtrue then AC_CHECK_LIB(ofx, ofx_set_status_cb, OFX_0_7="-DOFX_ENABLE") DEPS_LIBS="-lofx ${DEPS_LIBS}" CFLAGS="${CFLAGS} $OFX_0_7" else noofx=true AC_MSG_RESULT([Libofx header missing. Check your libofx installation]) CFLAGS="${CFLAGS} -DNOOFX" fi else noofx=true CFLAGS="${CFLAGS} -DNOOFX" fi AM_CONDITIONAL(NOOFX, test x$noofx = xtrue) # Checks for header files. AC_CHECK_HEADERS([libintl.h locale.h stdlib.h string.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_STRUCT_TM AC_C_VOLATILE # Checks for library functions. AC_CHECK_FUNCS([floor localeconv memset modf pow setlocale sqrt strcasecmp strtoul]) # International support ALL_LINGUAS="af ar be bg br ca ckb cs cy da de el en_AU en_CA en_GB es et eu fa fi fr_CA fr gl he hr hu id is it ja ko lt lv ms nb nds nl oc pl pt_BR pt pt_PT ro ru si sl sq sr sv ta tr uk vi zh_CN zh_TW" AM_GLIB_GNU_GETTEXT GETTEXT_PACKAGE=$PACKAGE AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["${GETTEXT_PACKAGE}"], [gettext domain]) AC_CONFIG_FILES([ Makefile src/Makefile data/homebank.desktop.in data/Makefile data/datas/Makefile images/Makefile mime/Makefile pixmaps/Makefile themes/Makefile themes/common-symbolic/Makefile themes/Default/Makefile themes/hicolor/Makefile themes/hicolor-symbolic/Makefile po/Makefile.in doc/Makefile doc/images/Makefile ]) AC_OUTPUT # ************************************* # ************************************* echo echo $PACKAGE $VERSION echo echo Compiler................ : $CC echo Build with OFX support.. : $build_ofx if test "x$noofx" = "xtrue" ; then echo ........................ : **error** libofx header is missing, ofx feature will be disabled. Check your libofx installation fi eval eval echo Path to images.......... : $datadir/homebank/images eval eval echo Path to locale.......... : $datadir/locale eval eval echo Path to help............ : $datadir/homebank/help echo eval eval echo HomeBank will be installed in $bindir. echo echo configure complete, now type \'make\' echo homebank-5.9.1/config.h.in0000664000175000017500000000722515006363050011024 /* config.h.in. Generated from configure.ac by autoheader. */ /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* gettext domain */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the `floor' function. */ #undef HAVE_FLOOR /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the `localeconv' function. */ #undef HAVE_LOCALECONV /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `modf' function. */ #undef HAVE_MODF /* Define to 1 if you have the `pow' function. */ #undef HAVE_POW /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ #undef volatile homebank-5.9.1/po/0000775000175000017500000000000015006374032007473 5homebank-5.9.1/po/et.po0000644000175000017500000034677514775770006010424 # Estonian translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-05-08 21:01+0000\n" "Last-Translator: Kaupo Kübarsepp \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Isiklik rahandus" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Tasuta, lihtne, isiklik arvepidamine igaühele" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "rahandus;arvepidamine;eelarve;isiklik;raha" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank on tasuta tarkvara (tasuta nagu \"sõnavabadus\" ja samuti nagu " "\"tasuta õlu\"), mis aitab sul hallata isiklikku arvepidamist." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "See on disainitud lihtsalt kasutatavaks ja võimaldab detailselt analüüsida " "isiklikku rahandust kasutades võimsaid filtreid ja kaunist graafikat." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Kui otsid täiesti tasuta ja lihtsat viisi oma arvepidamise haldamiseks peaks " "HomeBank olema sinu esimene tarkvara valik." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d tehingud" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d tehingud, %d valitud, avg: %s, sum: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Lukustatud. Avamiseks klõpsa." #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Avatud. Klõpsa lukustamiseks." #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Eluenergia" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Kas oled kindel, et tahad valitud tehingu %d kustutada?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Kui sa kustutad tehingu on see jäädavalt kadunud." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Kustuta" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Kas oled kindel, et tahad muuta olekuks Puudub?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Osa sinu valitud tehingud on juba Kontrollitud." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Muuda" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Kas oled kindel, et soovid muuta oleku Kontrollituks?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Lülita" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Kas oled kindel, et tahad luua valitud tehingust %d malli ?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Loo" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Loo mall" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d loodud eeltäidetud ikooniga" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "Kas oled kindel, et tahad luua valitud tehingust %d ülesande ?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Loo ülesanne" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Kõik tehingud" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Sarnaste tehingute grupp on juba olemas %d" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Sarnaseid tehinguid ei leitud !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Kontrolli sisemiste ülekannete tulemust" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Ebakõlasid ei leitud !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Leiti ebakõla: %d\n" "kas tahad üle vaadata ja parandada?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Iga tehingu summa jagatakse %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Kas oled kindel, et soovid teisendada selle konto peamiseks valuutaks Euro?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Teisenda" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Ühtegi tehingut ei muudetud" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "tehing muudetud: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Automaatse ülesande tulemus" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Lisa..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Kasuta..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Muuda..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Puudub" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Vabastatud" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Kontrollitud" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Olek" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Puudub" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "punane" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "oranž" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "kollane" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "roheline" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "sinine" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "lilla" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Märgi lipuga" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Mitme muutmine..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Vaata _Jagunemist" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Kopeeri algne summa" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Loo mall..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Loo ülesanne..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Kustuta..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Üles" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Alla" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Ekspordi QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Ekspordi CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Trüki..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Sirvige veebilehte" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Sulge" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Konto" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopeeri" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Kleebi" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Kleebi (täna)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Kopeeri lõikelauale" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Otsi" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Muuda" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Märgi duplikaat..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Kontrolli sisemisi ülekandeid" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Automaatsed üleasanded" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Teisenda Eurodeks..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Tööriistad" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Liiguta tehing üles" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Liiguta tehing alla" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Lisa uus tehing" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Lisa" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Kasuta valitud tehingust" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Kasuta" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Muuda valitud tehingut" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Muuda" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Muuda valitud tehing(ud) vabastatuks" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Muuda valitud tehing(ud) kontrollituks" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Muuda mitut tehingut" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Kustuta valitud tehing(ud)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Kontrollitud muudatused on" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(suletud)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Näita" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Värskenda" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Kuupäeva _vahe" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Näita %d päeva tulevikku" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Muuda filtrit" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Puhasta filter" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Värskenda tulemusi" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "_Teisene Euro" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Kontrollitud:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Vabastatud:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Täna:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Tulevik:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Taasta salvestamata muudatused faili '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Faili tehtud muudatused kaovad jäädavalt\n" "- Fail taasavatakse viimati salvestatust (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Taasta" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Kas oled kindel, et tahad faili anonüümseks muuta?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Jätkamine muudab iga teksti anonüümseks, \n" "näiteks 'konto x', 'maksesaaja y', 'märge z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Muuda anonüümseks" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Tere tulemast HomeBank'i" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Sulge" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Ava _viimati avatud fail" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Loo _uus fail" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Ava olemasolev fail" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Ava _näidisfail" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Loe HomeBank'i _juhendit" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Seadista _eelistused" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Järgmine kord näita seda akent" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Oled avamas '%s' varukoopia faili.\n" "\n" "Kas oled kindel, et tahad seda teha?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Ava varukoopia fail?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Ava varukoopia" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Faili '%s' pole võimalik avada, seda pole olemas.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Tundmatu tõrge" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O tõrge '%s' failis." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Fail '%s' ei ole sobilik HomeBank'i fail." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Fail '%s' salvestati HomeBank'i uuema versiooniga\n" "ja seda ei saa praeguse versiooniga laadida." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Faili tõrge" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Seda faili on pärast viimast lugemist muudetud." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Kui sa selle salvestad, siis lähevad kõik välised muudatused kaotsi. Kas " "ikkagi salvestada?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Salvesta ikkagi" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Tühjenda" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fail" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Uus" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Ava..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Ava _viimane" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Salvesta" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Salvesta _kui..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Impordi..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Ekspordi QIF'ina..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Taasta" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Taasta varukoopia" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Omadused..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Välju" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Eelistused..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Vaade" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Tööriistariba" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Kokku diagramm" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "_Aja diagramm" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Alumised loetelud" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Teisene Euro" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Halda" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Rahakott..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Kontod..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Maksesaajad..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategooriad..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Sildid..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Ajastatud/Mall..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Ülesanded..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valuutad..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Eelarve..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Eelarve (tabeli vaade)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Tehingud" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Lisa..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Näita..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Kuva kõik ..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Määra ajastamine..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Postita ajastatud" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Aruanded" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistika..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Aja trend..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Saldo..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "_Eelarve..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Sõiduki kulud..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Näita tervitusdialoogi..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Faili statistika..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Muuda anonüümseks..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Abi" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Sisukord" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Leia abi võrgust..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Kontrolli uuendusi..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Väljalaske märkmed" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Teata probleemist..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Tõlgi see rakendus..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Teave" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Uus" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Loo uus fail" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Ava" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Ava fail" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Ava viimati kasutatud fail" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Salvesta" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Salvesta praegune fail" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Konto" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Halda kontosid" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Maksesaaja" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Halda maksesaajaid" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategooria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Halda kategooriaid" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Ajastatud/Mall" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Halda ajastatud/malli tehinguid" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Eelarve" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Halda eelarvet" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Ülesanne" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Halda automaatseid ülesandeid" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Näita valitud konto tehinguid" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Lisa tehingud" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistika" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Ava statistiline aruanne" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Aja trend" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Ava aja trendi aruanne" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Ava saldo aruanne" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Ava eelarve aruanne" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Sõiduki kulud" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Ava sõiduki kulude aruanne" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Abi" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Anneta" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Anneta HomeBank'i projektile" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Ajastatud" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Tulevik" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Meenuta" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Täna" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(märget pole)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(koopia)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(kategooriat pole)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "ebasobilik CSV formaat" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Ebasobilik ajavahemik!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tüüp" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-exp" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-inc" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-exp" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-inc" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Olek" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "puudub" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Silt" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Makse" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Summa" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Tekst" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Teadmata" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(maksesaajat pole)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(gruppi pole)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(silti pole)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "n%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "k%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "pa%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-n%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-k%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-pa%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FAIL]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Veebilehitseja tõrge." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "URL-i '%s' pole võimalik kuvada" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(institutsiooni pole)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Sinu kontod" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Kopeeri lõikelauale" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Grupeeri" #: ../src/hub-account.c:595 msgid "type" msgstr "tüüp" #: ../src/hub-account.c:596 msgid "group" msgstr "grupp" #: ../src/hub-account.c:597 msgid "institution" msgstr "institutsioon" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Näita kõiki" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Ava kõik" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Sule kõik" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "sum: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Ei ole tehinguid, mida lisada" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "lisatud tehinguid: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Näita ajastatud tehingute tulemust" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Postita rakenduse avamisel" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Sees" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Väljas" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "postitamise tähtaeg" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Kokku" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Jäta vahele" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Muuda & Postita" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Postita" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Kulu / Kategooria" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Top %d Väljaminek / Kategooria" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d Kulu / Maksesaaja" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Top %d Väljaminek / Maksesaaja" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Kulu / Konto" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Top %d Väljaminek / Konto" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Konto saldo" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Konto grupi saldo" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Muu" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Kokku diagramm" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Top" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Kontode grupp" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Kulu" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Väljaminek" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Tulu" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Sissetulek" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Kulu & Tulu" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Väljaminek & Sissetulek" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Kõik saldod" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Aja diagramm" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Kõik" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "imporditud konto" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Kogusumma" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "viimati kontrollitud" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "kuni ülekuluni" #: ../src/list-account.c:753 msgid "before maximum" msgstr "enne maksimumi" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Kontod" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Kontrollitud" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Vabastatud" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Täna" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "-jagatud-" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "-see vajab kategooriat-" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Kuupäev" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Number" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Märge" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Sildid" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Makse./Number" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Märgi lipuga" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Vaste" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Tulemus" #: ../src/list-report.c:957 msgid "Average" msgstr "Keskmine" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Hilinenud" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Ootel" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Järgmine kuupäev" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Saldo %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d alla %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Loetelu" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Vaata tulemusi loeteluna" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Rida" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Vaata tulemusi joonena" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detail" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Lülita detailid" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Värskenda" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Trüki" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Saldoaruanne" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Kuva" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "_Vahemik:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Näida tühje ridu" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filter" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Aktiivne:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Vahemik:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Alg:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Siht:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Vali:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Kõik" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Pööra ümber" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Kaasa _ülekanne" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Kulutatud" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Täidetud" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Kuu" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Eelarve kategooria kaupa" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Eelarve kuu kaupa" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " üle" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " vasak" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " alla" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(eelarvestamata)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Tulp" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Vaata tulemusi ridadena" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Tulemus lõikelauale" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Tulemus CSV'sse" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detail lõikelauale" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detail CSV'sse" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Eelarve osaks ei ole määratud ühtegi kontot." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Sa peaksid lisama mõned kontod kontode dialoogist." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Eelarve aruanne" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Laad:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tüüp:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Ainult eelarve väline" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Tulemus:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Eelarve:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Kulutatud:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s -> %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Kuvamiseks on liiga palju veerge" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Palun vali laiem intervall ja / või kitsam kuupäeva vahemik" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Veerg" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Vaata tulemusi tulpadena" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Sõõrik" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Vaata tulemusi sõõrikuna" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Vaata tulemusi tulpadena" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Tulp 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Vaata tulemusi tulpadena 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legend" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Lülita legend" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Suhtarv" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Pööra suhtarv" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistiline arunne" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Vaata:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Saldo laad" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Ennustus" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Sorteeri _summa järgi" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Võrdle Väljam. & Sisset." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Kokku:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Sissetulek:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Väljaminek:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Keskmine: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trendi aja aruanne" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Kumuleeri" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Kirje" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Läbilõige ajas" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Läbisõit" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Kütus" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Hind" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Läbitud" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Ekspordi" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Ekspordi CSV'na" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Sõiduki kulu aruanne" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategooria:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Läbitud:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Kütusekulu:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Kütuse hind:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Muud kulud:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Kulud kokku:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(puudub)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Nähtav" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Konto nimi" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Tõrge" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "'%s' kontot ei saa lisada,\n" "see nimi on juba olemas." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "'%s' kontot ei saa kustutada" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Sellel on tehing" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "See on xfer tehingu sihtmäärang" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "See on ajastatud/mall" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "See on xfer sihtmäärangu ajastatud/mall" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Kas oled kindel, et tahad '%s' jäädavalt kustutada?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Kui sa konto kustutad on see jäädavalt kadunud." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Seda kontod ei saa ümber nimetada,\n" "'%s' - '%s',\n" "see nimi on juba olemas." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Halda kontosid" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Kustuta" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Nimeta ümber" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Liiguta üles" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Liiguta alla" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Üldine" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grupp:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institutsioon:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_Number:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "_Algsaldo:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Valuuta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "see konto on _suletud" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Veebileht:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Märkmed:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Käitumine" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatiseerimine" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Vaikimisi _mall" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Aruandel välistamine" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "välista konto _kokkuvõttest" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "väljavool kokkuvõttesse" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "välista _eelarvest" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "välista igast _aruandest" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Muu" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Praegune kande number" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Kanderaamat _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Kanderaamat _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Saldo limiidid" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Ülekulu kui:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "_Ülempiir:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Kustuta mall" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "Seda malli kasutatakse konto mallina ja seda ei saa kustutada." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Kui kustutad ajastamise/malli on see jäädavalt kadunud." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Järgmine _kuupäev" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Iga:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Rohkem valikuid" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Nädala lõpp:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Lõpeta pärast:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "postitust" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Halda ajastatud/mallidega tehinguid" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Mall" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Tee koopia" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Ajasta" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Otsi" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Märkmed" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Otsing ei saa olla tühi" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "See otsingutekst on juba positsioonil %d olemas" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Loobu" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Olgu" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Tingimus" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Otsi:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Sisse:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Tõstutundlik" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Summa:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_JA" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Ülesanded" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Maksesaaja:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Kirjuta üle" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Makse:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Sildid:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Seda ülesannet ei saa paljundada,\n" "'%s' on juba olemas." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(reegel %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Kui kustutad ülesande on see jäädavalt kadunud." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Teisalda..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Teisalda reegel" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Teisalda" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Halda ülesandeid" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "See abimees aitab sul üles seada minimaalse seadistuse\n" "uuele HomeBank'i failile." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "Kõiki siin valitud sätteid on vajadusel võimalik hiljem muuta." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Muudatusi ei salvestata enne kui klõpsad \"Rakenda\"\n" "selle abimehe lõpus." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank kuvab peamises aknas pealkirja,\n" "see võib olla vabalt valitud märgistus või sinu nimi." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Pealkiri:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank toetab mitut valuutat.\n" "See on uute kontode ja aruannete vaikesäte." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Alus:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Seadista lisavaluutad" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Lisa" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Ei leitud" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank saab sinu keelele eeltäita kategooriad\n" "kui vastav CSV fail on kogukonna poolt loodud ja kättesaadavaks tehtud." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Seadista kategooriad minu keele jaoks" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Eelseadistuse fail:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank võimaldab importida sinu kontod allalaetud\n" "finantsinstitutsioonide failidest, või saad luua oma kontod käsitsi." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Loo minu esimene konto" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nimi:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "See on kinnituslehekülg,\n" "\n" "vajuta 'Rakenda' muudatuste rakendamiseks" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Algfaili seadistamine" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Faili valikud" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Vali valuutad" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Vali kategooriad" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Loo konto" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Lõpeta faili seadistamine" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Kehtiv" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nimi" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Ava" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Teadaolevad failid" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF failid" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX failid" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV failid" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Kõik failid" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "uus üldine konto" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "uus konto" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "vahele jäetud" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d -> %d tehingutest" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d tehing(ud), %d sarnased, %d olemasolevad, %d valitud" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d tehing(ud), %d valitud" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Mõnda kuupäeva ei saa teisendada. Jätkamiseks palun proovi muuta kuupäevade " "järjekorda." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Impordi %s :" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "see fail" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "see konto" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nimi: %s\n" "Number: %s\n" "Fail: %s\n" "Kodeering: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "impordi tehingud pangast" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "See abimees juhendab sind ühe või mitme\n" "allalaetud väljavõtte importimisel, ühes järgnevatest formaatidest:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Soovitatud: .OFX or .QFX\n" "(Kutsutakse ka Money™ või Quicken™)\n" "Toetatud: .QIF\n" "(Tavaline Quicken™ fail)\n" "Ainult edasijõudnud kasutajatele: .CSV\n" "(see on ainult HomeBank'i formaat, vaata dokumentatsiooni)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "Muudatusi ei tehta enne kui klõpsad \"Rakenda\" selle abimehe lõpus." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Ära seda uuesti näita" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Importimiseks Tiri&Aseta üks või mitu faili.\n" "Võid kasutata ka loetelu lisa/kustuta nuppu." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Sinu valitud failides on liiga palju kontosid,\n" "palun mine tagasi ja vali vähem faile." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Sihtkonto tuvastamine nime või numbri järgi ebaõnnestus." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Kuupäeva järjekord:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Impordi märked" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Vaheta maksesaajate märked" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Nimi:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Märge:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "_Tõstutundlik märge/maksesaaja" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Vaheta summat" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Sihtkontol on sarnased tehingud (võimalikud duplikaadid)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "päeva" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "See vaste on järjekorras: konto, summa ja kuupäev.\n" "Kuupäeva tolerants 0 päeva tähendab täpset vastet" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Käivita automatiseerimine" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Rikasta maksesaaja vaikesättega" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Käivita automaatse _ülesande reeglid" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Oma kontode uuendamiseks klõpsa \"Rakenda\"." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Tere tulemast" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Vali fail(id)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Impordi" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Kinnitus" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Faili formaadi tõrge" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV fail peab sisaldama täpseid tulba numbreid,\n" "mis peavad olema eraldatud semikooloniga, palun vaata abi täpsema teabe " "saamiseks." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Kas oled kindel, et soovid sisendi tühjendada?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Kui jätkad siis määratakse kõik summad 0ks." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Tühjenda" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%s eelarve" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Halda eelarvet" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "on iga kuu sama" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Tühjenda sisend" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "on iga kuu erinev" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Valikud" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Sunni selle kategooria jälgimine" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "jaan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "veebr" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "märts" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "juuni" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "juuli" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "dets" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Kokkuvõte" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Kokku" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Iga-aastane\n" "Kokku" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Igakuine\n" "Keskmine" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Igakuine" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Lisa kategooria" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Rakenda" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Ülemine kategooria" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Kategooria nimi" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "See kategooria on kasutusel.\n" "Iga tehing, mis kasutab seda kategooriat määratakse (kategooriat pole)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Ühenda kategooriad" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "'%s' kategooriasse määratud tehingud teisaldatakse allvalitud kategooriasse." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Sihtkategooria" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Kustuta kategooria '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Kas oled kindel, et tahad '%s' sisendid kustutada?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Lisa kategooria" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Eemalda kategooria" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Ühenda" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Tühjenda sisend" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# teh" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# sead" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Kustuta kasutamata kategooriad" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Kas oled kindel, et soovid jäädavalt\n" "kustutada kasutamata kategooriad?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Kategooria nime duplikaat. Proovi teist nime." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Muuda kategooriat" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Muuda tüüpi" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Sissetulek" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Paljunda alumistesse" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Seda kategooriat ei saa ümber nimetada,\n" "'%s' -> '%s',\n" "nimi on juba olemas." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Ühenda kategooria '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Sellesse kategooriasse määratud tehingud,\n" "teisaldatakse allvalitud kategooriasse." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Kaasa _alamkategooriad" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Halda kategooriaid" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Näita peidetud" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Näita kasutust" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Teisalda/Ühenda" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Näita/Peida" #: ../src/ui-category.c:2552 msgid "new category" msgstr "uus kategooria" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "uus alamkategooria" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Alusvaluuta" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Sümbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Vahetuskurss" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Viimati muudetud" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Muuda valuutat" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Valuuta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formaat" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Kohanda" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Sümbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "On _eesliide" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Kümnendkoha tähis:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Kümnendkohti:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Grupi tähis:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Vali alusvaluuta" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Vali valuuta" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO Kood" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Lisa kohandatud _valuuta" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Veebist uuendamise tõrge" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Kui kustutad valuuta on see jäädavalt kadunud." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Muuda alusvaluuta" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Kui jätkad määratakse teiste valuutade\n" "suhtarvud 0ks, pea meeles seda uuendada" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valuutad" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Uuenda veebist" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Logi" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Määra aluseks" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Faili statistika" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Tehing" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Uuenda" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Vali alusvaluuta" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Alates v5.1, suudab HomeBank hallata mitut valuutat\n" "kui allolev valuuta pole õige siis palun muuda see:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Valuuta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Ekspordi QIF'ina" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Impordi CSV'st" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Ava HomeBank'i fail" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Ava HomeBank'i varukoopia fail" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Salvesta HomeBank'i fail kui" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank'i failid" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Faili varukoopia" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Kõik varukoopiad" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Salvesta muudatused enne sulgemist faili?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Kui sa ei salvesta siis muudatused kaovad jäädavalt.\n" "Muudatusi: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Sulge _ilma salvestamata" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Ekspordi _CSV'na" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Kaust:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Vali kaust" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Faili nimi:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Lisa oleku tulp" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detailsed jagatud read" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Seda faili ei looda HomeBank'i CSV formaadis, kuna ekspordid\n" "'Kõikidest tehingutest', või valisid valiku." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Ekspordi PDF'ina" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Ekspordi _PDF'ina" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "HomeBank'iga, on trükkimine suunatud keskonnasõbralikule\n" "suhtumisele kõige laiemalt levinud digitaalses formaadis: PDF formaat. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Vali sihi loomiseks tegevus" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Koosta _uus" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Kasuta _valikut" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Allika ülekanne" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Sihi sidumine soovitatud" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank leidis tehingu, mis võib olla seotud sisemiste ülekannetega." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Sisesta -30 kuni -15 väljamineku filtreerimiseks" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Märge:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Number:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Lähtesta" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Kasuta" #: ../src/ui-filter.c:1370 msgid "default" msgstr "vaikimisi" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Summa/Tekst" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Näita alati" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Kehtetu" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Lisatud" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Muudetud" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(vaikimisi)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Uus filter %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Filtri nimi" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Salvesta kui..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Nimeta ümber..." #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Tähtaeg" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Järgmine väljamakse" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Enne" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Faili seaded" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Ajastatud tehingud" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "iga" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "kuu" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Kustuta kasutamata maksesaaja" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Kas oled kindel, et soovid\n" "kasutamata maksesaaja jäädavalt kustutada?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Maksesaaja nime duplikaat. Proovi muud nime." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Muuda maksesaajat" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Vaiketäide" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "_Makse" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Seda maksesaajat ei saa ümber nimetada,\n" "'%s' -> '%s',\n" "see mini on juba olemas." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Ühenda maksesaajad '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Sellele maksesaajale määratud tehingud,\n" "teisaldatakse allvalitud maksesaajale." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Kustuta maksesaaja '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "See maksesaaja on kasutusel.\n" "Iga seda maksesaajat kasutav tehing määratakse (maksesaajat pole)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Halda maksesaajaid" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "uus maksesaaja" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Kasutajaliides" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Lokalisatsioon" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Tehingud" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Ülekanne" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Import/Eksport" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Aruanded" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Ennustus" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Varukoopia" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Kaustad" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Täpsemad" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Süsteemi keel" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Vali HomeBank'i failide vaikekaust" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Vali HomeBank'i varukoopia failide vaikekaust" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Vali importimise vaikekaust" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Vali eksportimise vaikekaust" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "Valuuta API:" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "URL:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Võti:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Üldised valikud" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX valikud" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF valikud" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV valikud" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(ainult tehingute importimisel)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Eraldaja:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Peamise akna aruanded" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "_Ühikute ülempiir" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Algfilter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistika valikud" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Kuva _summa järgi" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Kuva _suhtarvu tulp" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Kuva _detailid" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Eelarve valikud" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Luba _ennustus" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Mitu kuud:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Luba" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Eelseadistus:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Kasutajaliides" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Keel:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formaat:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a lokalisatsiooni nädalapäeva lühendatud nimi.\n" "%A lokalisatsiooni nädalapäeva täisnimi. \n" "%b lokalisatsiooni lühendatud kuu nimi. \n" "%B lokalisatsiooni kuu täisnimi. \n" "%c lokalisatsiooni õige kuupäev ja kellaaeg. \n" "%C sajandi number (aasta jagatud 100ga ja ümardatud täisarvuks) kümnendik " "numbrina [00-99]. \n" "%d päev kuus kümnendik numbrina [01,31]. \n" "%D sama kui %m/%d/%y. \n" "%e päev kuus kümnendik numbrina [1,31]; üksik arv tühikuga selle ees. \n" "%j päev aastas kümnendik numbrina [001,366]. \n" "%m kuu kümnendik numbrina [01,12]. \n" "%p lokalisatsiooni õige kuupäevavorm. \n" "%y aasta ilma sajandita kümnendik numbrina [00,99]. \n" "%Y aasta sajandiga kümnendik numbrina." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Majandusaasta" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_Algab:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Mõõtühikud" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Kasuta meetri asemel _miile" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Kasuta kütuse jaoks _galloneid" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Näita alati meenutusi" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Näita alati kehtetuid" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Kaasa meenuta saldosse ja aruandesse" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Lukusta kontrollitud muudatuste tegemisest" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Näita tulevikku:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "päeva ette" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Peida kinnitatud" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Tehingu dialoog" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "_Jäta mitme lisamisel või kaasamisel viimane kuupäev meede" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Luba _märke eeltäide" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "jooksvat päeva" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Näita lisamise kinnitusteksti 5ks sekundiks" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk seaded" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Ruudustik" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Diagrammide valikud" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Väiksem legendi _suurus" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Tööriistariba:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Luba automaatsed varukoopiad" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Hoitavate varukoopiate arv:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Varukoopiate sagedus on kord päevas" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Rahakotid:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Varukoopiad:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Vahetusfailid" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Impordi:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Ekspordi:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Programmi käivitamine" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Näita käivituslogo" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Lae viimati avatud fail" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Postita ajastatud tehingud" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Uuenda valuutad veebist" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Lähtesta kõik eelistused" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Kas tahad tõesti lähtestada\n" "kõik eelistused muudetakse\n" "vaikeväärtusteks?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Eelistused" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Teave" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Keele-eelistuste rakendamiseks\n" "pead HomeBank'i taaskäivitama." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Varukoopia kaust on muudetud,\n" "võib olla vajalik '.bak' faili sellesse uude asukohta kopeerimine." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Kustuta kasutamata silt" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Kas oled kindel, et tahad\n" "kasutamata sildi jäädavalt kustutada?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Sildi nime duplikaat. Proovi teist nime." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Muuda silti" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Seda silti ei saa ümber nimetada\n" "'%s' -> '%s',\n" "see nimi on juba olemas." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Ühenda silt '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Selle sildiga määratud tehingud,\n" "teisaldatakse allvalitud sildi alla." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Kustuta silt '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "See silt on kasutusel.\n" "See silt kustutatakse kõikidelt tehingutelt, mis seda kasutavad." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Halda silte" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "uus silt" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "%s tehing loodud." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Kas tahad sisemise tehingu lahti murda?\n" "\n" "Jätkamine kustutab sihttehingu." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Murra lahti" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Näita _ajastatud" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Näita _kõiki kontosid" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Kasuta malli" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Lisa & _Säilita" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Lisa tehing" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Lisa mall" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Kasuta tehingut" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Kasuta malli" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Muuda tehingut" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Muuda malli" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Kuupäev:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- tüüp: p, p/k, k/p täiskuupäev\n" "- kasuta nooleklahve + ctrl või shift\n" "- tänaseks jäta tühjaks" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_Kellele:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Tehingute jagunemine" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Automaattäiteks pole ühtegi suhtarvu" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Konto:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Raamat _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- automaattäiteks alusta tähtede sisestamist\n" "- kirjuta sissekande loomiseks uus tekst" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "_Kategooria:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Olek:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Märge:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Hoiatus: summa ja katekooria märk ei sobi kokku" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Muuda mitut tehingut" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "Kirjuta kui" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Kas tahad kustutada kõik jagunemise read" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Kustuta kõik" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "-/+ sundimiseks kirjuta see numbri ette" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Rakenda" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Loobu" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Tehingu summa:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Määramata:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Jagunemiste summa:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Jagunemiste ülempiir" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Hoiatus: jagunemiste summa ja tehingute tüübid ei sobi kokku" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Hoiatus: jagunemiste summa ja tehingute summa ei sobi kokku" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(tüüpi pole)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Pank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Sularaha" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Vara" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Krediitkaart" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Kohustus" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Arvelduskonto" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Säästud" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Päev" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Võimalik" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Enne" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Pärast" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Jäta vahele" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Aeg" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Konto grupp" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Aasta" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Nädal" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Kaks nädalat" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Kvartal" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Poolaasta" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Kaasa" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Arva välja" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Eile" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Homme" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Eelmine nädal" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "See nädal" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Järgmine nädal" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Eelmine kaks nädalat" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "See kaks nädalat" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Järgmine kaks nädalat" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Eelmine kuu" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "See kuu" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Järgmine kuu" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Eelmine kvartal" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "See kvartal" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Järgmine kvartal" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Eelmine aasta" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "See aasta" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Järgmine aasta" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Eelmised 90 päeva" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Eelmised 60 päeva" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Eelmised 30 päeva" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Eelmised 12 kuud" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 päeva" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Kõik kuupäevad" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Kohandatud" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "See kuu" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Järgmine kuu" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Järgmised 30 päeva" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Järgmised 60 päeva" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Järgmised 90 päeva" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Postitamise tähtaeg" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Väljam. & Sisset." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Suvaline tüüp" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Suvaline olek" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Vabastamata" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Kontrollimata" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Kategoriseerimata" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Süsteemi vaikesätted" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Ainult ikoonid" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Ainult tekst" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Tekst ikoonide all" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Tekst ikoonide kõrval" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horisontaalne" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertikaalne" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Mõlemad" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "k-p-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "p-k-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-k-p" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Eira" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Lisa numbrile" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Lisa märkesse" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Lisa maksesaajale" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabel" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Koma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Semikoolon" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Tühik" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "jaanuar" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "veebruar" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "märts" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "aprill" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "juuni" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "juuli" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "august" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "september" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "oktoober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "november" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "detsember" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "sept" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Otsi..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Tšekk" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Pangaülekanne" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Deebetkaart" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Püsikorraldus" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektrooniline makse" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Hoius" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI tasu" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Otseülekanne" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Mobiiltelefon" homebank-5.9.1/po/fi.po0000644000175000017500000033307714775770063010404 # Finnish translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-08-31 12:53+0000\n" "Last-Translator: Fredrik Sinkkonen \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "Kotipankki" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Henkilökohtaista varainhoitoa" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Avointa, ilmaista ja helppoa henkilökohtaista kirjanpitoa kaikille" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" "finance;accounting;budget;personal;money;finanssi;kirjanpito;talous;budjetti;" "raha;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "Kotipankki on vapaa ja ilmainen ohjelmisto (englanninkielisen sanan free " "tarkoittaessa sekä \"sananvapautta\" että \"ilmaista olutta\"), joka ohjaa " "sinua henkilökohtaisen kirjanpidon hallinnassa." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Se on suunniteltu helppokäyttöiseksi ja hyödylliseksi oman taloudellisen " "tilanteen yksityiskohtaiseen tarkasteluun tehokkaita suodatustyökaluja ja " "kauniita graafeja käyttäen." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Jos etsit täysin avointa ja ilmaista tapaa hallita henkilökohtaista " "kirjanpitoa, Kotipankki on erinomainen valinta." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d tapahtumaa" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d tapahtumaa, %d valittu, ka.: %s, summa: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Lukittu. Klikkaa avataksesi" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Lukitsematon. Klikkaa lukitaksesi" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Vahvista %d valitun tapahtuman poisto?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Poistettua tapahtumaa ei voi palauttaa" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Poista" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Vahvista tilan muuttaminen Ei mitään?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Jokin tapahtuma valinnassasi on jo täsmäytetty." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Muuta" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Vaihda" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Vahvista mallipohjan luonti %d valitusta tapahtumasta?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Luo" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Luo mallipohja" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Kaikki tapahtumat" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Samankaltaisia tapahtumia ei löytynyt!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Epäjohdonmukaisuutta ei löytynyt!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Epäjohdonmukaisuus löytyi: %d\n" "Haluatko katselmoida ja korjata sen?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Muunna" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Lisää..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "Per_i..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Muokkaa..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ei mitään" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Täsmäytetty" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Tila" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Ei mitään" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Punainen" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Oranssi" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Keltainen" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Vihreä" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Sininen" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Violetti" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Muokkaa useita..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Luo mallipohja..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Luo maksumääräys..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Poista..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Ylös" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Alas" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Vie QIF-tiedostoksi..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Vie CSV-tiedostoon..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Tulosta..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Selaa verkkosivua" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Sulje" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Tili" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopioi" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Liitä" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Liitä (tänään)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Muokkaa" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Merkitse kaksoiskappaleeksi..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Tarkista sisäiset siirrot" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Autom. maksumääräykset" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Muunna euroksi..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "T_yökalut" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Siirrä tapahtuma ylös" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Siirrä tapahtuma alas" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Lisää uusi tapahtuma" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Lisää" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Peri valitusta tapahtumasta" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Perivät" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Muokkaa valittua tapahtumaa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Muokkaa" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Muokkaa useita tapahtumia" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Poista valitut tapahtumat" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(suljettu)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - Kotipankki" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Näytä" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Päivitä" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Muokkaa suodatinta" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Päivitä tulokset" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Tänään:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Tulevaisuudessa:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Palauta" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Haluatko varmasti anonymisoida tiedoston?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymisoi" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Tervetuloa Kotipankkiin" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Sulje" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Avaa _viimeksi avattu tiedosto" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Luo _uusi tiedosto" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Avaa olemassa oleva tiedosto" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Avaa _esimerkkitiedosto" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "_Lue Kotipankin ohje" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Määritä _asetukset" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Näytä tämä ikkuna seuraavalla kerralla" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Olet aikeissa avata varmuuskopiotiedoston '%s'.\n" "\n" "Haluatko varmasti jatkaa?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Avataanko varmuuskopiotiedosto?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Avaa varmuuskopio" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Tiedostoa \"%s\" ei voi avata, sitä ei ole olemassa.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Tuntematon virhe" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O-virhe tiedoston '%s' kohdalla." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Tiedosto '%s' ei ole kelvollinen Kotipankki-tiedosto." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Tiedosto \"%s\" tallennettiin uudemmalla Kotipankin versiolla,\n" "eikä kyseistä tiedostoa voi avata nykyisellä versiolla." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Tiedostovirhe" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Tiedostoa on muokattu sen jälkeen, kun se luettiin." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Jos tallennat tiedoston, kaikki ulkopuoliset muokkaukset saattavat kadota. " "Tallennetaanko silti?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "T_allenna silti" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Tyhjennä" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Tiedosto" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Uusi" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Avaa..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Avaa _viimeisimpiä" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Tallenna" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Tallenna _nimellä..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Tuo..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Vie QIF-tiedostoksi..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Palauta" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Palauta varmuuskopio" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Ominaisuudet..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Lopeta" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Asetukset..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Näytä" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Työkalurivi" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Listat alhaalla" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro-sivuutus" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "H_allinta" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Lompakko..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Ti_lit..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "Maksun_saajat..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Luokat..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Tunnisteet..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Ajastettu/malli..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Maksumääräykset..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valuutat..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Talousarvio..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Talousarvio (taulukkonäkymä)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "Ta_pahtumat" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Lisää..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Näytä..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Näytä kaikki..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Aseta ajastin..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Lähetä ajastetut" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Raportit" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "Tila_stot..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Kehitys..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Saldo..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Talo_usarvio..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Ajoneuvon kulut..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Näytä Tervetuloa-ikkuna..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Tiedoston tilastot..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymisoi..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "O_hje" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Sisältö" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Hae ohjeita verkosta..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Tarkista päivitykset..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Julkaisutiedot" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Raportoi ongelmasta..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Käännä tämä ohjelma..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "Tietoj_a" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Uusi" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Luo uusi tiedosto" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Avaa" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Avaa tiedosto" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Avaa äskettäin käytetty tiedosto" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Tallenna" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Tallenna nykyinen tiedosto" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Tili" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Hallitse tilejä" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Saaja" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Hallitse saajia" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Luokka" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Hallitse luokkia" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Ajastettu/malli" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Hallitse ajastettuja/mallipohjaisia tapahtumia" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Talousarvio" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Hallitse talousarviota" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Maksumääräys" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Hallitse automaattisia maksumääräyksiä" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Näyttää valitut tilitapahtumat" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Lisää tapahtumia" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Tilastot" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Avaa tilastoraportti" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Avaa kehitysraportti" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Avaa saldoraportti" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Avaa talousarvioraportti" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Ajoneuvon kulut" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Avaa ajoneuvon kuluraportti" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Ohje" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Lahjoita" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Lahjoita Kotipankki-projektille" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Ajastettu" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Tulevaisuudessa" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Muistuta" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Tänään" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(ei muistiota)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(kopio)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(ei luokkaa)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "virheellinen CSV-muoto" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tyyppi" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Tila" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Tunniste" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Maksu" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Summa" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Teksti" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Tuntematon" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(ei saajaa)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(ei ryhmää)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(ei tagia)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[TIEDOSTO]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Selainvirhe." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Verkko-osoitetta \"%s\" ei voitu näyttää" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(ei instituutiota)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Tilisi" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Ryhmitä" #: ../src/hub-account.c:595 msgid "type" msgstr "tyyppi" #: ../src/hub-account.c:596 msgid "group" msgstr "ryhmä" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Näytä kaikki" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Laajenna kaikki" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Supista kaikki" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Ei tapahtumaa lisättäväksi" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "tapahtuma lisätty: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Päällä" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Pois käytöstä" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "lähetyspäivä enintään" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Yhteensä" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Lähetä" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "%d suurinta kulukohdetta / luokka" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "%d kulukohdetta / saaja" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "%d kulukohdetta / tili" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Tilin saldo" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Meno" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Tulo" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "tuotu tili" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Loppusumma" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Tilit" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Täsmäytetty" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Tyhjennetty" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Tänään" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- tämä tarvitsee luokan -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Päiväys" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Numero" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Muistio" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Tunnisteet" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Tulos" #: ../src/list-report.c:957 msgid "Average" msgstr "Keskiarvo" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Myöhässä" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Vielä" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Seuraava päiväys" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d alle %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Luettelo" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Näytä tulokset luettelona" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Viivat" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Näytä tulokset viivoina" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Tiedot" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Vaihda tietojen näkyminen" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Päivitä" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Saldoraportti" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Näkymä" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Näytä tyhjä rivi" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_X-skaalaus:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Suodatin" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Rajaus:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Mistä:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Mihin" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Valitse:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Kaikki" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Käännä" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Kulutus" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Kuukausi" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Kategoriabudjetti" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Kuukausibudjetti" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " yli" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " jäljellä" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " alle" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Talousarvion osalliseksi ei ole määritelty mitään tilejä." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Sisällytä tilejä tili-ikkunasta." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Talousarvioraportti" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Tila:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tyyppi:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Tulos:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Talousarvio:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Kulutus:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Liian monta saraketta näytettäväksi" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Sarake" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Selite" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Vaihda selitteen näkyminen" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Muuta kurssia" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Tilastoraportti" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Näkymä:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Lajittele summ_an mukaan" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Tulot:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Menot:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Keskiarvo: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Kehitysraportti" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "K_umulatiivinen" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Aikaväli" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Mittari" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Polttoaine" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Hinta" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Matka" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Vie" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Vie CSV-tiedostoksi" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Ajoneuvon kuluraportti" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Luokka:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Mittari:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Kulutus:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Polttoainekulut:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Muut kulut:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Kulut yhteensä:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ei mitään)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Näkyvä" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Tilin nimi" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Virhe" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Tiliä '%s' ei voi lisätä,\n" "kyseinen nimi on jo olemassa." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Tiliä '%s' ei voi poistaa" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Poistetaanko '%s' pysyvästi?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Jos poistat tilin, sen tiedot katoavat lopullisesti." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Tilin nimeä \"%s\" ei\n" "voi vaihtaa nimeksi \"%s\",\n" "nimi on jo käytössä." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Hallitse tilejä" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Poista" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Nimeä uudelleen" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Siirrä ylös" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Siirrä alas" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Yleiset" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Ryhmä:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Instituutio:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Nu_mero:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "_Alkusaldo:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Valuutta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "täm_ä tili suljettiin" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Verkkosivusto:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Merkinnät:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Toiminta" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automaatio" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Oletusmallipohja:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Raportin rajaus" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "älä sisällytä tili_yhteenvetoon" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "älä sisällytä _talousarvioon" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "älä sisällytä _mihinkään raporttiin" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Sekalaiset" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Šekkivihko _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Šekkivihko _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Saldorajoitukset" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Seuraava _päiväys:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Joka:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Lisää valintoja" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Hallitse ajastettuja/mallipohjaisia tapahtumia" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Mallipohja" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Monista" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Ajoita" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Haku" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Merkinnät" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Hakutermi ei voi olla tyhjä" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Peru" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Ehto" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Etsi:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Huomioi kirjainkoko" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Maksumääräykset" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "Mak_sun saaja:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Ylikirjoita" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Maksu:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Tunnisteet:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(sääntö %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Jos poistat maksumääräyksen, sen tiedot katoavat lopullisesti." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Maksumääräysten hallinta" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Tämä ohjattu käyttöönotto auttaa sinua määrittämään\n" "uuden Kotipankki-tiedoston vähimmäisvaatimukset." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Kaikkia käyttöönoton yhteydessä määritettäviä yksityiskohtia voi muuttaa " "myöhemmin, jos siihen ilmenee tarvetta." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Muutoksia ei tehdä, ennen kuin napsautat\n" "\"Toteuta\" käyttöönoton päätteeksi." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "Kotipankki näyttää otsikon pääikkunassa,\n" "voit valita sen vapaasti tai asettaa siihen esimerkiksi nimesi." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Otsikko:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "Kotipankki tukee useita valuuttoja. Pohjavaluutta toimii\n" "oletuksena uusille tileille ja raporteille." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Pohja:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Aseta lisävaluuttoja" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Lisää" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Ei löytynyt" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "Kotipankki voi esitäyttää luokat käyttämälläsi kielellä,\n" "jos CSV-tiedosto on saatavilla ja tarjolla yhteisön toimesta." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Aseta luokat kielelleni" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Esiasetustiedosto:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "Kotipankki mahdollistaa tilien tuomisen ladatuista rahoituslaitosten\n" "tiedostoista, tai voit luoda tilin manuaalisesti." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Luo ensimmäinen tilini" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nimi:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Tämä on vahvistussivu.\n" "\n" "Napsauta \"Toteuta\" toteuttaaksesi muutokset." #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Aloitustiedoston asetukset" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Tiedoston valinnat" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Valitse valuutat" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Valitse luokat" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Luo tili" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Viimeistele tiedoston asetukset" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Kelvollinen" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nimi" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Avaa" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Tunnetut tiedostot" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF-tiedostot" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX-tiedostot" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV-tiedostot" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Kaikki tiedostot" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "uusi tili" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "ohitettu" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d/%d tapahtumasta" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d tapahtuma(a), %d valittu" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Tuo %s _kohteeseen:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "tämä tiedosto" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "tämä tili" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Tuo tapahtumat pankki- tai luottokortilta" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Suositeltu: .OFX tai .QFX\n" "(Kutsutaan myös nimillä Money™ tai Quicken™)\n" "Tuettu: .QIF\n" "(Yleinen Quicken™ -tiedosto)\n" "Vain edistyneille käyttäjille: .CSV\n" "(Kotipankin oma muoto, lue dokumentaatio)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Muutoksia ei tehdä, ennen kuin napsautat \"Toteuta\" käyttöönoton päätteeksi." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Älä näytä tätä uudelleen" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Päiväysjärjestys:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX-_nimi:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Samanlainen tapahtuma kohdetilillä (mahdollinen kaksoiskappale)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "päivää" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Vertailu tehdään järjestyksessä: tili, summa ja päiväys.\n" "Päivätoleranssi 0 tarkoittaa täsmällistä osumaa" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Suorita automaatio" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Napsauta \"Toteuta\" päivittääksesi tilisi." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Tervetuloa" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Valitse tiedosto(t)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Tuo" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Vahvistus" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Tiedostomuodon virhe" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Tyhjennä" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Hallitse talousarviota" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Tyhjennä syöte" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Valinnat" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Pakota tämän luokan seuranta" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Tammi" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Helmi" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Maalis" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Huhti" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Toukokuu" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Kesä" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Heinä" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Elo" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Loka" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Marras" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Joulu" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Yhteenveto" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Yhteensä" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Kuukausittain" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Lisää luokka" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Toteuta" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Yläluokka" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Luokan nimi" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Yhdistä luokat" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Kohdeluokka" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Poista luokka '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Lisää luokka" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Poista luokka" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Yhdistä" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Tyhjennä syöte" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Poista käyttämättömät luokat" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Haluatko varmasti poistaa pysyvästi\n" "käyttämättömät luokat?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Muokkaa luokkaa" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Vaihda tyyppi" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Tulot" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Luokan nimeä \"%s\" ei\n" "voi vaihtaa nimeksi \"%s\",\n" "nimi on jo käytössä." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Yhdistä luokka '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Hallitse luokkia" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Näytä piilotetut" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Siirrä/yhdistä" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Näytä/Piilota" #: ../src/ui-category.c:2552 msgid "new category" msgstr "uusi luokka" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "uusi aliluokka" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Pohjavaluutta" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symboli" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Vaihtokurssi" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Viimeksi muokattu" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Muokkaa valuuttaa" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Valuutta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Muoto" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Mukauta" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symboli:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "On _etuliite" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Desimaalimerkki:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Desimaalit" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Ryhmitysmerkki:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Valitse pohjavaluutta" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Valitse valuutta" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO-koodi" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Lisää mukautettu _valuutta" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Virhe päivittäessä verkosta" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Jos poistat valuutan, sen tiedot katoavat lopullisesti." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Muuta pohjavaluutta" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valuutat" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Päivitä verkosta" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Soittoloki" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Aseta pohjaksi" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Tiedostotilastot" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Tapahtuma" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Päivitä" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Valitse pohjavaluutta" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Valuutta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Vie QIF-tiedostoksi" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Tuo CSV-tiedostosta" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Avaa Kotipankki-tiedosto" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Avaa Kotipankin varmuuskopiotiedosto" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Tallenna Kotipankki-tiedosto nimellä" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Kotipankki-tiedostot" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Kaikki varmuuskopiot" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Tallennetaanko muutokset tiedostoon ennen sulkemista?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Jos et tallenna, muutokset katoavat pysyvästi.\n" "Muutosten määrä: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Sulje _tallentamatta" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Vie CSV:nä" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Kansio:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Valitse kansio" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Tiedostonimi:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Vie PDF-tiedostoksi" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Vie _PDF-tiedostoksi" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "Kotipankki löysi tapahtuman, joka saattaa olla yhteydessä sisäiseen siirtoon." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Muistio:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Nollaa" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Käytä" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Määrä/teksti" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Näytä aina" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Aiheeton" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Lisätty" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Muokattu" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Eräpäivä" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Tiedoston ominaisuudet" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Ajastetut tapahtumat" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "kuukausi" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Poista käyttämätön saaja" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Muokkaa saajaa" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Oletustäyttö" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "_Maksu:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Maksun saajan nimeä \"%s\" ei\n" "voi vaihtaa nimeksi \"%s\",\n" "nimi on jo käytössä." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Poista saaja '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Hallitse maksun saajia" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "uusi saaja" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Käyttöliittymä" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Maa-asetus" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Tapahtumat" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Tilisiirto" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Tuonti ja vienti" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Raportti" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Ennuste" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Varmuuskopiointi" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Kansiot" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Lisäasetukset" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Järjestelmän kieli" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Valitse Kotipankin tiedostojen oletuskansio" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" "Valitse oletusarvoinen kansio, johon Kotipankki asettaa varmuuskopiotiedostot" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Valitse oletusarvoinen tuontikansio" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Valitse oletusarvoinen vientikansio" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "Vaihtokurssi-API" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Avain:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Yleiset asetukset" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX-/QFX-valinnat" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF-valinnat" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV-valinnat" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Erotin:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Pääikkunan raportit" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Alkusuodatus" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Tilastoasetukset" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Näytä summ_an mukaan" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Näytä _korkosarake" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Näytä yksityiskoh_dat" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Talousarvion asetukset" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Kuukausinumero:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Käytä" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "Esi_asetettu:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Käyttöliittymä" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Kieli:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Muoto:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Tilivuosi" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_Alkaa:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Mittayksiköt" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Näytä aina muistutukset" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Näytä aina aiheettomat" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Näytä tuleva:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "päivää eteenpäin" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Piilota täsmäytetyt" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Tapahtumadialogi" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "peräkkäistä päivää" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Ruudukon viiva:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Työkalupalkki:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Käytä automaattista varmuuskopiointia" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Säilytettävien varmuuskopioiden määrä:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Varmuuskopio otetaan kerran päivässä" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Lompakot:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Varmuuskopiot:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Vaihtotiedostot" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Tuo:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "Vi_e:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Ohjelman käynnistys" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Näytä aloitusruutu" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Lataa viimeksi avattu tiedosto" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Lähetä odottavat ajastetut tapahtumat" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Päivitä valuutat verkosta" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Nollaa kaikki asetukset" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Haluatko varmasti\n" "palauttaa kaikki\n" "asetukset oletusarvoihin?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Asetukset" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Tietoja" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Kotipankki tulee käynnistää uudelleen,\n" "jotta kielimuutos tulee voimaan." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Muokkaa tagia" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Yhdistä tunniste '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Poista tunniste '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Hallitse tunnisteita" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "uusi tunniste" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Näytä _ajastetut" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Näytä _kaikki tilit" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Käytä mallipohjaa" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Lisää tapahtuma" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Lisää mallipohja" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Peri tapahtuma" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Periytä mallipohja" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Muokkaa tapahtumaa" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Muokkaa mallipohjaa" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Päiväys:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "T_ili" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "_Luokka:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Tila:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Muistio" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Varoitus: määrä ja luokan etumerkki eivät vastaa" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Muokkaa useita tapahtumia" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Poista kaikki" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Toteuta" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Peru" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Tapahtuman summa:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(ei tyyppiä)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Pankki" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Käteinen" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Varat" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Luottokortti" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Velat" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Säästöt" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Päivä" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Mahdollinen" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Ennen" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Jälkeen" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Ohita" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Aika" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Tiliryhmä" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Vuosi" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Viikko" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "2 viikkoa" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Neljännes" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Vuosipuolikas" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Sisällytä" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Älä sisällytä" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Eilen" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Huomenna" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Edellinen viikko" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Kuluva viikko" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Seuraava viikko" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Edelliset 2 viikkoa" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Seuraavat 2 viikkoa" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Edellinen kuukausi" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Kuluva kuukausi" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Seuraava kuukausi" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Edellinen kvartaali" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Kuluva kvartaali" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Seuraava kvartaali" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Edellinen vuosi" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Tämä vuosi" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Seuraava vuosi" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Edelliset 90 päivää" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Edelliset 60 päivää" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Edelliset 30 päivää" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Viimeiset 12 kuukautta" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Ei rajausta" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Mukautettu" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Tämä kuukausi" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Seuraava kuukausi" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Seuraavat 30 päivää" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Seuraavat 30 päivää" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Seuraavat 90 päivää" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Menot & tulot" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Mikä tahansa tyyppi" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Mikä tahansa tila" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Selvittämätön" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Täsmäyttämätön" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Luokittelematon" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Järjestelmän oletukset" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Vain kuvakkeet" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Vain teksti" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Teksti kuvakkeiden alapuolella" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Teksti kuvakkeiden vierellä" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Vaakasuunta" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Pystysuunta" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Molemmat" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "k-p-v" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "p-k-v" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "v-k-p" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Hylkää" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Lisää muistioon" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Sarkain" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Pilkku" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Puolipiste" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Välilyönti" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Tammikuu" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Helmikuu" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Maaliskuu" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Huhtikuu" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Kesäkuu" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Heinäkuu" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Elokuu" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Syyskuu" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Lokakuu" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Marraskuu" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Joulukuu" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Syys" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Etsi..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Šekki" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Pankkisiirto" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Pankkikortti" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Suoramaksu" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Verkkomaksu" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Talletus" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Rahoituslaitoskulu" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Suoraveloitus" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Matkapuhelin" homebank-5.9.1/po/si.po0000644000175000017500000031440514775770110010404 # Sinhalese translation for homebank # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2015-11-27 16:07+0000\n" "Last-Translator: Mohamed Rizmi \n" "Language-Team: Sinhalese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "මකන්න (_D)" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "වෙනස් කරන්න (_C)" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "පරිවර්තනය කරන්න (_C)" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "එක් කරන්න... (_A)" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "සංස්කරණය... (_E)" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "කිසිවක් නැත" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "මකා දමන්න (_D)..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "QIF අපනයනය..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "CSV අපනයනය..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "සැකසුම් (_E)" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "මෙවලම් (_T)" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "නව ගනුදෙනුවක් එක් කරන්න" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "එක් කරන්න" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "සක්‍රීය ගනුදෙනුව වෙනස් කරන්න" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "සංස්කරණය" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "තෝරා ඇති ගනුදෙනු(ව) මකා දමන්න" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "අද:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "අනාගතය:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "HomeBank වෙත පිළිගනිමු" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "වසන්න (_C)" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "නව ගොනුවක් සාදන්න (_n)" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "පවතින ගොනුවක් විවෘත කරන්න (_O)" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "උදාහරණ ගොනුව විවෘත කරන්න (_e)" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "'%s' ගොනුවේ I/O දෝෂයක්." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "'%s' ගොනුව වලංගු HomeBank ගොනුවක් නොවේ." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "ගොනුවේ දෝෂයක්" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "ගොනුව (_F)" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "නව (_N)" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "විවෘත කරන්න... (_O)" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "සුරකින්න (_S)" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "පෙර තත්වයට පත් කරන්න" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "ඉවත් වෙන්න (_Q)" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "අභිප්‍රේත..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "දර්ශනය (_V)" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "මෙවලම් තීරුව (_T)" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "කලමණාකරනය (_M)" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "ගිණුම් (_o)..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "ආදායකයන් (_P)..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "වර්ග..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "අයවැය..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "ගනුදෙනු (_T)" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "එක් කරන්න..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "පෙන්වන්න..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "වාර්තා (_R)" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "සංඛ්‍යා ලේඛන (_S)..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "අයවැය (_u)..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "වාහන වියදම (V)..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "උදව් (_H)" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "අන්තර්ගතයන් (_C)" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "ගැටළුවක් වාර්තා කරන්න..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "මෙම වැඩසටහන පරිවර්තනය කරන්න..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "පිළිබඳ (_A)" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "නව ගොනුවක් සාදන්න" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "ගොනුවක් විවෘත කරන්න" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "මෑතකදි භාවිතා කළ ගොනුවක් විවෘත කරන්න" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "දැනට භාවිතාවන ගොනුව සුරකින්න" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "ගිණුම" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "ආදායකයා" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "වර්ගය" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "අයවැය" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "තෝරා ඇති ගිණුමේ ගනුදෙනු පෙන්වයි" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "ගනුදෙනු එක් කරන්න" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "ශේෂය" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "ශේෂ වාර්තාව විවෘත කරන්න" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "අයවැය වාර්තාව විවෘත කරන්න" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "වාහන වියදම" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "වාහන වියදම් වාර්තාව විවෘත කරන්න" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "අනාගතය" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "තත්වය" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "ගණන" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "නොදනී" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ගොනුව]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "ඔබේ ගිණුම්" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "ගනුදෙනුව එක් කරන ලදී: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "එකතුව" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "වෙනත්" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "වියදම" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "ආදායම" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "ගිණුම්" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "අද" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "දිනය" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "ප්‍රතිඑලය" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "මීලග දිනය" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "ලැයිස්තුව" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "ප්‍රතිඑල ලැයිස්තුවක් ලෙස පෙන්වන්න" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "පේළිය" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "විස්තරය" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "ශේෂ වාර්තාව" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "පරාසය (_R):" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "සිට (_F):" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "දක්වා (_T):" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "සියල්ල" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "මාසය" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "අයවැය වාර්තාව" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "වර්ගය (_T):" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "ප්‍රතිඑලය:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "අයවැය:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "වියදම් කළ:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "සංඛ්‍යා ලේඛන වාර්තාව" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "ආදායම:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "වියදම:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "ඉන්ධන" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "මිල" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "දුර" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "CSV ලෙස අපනයනය කරන්න" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "වාහන වියදම් වාර්තාව" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "වර්ගය (_C):" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "මීටරය:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "පරිභෝජනය:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "ඉන්ධන වියදම:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "වෙනත් වියදම්:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "මුලු වියදම:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(කිසිවක් නැත)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "ගිණුමේ නම" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "දෝෂය" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "'%s' ගිණුම එක්කල නොහැක,\n" "මෙම නම දැනටමත් පවතී." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "'%s' ගිණුම මකාදැමිය නොහැක" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "ගිණුම් කළමනාකරණය" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "පොදු" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "අංකය (_u):" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "මීලග දිනය (_d):" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "සෑම (_y):" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "සතිඅන්තය:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "අවලංගු කරන්න (_C)" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "හරි (_O)" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "ආදායකයා (_P):" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "ගෙවීම (_m):" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "එක් කරන්න (_A)" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "හමු නොවුණි" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "නම (_N):" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "විවෘත කරන්න (_O)" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "දන්නා ගොනු" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF ගොනු" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX ගොනු" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV ගොනු" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "සියළු ගොනු" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "දින" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "ආයුබෝවන්" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "ආනයනය කරන්න" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "ස්ථිර කිරීම" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%s සඳහා වන අයවැය" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "අයවැය කලමණාකරනය" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "ඉතිරිය:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "ජන" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "පෙබ" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "මාර්" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "අප්‍රේ" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "මැයි" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "ජූනි" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "ජූලි" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "අගෝ" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "ඔක්" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "නොවැ" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "දෙසැ" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "ආදායම (_I)" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "ප්‍රවර්ග කළමනාකරණය" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "ගනුදෙනුව" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "QIF ලෙස අපනයනය කරන්න" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "CSV වෙතින් ආනයනය කරන‌්න" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank ගොනු" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "සුරකින්නේ නොමැතිව වසන්න" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "ගෙවීම (_y):" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "'%s' ආදායකයා මකා දමන්න (_D)" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "ආදායකයින් කළමනාකරණය" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "අතුරුමුහුණත" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "ගනුදෙනු" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "ආනයනය/අපනයනය" #: ../src/ui-pref.c:99 msgid "Report" msgstr "වාර්තාව" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "පද්ධති හාෂාව" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "විස්තර පෙන්වන්න (_d)" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "සක්‍රීය කරන්න (_E)" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "භාෂාව (_L):" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "ආනයනය (_I):" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "අපනයනය (_E):" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "තොරතුරු" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "ගනුදෙනුව එක් කරන්න" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "දිනය (_D):" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "ගිණුම (_c):" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "තත්වය (_S):" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "බැංකුව" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "මුදල්" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "වත්කම" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "ණය කාඩ්පත" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "දවස" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "පෙර" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "පසු" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "වසර" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "සතිය" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "කා‍ර්තු‍ව‍" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "අයිකන පමණයි" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-y" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-y" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "y-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "නොසලකා හරින්න" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "ජනවාරි" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "පෙබරවාරි" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "මාර්තු" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "අප්‍රේල්" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "ජූනි" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "ජූලි" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "අගෝස්තු" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "සැප්තැම්බර්" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "ඔක්තෝම්බර්" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "නොවැම්බර්" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "දෙසැම්බර්" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "සැප්" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "පරික්ෂා කරන්න" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "හර පත" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "ඉලෙක්ට්‍රොනික ගෙවීම" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "තැන්පතුව" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/cy.po0000644000175000017500000035246314775770105010416 # Welsh translation for homebank # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-09-25 14:12+0000\n" "Last-Translator: Rhoslyn Prys \n" "Language-Team: Welsh \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: cy\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Arian personol" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Cyfrifo personol hawdd i bawb - yn rhydd a rhad" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "cyllid;cyfrifo;cyllidebu;personol;arian;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "Mae HomeBank yn feddalwedd rhydd (fel mewn \"siarad yn rhydd\" yn ogystal â " "\"chwrw am ddim\" fydd yn eich cynorthwyo i reoli eich arian personol." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Mae wedi ei gynllunio i fod yn hawdd i'w defnyddio ac i allu dadansoddi eich " "gwario personol yn fanwl gan ddefnyddio offer hidlo pwerus a graffiau hardd." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Os ydych y chwilio am ffordd hawdd, a rhad a rhydd o reoli eich cyfrifon " "personol yna HomeBank yw'r un i chi." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d trafodyn" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d trafodyn, %d wedi'u dewis, cyf: %s, swm: %s (%s -%s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Wedi'i gloi. Cliciwch i'w ddatgloi" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Heb ei gloi. Cliciwch i'w gloi" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Egni Bywyd" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "Nid yw 'Ennill fesul awr' wedi'i osod yn y Waled gyfredol." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Ydych chi'n siŵr eich bod eisiau dileu'r %d trafodyn hyn?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Os fyddwch yn dileu'r trafodyn, bydd yn cael ei golli'n barhaol." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Dileu" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Ydych chi'n siŵr eich bod am newid y statws i Ddim?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Eisoes mae rhai trafodion yn eich dewis wedi eu Cysoni." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Newid" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Ydych chi'n siŵr eich bod am newid y statws i Gliriwyd?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Ydych chi'n siŵr eich bod eisiau toglo'r statws Cysoni?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Toglo" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Ydych chi'n siŵr eich bod eisiau creu templed o'r %d trafodyn hyn?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Creu" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Creu Templed" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d wedi'i greu gydag eicon wedi'i rhaglanw" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "Ydych chi'n siŵr eich bod eisiau creu aseiniad o'r %d trafodyn hyn?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Creu Aseiniad" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Pob trafodyn" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Mae yn %d grŵp o drafodion tebyg" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Heb ganfod unrhyw drafodyn tebyg !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Gwiriwch ganlyniad y trosglwyddo mewnol" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Heb ganfod anghysonderau!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Wedi canfod anghysonderau: %d\n" "Hoffech chi ei adolygu a'i drwsio?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Bydd pob swm trafodyn yn cael ei rannu gyda %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Ydych chi'n siŵr eich bod eisiau trosi'r cyfrif hwn i Ewros fel arian Mawr?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Trosi" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Dim trafodion wedi newid" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "trafodion wedi newid: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Canlyniad aseiniad awtomatig" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Ychwanegu..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Etifeddu..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Golygu..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Dim" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Cliriwyd" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Cysonwyd" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Statws" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Dim" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Coch" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Oren" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Melyn" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Gwyrdd" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Glas" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Porffor" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Baner" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Golygu _Lluosog..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Gweld _Hollt" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copïo’r swm bras" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Creu templed..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Creu aseiniad..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Dileu..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "I _fyny" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "I _lawr" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Allforio QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Allforio CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Argraffu..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Pori'r Wefan" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Cau" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "C_yfrif" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copïo" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Gludo" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Gludo (heddiw)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Copïo clipfwrdd" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Canfod" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Golygu" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marcio'r dyblyg..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Gwirio'r trosglwyddiad mewnol" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Aseiniadau awtomatig" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Trosi i Euros..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Offer" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Symud trafodyn i fyny" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Symud trafodyn i lawr" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Ychwanegu trafodion newydd" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Ychwanegu" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Etifeddu o'r trafodion cyfredol" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Etifeddu" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Golygu'r trafodion cyfredol" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Golygu" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Toglo'r clirio ar gyfer y trafodion o dan sylw" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Toglo cysoni ar gyfer y trafodion o dan sylw" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Golygu trafodion lluosog" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Dileu'r trafodion hyn" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Newidiadau wedi'u cysoni" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(wedi cau)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Dangos" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Adnewyddu" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Bwlch _dyddiadau:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Toglo dangos %d diwrnod ymlaen llaw" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Golygu'r hidl" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Clirio'r hidl" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Adnewyddu'r canlyniadau" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Toglo Egni Bywyd" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Ewro _lleiaf" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Cysonwyd:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Cliriwyd:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Heddiw:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Y dyfodol:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Dychwelyd newidiadau heb eu cadw i ffeil '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Bydd newidiadau sy'n cael eu gwneud i'r ffeil yn cael eu colli am byth\n" "- Bydd y ffeil yn cael ei llwytho eto o'r cadw diwethaf (.xhb ~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Dychwelyd" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Ydych chi'n siŵr eich bod am wneud y ffeil yn anhysbys?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Bydd parhau yn gwneud unrhyw\n" "destun yn anhysbys, fel 'cyfrif x, 'talai y', 'memo z' ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "Gwneud yn _anhysbys" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Croeso i HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Cau" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Agor y ffeil _diwethaf" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Creu ffeil _newydd" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Agor y ffeil gyfredol" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Agor y ffeil _enghreifftiol" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Darllen _ Llawlyfr HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Ffurfweddu'r _dewisiadau" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Dangos y ffenestr hon y tro nesaf" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Rydych chi ar fin agor y ffeil wrth gefn '%s'.\n" "\n" "Ydych chi'n siŵr eich bod chi am wneud hyn?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Agor y ffeil wrth gefn ?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Agor y copi wrth gefn" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Methu agor '%s', nid yw'r ffeil yn bodoli.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Gwall anhysbys" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Gwall I/O ffeil '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Nid yw ffeil %s yn ffeil HomeBank ddilys." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Cafodd y ffeil '%s' ei chadw gan fersiwn uwch o HomeBank\n" "ac nid oes modd ei llwytho gan y fersiwn cyfredol." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Gwall ffeil" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Cafodd y ffeil %s ei newid ers ei darllen." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Os wnewch chi ei chadw, mae'n bosib y bydd yr holl newidiadau allanol yn " "cael eu colli. Ydych chi am ei chadw beth bynnag?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "C_adw Beth Bynnag" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Clirio" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Ffeil" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Newydd" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Agor..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Agor y _Diweddaraf" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Cadw" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Cadw _fel..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Mewnforio..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Allforio fel QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Dychwelyd" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Adfer y copi wrth gefn" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Priodweddau..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Gadael" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Dewisiadau..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Gweld" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Bar Offer" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Siart _Cyfanswm" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Siart _Amser" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "Rhestrau _Gwaelod" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Ewro lleiaf" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Rheoli" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Waled..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Cyfrifon..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Taledigion..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorïau..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Tagiau..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Amserlenwyd/Templed..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Aseiniadau..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Arian..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Cyllidebu..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Cyllidebu (golwg tabl)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Trafodion" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Ychwanegu..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Dangos..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Dangos y Cyfan..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Gosod amserlenydd..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Cofnod wedi ei amserlennu" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Adroddiadau" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "Y_stadegau..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "T_uedd Cyfnod..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balans..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "C_yllidebu..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "C_ost cerbyd..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Dangos y sgrin groeso..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Ystadegau'r ffeil..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Gwneud yn anhysbys..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Cymorth" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Cynnwys" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Cael Cymorth Ar-lein..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Gwirio am ddiweddariadau..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Nodiadau Ryddhau" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Adrodd am Broblem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Cyfieithwch y Rhaglen hon..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Ynghylch" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Newydd" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Creu ffeil newydd" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Agor" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Agor ffeil" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Agor ffeil diweddar" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Cadw" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Cadw'r ffeil gyfredol" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Cyfrif" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Rheoli'r cyfrifon" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Taledig" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Rheoli'r taledigion" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categorïau" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Rheoli'r categorïau" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Amserlenwyd/Templed" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Rheoli'r trafodion amserlenwyd/templedi" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Cyllidebu" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Rheoli'r gyllideb" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Aseiniad" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Rheoli'r aseiniadau awtomatig" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Yn dangos trafodion cyfrif penodol" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Ychwanegu trafodion" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Ystadegau" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Agor yr adroddiad Ystadegau" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Cyfnod y tuedd" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Agor yr adroddiad Cyfnod y Tuedd" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Mantoli" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Agor adroddiad y Mantoli" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Agor adroddiad y Gyllideb" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Cost cerbyd" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Agor adroddiad cost Cerbyd" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Cymorth" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Cyfrannu" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Cyfrannu tuag at broject HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Amserlenwyd" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Dyfodol" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Atgoffa" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Heddiw" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(dim memo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copïo)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(dim categorïau)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "fformat CSV annilys" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Ystod dyddiad annilys!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Math" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-exp" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-cyn" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-exp" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-cynnwys" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Statws" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "dim" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "cliriwyd" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "cysonwyd" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Tag" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Taliad" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Swm" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Testun" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Anhysbys" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(dim taledig)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(dim grŵp)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(dim tag)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Dangos fersiwn y rhaglen" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FFEIL]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Gwall porwr." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Nid oedd modd dangos yr URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(dim sefydliad)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Eich cyfrifon" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copïo i'r clipfwrdd" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Grwpio yn ôl" #: ../src/hub-account.c:595 msgid "type" msgstr "math" #: ../src/hub-account.c:596 msgid "group" msgstr "grŵp" #: ../src/hub-account.c:597 msgid "institution" msgstr "sefydliad" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Dangos y cyfan" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Ehangu'r cyfan" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Cau'r cyfan" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "sum: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Dim trafodion i'w hychwanegu" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "ychwanegwyd y trafodyn: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Gwirio canlyniad trafodion amserlenwyd wedi eu trefnu" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Cofnodi pan fydd y rhaglen yn dechrau" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Ymlaen" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Wedi'i ddiffodd" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "dyddiad mwyaf y cofnod" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Cyfanswm" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Hepgor" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Golygu a C_hofnodi" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Cofnod" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Prif %d Gwario / Categori" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "%d Prif Gategori / Gwario" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Prif %d Gwario / Talai" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "%d Prif Wariant / Talai" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Prif %d Gwario / Cyfrif" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "%d Prif Wariant / Cyfrif" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Balans Cyfrif" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Balans Grŵp Cyfrif" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Arall" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Siart cyfanswm" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Llenwi erbyn" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Swm crai" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Grŵp cyfrif" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Gwario" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Gwario" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Refeniw" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Incwm" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Gwariant a Refeniw" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Treuliau ac Incwm" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Balans Eang" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Siart amser" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Eang" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "cyfrif wedi ei mewnforio" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Prif gyfanswm" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "cysonwyd ddiwethaf" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "tan y gorddrafft" #: ../src/list-account.c:753 msgid "before maximum" msgstr "cyn yr uchafswm" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Cyfrifon" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Cysonwyd" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Cliriwyd" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Heddiw" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- hollti -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- mae angen categori ar hwn -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Dyddiad" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Rhif" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Tagiau" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Taliad./Rhif" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Baner" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Cydweddu" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Canlyniad" #: ../src/list-report.c:957 msgid "Average" msgstr "Cyfartaledd" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Hwyr" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Sefydlog" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Dyddiad nesaf" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Balans yn ôl %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d o dan %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Rhestr" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Gweld canlyniadau fel rhestr" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Llinell" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Gweld canlyniadau fel llinellau" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Manylyn" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Toglo manylyn" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Adnewyddu" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Argraffu" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Adroddiad mantoli" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Dangos" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "C_yfnod:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Dangos llinell wag" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "Chwyddo _X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Hidl" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Gweithredol:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Cyfnod:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_O:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Hyd:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Dewis:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Y Cyfan" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Gwrthdroi" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Cynnwys _trosglwyddiad" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Gwariwyd" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Cyflawnwyd" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mis" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Cyllidebu yn ôl categori" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Cyllidebu yn ôl mis" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " mwy na" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " chwith" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " o dan" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "heb ei gyllido" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stac" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Gweld y canlyniadau fel bariau stac" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Canlyniad i'r clipfwrdd" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Canlyniad i CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Manylyn i'r clipfwrdd" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Manylyn i CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Nid oes cyfrif wedi ei ddiffinio i fod yn rhan o'r gyllideb." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Rhaid cynnwys rhai cyfrifon o'r ddeialog cyfrifon." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Adroddiad cyllideb" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modd:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Math:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Dim ond tu hwnt i'r gyllideb" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Canlyniad:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Cyllidebu:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Gwariwyd:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s yn ôl %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Gormod o golofnau i'w harddangos" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Dewiswch gyfnod ehangach a/neu ystod dyddiad mwy cyfyng" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Colofn" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Gweld canlyniadau fel colofn" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Toesen" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Gweld canlyniadau fel toesen" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Gweld canlyniad fel stac" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stac 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Gweld y canlyniad fel stac 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Mynegai" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Toglo'r mynegai" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Cyfradd" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Toglo'r gyfradd" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Adroddiad Ystadegau" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "­_Golwg yn ôl:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "Y modd _mantoli" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Rhagolwg" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Trefnu yn ôl _swm" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Cymharu Gwariant ac Incwm." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Cyfanswm:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Incwm:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Gwariant:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Cyfartalog: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Adroddiad Tuedd Cyfnod" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Crynhoi" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Eitem" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_Gan:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Darn amser" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Mesurydd" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Tanwydd" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Pris" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Pellter" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Allforio" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Alforio fel CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Adroddiad cost cerbyd" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categori:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Mesurydd:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Gwariant:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Cost tanwydd:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Costau eraill:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Cyfanswm:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(dim)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Gweladwy" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Enw'r cyfrif" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Gwall" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Methu ychwanegu cyfrif '%s',\n" "mae'r enw hwn eisoes yn bodoli." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Methu dileu cyfrif '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Mae'n drafodyn" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Mae'n darged trafodyn xfer" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Mae ganddo amserlen/templed" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Mae'n darged amserlen/templed xfer" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Ydych chi'n siŵr eich bod am ddileu \"%s\" yn barhaol?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Os fyddwch yn dileu cyfrif, bydd yn cael ei golli am byth." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Methu ail-enwi'r Cyfrif hwn,\n" "o '%s' i '%s',\n" "mae'r enw hwn eisoes yn bodoli." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Rheoli Cyfrifon" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Delete" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Ailenwi" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Symud i fyny" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Symud i lawr" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Cyffredinol" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grŵp:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Sefydliad:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_Rhif:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Mantolen _gychwynnol:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Arian:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "mae'r cyfrif hwn wedi cau" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Gwefan:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Nodiadau:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Ymddygiad" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Awtomeiddio" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Templed Rhagosodedig:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Eithriadau Adroddiadau" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "eithrio o grynodeb y cyfrif" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "all-lif i'r crynodeb" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "eithrio o'r _gyllideb" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "eithrio o unrhyw _adroddiad" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Amrywiol" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Rhif siec cyfredol" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Llyfr Siec _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Llyfr Siec _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Terfynau'r mantoli" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Gorddrafft:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "_Uchafswm:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Dileu templed" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Mae'r templed hwn yn cael ei ddefnyddio fel templed cyfrif ac nid oes modd " "ei ddileu." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Os byddwch yn dileu taliad wedi'i drefnu/templed bydd yn cael ei golli'n " "barhaol." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "_Dyddiad nesaf:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Pob:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Rhagor o ddewisiadau" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Penwythos:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Aros ar ôl:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "cofnodion" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Rheoli trafodion amserlenwyd/templed" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Templed" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Dyblygu" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Amserlen" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Chwilio" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Nodiadau" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Nid oes modd i'r chwilio fod yn wag" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Mae'r testun chwilio yma'n bodoli ar safle %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Diddymu" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Iawn" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Amod/Cyflwr" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Chwilio:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Yn:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Sensitif i lythrennau bach/mawr" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Swm:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_A" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Aseiniadau" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Taledig:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Trosysgrifennu" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Taliad:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Tagiau:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Methu dyblygu'r Aseiniad,\n" "mae '%s' yn bodoli eisoes." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(rheol %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Os fyddwch yn dileu aseiniad, bydd yn cael ei golli am byth." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Symud i..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Symud rheol" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Symud" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Rheoli Aseiniadau" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Bydd y cynorthwyydd hwn yn eich helpu i osod ffurfweddiad\n" "ffeil HomeBank newydd." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Bydd modd newid yr holl elfennau rydych yn eu gosod yma yn y dyfodol, os oes " "angen." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Bydd dim newidiadau'n cael eu gwneud nes i chi glicio \"Gosod\" ar ddiwedd y " "cynorthwyydd." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "Bydd HomeBank yn dangos teitl y brif ffenestr,\n" "gall fod yn label rhydd neu'ch enw chi." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Teitl:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "Mae HomeBank yn cefnogi sawl math o arian cyfred. Yr arian sail\n" "yw'r rhagosodiad ar gyfer cyfrifon ac adroddiadau newydd." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Sail:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Yn gosod mathau arian ychwanegol" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Ychwanegu" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Heb ei ganfod" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "Gall HomeBank rag-lenwi'r categorïau ar gyfer eich iaith\n" "os oes ffeil CSV ar gael ac yn cael ei darparu gan y gymuned." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Categorïau gosod ar gyfer fy iaith" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Ffeil rhagosodedig:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "Mae HomeBank yn galluogi mewnforio eich cyfrifon i'w llwytho i lawr\n" "o ffeiliau sefydliad ariannol, neu gallwch greu eich cyfrif â llaw." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Creu fy nghyfrif cyntaf" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Enw:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Dyma'r tudalen gadarnhau,\n" "pwyswch 'Gosod' i osod y newidiadau" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Dechreuwch Osod y Ffeil" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Dewisiadau Ffeil" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Dewiswch y math o Arian" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Dewiswch Gategorïau" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Creu Cyfrif" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Gorffen Gosod y Ffeil" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Dilys" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Enw" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Agor" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Ffeiliau hysbys" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Ffeiliau QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Ffeiliau OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Ffeiliau CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Pob ffeil" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "cyfrif eang newydd" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "cyfrif newydd" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "wedi ei hepgor" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d o %d trafodyn" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d trafodyn, %d yn debyg, %d yn bodoli, %d wedi'u dewis" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d trafodyn, %d wedi'u dewis" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Nid oes modd newid rhaid dyddiadau. Ceisiwch newid trefn dyddiadau er mwyn " "parhau." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Mewnforio %s _i:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "y ffeil hon" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "y cyfrif hwn" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Enw: %s\n" "Rhif: %s\n" "Feil: %s\n" "Amgodio: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Mewnforio trafodion o gerdyn banc neu gredyd" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Gyda'r cynorthwyydd hwn byddwch yn cael eich arwain trwy'r broses o " "fewnforio un\n" "neu nifer o ddatganiadau wedi'u llwytho i lawr gan eich cerdyn banc neu " "gredyd, yn y fformatau canlynol:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Argymell: .OFX neu .QFX\n" "(Weithiau'n cael ei alw'n Money™ neu Quicken™)\n" "Cefnogi: .QIF\n" "(Ffeil cyffredin Quicken™)\n" "Defnyddwyr uwch yn unig: .CSV\n" "(fformat penodol i HomeBank, gw. y ddogfennaeth)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Bydd dim newidiadau'n cael eu gwneud nes i chi glicio \"Gosod\" ar ddiwedd y " "cynorthwyydd." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Peidio dangos eto" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Llusgwch a gollwng un neu sawl ffeil i'w mewnforio.\n" "Gallwch hefyd ddefnyddio botymau ychwanegu/dileu y rhestr." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Mae gormod o gyfrifon yn y ffeiliau rydych chi'n eu dewis,\n" "defnyddiwch y botwm Nôl i ddewis llai o ffeiliau." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Wedi methu adnabod cyfrif targed yn ôl enw neu rif." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Trefn dyddiadau:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "Mewnforio _memos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Cyfnewid memos gyda'r taledigion" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "_Enw OFX:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "_Memo OFX:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Maint llythrennau brawddeg memo/taledig" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Toglo'r _swm" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Trafodion tebyg yn y cyfrif targed (dyblyg posibl)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "diwrnod" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Mae'r cydweddu'n cael ei wneud yn ôl y drefn: cyfrif, swm a dyddiad.\n" "Mae goddefiad 0 diwrnod yn golygu cyfatebiaeth llawn" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Rhedeg yr awtomeiddio" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Cyfoethogi gyda _thaledigion rhagosodedig" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Rhedeg rheolau _aseinio awtomatig" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Cliciwch \"Gosod\" i ddiweddaru eich cyfrifon." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Croeso" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Dewis ffeil(iau)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Mewnforio" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Cadarnhad" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Gwall fformat ffeil" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Rhaid i'r ffeil CSV gynnwys yr union nifer o golofnau, wedi'u gwahanu gyda " "hanner colon, ewch i'r Cymorth am fwy o fanylion." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Ydych chi'n siŵr eich bod am glirio'r mewnbwn?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Os fyddwch yn bwrw ymlaen, bydd pob swm yn cael eu gosod i 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Clirio" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Cyllidebu ar gyfer %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Rheoli Cyllideb" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Mewnforio CVS..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "_Allforio CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Mantolen:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "yr un peth bob mis" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Clirio'r mewnbwn" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "yn wahanol pob mis" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Dewisiadau" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Gorfodi monitro'r categori hwn" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Ion" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Chw" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Maw" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Ebr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Meh" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Gor" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aws" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Medi" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Hyd" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Tac" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Rha" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Crynodeb" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Cyfansymiau" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Cyfanswm\n" "Blynyddol" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Cyfartaledd\n" "Misol" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Misol" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Ychwanegu categori" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Gosod" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Categori rhiant" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Enw categori" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Mae'r categori hwn yn cael ei ddefnyddio.\n" "Bydd unrhyw drafodyn sy'n defnyddio'r categori hwnnw yn cael ei osod i (dim " "categori)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Cyfuno categorïau" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Bydd trafodion sy'n cael eu rhoi i gategori '%s', yn cael eu symud i'r " "categori isod." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Categori targed" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Dileu'r categori '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Ydych chi'n siŵr eich bod chi am glirio mewnbynnau ar gyfer '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Ychwanegu categori" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Tynnu categori" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Cyfuno" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Clirio mewnbwn" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Dileu categorïau heb eu defnyddio" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Ydych chi'n siŵr eich bod am ddileu'n barhaol\n" "pob categori heb eu defnyddio?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Enw categori dyblyg. Rhowch enw arall." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Golygu Categori" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Newid y math" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Incwm" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Lledaenu i'r _plant" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Methu ail-enwi'r Categori hwn,\n" "o '%s' i '%s',\n" "mae'r enw hwn eisoes yn bodoli." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Cyfuno categori '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Bydd y trafodion sydd yn y categori hwn yn\n" "cael eu symud i'r categori sydd wedi ei ddewis isod." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Cynnwys _is-gategorïau" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Rheoli Categorïau" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Dangos Cudd" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Dangos Defnydd" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Dileu heb ei ddefnyddio..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Symud/Cyfuno" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Dangos/Cuddio" #: ../src/ui-category.c:2552 msgid "new category" msgstr "categori newydd" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "is gategori newydd" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Arian sail" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Cyfradd cyfnewid" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Newidiwyd diwethaf" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Golygu'r arian cyfred" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Arian Cyfred" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Fformat" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Cyfaddasu" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Yn _rhagddodiad" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Nod degol:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Digidau _frac:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Grwpio nodau:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Dewiswch arian cyfred sail" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Dewis y math o arian cyfred" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Cod ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Ychwanegu _arian cyfred cyfaddas" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Gwall diweddaru ar-lein" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Os fyddwch yn dileu arian cyfred, bydd yn cael ei golli am byth." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Newid yr arian cyfred sylfaen" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Os byddwch yn bwrw ymlaen, bydd cyfraddau arian eraill\n" "yn cael eu gosod i 0, peidiwch ag anghofio ei ddiweddaru" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Arian Cyfred" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Diweddaru ar-lein" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Cofnod galwadau" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Gosod fel sylfaen" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Ystadegau'r ffeil" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Trafodyn" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Uwchraddio" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Dewiswch arian cyfred sylfaen" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Yn cychwyn gyda v5.1, gall HomeBank reoli sawl math o arian cyfred\n" "os na fydd yr arian cyfred isod yn gywir, dylech ei newid:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Arian Cyfred:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Allforio fel QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Mewnforio o CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Agor ffeil HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Agor ffeil wrth gefn HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Cadw ffeil HomeBank fel" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Ffeiliau HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Copi wrth gefn" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Pob copi wrth gefn" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Cadw newidiadau i'r ffeil cyn cau?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Os na wnewch chi gadw'r ffeil, bydd newidiadau'n cael eu colli am byth.\n" "Nifer o newidiadau: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Cau _heb gadw" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Allforio fel _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Ffolder:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Dewiswch Ffolder" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Enw'r ffeil:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Ychwanegu colofn statws" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Manylu'r llinellau hollt" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Ni fydd y ffeil yn fformat CSV HomeBank, gan eich bod wedi allforio\n" "o 'Bob trafodyn', neu rydych wedi dewis dewisiad." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Allforio fel PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Allforio fel _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Gyda HomeBank, mae argraffu wedi'i gyfeirio tuag at agwedd eco-gyfrifol tuag " "at y fformat digidol mwyaf eang: fformat PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Dewis y weithred i greu targed" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Creu _Newydd" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Defnyddio'r _Dewis" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Trosglwyddo'r ffynhonnell" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Awgrymu cysylltiad targed" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "Mae HomeBank wedi canfod trafodyn all fod y trafodyn cysylltiedig ar gyfer y " "trosglwyddiad mewnol." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Dim trafodion yn cyfateb." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Mewnbwn o -30 hyd -15 i hidlo ar dreuliau" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memo:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Rhif:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Trosglwyddo Gwariant" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Trosglwyddo Incwm" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Ailosod" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Cadw a Defnyddio" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Defnyddio" #: ../src/ui-filter.c:1370 msgid "default" msgstr "rhagosodiad" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Swm/Testun" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Dangos bob tro" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Gwag" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Ychwanegwyd" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Golygwyd" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(rhagosodiad)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Ailenwi'r hidl" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Hidl newydd %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Enw hidl" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "Cadw _fel..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Ailenwi..." #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Dyddiad Disgwyliedig" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Taliad Nesaf" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Ymlaen llaw" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Priodweddau ffeil" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Trafodion wedi eu trefnu" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "o bob un" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mis" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Ennill fesul awr:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Dileu taledig heb ei ddefnyddio" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Ydych chi'n siŵr eich bod am\n" "ddileu taledig heb ei ddefnyddio yn barhaol?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Enw talai dyblyg. Rhowch enw arall." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Golygu Taledig" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Llanw Rhagosodedig" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "­_Taliad:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Methu ailenwi'r Taledig hwn,\n" "o '%s' i '%s',\n" "mae'r enw hwn eisoes yn bodoli." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Cyfuno taledig '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Bydd y trafodion fydd yn cael eu rhoi i'r talai hwn\n" "yn cael eu symud i'r talai a ddewiswyd isod." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Dileu taledig '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Mae'r taledig hwn yn cael ei ddefnyddio.\n" "Bydd unrhyw drafodyn sy'n defnyddio'r taledig hwnnw yn cael ei osod (dim " "taledig)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Rheoli Taledigion" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "taledig newydd" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Rhyngwyneb" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Locale" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Trafodion" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Trosglwyddiad" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Mewnforio/Allforio" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Adroddiadau" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Rhagolwg" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Copïo wrth gefn" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Ffolderi" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Uwch" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Iaith y System" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Dewiswch ffolder ffeiliau HomeBank ragosodedig" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Dewiswch ffolder ffeiliau HomeBank ragosodedig" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Dewiswch ffolder mewnforio ragosodedig" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Dewiswch ffolder allforio rhagosodedig" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "Dangos a dewis taliadau" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Defnyddio llusgo a gollwng i aildrefnu" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "API arian cyfred" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Allwedd:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Dewisiadau cyffredinol" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Dewisiadau OFX / QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Dewisiadau QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Dewisiadau CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(mewnforio trafodion yn unig)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Ymwahanydd:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Adroddiadau'r brif ffenestr" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "_Uchafswm eitemau:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Hidl cychwynnol" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Dewisiadau ystadegau" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Yn ôl _swm" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Dangos colofn _graddfa" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Dangos _manylion" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Dewisiadau cyllidebu" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Galluogi _rhagolwg" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Rhif mis:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Galluogi" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Rhagosodedig:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Ffurfweddiad" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Rhyngwyneb" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Iaith:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Fformat:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a enw cryno diwrnod yr wythnos y locale.\n" "%A enw llawn diwrnod yr wythnos y locale. \n" "%b enw cryno mis y locale. \n" "%B enw llawn mis y locale. \n" "%c cyflwyniad addas dyddiad ac amser y locale. \n" "%C rhif canrif (y flwyddyn wedi ei rannu gyda 100 ac wedi ei dalfyrru i " "gyfanrif) fel rhif degol [00-99]. \n" "%d diwrnod y mis fel rhif degol [01,31]. \n" "%D yr un peth â %m/%d/%y. \n" "%e diwrnod y mis fel rhif degol [1,31]; un digid wedi ei ragflaenu â bwlch. " "\n" "%j diwrnod o'r flwyddyn fel rhif degol [001,366]. \n" "%m mis fel rhif degol [01,12]. \n" "%p cyflwyniad addas dyddiad y locale. \n" "%y blwyddyn heb ganrif fel rhif degol [00,99]. \n" "%Y blwyddyn â chanrif fel rhif degol." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Blwyddyn ariannol" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_Dechrau ar:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unedau mesur" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Defnyddio _milltiroedd ar gyfer y mesurydd" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Defnyddio _galwyni am danwydd" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Dangos atgoffa drwy'r amser" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Dangos gwag bob amser" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Cynnwys atgoffa o fewn balans ac adrodd" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Cloi'r cysoni ar gyfer unrhyw newid" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "Dangos y _dyfodol:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dyddiau i ddod" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Cuddio trafodion wedi'u cysoni" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Deialog trafodion" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "_Cadw'r dyddiad diwethaf wrth adio ac etifeddu lluosog" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Galluogi awtogwblhau _memo gyda" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "dyddiau treigl" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Dangos cadarnhau ychwanegu testun am 5 eiliad" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Dangos rhestr templedi wrth olygu" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "_Thema eicon:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gosodiadau Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Llinell grid:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Dewisiadau siartiau" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Ffont mynegai llai" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Bar Offer:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Galluogi creu copi wrth gefn yn awtomatig" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Y nifer o gopïau wrth gefn i'w cadw:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Amlder copïo wrth gefn yw unwaith y dydd" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Waledi:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "Copïau wrth _gefn:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Cyfnewid ffeiliau" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Mewnforio:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Allforio:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Dechrau'r rhaglen" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Dangos y sgrin groeso" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Llwytho'r ffeil agorwyd ddiwethaf" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Trafodion wedi eu trefnu ar ôl dyddiad talu" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Diweddaru arian ar-lein" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Ailosod yr Holl Ddewisiadau" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Ydych chi wir eisiau ailosod pob\n" "dewis i'w gwerthoedd rhagosodedig?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Dewisiadau" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Manylion" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Bydd rhaid i chi ailgychwyn HomeBank\n" "i'r newid iaith ddod i rym." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Mae'r cyfeiriadur wrth gefn wedi newid,\n" "efallai y bydd angen i chi gopïo'r ffeil '.bak' i'r lleoliad newydd hwn." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Dileu tagiau heb eu defnyddio" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Ydych chi'n siŵr eich bod eisiau\n" "dileu'r tagiau heb eu defnyddio?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Enw tag dyblyg. Rhowch enw arall." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Golygu Tag" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Methu newid enw'r Tag,\n" "o '%s' i '%s',\n" "mae'r enw hwn yn bodoli eisoes." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Cyfuno tag '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Bydd trafodion a neilltuwyd i'r tag hwn,\n" "yn cael ei symud i'r tag a ddewiswyd isod." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Dileu'r tag '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Mae'r tag yma'n ar waith.\n" "Bydd y tag yn cael ei ddileu o unrhyw drafodyn sy'n ei ddefnyddio." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Rheoli Tagiau" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "tag newydd" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Mae trafodyn %s wedi'i greu." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Ydych chi am dorri'r trosglwyddiad mewnol?\n" "\n" "Bydd parhau'n dileu'r trafodyn targed." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Toriad" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Dangos _ wedi'i drefnu" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Dangos pob _cyfrif" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Defnyddio templed" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "_Ychwanegu a Chadw" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Ychwanegu trafodion" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Ychwanegu templed" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Etifeddu trafodyn" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Templed etifeddu" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Golygu trafodyn" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Golygu templed" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Dyddiad:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- math: d, d/m, m/d dyddiad cyflawn\n" "- defnyddio allwedd saeth + ctrl neu shift\n" "- gwag am heddiw" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_At:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Rhannu trafodion" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Dim graddfa ar gael ar gyfer awto lanw" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "C_yfrif:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Llyfr _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- teipiwch ryw nod ar gyfer awtogwblhau\n" "- teipiwch destun newydd i greu cofnod" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "_Categori:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Statws:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Rhybudd: nid yw'r arwydd swm a chategori yn cydweddu" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Trafodion golygu lluosog" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Teipiwch fel\n" "trosglwyddiad" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Ydych chi eisiau dileu'r llinellau hollt" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Dileu popeth" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Rhagosod gyda -/+ i orfodi'r arwydd" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Gosod" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Diddymu" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Swm y trafodyn:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Heb ei ddynodi:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Swm y rhannu:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Mae'r nifer terfyn o raniadau wedi’u cyrraedd" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Rhybudd: nid yw swm yr holltiadau a swm y trafodion yn cydweddu" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Rhybudd: nid yw swm yr holltiadau a swm y trafodion yn cydweddu" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(dim math)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banc" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Arian Parod" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Asedau" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Cerdyn credyd" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Rhwymedigaeth" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Cyfrif sieciau" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Cynilion" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Diwrnod" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Posib" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Cyn" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Wedi" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Hepgor" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Amser" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Grŵp Cyfrifon" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Blwyddyn" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Wythnos" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Pythefnos" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Chwarter" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Hanner Blwyddyn" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Cynnwys" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Eithrio" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Ddoe" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Yfory" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Wythnos diwethaf" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Wythnos Yma" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Wythnos Nesaf" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Pythefnos Diwethaf" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Pythefnos Hwn" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Pythefnos Nesaf" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Mis Diwethaf" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Mis Hwn" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Mis Nesaf" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Chwarter Olaf" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Chwarter Hwn" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Chwarter Nesaf" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Flwyddyn Ddiwethaf" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Eleni" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Blwyddyn Nesaf" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "90 Diwrnod Diwethaf" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "60 Diwrnod Diwethaf" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "30 Diwrnod Diwethaf" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "12 Mis Diwethaf" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Tua 30 Diwrnod" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Pob Dyddiad" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Cyfaddas" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Mis hwn" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Mis nesaf" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "30 diwrnod nesaf" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "60 diwrnod nesaf" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "90 diwrnod nesaf" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Byddiad Positio Hwyaf" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Costau ac Incwm." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Unrhyw Fath" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Unrhyw Statws" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Heb eu clirio" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Heb eu cysoni" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Heb eu categoreiddio" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Rhagosodiadau'r System" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Eiconau yn unig" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Testun yn unig" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Testun o dan eiconau" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Testun wrth ochr eiconau" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Llorweddol" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Fertigol" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Y ddau" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-b" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-b" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "b-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Anwybyddu" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Atodi i Rif" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Atodi i Femo" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Atodi i'r Taledig" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tab" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Atalnod" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Hanner colon" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Bwlch" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Ionawr" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Chwefror" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Mawrth" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Ebrill" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Mehefin" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Gorffennaf" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Awst" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Medi" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Hydref" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Tachwedd" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Rhagfyr" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Med" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Chwilio..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Unrhyw faner" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Siec" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Trosglwyddiad Banc" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Cerdyn debyd" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Archeb sefydlog" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Taliad electronig" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Cyfrif cadw" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Ffi FI" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Debyd Uniongyrchol" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Ffôn Symudol" homebank-5.9.1/po/en_GB.po0000644000175000017500000035042714775770002010747 # English (United Kingdom) translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-04-06 11:35+0000\n" "Last-Translator: JK1 \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Personal finance" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Free, easy, personal accounting for everyone" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finance;accounting;budget;personal;money;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "%d requires approval" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transactions" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Locked. Click to unlock" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Unlocked. Click to lock" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Life Energy" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Earn by hour' is not set into the current Wallet." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Are you sure you want to delete the %d selected transaction?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "If you delete a transaction, it will be permanently lost." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Delete" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Are you sure you want to change the status to None?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Some transaction in your selection are already Reconciled." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Change" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Are you sure you want to change the status to Cleared?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Are you sure you want to toggle the status Reconciled?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Toggle" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Are you sure you want to create template from the %d selected transaction?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Create" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Create Template" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d created with a prefilled icon" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Are you sure you want to create assignment from the %d selected transaction?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Create Assignment" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "All transactions" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "%d category sign don't match" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "No category sign don't match were found !" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "There is %d group of similar transactions" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "No similar transaction were found !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Check internal transfer result" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "No inconsistency found !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Inconsistency were found: %d\n" "do you want to review and fix?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Every transaction amount will be divided by %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Are you sure you want to convert this account to Euro as Major currency?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Convert" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "No transaction changed" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transaction changed: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Automatic assignment result" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Add..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Inherit..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Edit..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_None" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Cleared" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Reconciled" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "None" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Red" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Orange" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Yellow" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Green" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Blue" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Purple" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Flag" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "Approve" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "Reject (Delete)..." #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Multiple Edit..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "View _Split" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copy raw amount" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Create template..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Create assignment..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Delete..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Up" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Down" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Export QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Export CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Print..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Browse Website" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Close" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "A_ccount" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copy" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Paste" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Paste (today)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Copy clipboard" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Find" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Edit" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Mark duplicate..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "Mark category sign..." #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Check internal transfer" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Auto. assignments" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Convert to Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Tools" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Move transaction up" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Move transaction down" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Add a new transaction" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Add" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Inherit from the active transaction" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Inherit" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Edit the active transaction" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Edit" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Toggle cleared for selected transaction(s)" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Toggle reconciled for selected transaction(s)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Edit multiple transaction" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Delete selected transaction(s)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Reconciled changes is" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(closed)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Show" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Refresh" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Date _gap:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Toggle show %d days ahead" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Edit filter" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Clear filter" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Refresh results" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Toggle Life Energy" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro _minor" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Reconciled:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Cleared:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Today:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Future:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Revert unsaved changes to file '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Revert" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Are you sure you want to anonymise the file?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Proceeding will anonymise any text, \n" "like 'account x', 'payee y', 'memo z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymise" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Welcome to HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Close" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Open _last opened file" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Create a _new file" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Open an existing file" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Open the _example file" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Read HomeBank _Manual" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configure _preferences" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Show this window next time" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Open the backup file?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Open backup" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Unable to open '%s', the file does not exist.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Unknown error" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O error for file '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "The file '%s' is not a valid HomeBank file." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "File error" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "The file has been modified since reading it." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "If you save it, all the external changes could be lost. Save it anyway?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "S_ave Anyway" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Clear" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_File" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_New" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Open..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Open _Recent" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Save" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Save _As..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Import..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Export as QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Revert" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restore backup" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Properties..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Quit" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferences..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_View" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Toolbar" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "T_otal Chart" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "T_ime Chart" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Bottom Lists" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro minor" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Manage" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Wallet..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Acc_ounts..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Payees..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categories..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Tags..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Scheduled/Template..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Assignments..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Currencies..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (table view)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transactions" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Add..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Show..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Show All..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Set scheduler..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Post scheduled" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Reports" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistics..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trend Time..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balance..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Vehicle cost..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Show Welcome Dialogue..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "File statistics..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymise..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Help" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Contents" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Get Help Online..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Check for updates..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Release Notes" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Report a Problem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Translate this Application..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_About" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "New" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Create a new file" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Open" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Open a file" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Open a recently used file" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Save" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Save the current file" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Account" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Manage the accounts" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Payee" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Manage the payees" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Category" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Manage the categories" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Scheduled/Template" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Manage the scheduled/template transactions" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Manage the budget" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Assignment" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Manage the automatic assignments" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Shows selected account transactions" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Add transactions" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistics" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Open the Statistics report" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trend time" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Open the Trend Time report" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Open the Balance report" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Open the Budget report" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Vehicle cost" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Open the vehicle cost report" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Help" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donate" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Donate to HomeBank project" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Scheduled" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Future" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Remind" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Today" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(no memo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copy)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(no category)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "invalid CSV format" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Invalid date range!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Type" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-exp" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-inc" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-exp" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-inc" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "none" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "cleared" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "reconciled" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Tag" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Payment" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Amount" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Text" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Unknown" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(no payee)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(no group)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(no tag)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Show the application’s version" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FILE]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Browser error." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Could not display the URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(no institution)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Your accounts" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copy to clipboard" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Group by" #: ../src/hub-account.c:595 msgid "type" msgstr "type" #: ../src/hub-account.c:596 msgid "group" msgstr "group" #: ../src/hub-account.c:597 msgid "institution" msgstr "institution" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Show all" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expand all" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Collapse all" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "sum: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "No transaction to add" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transactions added: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Check scheduled transactions result" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Post when program start" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "On" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Off" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "maximum post date" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Skip" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Edit & P_ost" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Post" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Spending / Category" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Top %d Expense / Category" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d Spending / Payee" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Top %d Expense / Payee" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Spending / Account" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Top %d Expense / Account" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Account Balance" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Account Group Balance" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Other" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Total chart" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Top by" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Raw amount" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Account group" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Spending" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Expense" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Revenue" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Income" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Spending & Revenue" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Expense & Income" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Global Balance" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Time chart" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Global" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "imported account" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Grand total" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "last reconciled" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "until overdraft" #: ../src/list-account.c:753 msgid "before maximum" msgstr "before maximum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Accounts" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Reconciled" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Cleared" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Today" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- split -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- this needs a category -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Date" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Number" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Tags" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Pay./Number" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "Imported" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "Past date" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Flag" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Match" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "St." #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Result" #: ../src/list-report.c:957 msgid "Average" msgstr "Average" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Late" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Still" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Next date" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Balance by %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d under %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "List" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "View results as list" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Line" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "View results as lines" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detail" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Toggle detail" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Refresh" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Print" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Balance report" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Display" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Show empty line" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filter" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Active:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Range:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_From:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_To:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Select:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "All" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invert" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Include _transfer" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Spent" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Fulfilled" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Month" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budget by category" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budget by month" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " over" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " left" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " under" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(unbudgeted)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stack" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "View results as stack bars" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Result to clipboard" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Result to CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detail to clipboard" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detail to CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "No account is defined to be part of the budget." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "You should include some accounts from the account dialogue." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budget report" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Mode:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Type:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Only out of budget" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "U_ntil today" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Result:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Spent:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s by %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Too many columns to display" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Please select a wider interval and / or a narrower date range" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Column" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "View results as column" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Donut" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "View results as doughnut" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "View results as stack" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stack 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "View results as stack 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legend" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Toggle legend" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Rate" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Toggle rate" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistics Report" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_View by:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Balance mode" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Forecast" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Sort by _amount" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Compare Exp. & Inc." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Income:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Expense:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Average: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trend Time Report" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Cumulate" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Item" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_By:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Time slice" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Meter" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Fuel" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Price" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Export" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Export as CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Vehicle cost report" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Category:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Meter:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumption:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Fuel cost:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Other cost:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Total cost:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(none)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Account name" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Error" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Cannot add an account '%s',\n" "this name already exists." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Cannot delete account '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "It has transaction" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "It is target of xfer transaction" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "It has scheduled/template" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "It is target of xfer scheduled/template" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Are you sure you want to permanently delete '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "If you delete an account, it will be permanently lost." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Manage Accounts" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Delete" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Rename" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Move up" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Move down" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "General" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Group:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institution:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umber:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Start _balance:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Currency:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "this account was _closed" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Website:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notes:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Behaviour" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automation" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Default _Template:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Report exclusion" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "exclude from account _summary" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "outflow into summary" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "exclude from the _budget" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "exclude from any _reports" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Misc." #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Current cheque number" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Chequebook _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Chequebook _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Balance limits" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Overdraft at:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Template delete" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "This template is used as an account template and cannot be deleted." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "If you delete a scheduled/template, it will be permanently lost." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "The post date will be shifted outside of the weekend" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Next _date:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "Recurrence pattern" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Ever_y:" #: ../src/ui-archive.c:918 msgid "The" msgstr "The" #: ../src/ui-archive.c:936 msgid "More options" msgstr "More options" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Week end:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Stop after:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "posts" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Manage scheduled/template transactions" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Template" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplicate" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Schedule" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Search" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notes" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "Pay." #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Search cannot be empty" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "This search text already exists at position %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Cancel" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condition" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Search:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_In:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Case _sensitive" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "_Regular expression" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Amou_nt:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_AND" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Assignments" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Payee:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Overwrite" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Pay_ment:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Tags:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Cannot duplicate this Assignment,\n" "'%s' already exists." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(rule %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "If you delete an assignment, it will be permanently lost." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Move to..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Move rule" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Move" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Manage Assignments" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "All the elements you setup here can be changed later if required." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Title:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Setup additional currencies" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Add" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Not found" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Setup categories for my language" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Preset file:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Create my first account" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Name:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Start File Setup" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "File Options" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Choose Currencies" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Choose Categories" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Create Account" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Finish File Setup" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Valid" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Name" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Open" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Known files" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF files" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX files" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV files" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "All files" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "new global account" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "new account" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "skipped" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d of %d transactions" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transaction(s), %d similar, %d existing, %d selected" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transaction(s), %d selected" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Some date cannot be converted. Please try to change the date order to " "continue." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Import %s in_to:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "this file" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "this account" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Import transactions from bank or credit card" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Don't show this again" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "There is too much account in the files you choose,\n" "please use the back button to select less files." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Target account identification by name or number failed." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Date order:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Import memos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Swap memos with payees" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Name:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Memo:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Sentence _case memo/payee" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Toggle amount" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Similar transaction in target account (possible duplicate)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "days" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "Option" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "Import as pending" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Run automation" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Enrich with _payee default" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Run automatic _assigment rules" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Click \"Apply\" to update your accounts." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Welcome" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Select file(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Import" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmation" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "File format error" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "The CSV file must contains the exact numbers of columns,\n" "separated by a semi-colon, please see the help for more details." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Are you sure you want to clear input?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "If you proceed, every amount will be set to 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Clear" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget for %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Manage Budget" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Import CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "E_xport CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balance:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "is the same each month" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Clear input" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "is different per month" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Options" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Force monitoring this category" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "May" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Summary" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totals" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Annual\n" "Total" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Monthly\n" "Average" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Monthly" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Add a category" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Apply" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Parent category" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Category name" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "This category is used.\n" "Any transaction using that category will be set to (no category)." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Merge categories" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transactions assigned to category '%s', will be moved to the category " "selected below." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Target category" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Delete the category '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Are you sure you want to clear inputs for '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "Clear the entire Budget" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" "Are you sure you want to permanently\n" "clear the budget?" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "_Clear All..." #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Add category" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Remove category" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Merge" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Clear input" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Delete unused categories" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Are you sure you want to permanently\n" "delete unused categories?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Duplicate category name. Try another name." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Edit Category" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Change Type" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Income" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propagate to _children" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Merge category '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transactions assigned to this category,\n" "will be moved to the category selected below." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Include _subcategories" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "_Delete the category '%s' (and any budget)" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Manage Categories" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Show Hidden" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Show Usage" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Delete unused..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Move/Merge" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Show/Hide" #: ../src/ui-category.c:2552 msgid "new category" msgstr "new category" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "new subcategory" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Base currency" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Exchange rate" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Last modified" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Edit currency" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Currency" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Customise" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Is pre_fix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Decimal char:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Frac digits:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Grouping char:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Select base currency" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Select currency" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO Code" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Add a custom _currency" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Update online error" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "If you delete a currency, it will be permanently lost." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Change the base currency" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Currencies" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Update online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Call log" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Set as base" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "File statistics" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transaction" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Upgrade" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Select a base currency" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Starting with v5.1, HomeBank can manage several currencies.\n" "If the currency below is not correct, please change it:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Currency:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Export as QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Import from CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Open HomeBank file" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Open HomeBank backup file" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Save HomeBank file as" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank files" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "File backup" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "All backups" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Save changes to the file before closing?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Close _without saving" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Export as _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Folder:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Pick a Folder" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Filename:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Add Status column" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detail split lines" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "The file will not be in HomeBank CSV format, because you exported\n" "from 'All transaction', or you selected an option." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Export as PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Export as _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Select action for target creation" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Create _New" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Use _Selection" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Source transfer" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Target association suggested" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "No transaction match." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Input From -30 To -15 to filter on expense" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memo:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Number:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Expense Transfer" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Income Transfer" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Reset" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Save & Use" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Use" #: ../src/ui-filter.c:1370 msgid "default" msgstr "default" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Amount/Text" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Always show" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Void" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Added" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Edited" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(default)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Filter rename" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "New filter %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Filter name" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Save as..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Rename..." #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Due Date" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Next Payout" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "In Advance" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "Maximum post date is %s (included)" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "File properties" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Scheduled transactions" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "of each" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "month" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Earn by hour:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Delete unused payee" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Are you sure you want to\n" "permanently delete unused payee?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Duplicate payee name. Try another name." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Edit Payee" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Default Fill" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_yment:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Merge payee '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Delete the payee '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Manage Payees" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "new payee" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "Theming" #: ../src/ui-pref.c:92 msgid "Color" msgstr "Colour" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Locale" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transactions" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "Dialogue" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transfer" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Import/Export" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Report" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Forecast" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Backup" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Folders" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Advanced" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "System Language" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Choose a default HomeBank files folder" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Choose a default HomeBank backup files folder" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Choose a default import folder" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Choose a default export folder" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "Payment shows & chooses" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Use drag & drop to reorder" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "Currency API" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Key:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "General options" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX options" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF options" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV options" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(transaction import only)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separator:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Main window reports" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max _items:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Initial filter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistics options" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Show by _amount" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Show _rate column" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Show _details" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Budget options" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "Exclude subcategories from unbudgeted line" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Enable _forecast" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Month number:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Enable" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Preset:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Configuration" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "User interface" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Language:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "Date display:" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "C_ustomise" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Fiscal year" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Starts _on:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Measurement units" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Use _miles for metres" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Use _gallon for fuel" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Always show remind" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Always show void" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Include remind into balance and report" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "Safety" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Lock reconciled for any changes" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "Approve additions before last reconciliation" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "Approve additions" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "days before today's date" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "Ledger window" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Show future:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "days ahead" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Hide reconciled" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Transaction dialogue" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "_Keep the last date when multiple add or inherit" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Enable _memo autocomplete with" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "rolling days" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Show add confirmation text for 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Show template list when edit" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "Behaviour" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "When adding, always show selection _action for target dialogue" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "Date _gap to find a target:" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "Synchronise" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "_Date" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "Theme" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "Dark mode:" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "System has no preference" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "System prefer dark" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "System prefer light" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "Use _dark mode if available" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "Icons" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "_Icon theme:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "Use _symbolic icons if available" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk settings" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "Ov_erride" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "_Font size:" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "Chart" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "_Palette:" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "Others" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "_Use colours from the chart palette" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "_Expense" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "_Warning" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "Background _future" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "Colour the _amounts" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "Colour the _background of future transactions" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Grid line:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Charts options" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Smaller legend _font" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Toolbar:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Enable automatic backups" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Number of backups to keep:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Backup frequency is once a day" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Wallets:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Backups:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Exchange files" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Import:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Export:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Program start" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Show splash screen" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Load last opened file" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Post pending scheduled transactions" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Update currencies online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Reset All Preferences" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Do you really want to reset\n" "all preferences to default\n" "values?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferences" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "You will have to restart HomeBank\n" "for the language change to take effect." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Delete unused tag" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Are you sure you want to\n" "permanently delete unused tag?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Duplicate tag name. Try another name." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Edit Tag" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Merge tag '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Delete the tag '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "This tag is used.\n" "That tag will be deleted from any transaction using it." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Manage Tags" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "new tag" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transaction of %s created." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Break" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Show _scheduled" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Show _all accounts" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Use a template" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Add & _Keep" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Add transaction" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Add template" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Inherit transaction" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Inherit template" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Edit transaction" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Edit template" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Date:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "T_o:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Transaction splits" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "No rate available to auto fill" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "A_ccount:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Book _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- type some letter for autocompletion\n" "- type new text to create entry" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_gory:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Warning: amount and category sign don't match" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Edit multiple transactions" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Type as\n" "transfer" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Do you want to delete all split lines" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Delete all" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Prefix with -/+ to force the sign" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Apply" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Cancel" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Transaction amount:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Unassigned:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Sum of splits:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Number of splits limit is reached" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Warning: sum of splits and transaction type don't match" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Warning: sum of splits and transaction amount don't match" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(no type)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Cash" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Asset" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Credit card" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Liability" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Current" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Savings" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "Daily" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "Weekly" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "Yearly" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "day(s)" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "week(s)" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "month(s)" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "year(s)" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "First" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "Second" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "Third" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "Fourth" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "Last" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Day" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "Monday" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "Tuesday" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "Wednesday" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "Thursday" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "Friday" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "Saturday" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "Sunday" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Before" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "After" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Skip" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Time" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Account Group" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Year" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Week" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Fortnight" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Quarter" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Half Year" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Include" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Exclude" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Yesterday" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Tomorrow" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Last Week" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "This Week" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Next Week" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Last Fortnight" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "This Fortnight" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Next Fortnight" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Last Month" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "This Month" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Next Month" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Last Quarter" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "This Quarter" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Next Quarter" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Last Year" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "This Year" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Next Year" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "Year to date" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "Month to date" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "All to date" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Last 90 Days" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Last 60 Days" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Last 30 Days" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Last 12 Months" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 Days Around" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "All Date" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Custom" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "This month" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Next month" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Next 30 days" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Next 60 days" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Next 90 days" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Maximum Post Date" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Exp. & Inc." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Any Type" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Any Status" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Uncleared" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Unreconciled" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Uncategorised" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "Unapproved" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "System defaults" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Icons only" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Text only" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text under icons" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text beside icons" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Both" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-y" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-y" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "y-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignore" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Append to Number" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Append to Memo" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Append to Payee" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tab" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Comma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Semicolon" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Space" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "January" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "February" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "March" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "June" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "July" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "August" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "October" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "December" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Search..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Any flag" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Bank Transfer" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debit card" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Standing order" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Electronic payment" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI fee" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Direct Debit" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Mobile Phone" homebank-5.9.1/po/is.po0000644000175000017500000030612014775770034010404 # Icelandic translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2012-02-14 11:43+0000\n" "Last-Translator: Rúnar Freyr Þorsteinsson \n" "Language-Team: Icelandic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "Heimabanki" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Engum færslum breytt" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Bæta við..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Erfa..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Breyta..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Engin" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Útflytja CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Breyta" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Tól" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Bæta við nýrri færslu" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Bæta við" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Erfa frá virkri færslu" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Erfa" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Breyta virkri færslu" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Breyta" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Endurhlaða niðurstöðum" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Í dag:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Framtíðinni:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Velkomin(n) í HeimaBankann" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Loka" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Opna _sýnishorna skrá" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Get ekki opnað '%s', skráin er ekki til\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Skráarvilla" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Skrá" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nýtt" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Opna..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "Vi_sta" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Afturkalla" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Hætta" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Stillingar" #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Skoða" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Tækjastika" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Sýsla" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Rei_kningar" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "Greiðendur..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Flokkar..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Gildingar..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Eyðsluáætlun..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Færslur" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Bæta við..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Sýna..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Skýrslur" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Tölulegar upplýsingar..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Hneigðar Tími..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "E_yðsluáætlun..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "sýna velkomin svarglugga..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Hjálp" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Innihald" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Tilkynna vandamál..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Þýða þennan hugbúnað..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Um" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Opna skrá" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Opna fyrrum opnaða skrá" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Reikningur" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Greiðandi" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Flokkur" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Eyðsluáætlun" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Sýnir valdar reikningsfærslur" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Opna skýrslu yfir tölulegar upplýsingar" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Opna skýrslu yfir Hneigðar tíma" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Staða" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Opna skýrslu um eyðsluáætlun" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Framtíð" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Merki" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Upphæð" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[SKRÁ]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Gat ekki birt vefslóðina '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Samtals" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Útgjöld" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Innkoma" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Í dag" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Dagsetning" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Merki" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Niðurstaða" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d undir %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Listi" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Skoða niðurstöður sem lista" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Lína" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Skoða niðurstöður sem línur" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Upplýsingar" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Víxla upplýsingum" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Endurhlaða" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Þysja X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Drægni:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Frá:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Til:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Allt" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Umhverfa" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Eyðsla" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mánuður" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Skýrsla yfir kostnaðaráætlun" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Gerð:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Eyðsluáætlun:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Eyðsla:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Víxla skýringum" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Víxla hlutfalli" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "tölfræðileg skýrsla" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Skoðað af:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Innkoma" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Útgjöld" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Tímaskýrsla yfir hneigð" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Safna saman" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Tíma sneið" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Mælir" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Bensín" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Verð" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Vegalengd" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Útflytja sem CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Skýrsla yfir kostnað ökutækis" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Flokkur" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Mælir:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Eyðsla:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Bensínkostnaður" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Annar kostnaður:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Heildarkostnaður:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ekkert)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Sýnilegt" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Villa" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Get ekki endurskýrt þennan reikning,\n" "úr '%s' í '%s',\n" "nafnið er þegar til." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Stjórna reikningum" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Almennt" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_úmer:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Hver_t" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Stafréttur" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Greiðandi" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Grei_ðsla" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Stjórna Úthlutun" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Fannst ekki" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Forstilla skrá" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nafn:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF skrár" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX skrár" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV skrár" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Allar skrár" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dagar" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Pörunin er gerð í röð: eftir reikning, upphæð og dagsetningu.\n" "Þolvik dagsetninga upp á 0 daga þýðir nákvæm pörun" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Staðfesting" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Forsniðsvilla" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Stjórna Eyðsluáætlun" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Staða:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maí" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jún" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Júl" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ágú" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nóv" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Des" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Innkoma" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Ekki hægt að breyta þessum flokk,\n" "úr '%s' í '%s',\n" "Nafnið er þegar til." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Stjórna Flokkum" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Aukastafir:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Flytja út sem QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Flytja inn frá CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HeimaBanka skrár" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Ekki hægt að endurnefna þennan greiðanda,\n" "úr '%s' í '%s',\n" "þetta nafn er þegar til." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Stjórna Greiðendum" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Viðmót" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Færsla" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Flokka eftir_upphæð" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Sýna _tíðni dálk" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Sýna_upplýsingar" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Virkja" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Forstilla:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Tækjastika:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Flytja inn:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Flytja út:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Opna síðustu skrá sem var opnuð" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Eiginleikar" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Upplýsingar" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Bæta við færslu" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Erfa færslu" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Dagur:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "R_eikningur:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banki" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Reiðufé" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Eign" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditkort" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Skuld" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dagur" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Ár" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Vika" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Fjórðungur" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Meðtaka" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Útiloka" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Sjálfgefnar kerfisstillingar" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Bara tákn" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Bara texti" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Texti undir táknum" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Texti við hliðina á táknum" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Hunsa" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Janúar" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Febrúar" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Mars" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Apríl" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Júní" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Júlí" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Ágúst" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Október" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Nóvember" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Desember" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Tékki" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debit kort" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Fastapöntun" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Rafræn greiðsla" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Innlegg" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/POTFILES.skip0000644000175000017500000000014512574600306011531 # List of source files containing translatable strings. # Main application data/homebank.desktop.in homebank-5.9.1/po/nds.po0000644000175000017500000031024314775770046010561 # German, Low translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2020-10-10 14:19+0000\n" "Last-Translator: Achim \n" "Language-Team: German, Low \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Persönliche Finanzen" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" "Frei, sehr einfach zu bedienen, persönliche Buchhaltung für jedermann" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "Finanzen;Buchhaltung;Haushalt;Personal;Geld;" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Konzipiert für einfache Bedienung. Analyse der persönlichen Finanzen mit " "Hilfe leistungsfähiger Filterwerkzeuge und schöner Grafiken." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Löschen" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Erstellen" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Alle Transaktionen" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Keine identische / ähnliche Transaktion gefunden !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_konvertieren" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Keine Transaktion verändert" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Hinzufügen …" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Hinzufügen" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Bearbeiten..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Kein" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Löschen..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Hoch" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_nach unten" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "CSV exportieren..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "Benutzerkonto" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Einfügen" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Einfügen (heute)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Bearbeiten" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Duplikate markieren..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Umrechnen in Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Werkzeuge" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Transaktion nach unten verschieben" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Neue Transaktion hinzufügen" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Hinzufügen" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Von der aktiven Transaktion übernehmen" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Übernehmen" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Aktive Transaktion bearbeiten" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Bearbeiten" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(geschlossen)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Auffrischen" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Ergebnisse aktualisieren" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Heute:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Zukünftig:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Rückgängig machen" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Sind SIe sicher, dass Sie die Daten anonymisieren wollen ?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymisieren" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Willkommen bei HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Schließen" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Öffne _zuletzt geöffnete Datei" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Erstelle eine _neue Datei" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Öffne eine existierende Datei" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Öffen die _Beispiel Datei" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Lese die HomeBank _Bedienungsanleitung" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Konfiguriere _Voreinstellungen" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Dieses Fenster beim nächsten mal anzeigen" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Öffnen des BackUps ?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Backup öffnen" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "" "Die Datei '%s' konnte nicht geöffnet werden, weil sie nicht existiert.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Unbekannter Fehler" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Dateifehler" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Wenn Sie speichern könnten alle externen Änderungen verloren gehen. Trotzdem " "speichern ?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Leeren" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Datei" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Neu" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Öffnen..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Speichern" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Umkehren" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "BackUp wiederherstellen" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Eigenschaften" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Beenden" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Einstellungen..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Ansicht" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Werkzeugleiste" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Verwalten" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Konten..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Empfänger..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kate_gorien..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Schlagworte …" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Zuordnungen..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaktionen" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Hinzufügen..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Anzeigen..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "Be_richte" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "Stat_istiken..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Hilfe" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "Inha_lt..." #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Probleme berichten..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Diese Anwendung übersetzen..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Über" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Eine Datei öffnen" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Eine vor kurzem genutzte Datei öffnen" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Konto" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Empfänger" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategorie" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Zeigt die Transaktionen des ausgewählten Kontos an" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Statistische Auswertung öffnen" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Ausgleich" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Budget-Auswertung öffnen" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Zukünftig" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Kennzeichen" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Betrag" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[DATEI]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Die URL '%s' konnte nicht angezeigt werden" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Gesamt" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Ausgaben" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Erträge" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Freigegeben" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Heute" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Tags" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Ergebnis" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d unter %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Liste" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Ergebnisse als Liste anzeigen" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linie" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Ergebnisse als Linien anzeigen" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detail" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Details anzeigen" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Aktualisieren" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Bereich" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Von:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "A_n:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Alles" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Negativ" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Ausgaben" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Monat" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budget-Auswertung" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Typ" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Ausgegeben:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Legende anzeigen" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Wachstum anzeigen" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistische Auswertung" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Opwiesen nah:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Einnahmen:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Ausgaben:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Meter" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Treibstoff" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Preis" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Distanz" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Als CSV exportieren" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategorie:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Meter:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Verbrauch:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Treibstoffkosten:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Andere Kosten:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Gesamtkosten:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(keine)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Sichtbar" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Fehler" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kann dieses Konto nicht \n" "von '%s' nach '%s' umbenennen,\n" "da dieser Name bereits existiert." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Konten verwalten" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Algemein" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_ummer:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Jeden:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Groß-/Kleinschreibung berücksichtigen" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Empfänger:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Be_zahlung:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Zuordnungen verwalten" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nich funnen" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Name:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF-Dateien" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX Dateien" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV-Dateien" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Alle Dateien" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "Tag(e)" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Die Zusammenfügung geschieht in folgender Reihenfolge: Konto, Summe und " "Datum.\n" "Eine Datumstoleranz von 0 Tagen bedeutet eine exakte Übereinstimmung." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Bestätigung" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Fehler des Dateiformates" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Budget verwalten" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mär" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dez" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "E_inkommen" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Die Kategorie konnte nicht\n" "von '%s' nach '%s' umbenannt werden.\n" "Der Name existiert bereits." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Kategorien verwalten" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Nachkommastellen:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Nach QIF exportieren" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Aus CSV importieren" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank-Dateien" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Zurücksetzen" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Der Empfänger konnte nicht\n" "von '%s' nach '%s' umbenannt werden.\n" "Der Name existiert bereits." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Empfängerverwaltung" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Schnittstelle" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Übertragen" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Nach _Betrag anzeigen" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "_Raten-Spalte anzeigen" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "_Details anzeigen" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Aktiveren" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "V_orlage:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Symbolleiste:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importieren:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "Exportieren:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Zuletzt benutzte Datei öffnen" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Einstellungen" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Transaktion hinzufügen" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Transaktion übernehmen" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "A_ccount:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Institut" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Bargeld" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Aktiva" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditkarte" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Passiva" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Tag" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Jahr" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Woche" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Veertel" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Einbeziehen" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Ausschließen" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Ausgaben & Einnahmen" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "System-Standard" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Nur Symbole" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Nur Text" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text unter Symbolen" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text neben Symbolen" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Nich dröver nahdenken" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Januar" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februar" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "März" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juni" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juli" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "August" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Dezember" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Überprüfen" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Einzugsermächtigungs-Karte" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Dauerauftrag" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronische Bezahlung" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Anzahlung" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI Abgabe" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ro.po0000644000175000017500000035534514775770043010426 # Romanian translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-05-12 15:16+0000\n" "Last-Translator: Teodor Neagu \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Bară de Unelte" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Raportează o Problemă..." #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Nici o tranzacție de adăugat" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "tranzacție adaugată: %d" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finanțe personale" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Gratuit, ușor de folosit, contabilitate personală pentru fiecare" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finante;contabilitate;buget;personal;bani;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank este program liber (ca în \"vorbire liberă\" și gratuit ca în " "\"bere gratuită\") ce vă va asista în administrarea propriei contabilități." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Este conceput pentru a fi usor de utilizat si a fi capabil sa analizeze in " "detaliu finantele dumneavoastra , utilizand instrumente solide de filtrare " "si grafice artistice placute." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Dacă cautați un mod de administrare al finanțelor dumneavoastră, gratuit și " "ușor de folosit, atunci HomeBank este software-ul (programul) de care aveti " "nevoie." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d tranzacții" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d tranzacții, %d selectate, medie: %s, sumă: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Blocat. Faceți click pentru a debloca" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Deblocat. Faceți click pentru a bloca" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Castigul orar' nu este setat în portofelul actual" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Ești sigur că dorești să ștergi tranzacția selectată %d?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Dacă ștergi o tranzacție, va fi ștearsă definitiv." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Șterge" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Sunteti sigur că doriți să schimbați statusul în Anonim?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" "Unele tranzacțiile selectate de dumneavoastră sunt deja Reconciliate." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Schimbă" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Sunteti sigur că doriți să comutați la statusul Reconciliat?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Comută" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Ești sigur că dorești să creezi un șablon de la tranzacția selectată %d?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Creează" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Creați șablon" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d creat cu o pictogramă predefinită" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Creează sarcină" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Toate tranzacțiile" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Exista %d tranzacții similare" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Nu au fost găsite tranzactii similare" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Verifică rezultatele transferurilor interne" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Nici o neconcordanță găsită !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Au fost găsite inconsecvențe: %d\n" "Doriți să le revizuiți și să le corectați?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Fiecare sumă a unei tranzacții va fi împarțită la %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Ești sigur ca dorești să schimbi moneda principală a acestui cont în Euro?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Convertește" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Nicio tranzacție modificată" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "tranzacție modificată: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Rezultatul atribuirii automate" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Adaugă..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Păstrează..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Editează..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Nimic" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Suprimat" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Reconciliat" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Stare" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Niciunul" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Roșu" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Portocaliu" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Galben" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Verde" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Albastru" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Violet" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Editare Multiplă..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "View _împarte" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copiază valoarea brută" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Crează șablon..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Crează atribuire..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Șterge..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Sus" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Jos" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exportă QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportă CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Tipăreşte..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Navigați la site-ul web" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Închide" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Cont" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copiază" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Lipește" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Lipește (astăzi)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Caută" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Editează" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marchează dublurile..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Verifică transferurile interne" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Auto. atribuiri" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Convertește în Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Instrumente" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Mută tranzacția în sus" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Mută tranzacția în jos" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Adaugă o tranzacție nouă" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Adaugă" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Păstrează din tranzația activă" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Păstrat" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Editează tranzacția activă" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Editează" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Comutați către suprimat pentru tranzacția(iile) selectată(e)" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Comutați reconciliat pentru tranzacția(iile) selectată(e)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Editează tranzacții multiple" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Șterge tranzacția(iile) selectată(e)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Schimbările reconicilate sunt" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(închis)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Arată" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Reîmprospătează" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "_Interval Dată:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Comută vizualizarea de %d zile în avans" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Modificare filtru" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Șterge filtrul" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Reîmprospătează rezultatele" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro _minor" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Reconciliat:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Șters:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Astăzi:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Viitor:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Restabileste schimbarile nesalvate in fisierul '%s' ?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Modificările efectuate în fișier for fi pierdute pentru totdeauna\n" "- Fișierul va fi reîncărcat de la ultima salvare (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Restaurează" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Sunteti sigur că doriți șp anonimizați fișierul?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Continuând veți anonimiza orice\n" "ca de exemplu 'contul x', 'plătitor y', 'memo z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimizează" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Bine ați venit în Home Bank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Închide" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Deschide _ultimul fișier deschis" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Crează un fișier _nou" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Deschide un fisier existent" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Deschide fișierul exemplu" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Citeste _Manualul HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configurează _Preferințele" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Arată această fereastră data viitoare" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Sunteți pe cale să deschideți fișierul de backup '%s'.\n" "Sigur doriți asta?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Deschideți copia de siguranță?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Deschide copia de siguranță" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Nu s-a putut deschide '%s'. Fişierul nu există.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Eroare necunoscută" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Eroare de tip I/O pentru fisierul '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Fișierul '%s' nu este un fișier HomeBank valid." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Fișierul '%s' a fost salvat folosindu-se o versiune mai recentă a HomeBank\n" "si nu poate fi incărcat în versiunea actuală." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Eroare de fișier" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Fișierul a fost modificat in timp ce se citea" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Dacă îl salvați, toate modificările exterioare ar putea fi pierdute. Doriți " "să îl salvați oricum?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "S_alvează oricum" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Șterge" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fişier" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nou" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Deschide..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Deschide recente" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Salvează" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Salveaza_Ca..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Import..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exporta QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Revenire" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaurați din copia de siguranță" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Proprietăți..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Închide" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferinţe..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Vizualizare" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Grafic T_otal" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Grafic T_imp" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Liste de jos" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro minor" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gestionează" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Portofel..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Conturi..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Beneficiari..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorii..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etichete..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Planificări/Șabloane..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Atribuiri..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valuta..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Buget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Buget (vedere tabelară) ..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Tranzacţii" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Adăugare..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Afişează..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Setează planificator..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Post planificat" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Rapoarte" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistici..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "Tendințe..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Sold..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_uget..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Costul vehiculului" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Arată mesajul de bun venit..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Fișier cu statistici..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimizare..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Ajutor" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Conţinut" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obțineți ajutor online" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Verifică dacă există actualizări..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Informații versiune" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduceți această aplicaţie..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Despre" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nou" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Crează un fișier nou" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Deschide" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Deschide un fișier" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Deschide un fișier utilizat recent" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Salvează" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Salvează fișierul curent" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Cont" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gestionați conturile" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Beneficiar" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gestionați plățile" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categorie" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gestionați categoriile" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Programate / șablon" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gestionați tranzacțiile programate / șablon" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Buget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gestionați bugetul" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Atribuire" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Gestionați elementele automate (recurente)" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Afişează tranzacţiile selectate de cont" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Adauga tranzacții" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistici" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Deschide raportul de statistici" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trenduri" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Deschide raportul Trend Time" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Sold" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Deschide raportul soldurilor" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Deschide raportul de buget" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Costul vehiculului" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "_Deschide raportul Costului Vehicului" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Ajutor" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donează" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Doneaza pentru proiectul HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Programat" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "La termen" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Reamintire" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Astăzi" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(fără notiță)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copie)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(nicio categorie)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "format CSV invalid" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Interval invalid al datei!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tip" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Stare" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "reconciliat" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etichetă" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Plată" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Valoarea" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Text" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Necunoscut" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "l/km" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "l/ml" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(fără beneficiar)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(niciun grup)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(fara etichetă)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Arată versiunea aplicației" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FIŞIER]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Eroare de navigare." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Nu a putut fi afişat URL-ul '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(nici o instituție)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Conturile dumneavoastră" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copiați în clipboard" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Grupează după" #: ../src/hub-account.c:595 msgid "type" msgstr "tip" #: ../src/hub-account.c:596 msgid "group" msgstr "grup" #: ../src/hub-account.c:597 msgid "institution" msgstr "instituție" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Arată toate" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Extinde toate" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Restrânge toate" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "sum: %s (%s + %s)" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Verifică rezultatul tranzacțiilor planificate" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Publică la pornirea programului" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Pornit" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Oprit" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "data limită de publicare" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Omite" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Editați & Pos_tați" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Publică" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Cheltuieli / Categorie" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d Cheltuieli / Beneficiar" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Cheltuieli / Cont" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Soldul contului" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Altele" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Diagramă total" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Top după" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Sumă brută" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Grup de conturi" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Cheltuieli" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Cheltuiala" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Venit" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Venituri" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Cheltuieli și venituri" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Cheltuieli și venituri" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Sold Global" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Diagramă orară" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Global" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "Cont importat" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total general" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "ultima acordare" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "până în descoperirea de cont" #: ../src/list-account.c:753 msgid "before maximum" msgstr "până în maxim" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Conturi" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Reconciliat" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Șters" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Astăzi" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- separă-" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- este necesară o categorie -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Dată" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Număr" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Notite" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etichete" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Potrivire" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Rezultat" #: ../src/list-report.c:957 msgid "Average" msgstr "Medie" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Amânat" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Rămas" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Urmatoarea dată" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Sold pe %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d sub %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Listă" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Afişează rezultatele sub formă de listă" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Rând" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Afişează rezultatele sub formă de rânduri" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalii" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Comutator detalii" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Reîmprospătează" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Tipărește" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Raport sold" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Ecran" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Afisează liniile goale" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtru" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Activ:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Domeniu:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_De la:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Până la:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Selectare:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Toate" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inversează" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Cheltuit" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Împlinit" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Lună" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Buget pe cateogrii" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Buget lunar" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " peste" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " stânga" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " sub" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(nebugetat)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stivă" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Afiseaza rezultatele ca bare suprapuse" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Rezultate în clipboard" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Rezultate în CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detalii în clipboard" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detalii în CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Niciun cont nu este definit ca fiind parte din buget." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Ar trebui sa incluzi cateva conturi din fereastra conturi." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Raport buget" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Mod:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Scrie" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Numai în afara bugetului" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Rezultat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Buget" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Cheltuiţi:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s de %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Prea multe coloane de afișat" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Selecteaza un interval mai larg si/sau un domeniu de date mai îngust" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Coloana" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Vizualizați rezultatele pe coloană" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Plăcintă" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Vizualizați rezultatul tip „plăcintă”" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Vedeți rezultatele ca stivă" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stivă 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Vedeți rezultatele ca stivă 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legendă" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Comutator legendă" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Rata" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Comutator rată" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Raport statistici" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Vezi ca:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Mod sold" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Prognoză" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Sortați după _sumă" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Compară Exp. & Inc." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Încasări" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Cheltuieli:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Media %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Raport Tendințe" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Cumulat" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Articol" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_după:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Segement de timp" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Metru" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Combustibil" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Preţ" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Export" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportă ca CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Raport cost vehicul" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categorie:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Contor:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consum" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Cost combustibil:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Alte costuri:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Costuri totale:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nimic)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Vizibil(ă)" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Denumirea contului" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Eroare" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Nu se poate adauga un cont '%s'\n" "acest nume există deja." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Nu se poate sterge contul '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Conține tranzacții" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Este folosit la xfer tranzacție" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Conține programare/șablon" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Este folosit la xfer programat/șablon" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Sigur vrei să ștergi definitiv '%s' ?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Daca ștergi un cont va fi pierdut definitiv" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nu se poate redenumi acest cont,\n" "din '%s' în '%s',\n" "Acest nume există deja." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Administrează conturile" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Șterge" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Redenumește" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Mută în sus" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Mută în jos" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "General" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grup:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Instituția:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umăr:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Sold inițial" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "Valuta" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "acest cont a fost _inchis" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Website:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notițe:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportament" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatizare" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Sablon _implicit" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Raportați excluderea" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "exclude din rezumatul _contului" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "Rezumat ieșiri" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "exclude din _buget" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "exclude din orice _raport" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Diverse" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Numărul de verificare actual" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Carnetul de cecuri _1" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Carnetul de cecuri _2" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limitele soldului" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "Descoperit de cont la:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Ma_xim:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Ștergere șablon" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Acest șablon este folosit ca un șablon al contului și nu poate fi șters." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Dacă ștergeți o programare /un șablon, acestea se vor pierde definitiv." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Data _urmatoare:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Fi_ecare:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Mai multe opțiuni" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Weekend" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Oprește după:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "articole" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Administrează tranzactiile programate/șablon" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Șablon" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplică" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Planifică" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Caută" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notițe" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Căutarea nu poate fi goală" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Acest text de căutare există deja la poziția %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Anulează" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Ok" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condiție" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Caută:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_În:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Maju_scule/minuscule" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Suma" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_AND" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Asignări" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Beneficiar:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Suprascrie" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "P_lată" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Etichete:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Nu se poate duplica această asociere,\n" "'%s' deja există." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regula %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Dacă ștergeți o asignare, aceasta se va pierde definitiv." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Mută in..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Mută regula" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Mută" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Administreaza Asignările" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Acest asistent vă va ajuta să realizați o configurație minimă\n" "ce se va salva într-un nou fișier HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Toate elementele pe care le configurați aici pot fi modificate ulterior, " "dacă va fi necesar." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Nu se vor salva modificările până nu faceți clic pe „Aplicați”\n" "la finele acestui proces asistat." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank va afișa un titlu pentru fereastra principală.\n" "Ar putea fi o etichetă oarecare sau numele tău." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Titlu:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank acceptă mai multe valute. Moneda de bază va fi\n" "implicită pentru conturi și rapoarte noi." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Bază:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Setează încă o monedă" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Adaugă" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nu a fost găsit" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank vă poate precompleta categoriile în limba dvs.\n" "dacă există un fișier CSV disponibil, furnizat de comunitate." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Setează categoriile în limba implicită" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Fisier presetat:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank vă permite să importați conturile dvs. din fișierele descărcate\n" "de la instituția financiară proprie sau puteți crea conturi manual." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Creează-mi primul cont" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nume" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Aceasta este o pagină de confirmare,\n" "\n" "Apăsați „Aplicați” pentru a valida modificările" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Inițiere fișier de configurare" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Opţiuni fişier" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Alegeți valutele de lucru" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Alegeți Categoriile" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Creați Contul" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Salvați fișierul de configurare" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Valid" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nume" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Deschide" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Fisiere cunoscute" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Fişiere QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Fişiere OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Fişiere CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Toate fișierele" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "cont nou global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "cont nou" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "omis" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d din %d tranzacții" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d tranzacție(i), %d similare, %d existente, %d selectate" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d tranzacție(i), %d selectate" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Unele date nu pot fi convertite. Vă rugăm să modificați forma de afișare a " "datei calendaristice pentru a continua." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "_Importa %s în:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "acest fisier" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "acest cont" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nume: %s\n" "Număr: %s\n" "Fișier: %s\n" "Codare: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importare tranzacții de la bancă sau de pe cardul de credit" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Cu acest asistent veți fi ghidați prin procesul de import a unuia sau mai " "multor\n" "extrase de cont descărcate de la banca sau de pe cardul dvs. de credit, în " "următoarele formate:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recomandat: .OFX or .QFX\n" "(Câteodată denumiți Bani™ sau Cash™)\n" "Suportat: .QIF\n" "(fișier Cash Comun™)\n" "Doar pentru utilizatorii Avansați: .CSV\n" "(format specific HomeBank, vezi documentația)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Nu se vor face modificări până când nu faceți clic pe „Aplicați” la finele " "acestui asistent." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Nu mai afișați acest mesaj din nou" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Drag&Drop unul sau mai multe fișiere de importat.\n" "De asemenea, puteți utiliza butoanele de adăugare / ștergere din listă." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Există prea multe conturi în fișierele pe care le-ați ales.\n" "Vă rugăm să utilizați butonul Înapoi pentru a selecta mai puține fișiere." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Identificarea, după nume sau număr, a contului destinație a eșuat." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Sortare dupa dată:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Import comentarii" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Schimbați notițe cu beneficiarii" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "Nume _OFX:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "Memo _OFX:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Fraza _caz memo/beneficiar" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Modificați suma" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Tranzacție similară în contul destinație (posibil duplicat)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "zile" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Potrivirea se face în ordine: după cont, sumă şi dată.\n" "O toleranţă a datei de 0 zile însemna o potrivire exactă." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Rulează automat" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Populați cu _beneficiarul implicit" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Rulați reguli automate de _asignare/atribuire" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Faceți clic pe „Aplicați” pentru a vă actualiza conturile." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Bun venit!" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Selectare fișier(e)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Import" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmare" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Eroare la formatul fişierului" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Fișierul CSV trebuie să conțină numerele exacte al coloanelor,\n" "separate printr-un punct și virgulă. Vă rugăm să consultați ajutorul pentru " "mai multe detalii." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Sigur doriți să ștergeți datele introduse?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Dacă continuați, toate sumele vor fi setate la 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "Șter_ge" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Buget pentru %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Administrează bugetul" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importați CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "Exportați CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Sold:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "este la fel în fiecare lună" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Sterge intrarea" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "este diferitl în fiecare lună" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Optiuni" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forteaza montiorizarea acestei categorii" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Ian" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Iun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Iul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Sumarizare" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totaluri" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Anual\n" "Total" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Lunar,\n" "Mediu" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Lunar" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Adaugă o categorie" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Aplică" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Categorie părinte" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Numele categoriei" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Această categorie este deja utilizată.\n" "Orice tranzacție care utilizează această categorie va fi setată la „fără " "categorie”" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Unește categoriile" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Tranzacțiile alocate categoriei '%s', vor fi mutate în categoria selectată " "mai jos." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Categoria destinație" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "Ș_terge categoria '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Sigur doriți să ștergeți intrările pentru '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Adăugare categorie" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Șterge categoria" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Îmbină" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Șterge intrarea" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# tranzacție" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# configurare" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Șterge categoriile neutilizate" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Ești sigur că vrei să ștergi complet\n" "categoriile neutilizate?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Numele categoriei deja există. Încearcă alt nume." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Editează categorie" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Schimbați Tipul" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "Ven_it" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propagă la _children" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nu se poate redenumi această Categorie,\n" "din '%s' în '%s'.\n" "Acest nume există deja." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Îmbină categoria '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Tranzacțiile atribuite acestei categorii,\n" "vor fi mutate la categoria selectată mai jos." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Include _subcategoriile" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Administrează categoriile" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Arată fișierele ascunse" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Arată utilizarea" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Mută/Îmbină" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Arată/Ascunde" #: ../src/ui-category.c:2552 msgid "new category" msgstr "categorie nouă" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "subcategorie nouă" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Monedă de bază" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Simbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Rată de schimb" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Ultima modificare" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Modifică valuta" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moneda" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalizare" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Simbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "este pre_fix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Număr _Zecimale:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Zecimale" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Separator:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Selectare moneda de bază" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Selectare monedă" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "cod ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Adăugare _monedă particulară" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Actualizați/încărcați eroarea online" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" "Dacă ștergeți o monedă, datele procesate cu aceasta se vor pierde definitiv." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Schimbați moneda de bază" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Dacă continuați, ratele de schimb ale altor valute\n" "vor fi setate la 0. Nu uitați să le re-actualizați." #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valute" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Încărcare online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Setare ca imolicit" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Statistici fişiere" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Tranzacție" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Actualizare" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Selectați o monedă de bază" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Începând cu v5.1, HomeBank poate gestiona mai multe valute\n" "dacă moneda de mai jos nu este corectă, vă rugăm să o schimbați:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Moneda:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportă ca format QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importă din CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Deschide fișierul HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Deschideți fișierul HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Salvați fișierul HomeBank ca..." #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Fişiere HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Fișier backup" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Toate salvările de siguranță" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Salvați modificările în fișier înainte de închidere?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Dacă nu salvați, modificările se vor pierde definitiv.\n" "Numărul de modificări:% d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Închide _fără a salva" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Export ca _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Director:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Alegeți un Director" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Denumire fișier:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Adaugă coloana de Stare" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detalii pe linii separate" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Fișierul nu va fi în formatul CSV HomeBank, deoarece ați exportat\n" "din ”Toate tranzacțiile”, sau ați selectat o opțiune." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Export ca PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Export ca _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Cu HomeBank, tipărirea este orientată spre o atitudine eco-responsabilă,\n" "față de cel mai răspândit format digital: format PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Selectați acțiunea pentru crearea sarcinii" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Creează _nou" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Folosește _Selection" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Sursa de transfer" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Asocierea țintă sugerată" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank a identificat anumite tranzacții ce pot fi asociate pentru " "transferuri interne" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Introduceți de la -30 la -15 pentru a filtra cheltuielile" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Notiță:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Număr:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Transfer de Cheltuieli" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Transfer de Venituri" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Resetează" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Salvați și utilizați" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "implicit" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Cantitate/Text" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Afișați întotdeauna" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Nul" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Adăugat" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Modificat" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(implicit)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Redenumire filtru" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Numele filtrului" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Salvează ca..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Redenumește..." #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Data scadentă" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Următoarea plată" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "În avans" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propietățile fișierului" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Tranzacții planificate" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "al fiecărui" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "lună" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Câștigați pe oră:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Ștergeți beneficiarul neasignat" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Ești sigur că vrei să\n" "ștergi definitiv beneficiarul neasignat?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Numele beneficiarului există deja. Introdu alt nume." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Modifică beneficiar" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Completare implicită" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "_Plata:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nu se poate redenumi acest beneficiar,\n" "din '%s' în '%s'.\n" "Acest nume există deja." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Îmbină beneficiarul '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Tranzacțiile atribuite acestui beneficiar,\n" "vor fi mutate la beneficiarul selectat mai jos." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "Ș_terge beneficiarul '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Acest beneficiar este deja utilizat.\n" "Orice tranzacție care utilizează beneficiarul acesta va fi setată „fără " "beneficiar”." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Administrare beneficiari" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "beneficiar nou" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interfaţă" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Limbă" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Tranzacții" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transfer" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Import/Export" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Raport" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Estimare" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Copie de siguranță" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Directoare" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Avansat" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Limba sistemului" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Selectează un Director implicit HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Alegeți un director implicit pentru fișierele de siguranță HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Selecteaza un folder implicit pentru import" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Selecteaza un folder implicit pentru export" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Folosiți drag & drop pentru a reordona" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "API curent" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Cheie:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Opțiuni generale" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opțiuni OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "opțiuni QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "opțiuni CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(doar import de tranzacții)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separator:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Fereastra principală a rapoartelor" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max _elemente:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Filtru initial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opțiuni Statistice" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Afişe_ază după sumă" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Afişează coloana _rată" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Afişează _detalii" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opțiuni Buget" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Activați _prognoza" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Numărul lunii:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Activează" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Presetare:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interfața cu utilizatorul" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Limba:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a ziua săptămânii pe scurt.\n" "%A ziua săptămânii. \n" "%b numele lunii pe scurt. \n" "%B numele lunii. \n" "%c mod local de reprezentare a datei / orei. \n" "%C număr secol (anul îmărțit la 100 trunchiat la întreg) ca număr zecimal " "[00-99]. \n" "%d ziua lunii ca număr zecimal [01,31]. \n" "%D la fel ca %m/%d/%y. \n" "%e ziua lunii ca număr zecimal [1,31]; un singur digit precedat de un " "spațiu. \n" "%j ziua din an ca număr zecimal [001,366]. \n" "%m luna ca număr zecimal [01,12]. \n" "%p mod local de reprezentare a datei calendaristice. \n" "%y anul fără secol ca număr zecimal [00,99]. \n" "%Y anul afișat cu secol ca număr zecimal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Anul fiscal" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Începe _la:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unități de măsură" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Folosește _mile pentru distanțe" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Folosește _galon pentru combustibil" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Arată întotdeauna notițele" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Arată întotdeauna câmpurile nule" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Includeți reamintire în bilanț și raportare" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Blocare reconciliată pentru orice modificări" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Arată predicția:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "zile înainte" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Ascunde reconciliatele" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Dialog tranzacție" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Activați completarea automată _memo cu" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "zile lucrătoare" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Afișați textul de confirmare pentru 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Afișați lista de șabloane când editați" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Setări GTK" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "linii de _Grilă:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Opțiuni diagrame" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Legenda _tip literă mai mică" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Bară de unelte:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Activează backup automat" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Număr de fișiere de backup păstrate:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Frecvența Backup - o dată pe zi" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Portofele:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Copii de siguranță:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Schimb de fișiere" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Import:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Export:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Start program" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Arată ecranul de start" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Încarcă ultimul fişier utilizat" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Publică tranzactiile planificate în așteptare" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Actualizează valuta online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Resetează toate preferințele" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Sigur doriți să resetați\n" "toate preferințele \n" "la valorile implicite?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferinţe" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informaţii" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Este necesar sa redeschizi aplicatia HomeBank\n" "pentru a intra în vigoare modificările de limbă." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Directorul copiilor de siguranță s-a modificat,\n" "Este necesar să copiați fișierul „.bak” în această nouă locație." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Șterge etichetele nefolosite" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Ești sigur că dorești să stergi \n" "permanent etichetele nefolosite?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Nume de etichetă deja existent. Introdu alt nume." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Editează eticheta" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nu se poate redenumi eticheta,\n" "din '%s' în '%s',\n" "deoarece acest nume există deja." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Adaugă eticheta '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Tranzacțiile atribuite acestei etichete,\n" "vor fi mutaet la eticheta selectată mai jos." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "Ș_terge eticheta '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Această etichetă este deja utilizată.\n" "Eticheta aceasta va fi ștearsă din toate tranzacțiile care o utilizează." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gestionați etichetele" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "etichetă nouă" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "S-a creat tranzacția %s" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Vrei să anulezi transferul intern?\n" "\n" "Dacă continuați se va șterge tranzacția destinație." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Pauză" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Arată _planificatele" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Arată _toate conturile" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Folosește un șablon" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Adaugă și _Păstrează" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Adaugă tranzacţie" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Adaugă șablon" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Moşteneşte tranzacţia" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Moștenește șablonul" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editează tranzacția" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editează șablonul" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- tipărește: d, d/m, m/d pentru completarea datei în format local\n" "- folosește tastele săgeți + ctrl sau shift\n" "- golește datele de astăzi" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_Către:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Divizări tranzacție" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Nicio rată disponibilă pentru completare automata" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Cont:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Volumul _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- tastați câteva litere pentru completarea automată\n" "- tastați un text pentru a crea o intrare nouă" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_gorie:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Notițe:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Atenție: suma și semnul categoriei nu se potrivesc" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Editare multiplă de tranzacții" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Tastați ca\n" "transfer" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Dorești să ștergi toate liniile divizate" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Șterge toate" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Aplică" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Renunță" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Suma tranzacționată:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Neatribuite:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Suma părților:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Limita de diviziuni a fost atinsă" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Avertisment: suma pățiilor și tipul tranzacției nu se potrivesc." #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Avertisment: suma părților și suma totală a tranzacției nu sunt egale." #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(fără tip)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banca" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Numerar" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Active" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Card de credit" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Creditori" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Verificare" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Economii" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Zi" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Posibil" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Înainte" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "După" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Omite" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Ora" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Grup de conturi" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "An" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Săptămâna" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Două săptămâni" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestru" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestru" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Include" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Exclude" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Ieri" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Mâine" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Săptămâna trecută" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Săptămâna aceasta" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Săptămâna viitoare" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Ultimele două săptămâni" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Aceste doua săptămâni" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Următoarele două săptămâni" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Luna trecută" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Luna curentă" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Luna viitoare" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Ultimul trimestru" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Acest Trimestru" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Trimestrul următor" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Anul trecut" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Anul acesta" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Anul următor" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Ultimele 90 de zile" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Ultimele 60 de zile" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Ultimele 30 de Zile" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Ultimele 12 luni" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 de zile din jurul datei curente" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Tot intervalul" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Personalizat" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "În această lună" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Luna următoare" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Următoarele 30 de zile" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Următoarele 60 de zile" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Următoarele 90 de zile" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Data maximă de publicare" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Chelt. & Ven." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Orice Tip" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Orice Stare" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Neclar" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Nedefalcate" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Fără categorie" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Implicit din sistem" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Doar iconițe" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Doar text" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text sub iconiţe" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text lângă iconiţe" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Orizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Ambele" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "l-z-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "z-l-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-l-z" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignoră" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Adaugă la Notițe" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Adaugă Beneficiar" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Filă" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Virgulă" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Punct și virgulă" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Spațiu" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Ianuarie" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februarie" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Martie" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Aprilie" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Iunie" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Iulie" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "August" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Septembrie" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Octombrie" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Noiembrie" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Decembrie" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Caută..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Verifică" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Transfer Bancar" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Card de debit" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Ordin în vigoare" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Plată electronică" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depozit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Fără comision" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Debit Direct" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/zh_CN.po0000644000175000017500000034276214775770001011000 msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-12-19 01:09+0000\n" "Last-Translator: Noah Li \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "个人财务" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "自由、易用、适合所有人的个人财务软件" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "财务;会计;预算;个人;理财;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "HomeBank 是协助您管理个人财务的自由软件。" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "它易于使用,并能用强大的过滤工具和好看的图表展现您的个人财务状况。" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "如果您在寻找完全自由、易用的个人财务软件,HomeBank 应该是不二之选。" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d 笔交易" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d 笔交易,选中 %d 笔;平均 %s,合计 %s(%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "已锁定,点击解锁。" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "已解锁,点击锁定。" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "生命能耗" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "当前钱包没有启用每小时收入。" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "确定删除选中的 %d 项交易吗?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "交易删除后不可恢复。" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "删除(_D)" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "确定修改状态为空吗?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "您选中的部分交易已核对。" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "更改(_C)" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "确定将状态设为已结清吗?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "确定切换核对状态吗?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "切换(_T)" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "确定从选中的 %d 项交易创建模板吗?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "创建(_C)" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "创建模板" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "创建了 %d 项并设定图标" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "确定从选中的 %d 项交易创建归类吗?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "创建归类" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "所有交易" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "有 %d 组相似交易" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "未发现相似交易" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "内部转账检查结果" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "没有发现不一致!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "检测到 %d 处差异,是否检查并修复?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "每笔交易金额将被除以 %.6f。" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "确定将欧元设为该账户的主要货币吗?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "转换(_C)" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "没有交易被修改" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "修改的交易数:%d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "自动归类结果" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "添加(_A)..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "套用(_I)..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "编辑(_E)..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "无(_N)" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "已结清(_C)" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "已核对(_R)" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "状态(_S)" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "无" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "红" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "橙" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "黄" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "绿" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "蓝" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "紫" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "标记(_F)" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "编辑多项(_M)..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "拆分视图(_S)" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "复制原始金额" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "创建模板..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "创建归类..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "删除(_D)..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "上移(_U)" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "下移(_D)" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "导出 QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "导出 CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "打印..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "访问网站" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "关闭" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "账户(_C)" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "复制" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "粘贴" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "粘贴" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "复制到剪贴板" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "查找" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "编辑(_E)" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "查找重复交易..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "检查内部转账" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "自动归类" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "兑换成欧元…" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "工具(_T)" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "上移交易" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "下移交易" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "添加一笔交易" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "添加" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "套用所选交易" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "套用" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "编辑所选交易" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "编辑" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "切换所选交易的结清状态" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "切换所选交易的核对状态" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "编辑多笔交易" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "删除所选交易" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "锁定已核对的变化" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(已关闭)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "显示" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "刷新(_R)" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "日期间隔(_G):" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "切换显示未来 %d 天" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "编辑过滤规则" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "清空过滤规则" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "刷新" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "切换显示生命能耗(每笔支出所需工作时长)" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "以次要货币显示(_M)" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "已核对:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "已结清:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "今天:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "将来:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "确定撤销文件“%s”未保存的更改吗?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "· 对该文件的更改将永久丢失\n" "· 将重新加载上次存档(.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "撤销(_R)" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "确定匿名化该文件吗?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "所有文本将被匿名化, \n" "如“帐户 X”、“交易人 Y”、“备忘 Z”..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "匿名化(_A)" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "欢迎使用 HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "关闭(_C)" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "打开上次使用的文件(_L)" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "新建文件(_N)" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "打开已存在的文件(_O)" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "打开示例文件(_E)" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "查阅 HomeBank 手册(_M)" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "配置首选项(_P)" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "下次仍打开此窗口" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "确定打开备份文件“%s”吗?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "打开备份文件?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "打开备份(_O)" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "无法打开“%s”,该文件不存在。\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "未知错误" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "文件“%s”发生读写错误。" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "文件“%s”不是有效的 HomeBank 文件。" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "文件“%s”由较高版本的 HomeBank 保存,\n" "无法用当前版本打开。" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "文件错误" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "该文件自上次读取以来已被更改。" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "如果现在保存,所有外部更改都将丢失。仍然保存吗?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "仍然保存(_A)" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "清空" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "文件(_F)" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "新建(_N)" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "打开(_O)..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "打开最近文件(_R)" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "保存(_S)" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "另存为(_A)..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "导入..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "导出为 QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "恢复" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "还原备份" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "属性..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "退出(_Q)" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "首选项..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "视图(_V)" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "工具栏(_T)" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "总览图(_O)" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "时间图(_I)" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "底部列表(_B)" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "欧元" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "管理(_M)" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "钱包..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "账户(_O)..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "交易人(_P)..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "类别..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "标签..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "计划 / 模板..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "归类..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "货币…" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "预算..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "预算(表格视图)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "交易(_T)" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "添加..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "显示..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "全部显示..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "设置计划..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "过账计划" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "报表(_R)" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "统计(_S)..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "走势(_T)..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "余额(_B)..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "预算(_U)..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "车辆费用(_V)..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "显示欢迎窗口..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "文件信息统计..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "匿名化..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "帮助(_H)" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "帮助内容(_C)" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "获取在线帮助..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "检查更新..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "发行注记" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "报告问题..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "提交翻译..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "关于(_A)" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "新建" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "新建文件" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "打开" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "打开文件" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "打开最近使用的文件" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "保存" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "保存当前文件" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "账户" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "管理账户" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "交易人" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "管理交易人" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "类别" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "分类管理" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "计划与模板" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "管理计划与模板交易" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "预算" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "预算管理" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "归类" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "管理自动归类" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "显示选中帐户的交易" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "添加交易" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "统计信息" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "打开统计报表" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "时间趋势" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "打开走势报表" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "余额" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "打开余额报表" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "打开预算报表" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "车辆费用" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "打开车辆费用报表" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "帮助" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "捐赠" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "向 HomeBank 捐赠" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "计划" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "将来" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "提示" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "今天(_T)" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(无备忘)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(副本)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(无类别)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "无效的 CSV 文件" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "日期范围无效!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "类型" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "正常支出" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "正常收入" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "转账支出" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "转账收入" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "状态" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "无" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "已清空" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "已核对" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "标签" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "支付" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "金额" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "文本" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "未知" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f 升" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "千克/升" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "米/升" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(无交易人)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(无分组)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(无标签)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "W%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "Q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "H%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d 年 W%d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d 年 Q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d 年 H%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "显示程序版本" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[文件]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "浏览器遇到错误。" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "无法显示 URL“%s”。" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(无机构)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "帐户" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "复制到剪贴板" #: ../src/hub-account.c:594 msgid "Group by" msgstr "分组方式" #: ../src/hub-account.c:595 msgid "type" msgstr "类型" #: ../src/hub-account.c:596 msgid "group" msgstr "分组" #: ../src/hub-account.c:597 msgid "institution" msgstr "机构" #: ../src/hub-account.c:602 msgid "Show all" msgstr "显示所有" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "全部展开" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "全部折叠" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "总和: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "没有交易要添加" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "添加的交易数:%d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "检查计划交易结果" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "程序启动时过账" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "开" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "关" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "最后过账日期" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "合计" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "跳过(_S)" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "编辑并过账(_O)" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "过账(_P)" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "前 %d 个支出类别" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "前 %d 个支出类别" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "前 %d 名支出交易人" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "前 %d 名支出交易人" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "前 %d 个支出账户" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "前 %d 个支出账户" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "账户余额" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "账户组余额" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "其它" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "总览图" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "排序方式" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "原始金额" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "账户组" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "支出" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "支出" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "收入" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "收入" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "收支" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "收支" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "总余额" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "时间图" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "全局" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "汇入账户" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "合计" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "上次核对" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "直到透支" #: ../src/list-account.c:753 msgid "before maximum" msgstr "最大值前" #: ../src/list-account.c:856 msgid "Accounts" msgstr "账户" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "已核对" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "已结清" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "今日余额" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- 拆分 -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- 此处需要一个类别 -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "日期" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "编号" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "备忘" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "标签" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "支付方式 / 编号" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "标记" #: ../src/list-operation.c:2066 msgid "Match" msgstr "匹配" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "结果" #: ../src/list-report.c:957 msgid "Average" msgstr "平均" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "超时" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "剩余" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "下一个日期" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "%s余额" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d 在 %s 以下" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "列表" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "以列表形式展示结果" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "折线图" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "以折线图形式展示结果" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "明细" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "切换明细" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "刷新" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "打印" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "余额报表" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "显示" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "间隔(_V):" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "显示空行" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "缩放 X 轴(_Z):" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "筛选" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "活跃:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "范围(_R):" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "从(_F):" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "到(_T):" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "选择:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "全部" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "反选" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "包含转账(_T)" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "花费" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "完成" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "月" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "分类预算" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "月预算" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " 超支" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " 结余" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " 严重超支" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(未纳入预算)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "堆积图" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "以堆积柱形图形式查看结果" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "复制到剪贴板(_R)" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "导出结果到 CSV(_R)" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "复制到剪贴板(_D)" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "导出明细到 CSV(_D)" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "未定义账户" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "请在账户对话框中选择账户" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "预算报表" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "模式:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "类型(_T):" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "仅超支预算" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "结果:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "预算:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "花费:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "按%2s的%1s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "显示的列过多" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "请选择较大间隔与较小的日期范围" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "柱状图" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "以柱状图形式展示结果" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "饼图" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "以饼图形式展示结果" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "以堆积图形式查看结果" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "百分比堆积图" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "以百分比堆积图形式查看结果" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "图例" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "切换图例" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "比率" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "切换比率" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "统计报表" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "查看方式(_V):" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "余额模式(_B)" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "预测(_F)" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "按金额排序(_A)" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "比较收支" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "总计:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "收入:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "支出:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "平均:%s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "走势报表" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "累计(_C)" #: ../src/rep-time.c:1544 msgid "Item" msgstr "条目" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "每(_B):" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "时间段" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "里程表" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "燃料" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "价格" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "里程" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "导出" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "导出为 CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "车辆费用报表" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "类别(_C):" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "里程表:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "油耗:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "燃料费用:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "其它费用:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "费用合计:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(无)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "可见" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "账户名" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "错误" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "账户“%s”已存在,无法添加。" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "无法删除账户“%s”" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "该账户有交易" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "该账户接受转账" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "该账户有计划任务 / 模板" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "该账户有转账计划任务 / 模板" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "确定永久删除 “%s” 吗?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "帐户删除后不可恢复。" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "无法将“%s”重命名为“%s”,该账户已存在。" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "管理账户" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "删除" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "重命名" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "上移" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "下移" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "常规" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "分组(_G):" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "机构(_I):" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "账号(_U):" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "初始余额(_B):" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "币种(C):" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "该账户已关闭(_C)" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "网站:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "备注:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "行为" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "自动化" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "默认模板(_T):" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "报表排除项" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "从汇总中排除(_S)" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "仅将支出计入汇总" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "从预算中排除(_B)" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "从所有报表中排除(_R)" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "杂项" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "当前支票号" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "支票簿 _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "支票簿 _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "余额限制" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "透支额度(_O):" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "最大余额(_I):" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "删除模板" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "该模板已有账户使用,无法删除。" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "计划 / 模板删除后不可恢复。" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "下一个日期(_D):" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "每(_Y):" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "更多选项" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "周末" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "止于(_S):" #: ../src/ui-archive.c:972 msgid "posts" msgstr "过账" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "管理计划 / 模板交易" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "模板" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "复制" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "计划(_S)" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "搜索" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "备注" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "关键词不能为空" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "搜索文本已存在于位置 %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "取消(_C)" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "确定(_O)" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "条件" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "搜索(_S):" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "在(_I):" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "区分大小写(_S)" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "金额(_N):" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "和(_A)" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "归类" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "交易人(_P):" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "覆盖" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "支付方式(_M):" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "标签(_T):" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "无法复制该归类,“%s”已存在。" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(规则 %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "归类删除后不可恢复。" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "移至..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "移动规则" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "移动" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "管理归类" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "本助手将引导您完成新 HomeBank 文件的基本设置。" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "您可在以后需要时更改此处的所有设置。" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "在您单击该助手末尾的“应用”之前,\n" "将不会进行任何更改。" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank 主窗口会显示标题,\n" "这可以是任意标签或者您的名字。" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "标题(_T):" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "HomeBank 支持多币种,新账户和报表默认使用基准货币。" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "基准:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "添加更多货币" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "添加(_A)" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "不存在" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "如果您有社区提供的相应 CSV 文件,\n" "HomeBank 可以用您的语言自动填充交易类别。" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "设置用户语言的交易类别" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "预设" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "您可以使用从金融机构下载的文件向 HomeBank \n" "导入帐户,或者也可以手动创建帐户。" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "创建我的首个账户" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "名称(_N):" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "这是确认信息页面\n" "点击“应用”按钮提交更改" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "初始文件设置" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "文件选项" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "选择货币" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "选择类别" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "创建账户" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "结束文件配置" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<新全局帐户>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<新帐户>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "<跳过该账户>" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "有效" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "名称" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "打开(_O)" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "已知文件" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF 文件(.qif)" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX / QFX 文件" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV 文件" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "所有文件" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "新全局账户" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "新账户" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "已跳过" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "%d2 笔交易的第 %d1 笔" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d 笔交易,%d 笔相似,%d 笔已存在,%d 笔已选中" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d 笔交易,%d 笔已选中" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "一些日期无法转换,请尝试修改。" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "导入%s至(_T):" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "文件" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "账户" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "名称: %s\n" "数量: %s\n" "文件: %s\n" "编码: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "从银行或信用卡账户导入交易" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "使用此助手,将指导您以下列格式从银行或信用卡中\n" "导入一份或几份已下载的对帐单:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "推荐: .OFX 或 .QFX\n" "(也称为 Money™ 或 Quicken™)\n" "支持: .QIF\n" "(Quicken™ 通用文件)\n" "仅限高级用户: .CSV\n" "(HomeBank 专用格式,参见文档)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "点击“应用”前不会保存任何更改。" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "不再显示" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "拖拽文件导入\n" "也可以用添加或删除按钮更新列表" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "选择的文件中有太多账户\n" "请返回后重新选择" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "通过账号或名称匹配账户失败" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "日期格式:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "导入备忘(_I)" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "交换备忘和交易人的位置(_S)" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX 名称(_N):" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX 备忘(_M):" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "按句规范化备忘 / 交易人名称大小写(_C)" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "切换金额(_T)" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "目标帐户中的相似交易(可能重复)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "天" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "已按以下要求排序列出符合条件的项目:按账户,金额和日期。\n" "日期的偏差为 0 天表示严格匹配" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "执行自动化操作" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "使用默认交易人(_P)" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "运行自动归类规则(_A)" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "点击“应用”更新账户" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "欢迎使用" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "选择文件(S)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "导入" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "确认" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "文件格式错误" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV 文件必须包含确切列数并以分号分隔,\n" "请查阅帮助以获取更多信息。" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "确定清除输入吗?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "如果继续,所有金额将会归零。" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "清除(_C)" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%s 的预算" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "预算管理" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "导入 CSV(I)..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "导出 CSV(X)..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "余额:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "每月相同" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "清除输入(_C)" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "每月不同" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "设置" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "强制监视该类别(_F)" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "1 月" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "2 月" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "3 月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "4 月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "5 月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "6 月" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "7 月" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "8 月" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "9 月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "10 月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "11 月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "12 月" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "汇总" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "总计" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "年度汇总" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "月度平均" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "月度" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "添加类别" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "应用(_A)" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "上级类别" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "类别名称" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "该类别已使用。\n" "使用该类别的任何交易都将设置为(无类别)。" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "合并类别" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "目前归入类别“%s”的交易将被移至下方选中的类别。" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "目标类别" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "删除类别“%s”(_D)" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "确定清除“%s”的输入内容吗?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "添加类别" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "删除类别" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "合并" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "清除" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# 交易" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# 配置" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "清除未使用的类别" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "确定永久删除未使用的类别吗?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "该分类名称已被使用,请换一个名称。" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "编辑类别" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "更改类型" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "收入(_I)" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "应用到子类别(_C)" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "无法将“%s”重命名为“%s”,该类别已存在。" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "合并类别“%s”" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "目前归入该类别的交易将被移至下方选中的类别。" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "包含子类别(_S)" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "管理类别" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "显示隐藏条目" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "显示使用情况" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "删除未使用的条目(D)..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "移动/合并" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "显示/隐藏" #: ../src/ui-category.c:2552 msgid "new category" msgstr "新类别" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "新子类别" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "基准货币" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "货币符号" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "汇率" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "最近更改" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "编辑货币" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "币种" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "格式" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "自定义(_C)" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "符号(_S):" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "用作前缀(_F)" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "小数字符(_D):" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "小数位数(_F):" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "分组字符(_G):" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "选择基准货币" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "选择货币" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO 码" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "添加自定义货币(_C)" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "ISO(_I):" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "在线升级错误" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "货币删除后不可恢复。" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "修改基准货币" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "如果继续,其它货币的汇率将会归零,请记得更新。" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "货币" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "在线升级" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "调用日志" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "设为基准" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "文件信息" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "交易" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "升级" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "选择基准货币" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "HomeBank 从 5.1 版本起支持多币种,\n" "如果下方币种不正确,请修改:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "币种:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "导出为 QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "从 CSV 导入" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "打开 HomeBank 文件" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "打开备份文件" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "另存为" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank 文件(.xhb)" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "文件备份" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "所有备份" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "关闭前保存所有更改吗?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "如果不保存,%d 处更改将永久丢失。" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "不保存就关闭(_w)" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "导出为 CSV(_C)" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "文件夹:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "选择文件夹" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "文件名:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "添加状态列" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "详情分割线" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "该文件将不使用 HomeBank 的 CSV 格式,因为您在导出“所有交易”或者选中了一个选项。" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "导出为 PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "导出为 PDF(_P)" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "HomeBank 在打印时基于环保考虑使用最常见的 PDF 格式。 " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "选择创建目标的动作" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "新建(_N)" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "使用选中项(_S)" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "源交易" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "建议的关联目标" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "HomeBank 发现一些交易可能与该笔内部转账关联。" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "没有匹配的交易。" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "输入 -30 到 -15 之间的数字以过滤支出" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "备忘(_M):" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "编号(_N):" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "转账支出" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "转账收入" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "重置(_R)" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "保存并使用(S)" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "使用(_U)" #: ../src/ui-filter.c:1370 msgid "default" msgstr "默认" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "金额 / 文本" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "总是显示" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "无效" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "已添加" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "已编辑" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(默认)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "重命名过滤规则" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "新过滤规则 %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "过滤规则名称" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "另存为(_S)..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "重命名(_R)..." #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "截止日期" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "下一个支付周期" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "预先" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "文件属性" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "交易日程修改" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "每个" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "月" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "每小时收入(_E):" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "删除未使用的交易人" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "确定永久删除未使用的交易人吗?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "该收款人名称已被使用,请换一个名称。" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "编辑交易人" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "默认填充" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "支付方式(_Y):" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "无法将“%s”重命名为“%s”,该交易人已存在。" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "合并交易人“%s”" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "目前归给此人的交易将被移至下方选中的交易人处。" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "删除交易人“%s”(_D)" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "该交易人已在使用。\n" "归给此人的所有交易将被设为(无交易人)。" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "管理交易人" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "新交易人" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "界面" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "本地化" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "交易" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "转账" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "导入 / 导出" #: ../src/ui-pref.c:99 msgid "Report" msgstr "报表" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "预测" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "备份" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "文件夹" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "高级" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "系统语言" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "选择默认 HomeBank 数据文件夹" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "选择默认 HomeBank 备份文件夹" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "选择默认导入文件夹" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "选择默认导出文件夹" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "显示的支付方式" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "拖放以重新排序" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "汇率 API" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "URL:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "密钥:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "常规选项" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX / QFX 选项" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF 选项" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV 选项" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(只适用于交易导入)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "分隔符:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "主窗口图表" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "最大条目数(_I):" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "初始过滤规则" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "统计选项" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "显示金额(_A)" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "显示百分比(_R)" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "显示明细(_D)" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "预算选项" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "启用预测(_F)" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "月份数:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "启用(_E)" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "预设(_P):" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "配置" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "用户界面" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "语言(_L):" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "格式(_F):" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a 简写工作日名称(周一至周五)\n" "%A 完整工作日名称(星期一至星期五)\n" "%b 简写月份(1 月至 12 月)\n" "%B 完整月份(一月至十二月)\n" "%c 日期和时间\n" "%C 世纪数(00 至 99,例如 2020 年是 21 世纪)\n" "%d 当月天数(01 至 31)\n" "%D 等于 %m/%d/%y(例如 12/31/2020)\n" "%e 当月天数(1 至 31;个位天数前添加空格,例如 [ 1] )\n" "%j 当年天数(001 至 366)\n" "%m 月份(01 至 12)\n" "%p 日期\n" "%y 两位数年份(00 至 99,例如 2019 年写作 19)\n" "%Y 完整年份(例如 2019)" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "会计年度" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "始于(_O):" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "计量单位" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "使用英里单位(_M)" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "使用加仑单位(_G)" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "显示提醒" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "总是显示无效条目" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "将提醒纳入余额和报表" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "锁定已核对的交易,避免修改" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "显示未来(_S):" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "天" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "隐藏已核对的交易" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "交易会话" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "多次添加或套用交易时沿用日期(_K)" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "启用备忘自动补全(_M)" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "天" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "显示添加确认消息(持续 5 秒)" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "编辑时显示模板列表" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "图标主题(I):" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "GTK 设置" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "网格线(_G):" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "图表选项" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "较小的图例字体(_F)" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "工具栏(_T):" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "启用自动备份(_E)" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "保留备份数(_N):" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "备份每天执行一次。" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "钱包(_W):" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "备份(_B):" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "汇率文件" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "导入(_I):" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "导出(_E):" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "启动" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "显示启动画面" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "打开上次使用的文件" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "过账待批准的计划交易" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "在线更新汇率" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "重置所有首选项" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "重置所有设置为默认值?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "首选项" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "信息" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "语言设置将在重启 HomeBank 后生效。" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "备份目录已更新,\n" "请将 .bak 备份文件复制到新目录。" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "删除未使用的标签" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "确定永久删除未使用的标签吗?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "该标签名称已被使用,请换一个名称。" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "编辑标签" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "无法将“%s”重命名为“%s”,该标签已存在。" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "合并标签“%s”" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "目前带有该标签的交易将转加下方选中的标签。" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "删除标签“%s”(_D)" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "标签已使用。\n" "会从所有交易中删除。" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "管理标签" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "新标签" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "交易%s已创建" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "确定分离内部转账吗?\n" "\n" "如果继续,目标交易将被删除。" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "分离(_B)" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "显示计划(_S)" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "显示所有账户(_A)" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "使用模板" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "继续添加(_K)" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "添加交易" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "添加模板" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "套用交易" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "沿用模板" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "编辑交易" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "编辑模板" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "日期(_D):" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "· 可用格式有 d、d/m、m/d 和完整日期\n" "· 按 ctrl 或 shift + 方向键快速跳转 \n" "· 留空则为今天" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "到(_O):" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "拆分交易" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "没有可用于自动填充的金额" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "账户(_C):" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "预订_2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "· 输入一些文字以激活自动补全\n" "· 输入新文本以创建条目" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "类别(_G):" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "状态(_S):" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "备忘(_E):" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "警告:金额和类别符号不匹配" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "编辑多笔交易" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "输入为\n" "转帐" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "是否删除所有分割线" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "全部删除" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "总是显示正负号" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "应用" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "取消" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "交易额:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "未归类:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "拆分交易总额:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "拆分交易数到达上限" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "警告:拆分交易总额与交易类型不符" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "警告:拆分交易总额与交易金额不符" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(无类型)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "银行" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "现金" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "资产" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "信用卡" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "负债" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "支票" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "储蓄" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "天" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "可能" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "之前" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "之后" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "跳过" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "时间" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "账户组" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "年" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "周" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "半月" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "季度" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "半年" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "包含" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "排除" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "昨天" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "明天" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "上周" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "本周" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "下周" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "上半月" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "本半月" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "下半月" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "上月" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "本月" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "下月" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "上季度" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "本季度" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "下季度" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "去年" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "今年" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "明年" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "最近 90 天" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "最近 60 天" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "最近 30 天" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "最近 12 个月" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "前后 15 天" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "所有日期" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "自定义" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "本月" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "下月" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "未来 30 天" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "未来 60 天" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "未来 90 天" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "最后过账日期" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "收支" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "任意类型" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "任何状态" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "未结清" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "未核对" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "未分类" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "系统默认值" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "仅图标" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "仅文本" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "文本在图标下" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "文本在图标旁" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "水平" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "垂直" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "兼有" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "月-日-年" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "日-月-年" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "年-月-日" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "忽略" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "附加至数值" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "附加至备忘" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "附加至交易人" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "标签" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "逗号" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "分号" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "空格" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "1 月" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "2 月" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "3 月" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "4 月" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "6 月" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "7 月" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "8 月" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "9 月" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "10 月" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "11 月" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "12 月" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "9 月" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "搜索..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "所有标记" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "支票" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "银行转账" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "借记卡" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "定期转账" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "电子付款" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "存款" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "费用" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "直接借记" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "手机" homebank-5.9.1/po/sq.po0000644000175000017500000030031714775770114010415 # Albanian translation for homebank # Copyright (c) 2020 Rosetta Contributors and Canonical Ltd 2020 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2020. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2020-05-23 07:33+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Albanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "" #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "" #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "" #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "" #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/en_AU.po0000644000175000017500000031105314775770054010763 # English (Australia) translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2014-06-15 07:01+0000\n" "Last-Translator: Maxime DOYEN \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "No transaction changed" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Add..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Inherit..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Edit..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Reconciled" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "None" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Create template..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Export QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Export CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Edit" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Tools" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Add a new transaction" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Add" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Inherit from the active transaction" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Inherit" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Edit the active transaction" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Edit" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Refresh results" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Today:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Future:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Welcome to HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Close" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Create a _new file" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Open an existing file" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Open the _example file" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Read HomeBank _Manual" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Unable to open '%s', the file does not exist.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O error for file '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "The file '%s' is not a valid HomeBank file." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "File error" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_File" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_New" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Open..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Save" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Revert" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Quit" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferences..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_View" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Toolbar" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro minor" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Manage" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Acc_ounts..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Payees..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categories..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Scheduled/Template..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Assignments..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transactions" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Add..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Show..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Set scheduler..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Reports" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistics..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trend Time..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Vehicle cost..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Show welcome dialog..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Make anonymous..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Help" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Contents" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Report a Problem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Translate this Application..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_About" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Create a new file" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Open a file" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Open a recently used file" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Save the current file" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Account" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Payee" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Category" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Shows selected account transactions" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Open the Statistics report" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Open the Trend Time report" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Open the Balance report" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Open the Budget report" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Vehicle cost" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Open the Vehicle cost report" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Future" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(no category)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Tag" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Amount" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Unknown" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(no payee)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FILE]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Browser error." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Could not display the URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Your accounts" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "No transaction to add" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transaction added: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Check scheduled transactions result" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "maximum post date" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Other" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Expense" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Income" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Grand total" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Accounts" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Today" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- split -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Date" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Tags" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Result" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Late" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Next date" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d under %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "List" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "View results as list" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Line" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "View results as lines" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detail" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Toggle detail" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Refresh" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Balance report" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Display" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Range:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_From:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_To:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "All" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invert" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Spent" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Month" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "No account is defined to be part of the budget." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "You should include some accounts from the account dialog." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budget report" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Type:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Result:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Spent:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s by %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Toggle legend" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Toggle rate" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistics Report" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_View by:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Income:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Expense:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trend Time Report" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Cumulate" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Time slice" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Metre" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Fuel" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Price" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Export as CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Vehicle cost report" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Category:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Metre:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumption:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Fuel cost:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Other cost:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Total cost:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(none)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Account name" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Error" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Cannot add an account '%s\"\n" "this name already exixts." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Manage Accounts" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "General" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umber:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Start _balance:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "this account was _closed" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Report exclusion" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "exclude from account _summary" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "exclude from the _budget" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "exclude from any _reports" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Current cheque number" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Chequebook _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Chequebook _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Next _date:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Ever_y:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Week end:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Stop after:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "posts" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Manage scheduled/template transactions" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condition" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Case _sensitive" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Payee:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Pay_ment:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Manage Assignments" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Not found" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Preset file:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Name:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Known files" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF files" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX files" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV files" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "All files" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Date order:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "days" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 days means an exact match" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmation" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "File format error" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Manage Budget" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balance:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Clear input" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Options" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Force monitoring this category" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "May" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Income" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Manage Categories" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Frac digits:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Export as QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Import from CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank files" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank has found a transaction that may be the associated transaction for " "the internal transfer." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memo:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "File properties" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Scheduled transactions" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_yment:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Manage Payees" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transactions" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transfer" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Import/Export" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Report" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "System Language" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Choose a default HomeBank files folder" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Choose a default import folder" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Choose a default export folder" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX options" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Main window reports" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Initial filter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistics options" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Show by _amount" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Show _rate column" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Show _details" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Budget options" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Enable" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Preset:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Language:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Fiscal year" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Starts _on:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Measurement units" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Use _miles for distance" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Charts options" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Toolbar:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Import:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Export:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Program start" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Show splash screen" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Load last opened file" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Post pending scheduled transactions" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferences" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "You will have to restart HomeBank\n" "for the language change to take effect." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Add transaction" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Inherit transaction" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Date:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "A_ccount:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Transaction amount:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Unassigned:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Sum of splits:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(no type)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Cash" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Asset" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Credit card" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Liability" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Day" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Before" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "After" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Year" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Week" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Quarter" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Include" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Exclude" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Exp. & Inc." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Any Type" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Any Status" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Unreconciled" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Uncategorised" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "System defaults" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Icons only" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Text only" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text under icons" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text beside icons" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-y" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-y" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "y-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignore" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Append to Memo" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "January" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "February" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "March" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "June" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "July" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "August" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "October" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "December" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debit card" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Standing order" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Electronic payment" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI fee" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Direct Debit" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/fa.po0000644000175000017500000033704414775770047010374 # Persian translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2017-11-21 15:56+0000\n" "Last-Translator: Mojtaba Rezaee \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "امور مالی شخصی" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "آزاد,آسان,برنامه حسابداری شخصی برای همه" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "امور مالی؛ حسابداری؛ بودجه؛ شخصی؛ پول؛" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank یک نرم افزار آزاد ( در \"آزادی بیان\" و همچنین مانند \"آبجو " "رایگان\") که به شما در مدیریت حسابداری شخصی کمک می‌کند." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "این نرم افزار به نحوی طراحی شده که به آسانی قابل استفاده باشد و به وسیله " "ابزار فیلتر قدرتمند و نمودار های زیبای این نرم افزار امکان تجزیه و تحیلی " "امور مالی شخصیتان به وجود خواهد آمد." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "اگر شما به دنبال یک راه کاملا آزاد , رایگان و آسان برای مدیریت حسابداری شخصی " "خود هستید, HomeBank باید نرم افزار مورد نظر شما باشد." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_حذف" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "آیا مایل به تغییر وضعیت به هیچ هستید؟" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "برخی از تراکنش های انتخابی شما در حال حاضر در وضعیت موافق هستند." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "تغییر" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "آیا مایل به تغییر وضعیت به موافق هستید؟" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "ـتعویض" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "تناقض پیدا نشد!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "هر مقدار معامله شده بر %.6f. تقسیم خواهد شد." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_تبدیل" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "هیچ رویداد مالی تغییر نکرد" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "تراکنش مقابل تغییر کرد : %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "نتیجه انتساب خودکار" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_افزودن" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "ـجانشینی..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_ویرایش..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_هیچکدام" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "ـپاک" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "مطابق" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "ـوضعیت" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "هیچ‌کدام" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "ـویرایش چندگانه..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "ایجاد الگو..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_حذف..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "صدور QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "صدور به فرمت ساده (CSV)" #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "حساب" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_ویرایش" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "انتساب خودکار" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "تبدیل به یورو..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_ابزارها" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "اضافه کردن رویداد مالی جدید" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "افزودن" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "جانشین رویداد مالی حاضر" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "جانشینی" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "ویرایش رویداد مالی حاضر" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "ویرایش" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "تغییر به پاک شده برای تراکنش های انتخاب شده" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "تغییر به موافق برای تراکنش های انتخاب شده" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "ویرایش تراکنش چندگانه" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "حذف تراکنش های انتخاب شده" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "نوسازی" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "ویرایش فیلتر" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "بازسازی نتایج" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "واحد کوچکتر یورو" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "امروز:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "آینده:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "برگرداندن تغییرات ذخیره نشده فایل '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "-تغییرات داده شده برای همیشه از دست رفته اند\n" "-بارگذاری مجدد آخرین نسخه ذخیره شده فایل (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_بازنشانی" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "آیا برای بی نام کردن فایل مطمئن هستید؟" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "در حال پاک کردن تمام متن ها,\n" "مانند 'یادداشت ها','دریافت کننده ها','حساب ها' , ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_گمنام کردن" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "به HomeBank خوش آمدید" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_بستن" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "ایجاد فایل ـ‌جدید" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "ـ‌باز کردن فایل موجود" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "باز کردن فایل ـمثال" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "راهنمای HomeBank را بخوانید" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "پیکربندی تنظیمات" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "ناتوان از باز کردن «%s»، فایل وجود ندارد.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "خطای ورودی/ خروجی برای فایل «%s»" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "فایل «%s» یک فایل معتبر برای HomeBank نیست." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "فایل «%s» با نسخه‌ی بالاتر HomeBank ذخیره شده\n" "و نمی‌تواند با نسخه‌ی فعلی بارگذاری شود." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "خطای فایل" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_فايل" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_جدید" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_باز کردن..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_ذخیره" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "ذخیره_به عنوان" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "بازگشت" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "ویژگی‌ها..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_خروج" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "تنظیمات..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "ـنمایش" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_نوار ابزار" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "واحد کوچک‌تر یورو" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_مدیریت" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "حـساب‌ها..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_دریافت کنندهای وجه..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "دسته بندی ها..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "برنامه‌ریزی/الگو..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "انتساب..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "واحد پول..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "بودجه ..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_تراکنش ها" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "افزودن..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "نمایش..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "تنظیم برنامه‌ریز" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "ارسال برنامه ریزی شده" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_گزارش‌ها" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_آمار..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_روند زمانی..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "بـودجه..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_هزینه خودرو..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "نمایش پنجره خوش آمدید ..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "آمار فایل ..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "بدون نام شود..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_راهنما" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_محتويات" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "گزارش یک مشکل..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "این برنامه را ترجمه کنید…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_درباره" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "ایجاد فایل جدید" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "باز کردن یک فایل" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "باز کردن پرونده‌ای که اخیراً به کار رفته" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "ذخیره‌ی فایل فعلی" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "حساب" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "دریافت کننده وجه" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "دسته‌بندی" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "بودجه" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "وظیفه" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "تراکنش های حساب انتخاب شده را نشان بده" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "اضافه کردن تراکنش ها" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "باز کردن گزارش آماری" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "بازکردن گزارش روند زمانی" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "تراز" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "بازکردن گزارش تراز" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "بازکردن گزارش بودجه" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "هزینه خودرو" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "گزارش هزینه های خودرو را باز کن" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "زمان‌بندی‌شده" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "آتی" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "یادآوری" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(بدون گروه)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "فایل CSV ناشناخته" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "وضعیت" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "برچسب" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "میزان" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "ناشناخته" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "کیلومتر/لیتر" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "مایل/لیتر" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(فاقد گیرنده)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[فایل]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "خطای مرورگر" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "نمایش آدرس '%s' ممکن نیست" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(بدون عرف)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "حساب‌های شما" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "نمایش همه" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "باز کردن تمام زبانه ها" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "بستن تمام زبانه ها" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "رویدادی برای افزودن وجود ندارد" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "رویداد مالی %d اضافه شد" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "نتیجه‌ی رویدادهای مالی برنامه‌ریزی شده را چک کن" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "حداکثر تاریخ ارسال" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "جمع" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_ارسال" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "موارد دیگر" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "هزینه" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "درآمد" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "جمع کل" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "حساب‌ها" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "تسویه شد" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "صاف شده" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "امروز" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "-فاصله-" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "تاریخ" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "یادداشت" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "برچسب‌ها" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "نتیجه" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "اخیر" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "تاریخ بعدی" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d تحت %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "فهرست" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "نتایج را فهرست‌وار نمایش بده" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "خط" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "نتایج را خطی نمایش بده" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "جزییات" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "سوییچ جزییات" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "بازسازی" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "گزارش تراز" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "نمایش" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_بزرگنمایی X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "دامنه" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_از:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_تا:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "انتخاب:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "همه" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "معکوس" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "هزینه شده" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "ماه" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " بالغ بر" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " چپ" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " کمتر از" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "نمایش نتایج به صورت پشته میله ای" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "هیچ حسابی به عنوان بخشی از بودجه تعریف نشده" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "باید از گفتگوی حساب حسابی را انتخاب کنید" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "گزارش بودجه" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_نوع:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "نتیجه:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "بودجه:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "هزینه شده" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s بر %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "نمایش نتایج به شرح ستون" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "نمایش شرح دونات" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "سوییچ شرح" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "سوییچ نرخ" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "گزارش آماری" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "ـنمایش بر اساس" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "درآمد:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "هزینه:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "میانگین: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "گزارش زمان روند" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "ـتجمیع" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "مقطع زمانی" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "متر" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "سوخت" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "قیمت" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "مسافت" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "صدور با فرمت ساده (CSV)" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "گزارش بهای خودرو" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_دسته بندی:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "متر:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "مصرف" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "بهای سوخت:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "بقیه‌ی بها:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "بهای کل:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(هیچ‌کدام)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "نمايان" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "نام حساب" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "خطا" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "نمی‌توان حساب «%s» را افزود،\n" "این نام هم‌اکنون وجود دارد." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "نمیتوانید حساب کاربری را حذف کنید '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "آیا مطمئن هستید که میخواهید %s را به طور دائم حذف کنید؟" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "اگر یک حساب کاربری را حذف کنید، به طور دائم از میان خواهد رفت." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "تغییر نام این حساب ممکن نیست،\n" "از «%s» به «%s»،\n" "این نام هم‌اکنون موجود است." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "مدیریت حساب‌ها" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "عمومی" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_شماره:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "تراز ـافتتاحی:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_واحد پول:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "این حساب ـ‌بسته شده" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "یادداشت ها :" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "مستثنیات گزارش" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "جزو ـ‌خلاصه حساب به شمار نیاور" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "جزو ـ‌بودجه به شمار نیاور" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "جزو هیچ ـ‌گزارشی به شمار نیاور" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "شماره‌ی چک جاری" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "دسته‌چک‌ـ۱:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "دسته‌چک‌ـ۲:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "محدوده های تراز" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_اضافه برداشت در:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "اگر شما یک برنامه ریزی یا قالب را حذف کنید، به طور دائم آن از دست خواهید داد." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "تاریخ بعد:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "هر:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "اخر هفته:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_توقف پس از:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "مطلب" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "مدیریت رویدادهای برنامه‌ریزی‌شده/قالب" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "قالب" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_لغو" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_تایید" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "شرط" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_حساس به حروف" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_دریافت کننده وجه:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "بازنویسی" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "پرداخت" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "اگر شما یک انتساب را حذف کنید، به طور دائم آن را از دست خواهید داد." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "مدیریت واگذاری‌ها" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "افزودن" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "پیدا نشد" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "فایل از پیش تنظیم شده:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_نام:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "نام" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_باز کردن" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "فایل‌های شناخته شده" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "فایل‌های QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "فایل‌های OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "فایل‌های فرمت ساده (CSV)" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "تمامی فایل‌ها" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "ترتیب تاریخ:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "روز" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "تطابق به این ترتیب انجام شد: حساب، مقدار و تاریخ.\n" "یک دامنه‌ی نوسان تاریخ صفر یعنی تطابق دقیق" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "خوش آمدید" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "وارد کردن" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "تأیید" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "خطای فرمت فایل" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "فایل CSV باید دارای تعداد مشخصی ستون باشد,\n" "که به وسیطه یک نقطه ویرگول جدا شده باشند,برای دیدن جزئیات بیشتر بخش کمک را " "مطالعه فرمایید." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "مطمئن هستید که میخواهید ورودی را پاک کنید؟" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "در صورد ادامه , تمام مقادیر 0 خواهند شد." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "پاک کردن" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "بودجه برای %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "مدیریت بودجه" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "تراز:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "ـپاک کردن ورودی" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "گزینه‌ها" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "ـ‌نظارت الزامی این گروه" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "ژانویه" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "فوریه" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "مارس" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "آوریل" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "ماه مه" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "ژوئن" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "ژوئیه" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "اوت" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "اکتبر" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "نوامبر" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "دسامبر" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "این دسته بندی استفاده شده است.\n" "تمام تراکنش هایی که از این دسته بندی استفاده میکنند تبدیل به (بدون دسته " "بندی) خواهند شد." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_حذف دسته بندی '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "ادغام" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "حذف دسته بندی های استفاده نشده" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "آیا برای حذف دسته بندی های استفاده نشده\n" "به طور دائم مطمئن هستید؟" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_درآمد" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "نمی‌توان نام این گروه را،\n" "از «%s» به «%s» تغییر داد،\n" "این نام هم‌اکنون وجود دارد." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "ادغام دسته بندی '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "تراکنش های اختصاص داده شده به این دسته بندی,\n" "به دسته بندی انتخاب شده‌ی زیر انتقال پیدا خواهند کرد." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "مدیریت گروه‌ها" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "دسته بندی جدید" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "زیرشاخه جدید" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "ارز پایه" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "نماد" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "نرخ ارز" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "ویرایش ارز" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "واحد پول" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "قالب" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_شخصی سازی" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_سمبل:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "پیشوند است" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "جدول دهدهی:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "رقم‌های ـ‌کسری:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_گروه بندی نمودار:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "ارز پایه را انتخاب کنید" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "انتخاب ارز" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "کد ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "ارور بروزرسانی آنلاین" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "اگر یک ارز را حذف کنید،به کلی از دست خواهد رفت." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "تغییر ارز پایه" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "اگر ادامه دهید، نرخ سایر ارزها\n" "روی 0 تنظیم خواهد شد,بروز رسانی آنها را فراموش نکنید" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "ارز‌ها" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "به روز رسانی آنلاین" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "تنظیم به عنوان پایه" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "آمار فایل" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "تراکنش" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "به‌روزرسانی" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "ارز پایه را انتخاب کنید" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "شرو با HomeBank نسخه 5.1 , این نسخه قابلیت مدیریت چند نوع ارز را دارد\n" "اگر ارز زیر صحیح نمی باشد، لطفا آن را تغییر دهید:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "واحد پول:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "صدور با فرمت QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "فراخوانی از فرمتِ ساده (CSV)" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "فایل HomeBank را باز کنید" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "ذخیره فایل HomeBank به عنوان" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "فایل‌های homebank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "ذخیره تغییرات در فایل قبل از بسته شدن؟" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "در صورت ذخیره نکردن,تمامی تغییرات از دست خواهند رفت.\n" "تعداد تغییرات : %d" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "بستن _بدون ذخیره‌سازی" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank رویدادی را یافته که می‌تواند رویداد وابسته به انتقال داخلی باشد." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "ـ‌یادداشت:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_تنظیم به حالت اولیه" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "ویژگی‌های فایل" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "تراکنش های برنامه ریزی شده" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "حذف دریافت کننده های وجه استفاده نشده" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "آیا مطمئن هستید که می خواهید\n" "به طور دائم دریافت کننده های وجه استفاده نشده را حذف کنید؟" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "پرـداخت:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "نام این گیرنده را نمی‌توان،\n" "از «%s» به «%s» تغییر داد،\n" "این نام هم‌اکنون وجود دارد." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "ادغام دریافت کننده وجه '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "تراکنش های اختصاص یافته به این دریافت کننده وجه،\n" "به دریافت کننده وجه ای که در زیر انتخاب شده منتقل خواهد شد." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_حذف کردن این دریافت کننده وجه '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "این دریافت کننده وجه استفاده شده است.\n" "تمام تراکنش هایی که مربوط به این دریافت کننده وجه هستند به صورت (بدون دریافت " "کننده وجه) تبدیل خواهند شد." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "مدیریت گیرنده ها" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "دریافت کننده وجه جدید" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "رابط" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "رویدادهای مالی" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "انتقال" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "فراخوانی/صدور" #: ../src/ui-pref.c:99 msgid "Report" msgstr "گزارش" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "زبان سیستم" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "پوشه‌ی پیش‌فرضی برای فایل‌های HomeBank برگزینید" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "پوشه‌ی پیش‌فرضی برای فایل‌های فراخوانی برگزینید" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "پوشه‌ی پیش‌فرضی برای فایل‌های صادره برگزینید" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "گزینه‌های QFX/OFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "گزینه های QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "گزارش‌های پنجره‌ی اصلی" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "فیلتر اولیه" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "گزینه‌های آماری" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "بر حسب مقدار نشان بده" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "ستون ـ‌نرخ را نشان بده" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "جزییات را نشان بده" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "گزینه‌های بودجه" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_فعال‌سازی" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "ـ‌پیش‌فرض:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_زبان:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_قالب:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "سال مالی" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "شروع از:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "واحدهای اندازه‌گیری" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "به کار گیری ـمایل به جای مت" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "استفاده از واحد گالن برای سوخت" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_خط شبکه:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "گزینه‌های نمودارها" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_نوار‌ابزار:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "ـ‌فراخوانی:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "ـ‌صدور:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "راه‌اندازی برنامه" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "نمایش اسپلش اسکرین" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "آخرین فایل باز شده را بارگذاری کن" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "ارسال تراکنش های زمان بندی شده درحال بررسی" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "به روز رسانی ارز به صورت آنلاین" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "تنظیمات" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "اطلاعات" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "ناچارید HomeBank را بازراه‌اندازی کنید\n" "تا تغییر زبان اثر کند." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "نمایش برنامه ریزی ها" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "افزودن رویداد مالی" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "جانشین رویداد مالی شود" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_تاریخ:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "انشعاب های تراکنش" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "ـ‌حساب" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_وضعیت:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "یاـدداشت:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "هشدار:مقدار و علامت دسته بندی باهم مطابقت ندارند" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "ویرایش چندگانه تراکنش‌ها" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "مقدار رویداد:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "تخصیص‌نیافته:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "مجموع تفکیک‌ها:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(فاقد نوع)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "بانک" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "وجه نقد" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "دارایی" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "کارت اعتباری" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "بدهی" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "روز" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "ممکن" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "قبل از" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "پس از" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "سال" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "هفته" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "فصل" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "شامل" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "خارج از شمول" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "این ماه" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "هزینه & درآمد" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "هر نوع" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "هر وضعیتی" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "صاف نشده" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "فاقد تطابق" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "فاقد گروه" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "پیش‌فرض‌های سیستم" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "فقط آیکن" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "فقط متن" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "متن زیر آیکن" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "متن کنار آیکن" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "افقی" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "عمودی" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "هر دو" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "ماه-روز-سال" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "روز-ماه-سال" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "سال-ماه-روز" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "نادیده گرفتن" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "افزودن به یادداشت" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "الحاق به دریافت کننده وجه" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "ژانویه" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "فوریه" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "مارس" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "آوریل" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "ژوئن" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "ژوئیه" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "اوت" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "سپتامبر" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "اکتبر" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "نوامبر" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "دسامبر" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "سپتامبر" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "جستجو..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "چک" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "کارت اعتباری" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "دستور پرداخت مستمر" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "پرداخت الکترونیکی" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "واریز" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "دستمزد ثابت" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "بدهی مستقیم" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/nl.po0000644000175000017500000035726414775767774010442 # Dutch translation of HomeBank # Copyright (C) 2006 The Free Software Foundation, Inc. # This file is distributed under the same license as the HomeBank package. # Daniel van Eeden , 2006. # msgid "" msgstr "" "Project-Id-Version: 3.2alpha1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-04-02 12:59+0000\n" "Last-Translator: Gregory Dk \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: nl\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Persoonlijke boekhouding" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Gratis en eenvoudige persoonlijke boekhouding voor iedereen" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "financiën;boekhouding;budget;persoonlijk;geld;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank is vrije software ( als in \"vrije meningsuiting\" en ook als in " "\"gratis bier\") om je te helpen je persoonlijke boekhouding te beheren." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Het is ontworpen voor gebruiksgemak en om je financiën in detail te " "analyseren met krachtige filteropties en mooie grafieken" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Als je op zoek bent naar een volledig gratis en eenvoudige manier om je " "persoonlijke boekhouding te doen, dan is HomeBank de software om dit te doen." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "%d vereist goedkeuring" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transacties" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transacties,%d geselecteerd, avg: %s, som: %s (%s -%s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Vergrendeld. Klik om te ontgrendelen." #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Ontgrendeld. Klik om te vergrendelen." #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Levensenergie" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Verdien per uur' is niet ingesteld in de huidige Wallet." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" "Weet je zeker dat je de %d geselecteerde transactie wilt verwijderen?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Als je een transactie verwijdert, gaat deze permanent verloren." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Verwijderen" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Weet je zeker dat je de status wil veranderen in Geen?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Sommige geselecteerde transacties zijn al Gereconcilieerd." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Verander" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Weet je zeker dat je de status wilt wijzigen in Vrijgegeven?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Weet je zeker dat je de status Gereconcilieerd wilt aan/uitzetten?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Aan/uit" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Weet je zeker dat je een sjabloon wilt maken van de %d geselecteerde " "transactie?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Creëren" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Sjabloon creëren" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d gecreëerd met een vooraf ingevuld icoon" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Weet je zeker dat je een opdracht wilt maken van de %d geselecteerde " "transactie?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Opdracht creëren" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Alle transacties" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Er is een groep van %d soortgelijke transacties" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Er werd geen soortgelijke transactie gevonden !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Intern overboekingsresultaat controleren" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Geen onregelmatigheden gevonden." #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Er zijn onregelmatigheden gevonden: %d\n" "wil je deze bekijken en repareren?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Ieder transactiebedrag wordt gedeeld door %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Weet je zeker dat je deze account wilt converteren naar de euro als " "belangrijkste valuta?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Converteren" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Er is geen transactie gewijzigd" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "gewijzigde transacties: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Resultaat van automatische toewijzing" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Toevoegen..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Overnemen..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Bewerken..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Geen" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Vereffend" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Gereconcilieerd" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Geen" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Rood" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Oranje" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Geel" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Groen" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Blauw" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Paars" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Markeren" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "Goedkeuren" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "Weigeren (Verwijderen)..." #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Meerdere bewerken..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "_Opsplitsing bekijken" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Ruw bedrag kopiëren" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Sjabloon creëren..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Toewijzing creëren" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Verwijderen…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "Om_hoog" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "Om_laag" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "QIF exporteren..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "CSV exporteren..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Afdrukken..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Website bekijken" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Sluiten" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "A_ccount" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopiëren" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Plakken" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Plakken (vandaag)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Klembord kopiëren" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Zoeken" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Bewerken" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Duplicaat markeren..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Interne overboeking controleren" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Automatische toewijzingen" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Naar euro converteren..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Gereedschappen" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Verplaats transactie omhoog" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Verplaats transactie omlaag" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Voeg een nieuwe transactie toe" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Toevoegen" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Van de actieve transactie overnemen" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Overnemen" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Wijzig de geselecteerde transactie" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Bewerken" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Vereffenen van de geselecteerde transactie(s) aan/uit" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Reconciliëren van de geselecteerde transactie(s) aan/uit" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Meerdere transacties bewerken" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "De geslecteerde transactie(s) verwijderen" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Gereconcilieerde veranderingen zijn" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(gesloten)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Tonen" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Vernieuwen" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Datum _kloof:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "%d dagen vooruit tonen aan/uit" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Filter bewerken" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Filter wissen" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Resultaten vernieuwen" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Levensenergie aan/uitzetten" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro '_minor'" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Gereconcilieerd:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Vereffend:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Vandaag:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Toekomstig:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Draai niet opgeslagen veranderingen van bestand '%s' terug?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Gemaakte veranderingen in het bestand gaan definitief verloren\n" "- Het laatst opgeslagen bestand wordt opnieuw ingeladen (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Ongedaan maken" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Weet je zeker dat je het bestand wilt anonimiseren?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Doorgaan zal alle tekst anonimiseren, \n" "zoals 'rekening x', 'begunstigde y', 'memo z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimiseer" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Welkom bij HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Sluiten" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Het _laatst geopende bestand openen" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Een _nieuw bestand creëren" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "Een bestaand bestand _openen" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Het _voorbeeldbestand openen" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Lees de HomeBank-_handleiding" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configureer _voorkeuren" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Dit venster volgende keer opnieuw tonen" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Je staat op het punt om het back-upbestand '%s' te openen.\n" "\n" "Weet je zeker dat je dit wilt doen?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Het back-upbestand openen?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "Back-up _openen" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Kan '%s' niet openen, bestand bestaat niet.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Onbekende foutmelding" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O fout voor het bestand '%s'" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Het bestand '%s' is geen geldig HomeBank-bestand." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Het bestand '%s' is opgeslagen in een nieuwere versie van HomeBank\n" "en kan niet geladen worden in de huidige versie." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Bestandsfout" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Het bestand is gewijzigd sinds het gelezen is." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Als je het opslaat kunnen alle externe wijzigingen verloren gaan. Toch " "opslaan?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Toch opsl_aan" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Wissen" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Bestand" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nieuw" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Openen..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Recente bestanden openen" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Opslaan" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Opslaan _als..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importeren..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exporteren als QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Herstellen" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Backup terugzetten" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Eigenschappen..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Afsluiten" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Voorkeuren..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Beeld" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Werkbalk" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "T_otaalgrafiek" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "T_ijdsgrafiek" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Lijstvenster" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro 'minor'" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Beheren" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Portefeuille..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Rek_eningen..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Begunstigden..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorieën..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Labels..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Gepland/Sjabloon..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Toewijzingen..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valuta..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (tabelweergave)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transacties" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Toevoegen..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Tonen..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Alles weergeven..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Planner instellen..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Geplande boeken" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Rapporten" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistieken..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trendtijd..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balans..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_egroting..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Kosten voor een voertuig..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Welkomstscherm tonen..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Bestandsstatistieken..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimiseren..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Help" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Inhoud" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Online hulp vragen…" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Zoeken naar updates..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Versie-informatie" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Meld een probleem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Deze toepassing vertalen…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Over" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nieuw" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Een nieuw bestand creëren" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Openen" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Een bestand openen" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Een recent gebruikt bestand openen" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Opslaan" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Huidig bestand opslaan" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Rekening" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Rekeningen beheren" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Begunstigde" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Begunstigden beheren" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categorie" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Categorieën beheren" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Gepland/Sjabloon" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gepland/sjabloon transacties beheren" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Budget beheren" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Toewijzing" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Automatisch toewijzingen beheren" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Geselecteerde rekeningtransacties tonen" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Transacties toevoegen" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistieken" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Statistiekenrapport openen" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trendtijd" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Trendtijdrapport openen" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balans" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Balansrapport openen" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Budgetrapport openen" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Voertuigkosten" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Voertuigkostenrapport openen" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Help" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Doneren" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Aan het HomeBank-project doneren" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Gepland" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Toekomstig" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Herinnering" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Vandaag" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(geen memo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(kopiëren)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(geen categorie)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "ongeldig CSV formaat" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Ongeldig datumbereik!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Type" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-uit" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-ink" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-uit" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-ink" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "geen" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "gewist" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "gereconcilieerd" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Label" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Betaling" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Bedrag" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Tekst" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Onbekend" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2fl" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(geen begunstigde)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(geen groep)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(geen tag)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "k%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-k%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "De toepassingsversie tonen" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[BESTAND]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Fout in de browser" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Kan de URL niet weergeven: '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(geen instelling)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Uw rekeningen" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Naar klembord kopiëren" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Groeperen op" #: ../src/hub-account.c:595 msgid "type" msgstr "Type" #: ../src/hub-account.c:596 msgid "group" msgstr "Groep" #: ../src/hub-account.c:597 msgid "institution" msgstr "Instelling" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Alles tonen" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Alles uitklappen" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Alles inklappen" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "som: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Geen transactie toe te voegen" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transactie toegevoegd: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Het resultaat van de geplande transacties bekijken" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Boek wanneer programma start" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Aan" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Uit" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "Maximum boekingsdatum" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Totaal" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Overslaan" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Bewerken en b_oeken" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "Boeken" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d uitgaven/categorie" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Top %d uitgaven/categorie" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d uitgaven/begunstigde" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Top %d uitgaven/begunstigde" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d uitgaven/rekening" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Top %d uitgaven/rekening" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Balans rekening" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Balans rekeninggroep" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Andere" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Totaalgrafiek" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Top per" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Ruw bedrag" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Rekeninggroep" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Uitgaven" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Uitgave" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Inkomsten" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Inkomen" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Uitgaven en inkomsten" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Uitgaven en inkomen" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Globale balans" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Tijdsgrafiek" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Globaal" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "geïmporteerde rekening" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Eindtotaal" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "laatst gereconcilieerd" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "tot debet" #: ../src/list-account.c:753 msgid "before maximum" msgstr "voor het maximum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Rekeningen" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Gereconcilieerd" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Vereffend" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Vandaag" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- split -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- hiervoor is een categorie vereist -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Nummer" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Labels" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Betaling/Nummer" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "Geïmporteerd" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "Verstreken datum" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Markeer" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Overeenkomen" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "St." #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultaat" #: ../src/list-report.c:957 msgid "Average" msgstr "Gemiddeld" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Te laat" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Resterend" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Volgende datum" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Balans per %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d onder %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lijst" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Toon resultaten als lijst" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Regel" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "De resultaten als regels bekijken" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detail" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Detail aan/uit" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Vernieuwen" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Afdrukken" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Balansrapport" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Weergave" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Lege regel tonen" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filter" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Actief:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Bereik:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Van:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Naar:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Selecteer:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Alles" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Omkeren" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Inclusief overboeking" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Besteed" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Vervuld" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Maand" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budget per categorie" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budget per maand" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " boven" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " overschot" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " onder" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "niet gebudgetteerd" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stapel" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Resultaten als stapelbalk tonen" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Resultaat naar kladblok" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Resultaat naar CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Details naar klembord" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Details naar CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Geen rekening is gespecifieerd om deel te nemen in het budget." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" "Je moet een aantal rekeningen uit het rekeningdialoogvenster opnemen." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budgetrapport" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modus:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Type:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Alleen buiten budget" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "T_ot vandaag" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultaat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Besteed:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s door %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Te veel kolommen om weer te geven" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Selecteer a.u.b. een langere interval en/of een kortere tijdsperiode" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Kolom" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Toon resultaten als kolom" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Donut" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Toon resultaten als cirkel" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Resultatan als stapel bekijken" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stapel 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Resultaten als stapel 100% bekijken" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legende" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Legende aan/uit" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Ratio" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Ratio aan/uit" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistiekenrapport" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Toon voor:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Balansmodus" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Prognose" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Sorteren per _bedrag" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Uitg. & Ink. vergelijken" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Totaal:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Inkomen:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Uitgaven:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Gemiddelde: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trendtijdrapport" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Gecumuleerd" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Item" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_Per" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Tijdsegment" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Meter" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Brandstof" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Prijs" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Afst." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exporteren" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Als CSV exporteren" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Rapport voor de voertuigkosten" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categorie:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Meter:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Verbruik:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Brandstofprijs:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Andere uitgaven:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Totale uitgaven:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(geen)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Zichtbaar" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Rekeningnaam" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Fout" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Kan geen rekening met de naam '%s' toevoegen,\n" "deze naam bestaat al." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Kan rekening '%s' niet verwijderen" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Het heeft transactie" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Het is het doel van de overboekingstransactie" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Het heeft ingeplande/sjabloon" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Het is het doel van overboeking ingeplande/sjabloon" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Weet je zeker dat je '%s' definitief wilt verwijderen?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Als je een rekening verwijdert zal deze definitief verloren gaan." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan de rekening niet wijzigen\n" "van '%s' naar '%s',\n" "omdat deze naam reeds in gebruik is." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Rekeningen beheren" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Verwijderen" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Hernoemen" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Omhoog verplaatsen" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Omlaag verplaatsen" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Algemeen" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Groep:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Instelling:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_ummer:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Begin _bedrag:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Valuta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "Deze rekening werd ge_sloten" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Website:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Opmerkingen:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Gedrag" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatisering" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Standaard _sjabloon" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Uitsluitingsopties" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "Van het rekening_overzicht uitsluiten" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "Naar overzicht uitvoeren" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "Van het _budget uitsluiten" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "Van elk _rapport uitsluiten" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Overig" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Huidig chequenummer" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Chequeboek _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Chequeboek _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Balsns limieten" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "Kaskrediet bij:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Sjabloon verwijderen" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Dit sjabloon wordt gebruikt als accountsjabloon en kan niet worden " "verwijderd." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Als je een gepland/sjabloon verwijdert zal deze definitief verloren gaan." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Volgende _datum:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "Herhalingspatroon" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Elk_e:" #: ../src/ui-archive.c:918 msgid "The" msgstr "De" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Meer opties" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Weekend:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Stop na:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "boekingen" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Geplande/sjabloon-transacties beheren" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Sjabloon" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Dupliceren" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Planning" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Zoeken" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notities" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "Betalen." #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Zoeken kan niet leeg zijn" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Deze zoektekst bestaat al op positie %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Annuleren" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Voorwaarde" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Zoeken:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_In:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Hoofdlettergevoelig" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "_Reguliere expressie" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Bedrag:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_EN" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Toewijzingen" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Begunstigde:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Overschrijven" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Betaling" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Labels:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Kan deze opdracht niet dupliceren,\n" "'%s' bestaat al." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regel %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Als je een toewijzing verwijdert zal deze definitief verloren gaan." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Verplaatsen naar..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Regel verplaatsen" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Verplaatsen" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Toewijzingen beheren" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Deze assistant zal je helpen bij het instellen van een minimum configuratie\n" "voor een nieuw HomeBank-bestand." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Alle elementen die je hier instelt kunnen later eventueel nog gewijzigd " "worden indien nodig." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Er worden geen wijzigingen aangebracht totdat je op \"Toepassen\" klikt\n" "aan het einde van deze assistent." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank zal een titel tonen voor het hoofdvenster,\n" "dit kan een willekeurig label zijn of je naam." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Titel:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank ondersteunt diverse valuta's. Standaard wordt de volgende valuta " "gebruikt\n" "voor nieuwe rekeningen en rapporten." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Basis:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Extra valuta´s instellen" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Toevoegen" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Niet gevonden" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank kan de categorieën die behoren bij je taal reeds aanmaken\n" "indien er een CSV-bestand daarvan beschikbaar is gesteld door de gemeenschap." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Maak categorieën voor mijn taal aan" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Preset-bestand:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank kan je rekeningen importeren vanaf gedownloade\n" "financiële instellingsbestanden of je kan je rekening handmatig creëren." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Mijn eerste rekening creëren" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Naam:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Dit is een bevestigingspagina,\n" "\n" "klik op 'Toepassen' om de wijzigingen toe te passen" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Start bestandsconfiguratie" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Bestandsopties" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Kies valuta´s" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Kies categorieën" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Rekening creëren" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Eind bestandsconfiguratie" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Geldig" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Naam" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Openen" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Bekende bestanden" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF-bestanden" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX-bestanden" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV-bestanden" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Alle bestanden" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nieuwe rekening wereldwijd" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nieuwe rekening" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "overgeslagen" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d van %d transacties" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transactie(s), %d soortgelijk, %d bestaand, %d geselecteerd" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transactie(s), %d geselecteerd" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Sommige datums kunnen niet omgezet worden. Gelieve de datumvolgorde te " "veranderen om verder te gaan." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importeer %s in_:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "Dit bestand" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "dit account" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Naam: %s\n" "Nummer: %s\n" "Bestand: %s\n" "Codering: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Transacties vanuit bank of creditcard importeren" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Met deze assistent zal je begeleid worden door de invoerprocedure van een of " "meerdere\n" "gedownloade uittreksels vanuit je bank of creditcard, in de volgende " "formaten:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Aanbevolen: .OFX of .QFX\n" "(Soms Money™ of Quicken™ genoemd)\n" "Ondersteund: .QIF\n" "(Gemeenschappelijk Quicken™ bestand)\n" "Alleen ervaren gebruikers: .CSV\n" "(formaat is eigen aan HomeBank, raadpleeg de documentatie)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Er worden geen wijzigingen aangebracht totdat u op \"Toepassen\" klikt aan " "het einde van deze assistent." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Dit niet meer tonen" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Sleep een of meerdere bestanden naar hieronder om te importeren.\n" "Je kan ook de ´Toevoegen´ (+) en Verwijderen´ (-)-knoppen gebruiken om " "bestanden toe te voegen of te verwijderen.." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "De geselecteerde bestanden bevatten te veel rekeningen,\n" "klik a.u.b. op de knop ´Terug´ om minder bestanden te selecteren." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Identificatie van doelrekening via naam of nummer mislukt." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Datum volgorde:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "Memo's _importeren" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Memo's met begunstigden omruilen" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Naam:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX-_memo:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Zin_ hoofdlettergevoelig memo/begunstigde" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Bedrag _aan/uit" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Soortgelijke transactie in doelrekening (mogelijk duplicaat)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dagen" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "De overeenkomst gebeurt op basis van respectievelijk de rekening, het bedrag " "en de datum.\n" "Een datum tolerantie van 0 dagen betekent een exacte overeenkomst." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "Optie" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "Als in behandeling importeren" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Voer automatisering uit" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "Aanvullen met standaardwaarden van de begunstigde" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Voer _automatische toewijzingsregels uit" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Klik op \"Toepassen\" om je rekeningen bij te werken." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Welkom" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Kies bestand(en)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importeer" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Bevestiging" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Bestandsformaat fout" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Het CSV-bestand moet het juiste aantal kolommen bevatten,\n" "gescheiden door een puntkomma. Zie de helpinformatie voor meer details." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Weet je zeker dat je de invoer wilt wissen?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Als je doorgaat, wordt ieder bedrag op 0 gezet." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Vrijgeven" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget voor %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Budget beheren" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "CSV _importeren..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "CSV e_xporteren..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "is elke maand hetzelfde" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Wis invoer" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "is elke maand verschillend" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Opties" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "Het bewaken van deze categorie _verplichten" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Maa" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mei" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Samenvatting" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totalen" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Jaarlijks\n" "Totaal" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Maandelijks\n" "Gemiddeld" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Maandelijks" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Voeg een categorie toe" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "Toep_assen" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Hoofdcategorie" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Categorienaam" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Deze categorie is in gebruik.\n" "Iedere transactie van deze categorie wordt op (geen categorie) gezet." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Voeg categorieën samen" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transacties toegewezen aan de categorie '%s', zullen verplaatst worden naar " "de hieronder geselecteerde categorie." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Doelcategorie" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "De categorie '%s' _verwijderen" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Weet je zeker dat je de invoer voor '%s' wilt wissen?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "Het gehele budget wissen." #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" "Weet je zeker dat je het budget permanent\n" "wilt vrijmaken?" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "_Wis alles..." #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Voeg categorie toe" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Categorie verwijderen" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Samenvoegen" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Wis invoer" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Ongebruikte categorieën verwijderen" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Weet je zeker dat je alle ongebruikte categorieën\n" "definitief wilt verwijderen?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Dubbele categorienaam. Probeer een andere naam." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Categorie bewerken" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Type wijzigen" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Inkomen" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Naar _kinderen verspreiden" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan deze categorie niet hernoemen \n" "van '%s' naar '%s', \n" "omdat de nieuwe naam al in gebruik is." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Categorie '%s' samenvoegen" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transacties toegewezen aan deze categorie, worden\n" "verplaatst naar de onderstaande geselecteerde categorie." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "_Subcategorieën inbegrepen" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "De category '%s' (en budget) _verwijderen" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Categorieën beheren" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Verborgen tonen" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Gebruik tonen" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Ongebruikt verwijderen..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Verplaatsen/Samenvoegen" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Tonen/Verbergen" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nieuwe categorie" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nieuwe subcategorie" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Basisvaluta" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbool" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Wisselkoers" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Laatst gewijzigd" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Bewerk valuta" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Valuta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Opmaak" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Aanpassen" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbool:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Hee_ft voorkeur" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Decimaalscheider" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Aantal decimalen:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Duizendtalscheider" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Kies basisvaluta" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Selecteer valuta" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO Code" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Voeg eigen _valuta toe" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Online fout aanpassen" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Als je een valuta verwijdert zal deze definitief verloren gaan." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Basisvaluta aanpassen" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Als je verdergaat worden de koersen van\n" "de valuta's op nul gezet. Vergeet niet deze aan te passen!" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valuta" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Update online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Gesprekslogboek" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Gebruik als basis" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Bestandsstatistieken" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transactie" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Bijwerken" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Selecteer basisvaluta" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Vanaf versie 5.1 kan HomeBank meerdere valuta's hanteren.\n" "Als valuta hieronder niet correct is, kan je deze aanpassen:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Valuta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Als QIF exporteren" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importeer uit CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "HomBank-bestand openen" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "HomeBank-back-upbestand openen" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Sla HomeBank-bestand op als" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank-bestanden" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Bestandsback-up" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Alle back-ups" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Opslaan van veranderingen voor afsluiten?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Als je niet opslaat, zijn de veranderingen definitief verloren.\n" "Aantal veranderingen: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Sluiten _zonder opslaan" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exporteren als _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Map" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Kies een map" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Bestandsnaam:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Statuskolom toevoegen" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detail gesplitste regels" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Het bestand zal niet in het HomeBank CSV-formaat zijn omdat je exporteert\n" "van 'Alle transacties', of je hebt een optie geselecteerd." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Als PDF exporteren" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Als _pdf exporteren" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Bij HomeBank, wordt het afdrukken op een ecovriendelijke manier gedaan\n" "namelijk in het meest gebruikte digitale formaat, het PDF-formaat. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Actie voor doelcreatie selecteren" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "_Nieuw creëren" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "_Selectie gebruiken" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Bron overboeking" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Voorgestelde doelassociatie" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank heeft een transactie gevonden die mogelijk de bijhorende transactie " "is voor de interne overboeking." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Geen overeenkomst met transactie." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Invoer van -30 tot -15 om te filteren op uitgaven" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memo:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Nummer:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Uitgave-overboeking" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Inkomenoverboeking" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Standaardwaarden" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Opslaan & Gebruiken" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Gebruiken" #: ../src/ui-filter.c:1370 msgid "default" msgstr "standaard" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Bedrag/Tekst" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Altijd tonen" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Ongeldig" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Toegevoegd" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Bewerkt" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(standaard)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Filter hernoemen" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Nieuwe filter %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Filternaam" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "Op_slaan als...." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Hernoemen…" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Vervaldatum" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Volgende uitbetaling" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Vooraf" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Bestandseigenschappen" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Geplande transacties" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "van elk" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "maand" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Per uur verdienen:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Niet-gebruikte begunstigde verwijderen" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Weet je zeker dat je niet-gebruikte begunstigde \n" "definitief wilt verwijderen?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Dubbele naam begunstigde. Probeer een andere naam." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Begunstigde bewerken" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Standaard vulling" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "_Betaling" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan de Begunstigde niet hernoemen\n" "van '%s' naar '%s',\n" "omdat de nieuwe naam al in gebruik is." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Samenvoegen begunstigde '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transacties toegewezen aan deze begunstigde, worden\n" "verplaatst naar de onderstaande geselecteerde begunstigde." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "De begunstigde '%s' verwijderen" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Deze begunstigde is gebruikt.\n" "Iedere transactie van deze begunstigde wordt gezet op (geen begunstigde)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Begunstigden beheren" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nieuwe begunstigde" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Weergave" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "Thematiseren" #: ../src/ui-pref.c:92 msgid "Color" msgstr "Kleur" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Taal" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transacties" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "Dialoogvenster" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Overboeking" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importeren/Exporteren" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Rapport" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Prognose" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Back-up" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Mappen" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Geavanceerd" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Systeemtaal" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Kies een standaard HomeBank-bestandsmap" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Kies een standaard HomeBank-back-upbestandsmap" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Kies een standaard importmap" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Kies een standaard exportmap" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "Betaling toont en kiest" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Slepen en neerzetten gebruiken om te herschikken" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "Valuta API" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "URL:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Sleutel:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Algemene opties" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX-opties" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF-opties" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV-opties" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(alleen import transacties)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Scheiding:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Hoofdvensterrapporten" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max _items" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Aanvankelijk filter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistiekopties" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Volgens _bedrag tonen" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "_Ratiokolom tonen" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "_Details tonen" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Budgetopties" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Prognose inschakelen" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Maandnummer:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Inschakelen" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Voorinstelling:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Configuratie" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Gebruikersinterface" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Taal:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "Datumweergave:" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "A_anpassen" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "Formaat:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a afgekorte naam van de weekdag.\n" "%A volledige naam van de weekdag. \n" "%b afgekorte maandnaam. \n" "%B volledige maandnaam. \n" "%c passende datum- en tijdweergave. \n" "%C eeuwnummer (het jaar gedeeld door 100 en ingekort tot een geheel getal) " "als een decimaal getal [00-99]. \n" "%d dag van de maand als een decimaal getal [01,31]. \n" "%D hetzelfde als %m/%d/%j. \n" "%e dag van de maand als een decimaal getal [1,31]; een enkel cijfer wordt " "voorafgegaan door een spatie. \n" "%j dag van het jaar als een decimaal getal [001.366]. \n" "%m maand als een decimaal getal [01,12]. \n" "%p passende datumweergave. \n" "%y jaar zonder eeuw als een decimaal getal [00,99]. \n" "%Y jaar met eeuw als een decimaal getal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Boekjaar" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Begint _op" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Meeteenheden" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "_Mijlen voor kilometerteller gebruiken" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Gallon als brandstofeenheid gebruiken" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Herinnering altijd tonen" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Altijd ongeldig tonen" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Herinneringen opnemen in balans en rapporteren" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Gereconcilieerd vergrendelen voor eventuele wijzigingen" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "Grootboekvenster" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Toekomstig tonen:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dagen op voorhand" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Gereconcilieerd verbergen" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Transactiedialoog" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "Bewaar laatste datum wanneer meerdere toevoegen of overnemen" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "_Memo autoaanvullen inschakelen met" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "glijdende dagen" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Toevoegen van bevestigingstekst voor 5s tonen" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Sjabloonlijst tonen bij bewerken" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "Gedrag" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "Bij het toevoegen altijd selectie _actie voor doelvenster tonen" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "Datumgat om een doel te vinden:" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "Synchroniseren" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "_Datum" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "Thema" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "Donkere modus" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "Systeem heeft geen voorkeur" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "Systeem heeft de voorkeur aan donker" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "Systeem heeft de voorkeur aan licht" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "_Donkere modus gebruiken indien beschikbaar" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "Pictogrammen" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "_Icoon thema:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "_Symbolische pictogrammen gebruiken indien beschikbaar" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk-instellingen" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "_Lettergrootte" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "Grafiek" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "_Palet:" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "Andere" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "_Uitgaven" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "_Waarschuwing" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Rasterlijn:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Grafiekopties" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Kleiner legende_lettertype" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Werkbalk:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Automatische back-ups inschakelen" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Aantal te bewaren back-ups:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Back-upfrequentie is eenmaal per dag" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Portfeuilles:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Back-ups:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Bestanden uitwisselen" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importeren:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exporteren:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Programma start" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Opstartscherm tonen" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Laatst geopend bestand laden" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Nog te behandelen geplande transacties boeken" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Valuta online aanpassen" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Alle voorkeuren resetten" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Wil je echt alle voorkeuren naar\n" "de oorspronkelijke waarden\n" "terugzetten?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Voorkeuren" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informatie" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Je dient HomeBank te herstarten\n" "om de taalwijziging van kracht te laten worden." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "De back-upmap is gewijzigd,\n" "mogelijk moet je het '.bak'-bestand naar deze nieuwe locatie kopiëren." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Ongebruikte tag verwijderen" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Weet je zeker dat je\n" "de ongebruikte tag permanent wilt verwijderen?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Dubbele tagnaam. Probeer een andere naam." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Tag bewerken" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan dit label niet hernoemen,\n" "van '%s' naar '%s',\n" "omdat dit label reeds bestaat." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Voeg label '%s' samen" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transacties toegewezen aan dit label,\n" "zullen verplaatst worden naar het hieronder geselecteerde label." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Verwijder het label '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Dit label wordt al gebruikt.\n" "Dit label zal worden verwijderd uit elke transactie die er gebruik van maakt." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Labels Beheren" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nieuw label" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transactie van %s gecreëerd." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Wil je de interne overboeking afbreken?\n" "\n" "Doorgaan zal de doeltransactie verwijderen." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "Ver_breek" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "_Geplande tonen" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "_Alle rekeningen tonen" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Een sjabloon gebruiken" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Toevoegen & _Bewaren" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Transactie toevoegen" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Voeg sjabloon toe" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Transactie overnemen" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Sjabloon overnemen" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Bewerk transactie" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Bewerk sjabloon" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- type: d, d/m, m/d een volledige datum\n" "- gebruik pijltjestoets + ctrl of shift\n" "- laat leeg voor datum van vandaag" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "N_aar:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Transactie opsplitsen" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Geen tarief beschikbaar om automatisch in te vullen" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "R_ekening" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Boek _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- type een letter voor auto-aanvulling\n" "- type andere tekst om een nieuwe begunstigde en/of categorie te creëren" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_gorie:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Waarschuwing: bedrag en teken van categorie komen niet overeen" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Meerdere transacties bewerken" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Type als\n" "overboeking" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Wil je alle gesplitste regels verwijderen?" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Alles verwijderen" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Prefix met -/+ om het teken te forceren" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Toepassen" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Annuleren" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Transactiebedrag:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Niet toegewezen" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Som van de opsplitsingen:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Limiet aantal splitsingen bereikt" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Waarschuwing: som van de opsplitsingen en het transactietype komen niet " "overeen" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Waarschuwing: som van de opsplitsingen en het transactiebedrag komen niet " "overeen" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(geen type)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Contant" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Activa" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kredietkaart" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Passiva" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Zichtrekening" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Spaarrekening" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "Dagelijks" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "Wekelijks" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "Jaarlijks" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "dag(en)" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "we(e)k(en)" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "maand(en)" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "ja(a)r(en)" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "Eerste" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "Tweede" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "Derde" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "Vierde" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "Laatste" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dag" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "Maandag" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "Dinsdag" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "Woensdag" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "Donderdag" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "Vrijdag" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "Zaterdag" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "Zondag" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Mogelijk" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Voor" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Na" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Overslaan" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Tijd" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Rekeninggroep" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Jaar" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Week" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Twee weken" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Kwartaal" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Half jaar" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Inclusief" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Uitsluiten" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Gisteren" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Morgen" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Vorige week" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Deze week" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Volgende week" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Vorige twee weken" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Deze twee weken" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Volgende twee weken" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Vorige maand" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Deze maand" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Volgende maand" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Vorige kwartaal" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Dit kwartaal" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Volgend kwartaal" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Vorig jaar" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Dit jaar" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Volgend jaar" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "Jaar tot op heden" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "Maand tot op heden" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "Alles tot op heden" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Vorige 90 dagen" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Vorige 60 dagen" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Vorige 30 dagen" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Vorige 12 maanden" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 dagen rond" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Alle datums" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Aangepast" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Deze maand" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Volgende maand" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Volgende 30 dagen" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Volgende 60 dagen" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Volgende 90 dagen" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Maximum boekingsdatum" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Uitgaven en inkomen" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Elk type" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Iedere status" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Niet-vereffend" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Niet gereconcilieerd" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Geen categorie" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "Niet-goedgekeurd" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Systeemstandaarden" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Alleen pictogrammen" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Enkel tekst" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Tekst onder pictogrammen" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Tekst naast pictogrammen" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontaal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertikaal" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Beiden" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-j" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-j" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "j-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Negeren" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Aan nummer toevoegen" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Aan Memo toevoegen" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Toevoegen aan begunstigden" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tab" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Komma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Puntkomma" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Spatie" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Januari" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februari" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Maart" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juni" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juli" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Augustus" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "December" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Zoeken…" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Elke markering" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Bannkoverboeking" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debetkaart" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Doorlopende opdracht" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronische betaling" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Storting" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Bankkosten" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Automatische incasso" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Mobiele telefoon" homebank-5.9.1/po/da.po0000644000175000017500000034736614775770060010375 # Danish translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-10-07 11:57+0000\n" "Last-Translator: Søren Halkier Christensen \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Privatøkonomi" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Personlig, nem og gratis økonomistyring for alle" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "økonomi;regnskab;budget;personlig;penge;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank er et gratis program, som kan hjælpe dig med at styre din " "privatøkonomi" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Det er designet til at være brugervenligt og giver dig mulighed for at " "analysere din privatøkonomi i detaljer ved hjælp af effektive " "filtreringsværktøjer og flotte grafer." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Hvis du er på udkig efter en ganske gratis og nem måde at styre din " "privatøkonomi på, så bør HomeBank være dit valg." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transaktioner" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transaktioner, %d valgt, gns: %s, sum: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Låst. Klik for låse op" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Låst op. Klik for at låse" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Life Energy" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "\"Indtjening pr. time\" er ikke angivet i den aktuelle Wallet" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Er du sikker på at du vil slette de %d valgte transaktioner?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Hvis du sletter en transaktion, vil den permanent være tabt." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Slet" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Er du sikker på at du vil ændre statusen til Ingen?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Nogle af dine valgte transaktioner er allerede Afstemt." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Ændr" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Er du sikker på at du vil ændre status til Godkendt" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Er du sikker på, at du vil ændre status på Reconciled?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "Slå _til/fra" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Er du sikker på at du vil oprette skabeloner ud fra de %d valgte " "transaktioner?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Opret" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Opret skabelon" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d oprettet med forududvalgt ikon" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Er du sikker på, at du vil oprette standardbetalinger ud fra de %d valgte " "transaktioner?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Opert opgave" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Alle transaktioner" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Der er %d lignende transaktioner" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Der blev ikke fundet lignende transaktioner!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Tjek internt overførselsresultat" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Ingen uoverensstemmelse fundet!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Uoverensstemmelser fundet: %d\n" "Vil du gennemgå og rette?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Hvert transaktionsbeløb vil blive delt med %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Er du sikker på, at du vil konvertere denne konto til Euro som hovedvaluta?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Konvertér" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Ingen transaktioner ændret" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transaktion ændret: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Resultat af autoudført opgave" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Tilføj..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Arv..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Rediger..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ingen" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Godkendt" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Afstemt" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Ingen" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Rød" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Orange" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Gul" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Grøn" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Blå" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Lilla" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Flag" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Rediger _Flere..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Se _Opdeling" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Kopier beløb" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Opret skabelon..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Opret opgave..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Slet..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Op" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Ned" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Eksporter QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Eksporter CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Udskriv…" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Browse Websiden" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Luk" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Konto" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopiér" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Indsæt" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Indsæt (dags dato)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Kopier udkllipsholder" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Find" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Rediger" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marker dubletter..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Tjek intern overførsel" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Autoudfør opgaver" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Konvertér til Euro" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Værktøjer" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Flyt transaktion op" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Flyt transaktion ned" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Tilføj ny transaktion" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Tilføj" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Arv fra den aktive transaktion" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Arv" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Rediger den aktive transaktion" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Rediger" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Marker som Godkendt for de valgte transaktioner" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Markerer Afstemt for de valgte transaktioner" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Redigér flere transaktioner" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Slet valgte transaktion(er)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Afstemte ændringer er" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(lukket)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Vis" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Opdater" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Dato _spænd:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Skift visning til %d dage frem" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Rediger filter" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Ryd filter" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Opdater resultater" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Vis Life Energy" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro sekundær" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Afstemt:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Godkendt" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "I dag:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Fremtidig:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Vend tilbage gemte ændringer i filen '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "-Ændringer i filen, vil gå tabt\n" "-Filen vil blive genindlæst fra den sidste gem (.xhb ~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Fortryd Ændringer" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Er du sikker på du vil anonymisere filen?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Fortsættelse vil anonymisere al tekst, \n" "som 'konto x', 'betaler/modtager y', 'note z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymiser" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Velkommen til Homebank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Luk" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Åbne _sidst åbnede fil" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Opret en _ny fil" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Åbne en eksisterende fil" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Åben _eksempel på filen" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Læs HomeBank _Manual" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Rediger _indstillinger" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Vis dette vindue næste gang" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Du er ved at indlæse backup-filen '%s'.\n" "\n" "Er du sikker på at du vil gøre det?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Åbn backup filen?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Åbn backup" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Kunne ikke åbne filen \"%s\", filen eksisterer ikke.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Ukendt fejl" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O fejl for fil '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Filen '%s' er ikke en gyldig HomeBank fil." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Filen '%s' blev gemt i en højere version af HomeBank\n" "og kan ikke indlæses af den aktuelle version." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Filfejl" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Filen er blevet ændret, efter den er indlæst." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Hvis du gemmer den, vil alle eksterne ændringer måske mistes. Gem alligevel?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Gem alligevel" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Ryd" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fil" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Ny" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Åben..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Åbn s_eneste" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Gem" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Gem so_m …" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importér..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exporter som QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Gå tilbage" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Gendan fra backup..." #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Indstillinger..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "Afslut" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Indstillinger..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Vis" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Værktøjslinje" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "T_otal graf" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "T_ime graf" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Lister" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Valutaskift" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Administrér" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Opsætning..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Kon_ti..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Betaler/modtager..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategorier" #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Mærker..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Planlagt/skabeloner..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Opgaver..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valuta..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (tabelvisning)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaktioner" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Tilføj..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Vis..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Vis alt..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Indstil Opgavestyring..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Poster planlagte trans." #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "Rapporter" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistik" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trend..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balance..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Køretøj..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Vis velkomstdialog..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Vis datafilstatistik..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymisere..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Hjælp" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Indhold" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Få hjælp online..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Tjek for opdateringer..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Udgivelsesnoter" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Rapportér et problem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Oversæt dette program..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Om" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Ny" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Opret en ny fil" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Åbn" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Åbn en fil" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Åbn en nyligt brugt fil" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Gem" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Gem den aktuelle fil" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Konto" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Administrér konti" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Betaler/modtager" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Administrér betaler/modtager" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategori" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Administrér kategorier" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Planlagt/Skabelon" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Administrér planlagte/skabelon transaktioner" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Administrér budget" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Opgave" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Administrér automatiske opgaver" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Viser udvalgte konto transaktioner" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Tilføj transaktioner" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistik" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Åben Statistik rapporten" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trend" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Åben trend rapporten" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Åben balance rapporten" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Åben Budget rapporten" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Køretøjsudgifter" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Åben rapport for køretøjsudgifter" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Hjælp" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donér" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Donér til HomeBank projektet" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Planlagt" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Fremtidig" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Påmind" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Idag" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(intet notat)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(kopier)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(ingen kategori)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "ugyldig CSV-format" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Ugyldig dato-område" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Type" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-exp" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-inc" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-exp" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-inc" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "ingen" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "godkendt" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "afstemt" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Mærke" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Betaling" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Beløb" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Tekst" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Ukendt" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mil/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(ingen betaler/modtager)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(ingen gruppe)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(ingen mærke)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Vis programversion" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FIL]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Browser fejl." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Kunne ikke vise adressen '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(ingen institution)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Dine konti" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Kopiér til udklipsholder" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Gruppér efter" #: ../src/hub-account.c:595 msgid "type" msgstr "type" #: ../src/hub-account.c:596 msgid "group" msgstr "gruppe" #: ../src/hub-account.c:597 msgid "institution" msgstr "institution" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Vis alle" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Udfold alle" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Sammenfold alle" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "sum: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Der er ingen transaktion at tilføje" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transaktion tilføjet: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Tjek resultatet af de planlagte transaktioner" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Poster ved programstart" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Til" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Fra" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "maksimum post dato" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Udelad" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Rediger og P_oster" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Postér" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Udgifter / Kategori" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Top %d Udgift / Kategori" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d Udgifter / Fiama/person" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Top %d Udgift / Payee" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Udgift / Konto" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Top %d Udgift / Konto" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Konto-Balance" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Kontogruppe Balance" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Andet" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Totalgraf" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Top på" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Kontogruppe" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Udgifter" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Udgift" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Indkomst" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Indtægt" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Udgifter & Indtægter" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Udgift & Indtægt" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Global Balance" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Tidsgraf" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Global" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "importeret konto" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Samlet total" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "sidst afstemt" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "til maks. kredit" #: ../src/list-account.c:753 msgid "before maximum" msgstr "indtil maksimum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Konti" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Afstemt" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Godkendt" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "I dag" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- del -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- kategori mangler -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Dato" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Note" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Mærker (Tags)" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Pay./Number" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Flag" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Match" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Difference" #: ../src/list-report.c:957 msgid "Average" msgstr "Gennemsnit" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Udestår" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Antal" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Næste dato" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Månedsvis balance %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d under %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Liste" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Vis resultater som en liste" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linje" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Vis resultatet som linier" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detaljer" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Vis detaljer" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Opdatér" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Print" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Balancerapport" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Visning" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Vis tom linje" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filter" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Aktiv:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "Periode" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Fra:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Til:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Vælg:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Alle" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invertér" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Inkluder overførsel" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Forbrug" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Opfyldt" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Måned" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budget pr. kategori" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budget pr. måned" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " over" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " rest" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " under" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "Ej budgetteret" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stak" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Vis resultat som bjælker" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Resultat til clipboard" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Resultat til CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detaljer til clipboard" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detaljer til CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Der er ikke defineret konti til budgettet" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Du bør vælge nogle konti i kontodialogen." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budget rapport" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Visning:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Type:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Kun budgetoverskridelser" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Brugt:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s efter %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "For mange kolonner at vise" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Venligst vælg et bredere interval og/eller et mindre dato-område" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Søjler" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Vis resultat som søjler" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Krans" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Vis resultat som krans" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Vis resultater stakket" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stakket 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Vis resultat stakket 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Signaturforklaring" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Vis signaturforklaring" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Procent" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Vis procentværdi" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistik Rapport" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "Vis ved:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Balance mode" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Prognose" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Sorter efter _beløb" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Sammenlig Udg. & Indt." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "I alt:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Indtægt:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Udgift:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Gennemsnit: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trend Rapport" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Kumuleret" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Element" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_Af:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Tidsdel" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Tæller" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Benzin" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Pris" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Afstand" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Eksportér" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Eksporter som CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Biludgifter, rapport" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategori:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Tæller" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Forbrug:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Benzinudgifter:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Andre udgifter:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Totale udgifter:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ingen)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Synlig" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Kontonavn" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Fejl" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Kan ikke tilføje en konto '%s'.\n" "Navnet eksisterer allerede." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Kan ikke slette konto '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "den har transaction" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Den er mål for xfer transaktion" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Den har en planlagt/skabelon" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "den er mål for xfer planlagt/skabelon" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Er du sikker på, at du permanent vil slette '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Hvis du sletter en konto, vil den permanent være fjernet." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan ikke omdøbe denne bruger\n" "fra '%s' til '%s':\n" "Dette navn findes allerede." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Administrer konti" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Slet" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Omdøb" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Flyt op" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Flyt ned" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Generelt" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "Gruppe:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "Institution:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_ummer:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Start _balance:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Valuta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "denne konto er lukket" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Webside:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Noter:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Adfærd" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatisering" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Standard_Skabelon:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Rapporter eksklusion" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "udelad fra konto_oversigt" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "udelad fra _budgettet" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "udelad fra alle _rapporter" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Diverse" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Aktuelt checknummer" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Checkhæfte_1" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Checkhæfte_2" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Beløbsgrænser" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Overtræk ved:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Maks_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Slet skabelon" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "Denne skabelon bruges som kontoskabelon og kan ikke slettes." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Hvis du sletter en planlagt opgave/skabelon, er den permanent væk." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Næste _dato:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Hver:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Flere valgmuligheder" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Week-end:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Stop efter:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "postér" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Administrer planlagte transaktioner og skabeloner" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Skabelon" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplikér" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Planlagt" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Søg" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Noter" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Søgeparameter skal udfyldes" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Denne søgetekst findes allerede i position %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Annuller" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Betingelser" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Søg:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_I:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Vasalfølsom" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Beløb:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_AND" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Opgaver" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Betaler/modtager" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Overskriv" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Betaling:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Mærker:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Kan ikke kopiere denne opgave,\n" "'%s' eksisterer allerede." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regel %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Hvis du sletter en opgave, vil den permanent være væk." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Flyt til …" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Flyt regel" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Flyt" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Administrer opgaver" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Denne assistent vil hjælpe dig med at opsætte en minimumsløsning\n" "til en ny HomeBank fil." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "Alle parametre du angiver her, kan ændres senere" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Der bliver ikke foretaget ændringer indtil du klikker \"Anvend\"\n" "til slut i denne assistent." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank vil vise en titel i hovedvinduet.\n" "Det kan være en tekst efter ønske eller dit navn." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Titel:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank understøtter flere valutaer. Grundvalutaen er \n" "standarden for alle ny konti og rapporter." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Konfigurer yderligere valutaer" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Tilføj" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Ikke fundet" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank kan på forhånd udfylde kategorier i dit sprog\n" "hvis en CSV-fil er tilgængelig." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Konfigurer kategorier for mit valgte sprog" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Standardfil:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank giver mulighed for import af downloadede filer fra din\n" "finansielle institution/bank, eller du kan også oprette dine konti manuelt." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Opret min første konto" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Navn:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Dette er en bekræftelsesside,\n" "\n" "klik Anvend for at godkende ændringer" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Påbegynd filopsætning" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Filindstillinger" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Vælg valutaer" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Vælg kategorier" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Opret konto" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Afslut filoprettelse" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Gyldig" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Navn" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Åben" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Kendte filer" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF filer" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX filer" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV filer" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Alle filer" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "ny global konto" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "ny konto" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "sprunget over" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d af %d transaktioner" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transaktion(er), %d ens, %d eksisterende, %d valgt" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transaktion(er), %d valgt" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Nogle datoer kan ikke konverteres. Prøv at ændre datoformatet for at " "fortsætte." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importer %s _til:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "denne fil" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "denne konto" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Navn: %s\n" "Nummer: %s\n" "Fil: %s\n" "Kodning: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importer transaktioner fra bank eller kreditkort" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Med denne assistent bliver du ført gennem processen med import af en eller " "flere\n" "downloadede kontoudtog/udtræk fra din bank eller kreditkortgiver i følgende " "formater:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Anbefalet: .OFX or .QFX\n" "(Some tider benævnt Money™ eller Quicken™)\n" "Understøttet: .QIF\n" "(Common Quicken™ file)\n" "Kun for avancerede brugere: .CSV\n" "(formatet er specifikt for HomeBank, se dokumentationen)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Der vil ikke blive foretaget ændringer før end du trykker Anvend til slut i " "denne assistent." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Vis ikke dette igen" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Træk & Slip en eller flere filer for import.\n" "Du kan også bruge knapperne +/- til at tilføje/slette til/fra listen." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Der er for mange konti i de filer, du har valgt.\n" "Venligst brug tilbageknappen for at vælge færre filer." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "ID af målkonto ved navn eller nummer fejlede" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Datoformat:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importér noter" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Ombyt noter med betaler/modtagere" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Navn:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Note:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Behold store bogstaver" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Skift fortegn på beløb" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Lignende transaktioner er i den modtagende konto (muligvis dublet)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dage" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Søgningen foretages efter : konto, beløb og dato.\n" "En datotolerance på 0 dage betyder et eksakt match" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Kør automatik" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Påfør standard _betaler/modtager" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Kør automatisk _opgaveregler" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Klik Anvend for at opdatere dine konti." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Velkommen" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Vælg file(r)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importér" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Bekræftelse" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Forkert filformat" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV-filen skal indeholde præcis det samme antal kolonner,\n" "adskilt af semi-colon. Se venligst Hjælp for yderligere detaljer." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Er du sikker på, at du vil slette input?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Hvis du fortsætter, vil alle beløb blive nulstillet." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Ryd" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget for %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Håndtér Budget" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Import CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "E_xport CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balance:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "er det samme hver måned" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "Ryd input" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "er forskellig hver måned" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Indstillinger" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Tving overvågning af denne kategori" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maj" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sep" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Resultat" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totaler" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Årlig\n" "Total" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Månedlig\n" "Gennemsnit" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Månedligt" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Tilføj en kategori" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "An_vend" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Forældrekategori" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Kategorinavn" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Denne kategori er anvendt.\n" "Alle transaktioner, som bruger den kategori vil blive sat til (ingen " "kategori)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Flet katgorier" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transaktioner knyttet til kategori '%s', bliver flyttet til kategorien valgt " "nedenfor." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Målkategori" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Slet kategorien '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Er du sikker på, at du vel slette input for '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Tilføj kategori" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Fjern kategori" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Flet" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Ryd input" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Slet ubrugte kategorier" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Er du sikker på, at du permanent vil\n" "slette ubrugte kategorier?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Duplikér kategorinavn. Prøv et andet navn." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Ret kategori" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Ændre type" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Indkomst" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Formér til _children" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan ikke omdøbe denne kategori,\n" "fra '%s' til '%s',\n" "da kategorien allerede eksisterer." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Flet kategori '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transaktioner knyttet til denne kategori\n" "bliver flyttet til kategorien valgt nedenfor." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Inkluder underkategorier" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Administrer kategorier" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Vis skjulte" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Vis brug" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Slet ubrugte..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Flyt/Flet" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Vis/skjul" #: ../src/ui-category.c:2552 msgid "new category" msgstr "Ny kategori" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "Ny underkategori" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Grundvaluta" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Vekselkurs" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Sidst ændret" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Rediger valuta" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Valuta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Tilpas" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Er pre_fix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Decimalkarakter" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Decimalcifre" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Gruppekarakter:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Vælg grundvaluta" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Vælg valuta" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO kode" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Tilføj en valgfri _valuta" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Fejl i online opdatering" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Sletter du en valuta, vil den permanent være væk." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Ændre grundvaluta" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Hvis du fortsætter, bliver kursen for andre valutaer\n" "sat til 0. Husk at opdatere kurserne." #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valutaer" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Opdatér online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Grundvaluta" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Filstatistik" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transaktion" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Opgradér" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Vælg en grundvaluta" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Fra version 5.1 kan HomeBank håndtere adskillige valutaer.\n" "Ret valutaen nedenfor, hvis den ikke er korrekt:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Valuta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Eksporter som QIF..." #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Import fra CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Åbn HomeBank fil" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Åbn HomeBank backup fil" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Gem HomeBank fil som" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank filer" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Fil backup" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "All backup" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Gem ændringer inden der lukkes?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Hvis du ikke gemmer, bliver ændringerne tabt.\n" "Antal ændringer: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Luk _uden at gemme" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Eksporter som _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Mappe:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Vælg en mappe" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Filnavn:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Tilføj statuskolonne" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Vis opdelte transaktioner" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Filen vil ikke være i HomeBank CSV format, da du enten eksporterer\n" "fra 'Alle transaktioner', eller du har valgt en anden option." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Eksportér som PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Eksportér som _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Udskrivning med HomeBank har en miljøvenlig tilgang gennem anvendelse\n" "af det mest udbredte digitale udskrivningsformat, nemlig PDF-formatet. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Opret _nyt" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank har fundet transaktioner, som kan være knyttet til transaktionen " "for den interne overførsel." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "Note:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Reset" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Gem & brug" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Brug" #: ../src/ui-filter.c:1370 msgid "default" msgstr "standard" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Beløb/tekst" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Vis altid" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Annulleret" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Tilføjet" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Redigeret" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(standard)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Nyt filter %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Filter navn" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Gem som..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Omdøb …" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "På forfalsdato" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Næste betaling" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Forud" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Programopsætning" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Planlagte transaktioner" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "hver" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "måned" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Slet ubrugt betaler/modtager" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Er du sikker på at du vil slette ubrugte\n" "betalere/modtagere permanent?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Rediger betaler/modtager" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Betaling:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan ikke omdøbe denne betaler/modtager,\n" "fra '%s' til '%s'.\n" "Dette navn eksisterer allerede." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Flet betaler/modtager '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transaktioner tilknyttet denne betaler/modtager,\n" "vil blive flyttet til betaleren/modtageren valgt nedenfor." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Slet betaler/modtager '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Denne betaler/modtager er anvendt.\n" "Enhver transaktion med denne betaler/modtager vil blive sat til (ingen " "betaler/modtager)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Håndter betaler/modtagere" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "ny betaler/modtager" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Grænseflade" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "National" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transaktioner" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Overført" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Import/Eksport" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Rapport" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Prognose" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Backup" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Mapper" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Avanceret" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Systemsprog" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Vælg en mappe til HomeBank datafiler" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Vælg en mappe til HomeBank backup-filer" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Vælg en standard import mappe" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Vælg en standard eksport mappe" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Brug træk og slip for reorganisering" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "Valuta API" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Generelle indstillinger" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX indstillinger" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF indstillinger" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV indstillinger" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(kun import af transaktioner)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separator:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Hovedvinduets graf/rapport:" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max _antal:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Initial filter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistik indstillinger" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Vis efter _beløb" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Vis _hyppighedskolonne" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Vis _detaljer" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Budget indstillinger" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Aktiver prognose" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Månedsnummer:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Aktivér" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Forvalg:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Konfiguration" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Brugerflade" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Sprog:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a nationalt forkortet ugedagsnavn.\n" "%A nationalt fuldt ugedagsnavn. \n" "%b nationalt forkortet månedsnavn. \n" "%B nationalt fuldt månedsnavn. \n" "%c national dato- og tidsformat. \n" "%C århundredenummer (årstal divideret med 100 og afkortet til et heltal) som " "[00-99]. \n" "%d dag i måneden som et decimaltal [01,31]. \n" "%D samme som %m/%d/%y. \n" "%e dag i måneden som et decimaltal [1,31]; enkelttegn er med foranstillet " "mellemrumstegn. \n" "%j dag i året som decimaltal [001,366]. \n" "%m måneden som decimaltal [01,12]. \n" "%p nationalt anvendt datoformat. \n" "%y årstal uden århundrede som decimaltal [00,99]. \n" "%Y årstal med århundrede som decimaltal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Regnskabsår" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Starter _den:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Måleenheder" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "anvend mil til kilometertæller" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Anvend gallon til brændstof" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Vis altid påmindelser" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Vis altid annullerede transaktioner" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Lås afstemte for ændringer" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Vis fremover:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dage fremad" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Skjul afstemte" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Transaktionsdialog" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "Behold seneste dato ved multibel tilføjelse eller nedarvning" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Muliggør _memo autoudførelse med" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "løbende" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Vis bekræftelse i 5 sek" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk-indstillinger" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Gitterlinjer:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Graf indstillinger" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Mindre _font" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Værktøjsbjælke" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "Aktiver automatisk backup" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "Antal gemte sikkerhedskopier:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Frekvensen for backup er en gang dagligt" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "Datafiler:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Backup:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Filudveksling" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importer:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "Eksporter:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Program start" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Vis startbillede" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Indlæs sidst åbnet fil" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Poster aktuelle planlagte transaktioner" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Opdater valutaer online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Nulstil alle indstillinger" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Vil du virkelig nulstille\n" "alle indstillinger til start-\n" "værdierne?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Indstillinger" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Du bliver nødt til at genstarte HomeBank\n" "før sprogændringen træder i kraft." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Filmappen til backup er ændret,\n" "du bør kopiere '.bak' filerne til den nye placering." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Slet ubrugt mærke" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Er du sikker på, at du permanent\n" "vil slette ubrugte mærker?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Dubleret mærke. Prøv et andet navn." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Redigér mærke" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan ikke omdøbe denne Tag,\n" "fra '%s' til '%s',\n" "dette navn eksisterer allerede." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Flet mærket '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transaktioner med dette mærke,\n" "vil blive flyttet til det nedenfor valgte mærke." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Slet mærket '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Dette mærke er brugt.\n" "Mærket vil blive slettet alle transaktion der bruger det." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Administrer Mærker" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nyt mærke" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transaktion af %s oprettet." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Vil du afbryde den interne overførsel?\n" "\n" "En fortsættelse vil slette target transaktionen." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "Af_bryd" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Vis _planlagte" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Vis _alle konti" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Brug en skabelon" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Tilføj og _Behold" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Tilføj transaktion" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Tilføj skabelon" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Kopieret transaktion" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Arv skabelon" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Rediger transaktion" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Redigér skabelon" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Dato:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- skriv: d, d/m, m/d en hel dato\n" "- brug piletaster + ctrl eller shift\n" "- blank giver dags dato" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_Til:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Opdelte transaktioner" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "K_onto:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Bog _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- skriv bogstaver for autoudførelse\n" "- skriv en ny tekst for at oprette denne" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Kate_gori:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Advarsel: Fortegn og kategori matcher ikke" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Rediger flere transaktioner" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Skriv som\n" "overfør" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Vil du slette alle opdelinger" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Slet alle" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Angiv -/+ for at gennemtvinge fortegn" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Anvend" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Annullér" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Transaktionsbeløb:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Ej tilknyttet:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Sum af opdeling:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Grænse for antal opdelinger er nået" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Advarsel: Sum af opsplitning vs. transaktionstype passer ikke" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Advarsel: Sum af opsplitning vs. transaktionsbeløb passer ikke" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(ingen type)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Kontant" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Aktiv" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditkort" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Passiv" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Anfordring/Check" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Opsparing" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dag" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Mulig" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Før" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Efter" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Udelad" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Periode" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Konto Gruppe" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "År" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Uge" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "To uger" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Kvartal" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Halvårligt" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Inkludér" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Udelad" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "I går" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "I morgen" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Sidste uge" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Denne uge" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Næste uge" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Sidste to uger" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Aktuelle to uger" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Næste to uger" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Sidste måned" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Denne måned" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Næste måned" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Sidste kvartal" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Dette kvartal" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Næste kvartal" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Sidste år" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Dette år" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Næste år" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Seneste 90 dage" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Seneste 60 dage" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Seneste 30 dage" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Seneste 12 måneder" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Indenfor 30 dage" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Alle datoer" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Denne måned" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Næste måned" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Næste 30 dage" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Næste 60 dage" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Næste 90 dage" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Udg. & Indt." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Type, alle" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Status, alle" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Ej godkendt" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Ej afstemt" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Uden kategori" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "System standarder" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Kun ikoner" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Kun tekst" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Tekst under ikoner" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Tekst ved siden af ikoner" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Vandrette" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Lodrette" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Begge" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-å" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-å" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "å-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorér" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Tilføj til note" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Tilføj til Betaler/modtager" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulator" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Komma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Semikolon" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Mellemrum" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Januar" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februar" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Marts" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juni" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juli" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "August" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "December" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Søg …" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Flag, alle" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Check" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Bankoverførsel" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Dankort/Debitkort" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Stående ordre" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronisk betaling/Giro" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Indskud" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "BankGebyr" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Bet.Service/Direkte Debitering" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Mobiltelefon" homebank-5.9.1/po/it.po0000644000175000017500000035713514775770007010421 # Italian translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # Francesco Namuri , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-04-02 15:51+0000\n" "Last-Translator: Andre Juanel \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finanze Personali" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Gestione facile e gratuita della contabilità personale" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finanza;contabilità;bilancio;personale;soldi;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank è un software libero (sia come \"libertà di parola\" che come " "\"ingresso libero\") che vi aiuterà a gestire la contabilità personale." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "È stato progettato per essere facile da usare ed è in grado di analizzare le " "vostre finanze personali in dettaglio utilizzando potenti strumenti di " "filtro e bellissimi grafici." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Se siete alla ricerca di un modo completamente gratuito e facile di gestire " "la vostra contabilità personale, HomeBank è il software che fa per voi." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "%d da confermare" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d movimenti" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d movimenti, %d selezionati, media: %s, somma: %s (%s-%s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Bloccate. Clicca per sbloccare" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Sbloccate. Clicca per bloccare" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Energia Vitale" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "Lo stipendio orario non è impostato per il Portafoglio in uso." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Sei sicuro di voler eliminare %d movimenti selezionati?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Se elimini un movimento, sarà perso in modo definitivo." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Elimina" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Sei sicuro di voler cambiare lo stato a Nessuno?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Alcuni movimenti nella selezione sono già Riconciliati." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Cambia" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Sei sicuro di voler cambiare lo stato ad Approvato?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Sei sicuro di voler impostare lo stato a Riconciliato?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "Impos_ta" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Sei sicuro di voler creare dei modelli da %d movimenti selezionati?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Crea" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Crea Modello" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d creato/i con icona di precompilazione" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Sei sicuro di voler creare delle assegnazioni da %d movimenti selezionati?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Crea Assegnazione" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Tutti i movimenti" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Il controllo ha riscontrato %d gruppo/i di movimenti simili" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Non sono stati trovati movimenti simili!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Risultato del controllo dei giroconti" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Nessuna incongruenza trovata!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Trovata incongruenza: %d\n" "Vuoi verificare e correggere?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Ogni importo del movimento sarà diviso in %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Sei sicuro di voler convertire questo conto in Euro come valuta principale?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Converti" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Nessun movimento modificato" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "Movimenti modificati: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Risultato assegnazione automatica" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Aggiungi..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "R_iproponi..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Modifica..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Nessuno" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Approvato" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Riconciliato" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Stato" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Nessuno" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Rosso" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Arancio" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Giallo" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Verde" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Blu" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Porpora" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Simbolo" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "Conferma" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "Scarta (Cancella)..." #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Modifiche m_ultiple..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Mostra su_ddivisione" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copia importo grezzo" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Crea modello..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Crea assegnazione ..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Elimina..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Su" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Giù" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Esporta QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Esporta CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Stampa..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Sito Web" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Chiudi" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Conto" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copia" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Incolla" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Incolla (oggi)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Copia negli appunti" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Cerca" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Modifica" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Contrassegna duplicati..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Controlla giroconti" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Auto assegnazioni" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Converti in Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Strumenti" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Sposta movimento in alto" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Sposta movimento in basso" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Aggiungi un nuovo movimento" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Aggiungi" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Riproponi il movimento attivo" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Riproponi" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Modifica il movimento attivo" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Modifica" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Imposta i movimenti selezionati come approvati" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Imposta i movimenti selezionati come riconciliati" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Modifiche multiple a movimenti" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Elimina i movimenti selezionati" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Modifiche a riconciliati" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(chiuso)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Visualizza" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Aggiorna" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Intervallo _data:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Mostra i prossimi %d giorni" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Imposta filtro" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Pulisci filtro" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Aggiorna risultati" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Mostra ore di Energia Vitale" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro _secondario" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Riconciliato:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Approvato:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Oggi:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "In futuro:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Ripristinare le modifiche non salvate nel file '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Le modifiche effettuate al file saranno perse in modo definitivo\n" "- Il file sarà ripristinato dall'ultimo salvataggio (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Ripristina" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Sei sicuro di voler rendere anonimo il file?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Procedendo sarà reso anonimo qualsiasi testo, \n" "come 'conto x', 'beneficiario y', 'descrizione z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "Rendi _anonimo" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Benvenuto in HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Chiudi" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Apri l'u_ltimo file aperto" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Crea un _nuovo file" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Apri un file esistente" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Apri il file di _esempio" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "_Manuale di HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Imposta _preferenze" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Mostra questa finestra la prossima volta" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Stai per aprire il file di backup '%s'.\n" "\n" "Sei sicuro di volerlo fare?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Aprire il file di backup?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Apri backup" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Impossibile aprire '%s', il file non esiste.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Errore sconosciuto" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Errore di I/O per il file '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Il file '%s' non è un file di HomeBank valido." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Il file '%s' è stato salvato con una versione superiore di HomeBank\n" "e non può essere letto dalla versione attuale." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Errore file" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Il file è stato modificato dal momento dell'apertura." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Salvare il file può comportare la perdita di tutte le modifiche esterne. " "Salvare lo stesso?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "S_alva comunque" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Pulis_ci" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_File" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nuovo" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Apri..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Apri _recenti" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Salva" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "S_alva con nome..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importa…" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Esporta come QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Ripristina" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Ripristina backup" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Proprietà..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Esci" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferenze..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Visualizza" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "Barra degli s_trumenti" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Grafico T_otale" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Graf_ico Temporale" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Elenchi sottostanti" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro secondario" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gestione" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Portafoglio..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Conti..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Beneficiari..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorie..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etichette..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Ricorrenze/Modelli..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Assegnazioni..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valute..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (vista tabella) ..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "Movimen_ti" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Aggiungi..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Mostra..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Mostra tutto..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Imposta ricorrenza..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Registra ricorrenti" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Resoconti" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistiche..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Andamento temporale..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "Sal_do..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Costo _veicolo..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Mostra la finestra di benvenuto..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Statistiche file..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Rendi anonimo..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Aiuto" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Guida" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Ottieni aiuto in linea..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Controlla aggiornamenti..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Note di rilascio" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Segnala un problema..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduci questa applicazione..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "Inform_azioni" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nuovo" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Crea un nuovo file" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Apri" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Apri un file" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Apri un file usato di recente" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Salva" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Salva il file attuale" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Conto" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gestisci i conti" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Beneficiario" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gestisci i beneficiari" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categoria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gestisci le categorie" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Ricorrenza/Modello" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gestisci le ricorrenze/modelli" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gestisci il budget" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Assegnazione" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Gestisci le assegnazioni automatiche" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Mostra i movimenti del conto selezionato" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Aggiungi movimenti" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistiche" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Apri il resoconto Statistiche" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Andamento temporale" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Apri il resoconto Andamento temporale" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Apri il resoconto Saldo" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Apri il resoconto Budget" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Costo del veicolo" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Apri il resoconto Costo veicolo" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Aiuto" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Fai una donazione" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Fai una donazione al progetto HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Ricorrenti" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "In futuro" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Promemoria" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Oggi" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(nessuna descrizione)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copia)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(nessuna categoria)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "formato CSV non valido" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Intervallo di date non valido!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tipo" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "mv-usc" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "mv-ent" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "gc-usc" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "gc-ent" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Stato" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "nessuno" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "approvato" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "riconciliato" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etichetta" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Pagamento" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Importo" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Testo" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "non definito" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(nessun beneficiario)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(nessun gruppo)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(nessuna etichetta)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "s%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "t%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "s%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-s%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-t%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-s%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Mostra la versione del programma" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FILE]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Errore di navigazione." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Impossibile visualizzare URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(nessun istituto)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "I tuoi conti" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copia negli appunti" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Raggruppa per" #: ../src/hub-account.c:595 msgid "type" msgstr "tipo" #: ../src/hub-account.c:596 msgid "group" msgstr "gruppo" #: ../src/hub-account.c:597 msgid "institution" msgstr "istituto" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Mostra tutto" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Espandi tutto" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Comprimi tutto" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "somma: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Nessun movimento da aggiungere" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "Movimenti aggiunti: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Risultato del controllo dei movimenti ricorrenti" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Registrazione all'avvio del programma" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Attiva" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Inattiva" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "Data ultima di registrazione" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Totale" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "Sa_lta" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "M_odifica e Registra" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "R_egistra" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "%d principali spese / Categoria" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "%d principali spese / Categoria" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "%d principali spese / Beneficiario" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "%d principali spese / Beneficiario" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "%d principali spese / Conto" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "%d principali spese / Conto" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Bilancio dei Conti" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Bilancio di Gruppo" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Altro" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Grafico totale" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Spese per" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Valori grezzi" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Gruppo" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Spese" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Spese" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Entrate" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Entrate" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Spese & Entrate" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Spese & Entrate" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Bilancio complessivo" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Grafico temporale" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Complessivo" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "Conto importato" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Totale complessivo" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "ultimo riconciliato" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "fino allo scoperto" #: ../src/list-account.c:753 msgid "before maximum" msgstr "prima del massimo" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Conti" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Riconciliato" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Approvato" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Oggi" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- suddiviso -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- questo movimento richiede una categoria -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Numero" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Descrizione" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etichette" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Pagam./Numero" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "Importato" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "Data trascorsa" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Simbolo" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Corrispondenza" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "St." #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Risultato" #: ../src/list-report.c:957 msgid "Average" msgstr "Media" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "In ritardo" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Restanti" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Prossima data" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Bilancio per %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d sotto %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Elenco" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Mostra risultati come elenco" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Riga" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Mostra risultati come grafico a linee" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Dettagli" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Mostra dettagli" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Aggiorna" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Stampa" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Resoconto Saldo" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Mostra" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_vallo:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Mostra riga vuota" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Ingrandimento X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtro" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Attivi:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Intervallo:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Da:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_A:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Seleziona:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Tutti" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inverti" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Includi _giroconti" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Importo" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Completato" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mese" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budget per categoria" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budget per mese" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " in più" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " rimasti" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " sotto" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(fuori budget)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Pila" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Mostra risultati come grafico a barre in pila" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Risultato negli appunti" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Risultato in CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Dettagli negli appunti" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Dettagli in CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Nessun conto definito come conto di budget." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Dovresti includere qualche conto dal menu apposito." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Resoconto Budget" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modalità:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipo:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Solo fuori budget" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "_Fino ad oggi" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Risultato:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Complessivo:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s per %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Troppe colonne per poter visualizzare" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Seleziona un intervallo piu' ampio e/o un range di date piu' corto" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Colonna" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Mostra risultati come grafico a colonne" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Torta" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Mostra risultati come grafico a torta" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Mostra risultati come grafico a pila" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Pila 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Mostra risultati come grafico a pila 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Mostra legenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Tasso" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Mostra percentuali" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Resoconto Statistiche" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Mostra per:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "Modalità _saldo" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "Pre_visione" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Ordina per _importo" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Confronta Spese ed Entrate" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Totale:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Entrate:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Spese:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Media: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Resoconto Andamento temporale" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Accumula" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Elemento" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_Per:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Periodo di tempo" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Percorrenza" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Carburante" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Prezzo" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Esporta" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Esporta come CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Resoconto Costo veicolo" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categoria:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Percorrenza:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumi:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Costo carburante:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Altri costi:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Costo totale:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nessuno)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visibile" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nome Conto" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Errore" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Impossibile aggiungere il conto '%s',\n" "nome già esistente." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Impossibile eliminare il conto '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Contiene movimenti" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "E' riferimento di giroconti" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Contiene ricorrenze/modelli" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "E' riferimento di ricorrenze/modelli di giroconto" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Sei sicuro di voler eliminare definitivamente '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Se elimini un conto, sarà perso in modo definitivo." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossibile rinominare questo Conto,\n" "da '%s' a '%s',\n" "nome già esistente." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gestione Conti" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Elimina" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Rinomina" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Sposta su" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Sposta giù" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Generale" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Gruppo:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "Is_tituto:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umero:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Saldo _iniziale:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Valuta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "questo conto è stato _chiuso" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Sito Web:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Note:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportamento" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automazione" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Modello _preimpostato" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Esclusione resoconti" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "e_scludi dal riepilogo conti" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "sco_mputa nel riepilogo conti" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "escludi dal _budget" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "escludi da tutti i _resoconti" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Varie" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Numero assegno corrente" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Libretto _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Libretto _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limiti di bilancio" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "Sc_operto a:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Ma_ssimo:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Elimina modello" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Questo modello è usato come modello per un conto e non può essere eliminato." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Se elimini una ricorrenza/modello, sarà persa in modo definitivo." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Prossima _data:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "Schema di ricorrenza" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Ogn_i:" #: ../src/ui-archive.c:918 msgid "The" msgstr "Il" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Altre opzioni" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Fine settimana" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Ferma dopo:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "registrazioni" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Gestione movimenti ricorrenti/modelli" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Modelli" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplica" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Ricorrenza" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Ricerca" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Appunti" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "Pagam." #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "La ricerca non può essere vuota." #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Questo testo di ricerca esiste già nella posizione %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Annulla" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condizione" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Cerca:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_In:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Maiu_scole/minuscole" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "Espressione _regolare" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Importo:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_AND" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Assegnazioni" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Beneficiario:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Sovrascrivi" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Paga_mento:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "E_tichette:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Impossibile duplicare questa Assegnazione,\n" "'%s' esiste già." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regola %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Se elimini un'assegnazione, sarà persa in modo definitivo." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Sposta a..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Regola di spostamento" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Sposta" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Gestione assegnazioni" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Questo assistente ti aiuterà a impostare una configurazione minima\n" "per un nuovo file HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Tutti gli elementi impostati qui possono essere modificati in seguito, se " "necessario." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Non verranno apportate modifiche finché non farai clic su \"Applica\"\n" "alla fine di questo assistente." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank visualizzerà un titolo per la finestra principale,\n" "può essere un'etichetta libera o il tuo nome." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Titolo:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank supporta più valute. La valuta di base è\n" "il valore predefinito per i nuovi conti e resoconti." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Imposta valute aggiuntive" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Aggiungi" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Non trovato" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank può precompilare le categorie per la tua lingua\n" "se un file CSV è disponibile e fornito dalla comunità." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configura le categorie per la mia lingua" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "File predefinito:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank consente di importare i tuoi conti scaricati da\n" "file di istituti finanziari oppure creare il tuo conto manualmente." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Crea il mio primo conto" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nome:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Questa è una pagina di conferma,\n" "\n" "premi 'Applica' per applicare le modifiche" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Avvio della configurazione del file" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Opzioni file" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Scegli le valute" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Scegli le categorie" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Crea un conto" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Completa la configurazione del file" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Valido" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nome" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Apri" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Files conosciuti" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "File QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "File OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "File CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Tutti i file" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nuovo conto globale" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nuovo conto" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "tralasciato" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d di %d movimenti" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d movimenti, %d simili, %d esistenti, %d selezionati" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d movimenti, %d selezionati" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Alcune date non possono essere convertite. Prova a modificare l'ordine della " "data per continuare." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importa %s _in:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "questo file" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "questo conto" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nome: %s\n" "Numero: %s\n" "File: %s\n" "Codifica: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importa movimenti dalla banca o carta di credito" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Con questo assistente sarai guidato attraverso il processo di importazione " "di uno o più\n" "estratti conto della tua banca o carta di credito, nei seguenti formati:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Raccomandati:.OFX or .QFX\n" "(Talvolta chiamati Money™ o Quicken™)\n" "Supportati: .QIF\n" "(file Quicken™ comune)\n" "Solo utenti avanzati: .CSV\n" "(formato specifico per HomeBank, vedi documentazione)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Nessuna modifica verrà applicata fino a quando non premerai \"Applica\" alla " "fine di questo assistente." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Non visualizzare più" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Trascina e rilascia uno o più file da importare.\n" "È inoltre possibile utilizzare i pulsanti Aggiungi / Elimina dell'elenco." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Ci sono troppi conti nei file che hai scelto,\n" "usa il pulsante \\\"Vai indietro\\\" e seleziona meno file." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Identificazione conto di destinazione per nome o numero fallita." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Ordine data:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importa descrizioni" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Scambia descrizioni con beneficiari" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "_Nome OFX" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "_Descrizione OFX" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "_Adegua maiuscole/minuscole in Descrizione/Beneficiario" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "In_verti importo" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Movimento simile nel conto di destinazione (possibile duplicato)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "giorni" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Le corrispondenze sono ordinate per: conto, importo e data.\n" "Una tolleranza di 0 giorni indica una corrispondenza esatta" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "Opzioni" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "Importa come pendenti" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Esegui automazione" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Integra con _beneficiario predefinito" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Esegui regole di _assegnazione automatica" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Fai clic su \"Applica\" per aggiornare i tuoi conti." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Benvenuto" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Seleziona file(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importa" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Conferma" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Errore nel formato file" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Il file CSV deve contenere il numero esatto di colonne,\n" "separate da un punto e virgola, consultare la guida in linea per maggiori " "dettagli." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Sei sicuro di voler pulire l'inserimento?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Continuando, ogni importo verrà impostato a 0" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "Pulis_ci" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget per %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gestione Budget" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importa CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "E_sporta CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "è lo stesso ogni mese" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Pulisci inserimento" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "è diverso per mese" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Preferenze" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forza il monitoraggio di questa categoria" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Gen" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mag" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Giu" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Lug" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ago" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sett" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Ott" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dic" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Sommario" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totali" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Totale\n" "Annuale" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Media\n" "Mensile" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mensile" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Aggiungi una categoria" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Applica" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Categoria principale" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nome categoria" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Questa categoria è già presente.\n" "Qualsiasi movimento che usi questa categoria sarà impostato a (nessuna " "categoria)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Unisci categorie" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "I movimenti assegnati alla categoria '%s' verranno spostati nella categoria " "selezionata di seguito." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Categoria destinazione" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Elimina la categoria '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Sei sicuro di voler eliminare gli inserimenti per '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "Pulisci l'intero Budget" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" "Sei sicuro di voler cancellare\n" "permanentemente tutto il budget?" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "_Pulisci tutto..." #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Aggiungi categoria" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Rimuovi categoria" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Unisci" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Pulisci inserimento" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# mov" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Elimina categorie inutilizzate" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Sei sicuro di eliminare definitivamente\n" "le categorie inutilizzate?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Categoria già esistente. Provare con un altro nome." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Modifica categoria" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Cambia tipo" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Entrate" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propaga ai _figli" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossibile rinominare questa Categoria,\n" "da '%s' a '%s',\n" "nome già esistente." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Unisci categoria '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "I movimenti assegnati a questa categoria,\n" "saranno spostati nella categoria sotto selezionata." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Includi _sottocategorie" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "_Cancella la categoria '%s' (ed eventuale budget)" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Gestione Categorie" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Mostra nascosti" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Mostra utilizzo" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Cancella inutilizzati..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Sposta/Unisci" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Mostra/Nascondi" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nuova categoria" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nuova sottocategoria" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Valuta base" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Simbolo" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Tasso di cambio" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Ultima modifica" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Modifica valuta" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Valuta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formato" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalizza" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Simbolo:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Pre_fisso" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Separatore _decimale" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Cifre decimali:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Separatore _gruppo" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Seleziona valuta base" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Seleziona valuta" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Codice ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Aggiungi una _valuta personalizzata" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Errore aggiornamento online" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Se elimini una valuta, sarà persa definitivamente." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Cambia la valuta base" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Se procedi, i tassi delle altre valute\n" "saranno impostati a 0, non dimenticare di aggiornare" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valute" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Aggiorna online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Registro chiamate" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Imposta come principale" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Statistiche file" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Movimento" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Aggiorna" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Seleziona una valuta principale" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "A partire dalla v5.1, HomeBank può gestire più valute\n" "se la valuta sotto non è corretta, per favore cambiala:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Valuta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Esporta come QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importa da CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Apri un file HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Apri un file di backup HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Salva un file HomeBank come" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "File Homebank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "File backup" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Tutti i backup" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Salvare le modifiche nel file prima di chiudere?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Se non salvi, le modifiche saranno perse in modo definitivo.\n" "Numero di modifiche: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Chiudi _senza salvare" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Esporta come _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Cartella:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Seleziona una cartella" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nome file:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Aggiungi colonna Status" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Dettaglio righe suddivise" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Il file non sarà in formato CSV HomeBank, perché esporti\n" "da \"Tutti i movimenti\", oppure hai selezionato un'opzione." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Esporta come PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Esporta come _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Con HomeBank, la stampa salvaguarda l'ambiente, dando\n" "preferenza al formato digitale più diffuso: il formato PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Seleziona un'azione per definire la destinazione" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Crea _Nuovo" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Usa _Selezione" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Origine del trasferimento" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Associazione di destinazione suggerita" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank ha trovato alcuni movimenti che potrebbero essere collegati a " "giroconti." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Nessun movimento corrispondente." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Inserisci un valore tra -30 e -15 per filtrare le spese" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Descrizione:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Numero:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Giroconti in uscita" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Giroconti in entrata" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Reimposta" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Salva & Usa" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Usa" #: ../src/ui-filter.c:1370 msgid "default" msgstr "predefinito" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Importo/Testo" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Mostra sempre" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Vuoto" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Aggiunti" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Modificati" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(predefinito)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Rinomina filtro" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Nuovo filtro %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Nome filtro" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Salva come..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Rinomina..." #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Puntuale" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Prossima paga" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "In anticipo" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Proprietà file" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Movimenti ricorrenti" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "ogni" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mese" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "Stipendio _orario" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Elimina beneficiari inutilizzati" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Sei sicuro di voler eliminare\n" "definitivamente i beneficiari inutilizzati?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Beneficiario già esistente. Provare con un altro nome." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Modifica beneficiario" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Riempimento predefinito" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_gamento:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossibile rinominare questo Beneficiario,\n" "da '%s' a '%s',\n" "nome già esistente." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Unisci beneficiario '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "I movimenti assegnati a questo beneficiario,\n" "saranno spostati nel beneficiario sotto selezionato." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Elimina il beneficiario '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Questo beneficiario è già presente.\n" "Qualsiasi movimento che usi quel beneficiario sarà impostato a (nessun " "beneficiario)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gestione Beneficiari" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nuovo beneficiario" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interfaccia" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "Temi" #: ../src/ui-pref.c:92 msgid "Color" msgstr "Colori" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Lingua" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Movimenti" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "Finestra" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Giroconti" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importa/Esporta" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Resoconti" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Previsione" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Backup" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Cartelle" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Avanzate" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Lingua di sistema" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Scegli una cartella predefinita per i file di HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Scegli una cartella predefinita per i file di backup di HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Scegli una cartella di importazione predefinita" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Scegli una cartella di esportazione predefinita" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "Scelta e ordine delle modalità di pagamento" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Trascina le voci per riordinarle" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "API Valute" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Chiave:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Opzioni generali" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opzioni OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Opzioni QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Opzioni CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(solo importazione movimenti)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separatore:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Resoconti finestra principale" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "N. _massimo elementi:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Filtro iniziale" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opzioni Statistiche" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Mostr_a per importo" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Most_ra colonna percentuali" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Mostra _dettagli" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opzioni Budget" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Attiva pre_visione" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Numero di mesi" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Abilita" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Predefinito:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Configurazione" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interfaccia utente" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Lingua:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "Formato data:" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "_Personalizza" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formato:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a nome della settimana abbreviato nella propria lingua.\n" "%A nome della settimana completo nella propria lingua. \n" "%b nome del mese abbreviato nella propria lingua. \n" "%B nome del mese completo nella propria lingua. \n" "%c rappresentazione della data e dell'ora appropriate nella propria lingua. " "\n" "%C numero del secolo (l'anno diviso per 100 e troncato ad un intero) come " "numero decimale [00-99]. \n" "%d giorno del mese come numero decimale [01,31]. \n" "%D uguale a %m/%d/%y. \n" "%e giorno del mese come numero decimale [1,31]; una cifra singola preceduta " "da uno spazio. \n" "%j giorno dell'anno come numero decimale [001,366]. \n" "%m mese come numero decimale [01,12]. \n" "%p rappresentazione della data nella propria lingua. \n" "%y anno senza secolo come numero decimale [00,99]. \n" "%Y anno con secolo come numero decimale." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Anno fiscale" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Inizia _il:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unità di misura" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Usa _miglia per la percorrenza" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Usa _galloni per il carburante" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Mostra sempre promemoria" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Mostra sempre vuoti" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Includi i promemoria in bilanci e resoconti" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Blocca riconciliati contro ogni modifica" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "Registro movimenti" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "Mo_stra futuri:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "giorni prima" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Nascondi riconciliati" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Dettaglio movimento" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "_Mantieni l'ultima data in aggiunte multiple o riproposizioni" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Abilita autocompletamento _descrizione con" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "giorni ricorrenti" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Mostra conferma dell'aggiunta per 5 secondi" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Mostra la lista dei modelli nella finestra di modifica" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "Comportamento" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "Mostra la _finestra di creazione della destinazione per le aggiunte" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "_Intervallo data di ricerca della destinazione:" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "Sincronizza" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "_Data" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "Tema" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "Tema scuro:" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "Nessuna preferenza di sistema" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "Preferenza di sistema: tema scuro" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "Preferenza di sistema: tema chiaro" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "Usa _tema scuro se disponibile" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "Icone" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "Tema delle _icone:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "Usa icone _simboliche se disponibili" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Impostazioni GTK" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "Sovrascr_ivi" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "_Dimensione carattere:" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "Grafici" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "_Tavolozza:" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "Altri" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "_Usa i colori della tavolozza dei grafici" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "_Spese" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "_Avvisi" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "Sfondo movimenti _futuri" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "Importi _a colori" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "Sfon_do dei movimenti futuri colorato" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Griglia:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Opzioni Grafici" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "_Carattere legenda più piccolo" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Barra degli strumenti:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Attiva backup automatici" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Numero di backup da mantenere:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "La frequenza di backup è una volta al giorno" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Portafogli:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Backup:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "File di scambio" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importazione:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Esportazione:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Avvio programma" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Mostra schermata iniziale" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Carica ultimo file aperto" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Registra i movimenti ricorrenti pendenti" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Aggiorna valute online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Reimposta tutte le preferenze" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Sei sicuro di voler reimpostare\n" "tutte le preferenze ai valori\n" "predefiniti?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferenze" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informazioni" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Devi riavviare HomeBank\n" "affinché il cambio di lingua abbia effetto." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "La cartella di backup è stata modificata,\n" "potresti dover copiare il file '.bak' in questa nuova posizione." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Elimina etichette inutilizzate" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Sei sicuro di voler eliminare definitivamente\n" "le etichette inutilizzate?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Etichetta già esistente. Provare con un altro nome." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Modifica etichetta" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossibile rinominare questa etichetta,\n" "da '%s' a '%s',\n" "Nome già esistente." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Unisci etichetta '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "I movimenti assegnati a questa etichetta,\n" "verranno spostati nell'etichetta selezionata di seguito." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Elimina etichetta '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Questo etichetta è già in uso.\n" "L'etichetta verrà eliminata da qualsiasi movimento che la utilizzi." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gestisci Etichette" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nuova etichetta" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Movimento di %s creato." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Vuoi eliminare il giroconto?\n" "\n" "In tal caso il movimento verso la destinazione sarà eliminato." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Interrompi" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Mostra _ricorrenti" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Mostra _tutti i conti" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Usa un modello" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Aggiungi e _Mantieni" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Aggiungi movimento" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Aggiungi modello" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Riproponi movimento" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Eredita modello" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Modifica movimento" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Modifica modello" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- digita: g, g/m, m/g, una data completa\n" "- usa il tasto freccia + Ctrl o Maiusc\n" "- vuoto per oggi" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_A:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Suddividi movimento" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Nessun cambio disponibile per compilare automaticamente" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Conto" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Libretto _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- digita delle lettere per il completamento automatico\n" "- digita nuovo testo per creare la voce" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_goria:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Stato:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "D_escrizione:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" "Attenzione: il segno dell'importo e della categoria assegnata non " "corrispondono" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Modifiche multiple a movimenti" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Digita come\n" "giroconto" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Vuoi eliminare tutte le righe di suddivisione?" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Elimina tutto" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Anteporre -/+ per forzare il segno." #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Applica" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Annulla" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Importo movimento:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Non assegnato:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Totale suddivisioni:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Il numero massimo di suddivisioni è stato raggiunto." #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Avviso: la somma delle suddivisioni e il tipo di movimento non corrispondono" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Attenzione: la somma delle suddivisioni e l'importo del movimento non " "corrispondono" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(nessun tipo)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banca" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Contanti" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Patrimonio" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Carta di credito" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Passività" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Corrente" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Risparmio" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "Giornaliero" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "Settimanale" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "Annuale" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "giorno/i" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "settimana/e" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "mese/i" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "anno/i" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "Primo" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "Secondo" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "Terzo" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "Quarto" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "Ultimo" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Giorno" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "Lunedì" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "Martedì" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "Mercoledì" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "Giovedì" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "Venerdì" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "Sabato" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "Domenica" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possibile" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Prima" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Dopo" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Salta" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Tempo" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Gruppo" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Anno" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Settimana" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "2 settimane" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestre" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Includi" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Escludi" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Ieri" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Domani" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Settimana scorsa" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Questa settimana" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Prossima settimana" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "2 settimane scorse" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Queste 2 settimane" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Prossime 2 settimane" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Mese scorso" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Questo mese" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Prossimo mese" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Trimestre scorso" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Questo trimestre" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Prossimo trimestre" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Anno scorso" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Quest'anno" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Prossimo anno" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "Da inizio anno" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "Da inizio mese" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "Fino ad oggi" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Ultimi 90 giorni" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Ultimi 60 giorni" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Ultimi 30 giorni" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Ultimi 12 mesi" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 gg. precedenti e seguenti" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Tutte le date" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Personalizzato" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Questo mese" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Prossimo mese" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Prossimi 30 giorni" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Prossimi 60 giorni" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Prossimi 90 giorni" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Data ultima di registrazione" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Spese & Entrate" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Qualsiasi tipo" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Qualsiasi stato" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Non approvato" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Non riconciliato" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Senza categoria" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "Da confermare" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Impostazioni predefinite" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Solo icone" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Solo testo" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Testo sotto le icone" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Testo accanto alle icone" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Orizzontale" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Verticale" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Entrambi" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-g-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "g-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-g" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignora" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Concatena a Numero" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Aggiungi alla Descrizione" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Aggiungi al Beneficiario" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Etichetta" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Virgola" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Punto e virgola" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Spazio" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Gennaio" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Febbraio" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Marzo" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Aprile" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Giugno" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Luglio" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agosto" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Settembre" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Ottobre" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembre" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Dicembre" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Set" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Cerca..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Qualsiasi simbolo" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Assegno" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Trasferimento bancario" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Carta di debito" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Ordine permanente" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pagamento elettronico" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposito" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Rata" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Addebito diretto SDD" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Dispositivo mobile" homebank-5.9.1/po/gl.po0000644000175000017500000035260014775770024010376 # Galician translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-08-05 12:49+0000\n" "Last-Translator: Moe \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finanzas persoais" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Contabilidade persoal, libre e fácil para todos." #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finanzas;contabilidade;orzamento;persoal;diñeiro" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank é un software libre e gratuíto que lle axudará a xestionar a súa " "contabilidade persoal." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Deseñouse para ser doado de empregar e ser capaz de analizar as túas " "finanzas persoais ao detalle empregando poderosas ferramentas de filtrado e " "fermosas gráficas." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Se andas a buscar un xeito totalmente gratuíto e doado para xestionar a túa " "contabilidade persoal, entón HomeBank debería ser a túa elección." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transaccións" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transaccións, %d seleccionadas, media: %s, suma: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Bloqueado. Preme para desbloquear" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Desbloqueado. Preme para bloquear" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Estás segura/o de querer eliminar a %d transacción seleccionada?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Se eliminas a transacción, perderase para sempre." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Eliminar" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Está vostede seguro que quere cambiar o estado a Ningún?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Algunhas transaccións da súa selección xa estaban conciliadas." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Cambiar" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Está vostede seguro de cambiar o estado Conciliado?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Cambiar" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Crear" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Crear un modelo" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Crear Transferencia" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Todas as transaccións" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Hai %d grupos de transaccións semellantes" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Non se atopou ningunha transacción semellante !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Comproba o resultado da transferencia interna" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Non hai inconsistencias!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Atopouse unha incongruencia: %d\n" "Queres revisala e correxila?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "A cantidade de cada transacción dividirase por %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Converter" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Non cambiou ningunha transacción" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transacción cambiada: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Resultado das asignacións automáticas" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Engadir" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Herdar" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Editar..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ningunha" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Limpo" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Conciliado" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Estado" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Ningún" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Vermello" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Laranxa" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Marelo" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Verde" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Azul" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Púrpura" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Edición _múltiple" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Ver _Dividido" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copiar a cantidade bruta" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Crear modelo..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Crear traspaso..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Eliminar..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Subir" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Baixar" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exportar QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportar CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Imprimir…" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Navegar no sitio web" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Pechar" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Conta" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copiar" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Pegar" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Pegar (hoxe)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Atopar" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Editar" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marcar duplicados..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Comprobar transferencia interna" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Autoasignacións" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Converter a Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Ferramentas" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Mover a transacción enriba" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Mover a transacción embaixo" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Engadir unha nova transacción" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Engadir" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Herdar da transacción activa" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Herdar" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Editar a transacción activa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Editar" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Mudar o estado limpo das transaccións seleccionadas" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Mudar o estado conciliado das transaccións seleccionadas" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Editar múltiples transaccións" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Borrar transacción/s escollidas" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Cambios reconciliados é" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(pechado)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Amosar" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "Actualiza_r" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Intervalo de _datas:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Estanse a amosar %d días por adiantado" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Editar o filtro" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Limpar Filtro" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Actualizar resultados" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro_menor" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Conciliado" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Limpo:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hoxe:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futuro:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Reverter os cambios non gardados no ficheiro %s?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "-Os cambios feitos no ficheiro perderanse definitivamente.\n" "-Cargarase o ficheiro gardado por última vez (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Reverter" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Está seguro de que quere facer anónimo o ficheiro?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Procederase a facer anónimo calquera texto,\n" "como \"conta x\", \"beneficiario y\", \"concepto z\", ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "Facer _anónimo" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Benvido/a a HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Pechar" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Abrir _último ficheiro aberto" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Crear un _novo ficheiro" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Abrir un ficheiro xa existente" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Abrir o ficheiro de _exemplo" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Ler o _manual de HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configurar _preferencias" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Mostrar esta fiestra a próxima vez" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Estás a piques de abrir o ficheiro de respaldo '%s'.\n" "\n" "Estás segura/o?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Abrir o ficheiro de respaldo?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "Abrir c_opia de seguranza" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Non se pode abrir '%s', o ficheiro non existe.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Erro descoñecido" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Erro de E/S do ficheiro '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "O ficheiro '%s' non é un ficheiro HomeBank correcto." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "O ficheiro '%s' foi gardado cunha versión máis nova de HomeBank\n" "e non se pode abrir con esta versión." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Erro de ficheiro" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "O ficheiro foi modificado dende que o leu." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Se o garda, todos os cambios externos poderían perderse. Quere gardalo de " "todos os modos?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "G_ardar de todos os modos" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Limpar" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Ficheiro" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Novo" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Abrir" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Abrir _Recente" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Gardar" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "G_ardar como..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importar..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exportar como QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Reverter" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaurar a copia de seguridade" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propiedades..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Saír" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferencias" #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Vista" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Barra de ferramentas" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Listas inferiores" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Submúltiplo de Euro" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Xestionar" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Carteira..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Contas..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Beneficiarios..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorías..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etiquetas..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Planificación/Modelos..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Asignacións" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Moedas..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Orzamento..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Orzamento (vista de táboa)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaccións" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Engadir..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Mostrar..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Mostrar Todo..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Configurar planificador" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Engadir transaccións planificadas" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Informes" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "E_statísticas" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendencia Temporal..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balance..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "O_rzamento..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Custo do _vehículo" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Amosar pantalla de benvida..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Estatísticas de ficheiro..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anónimo..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "A_xuda" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Contidos" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obter axuda en liña..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Comprobar se hai actualizacións..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Notas da versión" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Informar dun problema..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traducir este aplicativo..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "Acerca de" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Novo" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Crear un novo ficheiro" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Abrir" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Abrir un ficheiro" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Abrir un ficheiro usado recentemente" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Gardar" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Gardar o ficheiro actual" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Conta" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Xestionar as contas" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Beneficiario" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Xestionar os beneficiarios" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categoría" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Xestionar as categorías" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Planificado/Modelo" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Xestionar as transaccións planificadas/modelos" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Orzamento" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Xestionar o orzamento" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Asignación" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Xestionar as asignacións automáticas" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Mostrar transacción de contas escollidas" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Engadir transaccións" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Estatísticas" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Abrir o informe de estatísticas" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Tendencia temporal" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Abrir informe de tendencia temporal" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Abrir o informe do balance" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Abrir o informe do orzamento" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Custe do vehículo" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Abrir o informe de custo do vehículo" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Axuda" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Doar" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Doar ao proxecto HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Planificación" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futuro" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Recordatorio" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Hoxe" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(sen memo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copiar)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(sen categoría)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "formato CSV incorrecto" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Rango de datas inválido!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tipo" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Estado" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "conciliado" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etiqueta" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Pago" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Cantidade" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Texto" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Descoñecido" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(sen beneficiario)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(sen grupo)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(sen etiqueta)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-s%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-m%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Mostrar a versión da aplicación" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FICHEIRO]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Erro de explorador." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Non se puido amosar a URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(sen entidade)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "As súas contas" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copiar ao portapapeis" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Agrupar por" #: ../src/hub-account.c:595 msgid "type" msgstr "tipo" #: ../src/hub-account.c:596 msgid "group" msgstr "grupo" #: ../src/hub-account.c:597 msgid "institution" msgstr "institución" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Amosar todo" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expandir todo" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Ocultar todo" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "suma: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Ningunha transacción para engadir" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transacción engadida: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Resultado das transaccións planificadas" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Mostrar cando o programa arrinque" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Acendido" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Apagado" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "Data máxima de asento" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Omitir" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Editar & P_ublicar" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Asentar" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Máximo %d Gasto / Categoría" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Máximo %d Gasto / Beneficiario" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Máximo %d Gasto / Conta" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Saldo da conta" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Outro" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Gráfico total" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Gasto" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Ingreso" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Saldo Global" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Gráfico temporal" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Global" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "conta importada" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Suma total" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "derradeira conciliada" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "ata o descuberto" #: ../src/list-account.c:753 msgid "before maximum" msgstr "antes do máximo" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Contas" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Conciliado" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Limpo" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hoxe" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "-dividir-" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- isto precisa dunha categoría -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Número" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Concepto" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etiquetas" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Marca" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Coincidir" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultado" #: ../src/list-report.c:957 msgid "Average" msgstr "Media" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Atrasado" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Restantes" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Seguinte día" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Balance por %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d baixo %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Listaxe" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Ver resultado como lista" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Liña" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Ver resultados como liñas" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalle" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Amosar detalles" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Recargar" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Imprimir" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Informe do balance" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Pantalla" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_valo" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Amosar liña en branco" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Ampliar X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtro" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Activo:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "Intervalo" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_De:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Ata:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Seleccionar:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Todos" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invertir" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Incluír _transferencia" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Gasto" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Completado" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mes" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Orzamento por categoría" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Orzamento por mes" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " supera" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " queda" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " baixo" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(non presupostado)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Barras" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Ver os resultados en barras" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Resultado ó portapapeis" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Resultado a CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detalle ó portapapeis" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detalle a CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Ningunha conta está definida para ser parte do orzamento" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Debe incluir algunhas contas dende o menú de contas." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Informe do orzamento" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modo:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipo:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Só fóra de orzamento" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultado:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Orzamento:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Gastado:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s por %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Demasiadas columnas a amosar" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "Por favor, selecciona un intervalo máis amplo e / ou un rango de datos máis " "pequeno" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Columna" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Ver resultados en columnas" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Donut" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Ver resultados en gráfico circular" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Ver os resultados en morea" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Amorear 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Ver os resultados como unha morea 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Lenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Amosar lenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Taxa" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Amosar taxa" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Informe de estatísticas" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Ver por:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "Modo _Balance" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Predición" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Ordenar por _cantidade" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Comparar Gastos & Ingresos" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Ingresos:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Gastos:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Promedio: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Informe de tendencia temporal" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "A_cumulado" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Fracción de tempo" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Contador" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Combustible" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Prezo" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exportar" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportar como CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Informe do custo do vehículo" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categoría" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Metro:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumo:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Custe carburante:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Outros custos:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Custo total:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ningún)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nome da Conta" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Erro" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Non se pode engadir a conta '%s',\n" "este nome xa existe." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Non se pode eliminar a conta '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Ten transacción" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Está seguro de que quere eliminar definitivamente '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Se elimina unha conta, non se poderá recuperar." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Non se pode mudar o nome á conta\n" "«%s» como «%s» porque xa existe\n" "outra conta con ese nome." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Xestionar contas" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Borrar" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Renomear" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Mover para arriba" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Mover para abaixo" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Xeral" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grupo:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institución" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_úmero" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Saldo _inicial:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Moeda:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "esta conta foi pe_chada" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Sitio web" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notas:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportamento" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatización" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Modelo por defecto:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Exclusión dos informes" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "excluir do resumo de _contas" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "Gastos no resumo" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "excluir do _orzamento" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "excluír de calquera info_rme" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Varios" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Número de cheque actual" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Chequeira _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Chequeira _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Límites do balance" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Descuberto en:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Máx_imo:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Eliminar modelo" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Este modelo é empregado como un modelo de conta e non pode ser eliminado." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Se elimina unha planificación/modelo, non se poderá recuperar." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Próxima _data:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Ca_da" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Máis opcións" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Fin de semana:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Parar despois de:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "anotacións" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Xestionar a planificación/modelos de transaccións." #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Modelo" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplicar" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Planificar" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Buscar" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notas" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "A busca non pode estar baleira" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Este texto de búsqueda xa existe na posición %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Cancelar" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Aceptar" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condición" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Buscar:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_En" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Diferenciar maiúsculas e minúsculas" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Cantidade:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_E" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Asignacións" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Beneficiarios:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Sobrescribir" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Pagamento" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Etiquetas" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regra %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Se elimina unha asignación, non se poderá recuperar." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Mover a..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Mover regra" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Mover" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Administrar asignacións" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Este asistente axudarache a establecer a configuración mínima para un novo " "arquivo HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Todos os elementos que configures aquí poden ser modificados máis tarde se o " "precisas." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Non se levarán a cabo os cambios que realices ata que premas en \"Aplicar\"\n" "ao remate deste asistente." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank amosará un título para a xanela principal,\n" "pode ser o que queiras ou o teu nome." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Título:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank admite múltiples moedas. A moeda de base é\n" "a empregada por defecto para novas contas e informes." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Configurar moedas adicionais" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "Eng_adir" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Non se atopou" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank pode encher as categorías no teu idioma\n" "se hai un arquivo CSV dispoñible e proporcionado pola comunidade." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configurar as categorías para o meu idioma" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Ficheiro predeterminado:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank permite importar as túas contas dende os arquivos descargados\n" "da túa institución financieira, ou podes crear a túa conta de xeito manual." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Crear a miña primeira conta" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nome:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Esta é unha páxina de confirmación,\n" "\n" "preme \"Aplicar\" para aplicar os cambios." #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Comezar a configuración do arquivo" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Opcións do arquivo" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Escoller moedas" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Escoller categorías" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Crear Conta" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Rematar a configuración do arquivo" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Válido" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nome" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Abrir" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Ficheiros coñecidos" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Ficheiros QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Ficheiros OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Ficheiros CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Todos os ficheiros" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nova conta global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "conta nova" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "omitido" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d de %d transaccións" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transacción(s), %d similar, %d existente, %d seleccionada" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transacción (s) %d seleccionada" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Algunhas datas non se poden converter. Intente cambiar o formato da data " "para continuar." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Impor_tar %s in:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "este ficheiro" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "esta conta" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nome: %s\n" "Número: %s\n" "Ficheiro: %s\n" "Codificación: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importar transaccións dende banco ou tarxeta de crédito" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Con este asistente guiaráselle durante o proceso de importación dun ou " "varios\n" "extractos descargados do seu banco ou tarxeta de crédito, nos seguintes " "formatos:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recomendado: .OFX or .QFX\n" "(Ás veces denominado Money™ ou Quicken™)\n" "Compatíbel: .QIF\n" "(Ficheiro Quicken™ común)\n" "Só usuarios avanzados: .CSV\n" "(formato específico de HomeBank, véxase a documentación)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Non se farán cambios ata que faga clic en \"Aplicar\" ao final deste " "asistente." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Non mostrar isto máis" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Arrastra e solta un ou varios arquivos para importar.\n" "Tamén podes empregar os botóns engadir/eliminar da lista." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Hai demasiadas contas nos arquives que escolliches,\n" "por favor emprega o botón de retorno para escoller menos arquivos." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Fallou a identificación por nome ou número da conta destino." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Formato de data:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importar conceptos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Intercambiar conceptos e beneficiarios" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "_Nome OFX:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "_Concepto OFX:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Axustar _maiúsculas nos campos concepto/beneficiario" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Inverter _cantidade" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Transacción similar na conta de destino (posible duplicado)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "días" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "A concordancia farase na seguinte orde: conta, importe, data.\n" "Unha tolerancia de data de 0 días implica unha concordancia exacta." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Executar automatismo" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "Cubrir co benefeciario por defecto" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Executar regras de asignación automática" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Preme en \"Aplicar\" para actualizar as túas contas." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Benvido/a" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Seleccionar ficheiro(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importar" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmación" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Erro no formato do ficheiro" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "O ficheiro CSV debe ter o número exacto de columnas,\n" "separadas por un punto e coma. Consulte a axuda para máis detalles." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Está seguro de que quere limpar a entrada?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Se continua, todas as cantidades poranse a 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Limpar" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Orzamento para %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Xestionar orzamento" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importar CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balance" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "é o mesmo cada mes" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Limpar entrada" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "é diferente por mes" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Opcións" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forzar monitorización de esta categoría" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Xan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Abr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maio" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Xuñ" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Xul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ago" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Set" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Out" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Resumo" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totais" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Anual\n" "Total" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Mensualmente\n" "Media" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mensual" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Engadir unha categoría" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Aplicar" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Categoría pai" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nome da categoría" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Esta categoría utilízase.\n" "Calquera transacción que a empregue cambiarase a (sen categoría)." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Combinar categorías" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "As transaccións asignadas á categoría '%s', serán movidas á categoría " "seleccionada abaixo." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Categoría de destino" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Eliminar a categoría '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Estás seguro/a que queres descartar os datos introducidos para '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Engadir categoría" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Eliminar categoría" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Combinar" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Descartar a entrada" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "#txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "#cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Eliminar as categorías non utilizadas" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Está seguro de que quere eliminar\n" "permanentemente as categorías que\n" "non se utilizan?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Nome de categoría duplicada. Proba outro nome." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Editar Categoría" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Cambiar Tipo" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Ingresos" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Expandir a _fillos" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Non se pode volver nomear esta categoría.\n" "desde '%s' ata '%s',\n" "este nome xa existe." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Combinar categoría '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "As transaccións asignadas a esta categoría,\n" "moveranse á categoría seleccionada abaixo." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Inclúe_subcategorías" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Xestionar categorías" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Amosar non visibles" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Amosar uso" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Move/Mestura" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Amosar/Esconder" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nova categoría" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nova subcategoría" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Moeda principal" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Símbolo" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Tipo de cambio" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Última modificación" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Editar moeda" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moeda" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formato" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalizar" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Símbolo:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "É pre_fixo" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Separador _decimais:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Número de _decimais" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Separador de _miles:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Seleccionar a moeda principal" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Seleccionar moeda" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Código ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Engadir unha moeda personalizada" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Actualizar erro en liña" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Se elimina una moeda, non se poderá recuperar." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Cambiar a moeda principal" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Se continúa, os tipos de cambio das outras moedas\n" "poranse a 0, non se esqueza de actualizalos." #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Moedas" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Actualizar por rede" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Pór como principal" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Estatísticas de ficheiro" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transacción" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Anovar" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Seleccionar a moeda principal" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "A partires da v5.1, HomeBank pode xestionar varias moedas\n" "se a moeda de abaixo non é a correcta, cámbiaa." #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Moeda:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportar como QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importar desde CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Abrir ficheiro de HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Abrir copia de seguranza de HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Gardar fichero de HomeBank como" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Ficheiros de HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Copia de seguranza" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Todas as copias de seguranza" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Gardar os cambios no ficheiro antes de pechar?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Se non garda, os cambios perderanse para sempre.\n" "Número de cambios: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Pechar _sen gardar" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exportar como _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Cartafol:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Escolla un cartafol" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nome do ficheiro:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Engadir columna de Estado" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Fragmento por liña nas transaccións divididas" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "O arquivo non estará no formato CSV de HomeBank, debido a que é exportado\n" "dende \"Todas as transaccións\", ou foi seleccionada unha opción." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exportar como PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportar como _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "En HomeBank, imprimir está orientado cara a unha actitude ecolóxica,\n" "utilizando o formato dixital máis común: PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Selecciona unha acción para a creación do obxectivo" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Crear _novo" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Usa _Selección" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Transferir fonte" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Asociación de obxectivo suxerida" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank atopou algunha transacción que pode ser a asociada á transferencia " "interna." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Non hai coincidencias nas transaccións." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Concepto:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Número:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Restablecer" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Uso" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Cantidade/Texto" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Amosar sempre" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Nulo" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Engadido" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Editado" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Data de Vencemento" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Seguinte pagamento" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Por adiantado" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propiedades do ficheiro" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Transaccións planificadas" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "de cada" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mes" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Eliminar os beneficiarios non utilizados" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Está seguro de que quere eliminar\n" "permanentemente os beneficiarios non utilizados?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Nome da/do beneficiaria/o duplicado. Proba con outro nome." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Editar beneficiario" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Completar por defecto" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pagamento" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Non se pode renomear este beneficiario,\n" "desde '%s' ata '%s',\n" "este nome xa existe." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Combinar beneficiario '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "As transaccións asignadas a este beneficiario\n" "moveranse ó beneficiario seleccionado abaixo." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "Eliminar o beneficiario '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Este beneficiario utilízase.\n" "As operacións que o empreguen, cambiaranse a (sen beneficiario)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Xestionar beneficiarios" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "novo beneficiario" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Configuración rexional" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transaccións" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transferir" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importar/Exportar" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Informe" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Predición" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Copia de seguranza" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Cartafoles" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Idioma do sistema" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Elexir o cartafol de HomeBank por defecto" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" "Escolle unha carpeta por defecto para os arquivos de respaldo de HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Elexir o cartafol de importación por defecto" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Elexir o cartafol de exportación por defecto" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Empregar arrastrar e soltar para reordenar" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Opcións xerais" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opcións OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Opcións QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Opcións para o CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(só importación da transacción)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separador:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Ventá principal de informes" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Máximo de _ítems:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Filtro inicial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opcións de estatísticas" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Amosar por _importe" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Amosar columnas de _taxas" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Amosar _detalles" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opcións de orzamentos" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Permitir _predición" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Mes número:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Activar" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "Predefinido" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interface de usuario" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Lingua:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formato:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a nome do día da semana abreviado. \n" "%A nome do día da semana completo. \n" "%b nome do mes abreviado. \n" "%B nome do mes completo. \n" "%c representación de data e hora de acordo á localización do sistema. \n" "%C número do século (ano dividido por 100 e truncado a un enteiro) como " "número decimal [00-99]. \n" "%d día do mes como número decimal [01,31]. \n" "%D igual a %m/%d/%y. \n" "%e día do mes como número decimal [1,31]; un so díxito é precedido por un " "espazo. \n" "%j día do ano como número decimal [001,366]. \n" "%m mes como número decimal [01,12]. \n" "%p representación da data de acordo á localización do sistema.\n" "%y ano sen século como número decimal [00,99]. \n" "%Y ano con século como número decimal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Exercicio fiscal" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Comeza o:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unidades métricas" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Usar _millas para metros" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Usar _galón para combustíbel" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Mostrar sempre recordatorios" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Mostrar sempre nulos" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Incluír recordatorio no balance e no informe" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Bloquear calquera cambio no reconciliado" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Mostrar futuro" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "días cara adiante" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Agochar conciliadas" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Diálogo de transacción" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "_Manter a última data cando se engadiron ou herdaron múltiples" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Autocompletado de concepto cos" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "últimos días" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Amosar o texto de confirmación de nova entrada durante 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Mostrar a listaxe de modelos cando se editan" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "_Tema de iconas:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Configuración de gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "Liñas de _grade:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Opcións de gráficos" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "_Fonte da lenda máis pequena" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Barra de _ferramentas" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Habilitar copias de seguranza automáticas" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Número de copias de seguranza a manter:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "As copia de seguridade faise unha vez ó día" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Carteiras:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Respaldos" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Arquivos de intercambio" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importar" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exportar" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Inicio do programa" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Mostrar a pantalla de benvida" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Cargar o último ficheiro aberto" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Asentar as transaccións planificadas pendentes" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Actualizar moedas pola rede" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Restablecer todas as preferencias" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Está seguro de que quere restablecer\n" "todas as preferencias ao valor por defecto?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferencias" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Información" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Debe reiniciar HomeBank para\n" "aplicar o cambio de lingua" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "O directorio/carpeta de respaldo cambiou,\n" "é posible que precises copiar o arquivo '.bak' a esta nova localización." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Estás segura/o de querer\n" "eliminar para sempre as etiquetas non empregadas?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Nome de etiqueta duplicado. Proba con outro nome." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Editar Etiqueta" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Non se pode renomear esta Etiqueta, \n" "de '%s' a '%s',\n" "este nome xa existe." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Combinar etiqueta '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "As transaccións asignadas a esta etiqueta, \n" "serán movidas á etiqueta seleccionada abaixo." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Eliminar esta etiqueta '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Esta etiqueta está sendo empregada. \n" "A devandita etiqueta será eliminada de calquera outra transacción que a use." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Xestionar Etiquetas" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nova etiqueta" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transacción de %s creada." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Queres fragmentar a transferencia interna? \n" "\n" "Este proceso eliminará a transacción actual." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Fragmentar" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Mostrar _planificación" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Mostrar todas as contas" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Empregar un modelo" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Engadir e _Manter" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Engadir transacción" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Engadir modelo" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Herdar transacción" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Herdar modelo" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editar transacción" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editar modelo" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- escribe: d, d/m, m/d para completar a data\n" "- use as frechas + crtl ou maiús.\n" "- deixar en branco para hoxe" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_Para:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Dividir transacción" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Non hai unha taxa dispoñible para auto-completar" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Conta" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Libro_2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- escribe algunha letra para activar o autocompletado\n" "- escribe novo texto para crear unha entrada" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_goría:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "E_stado:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "Conc_epto" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Atención: os signos da cantidade e a categoría non coinciden" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Edición múltiple de transaccións" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Escribe como\n" "transferencia" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Borrar todo" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Aplicar" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Cancelar" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Importe da transacción" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Sen asignar:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Suma dos fragmentos:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Atención: o signo da suma dos fragmentos e o tipo de transacción non " "coinciden" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Atención: a suma dos fragmentos e a cantidade da transacción non coinciden" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(sen tipo)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banco" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Efectivo" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Activo" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Tarxeta de crédito" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Pasivo" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Comprobación" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Aforros" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Día" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Posíbel" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Antes" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Despois" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Saltar" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Tempo" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Ano" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Semana" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Quincena" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Medio ano" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Incluír" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Excluír" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Onte" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Mañá" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Última Semana" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Esta Semana" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Vindeira Semana" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Última Quincena" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Esta Quincena" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Vindeira Quincena" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Último Mes" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Este Mes" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Vindeiro Mes" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Último Trimestre" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Este Trimestre" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Vindeiro Trimestre" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Último Ano" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Este Ano" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Vindeiro Ano" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Últimos 90 Días" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Últimos 60 Días" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Últimos 30 Días" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Últimos 12 Meses" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Arredor de 30 Días" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Todas as Datas" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Personalizado" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Este mes" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Seguinte mes" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Seguintes 30 días" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Seguintes 60 días" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Seguintes 90 días" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Gasto e Ingreso" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Calquera tipo" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Calquera estado" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Pendente" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Non conciliado" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Sen categoría" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Parámetros do sistema por defecto" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Só iconas" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Só texto" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Texto debaixo das iconas" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Texto a carón das iconas" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Ambos" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorar" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Engadir ao Concepto" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Engadir a beneficiario" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulación" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Coma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Punto e coma" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Espazo" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Xaneiro" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Febreiro" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Marzo" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Abril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Xuño" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Xullo" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agosto" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Setembro" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Outubro" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembro" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Decembro" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Set" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Buscar..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Calquera marca" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Comprobar" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Transferencia bancaria" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Tarxeta de débito" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Orden de posición" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pago electrónico" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depósito" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Honorarios FI" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Cargo directo" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Teléfono móbil" homebank-5.9.1/po/ca.po0000644000175000017500000033730214775770011010355 # Catalan translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # Joan Duran , 2008, 2009. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-05-13 14:48+0000\n" "Last-Translator: Eloi Torrents \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finances personals" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Comptabilitat personal, lliure i senzilla per a tothom." #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finances;comptabilitat;pressupost;personal;diners;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "El HomeBank és un programari lliure que us ajudarà a gestionar la vostra " "comptabilitat personal." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "S'ha dissenyat per ser fàcil d'utilitzar i permetre-us analitzar les vostres " "finances personals en detall utilitzant eines de filtrat potents i gràfiques " "intuïtives." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Si esteu buscant una manera fàcil i totalment gratuita de gestionar la " "vostra comptabilitat personal, el HomeBank és la vostra millor opció." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transaccions" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transaccions, %d seleccionat, promig: %s, suma: %s (%s -%s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Bloquejat. Clica per desbloquejar." #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Desbloquejat, clica per bloquejar." #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Està segur que vol eliminar les %d transaccions seleccionades?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Si suprimiu una operació, es perdrà permanentment." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Suprimeix" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Segur que voleu canviar l'estat a Cap?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Alguna transacció de la teva selecció ja està conciliada." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Canvia" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Segur que voleu commutar l'estat a Conciliat?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Commuta" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Està segur que vol crear una plantilla per a les %d transaccions " "seleccionades?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Crea" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Està segur que vol crear assignacions per a les %d transaccions " "seleccionades?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Totes les transaccions" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Hi ha %d grups de transaccions similars" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "No s'ha trobat cap transacció similar" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Comprovi el resultat de la transferència interna" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "No s'ha trobat cap inconsistència." #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "S'ha trobat una incoherència: %d\n" "Vol revisar-la i solucionar-la?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "L'import de totes les transaccions es dividirà per %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Estàs segur que vols convertir aquest compte a Euro com a divisa principal?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Converteix" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "No ha canviat cap transacció" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transacció canviada: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Resultat de les assignacions automàtiques" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Afegeix..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Heretar..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Edita..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Cap" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Netejat" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Reconciliado" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Estat" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Cap" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Vermell" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Taronja" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Groc" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Verd" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Blau" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Violeta" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Edició _múltiple..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Crea una plantilla..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Suprimeix..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Puja" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Baixa" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exporta QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exporta a CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Imprimeix..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Tancar" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Compte" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copia" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Enganxa" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Enganxa (Avui)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Edita" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marca com a duplicat ..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Comprova transferència interna" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Auto. assignacions" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Convertir a Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Eines" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Afegeix una transacció nova" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Afegeix" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Hereta de la transacció activa" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Hereta" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Edita la transacció activa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Edita" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Commuta a netejat les transaccions seleccionades" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Commuta a conciliat les transaccions seleccionades" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Edita múltiples transaccions" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Suprimeix les transaccions seleccionades" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Moure transacció a dalt" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(tancat)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Actualitza" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Interval de _dates:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Mostrar %d dies d'antelació" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Edita el filtre" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Buida el filtre" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Actualitza els resultats" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Cèntim d'Euro" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Avui:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futur:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Revertir els canvis no guardats a l'arxiu '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "-Els canvis realitzats al fitxer es perdran definitivament.\n" "-El fitxer es carregarà a partir de l'últim desat." #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Reverteix" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Està segur de voler anonimitzar l'arxiu?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Procedint a xifrar qualsevol text,\n" "com 'compte x', 'beneficiari i', 'descripció z'," #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimiza" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Benvingut al HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Tanca" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Crea un _nou fitxer" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Obre un fitxer existent" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Obrir el fitxer d'_exemple" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Llegir HomeBank _Manual" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configura _preferències" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Mostra aquesta finestra la propera vegada" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Esteu a punt d'obrir la còpia de seguretat «%s».\n" "\n" "Estàs segur que vols fer-ho?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Voleu obrir la còpia de seguretat?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Obrir còpia de seguretat" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "No s'ha pogut obrir «%s», el fitxer no existeix.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Error desconegut" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "S'ha produït un error d'entrada/sortida al fitxer '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "El fitxer '%s' no és un fitxer vàlid per HomeBank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "El fitxer '%s' va ser desat per una versió més nova del HomeBank\n" "i per tant, no es pot carregar amb la versió actual." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "S'ha produït un error de fitxer" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "El fitxer ha sigut modificat des de que s'ha llegit." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Si el deseu, tots els canvis externs fets es poden perdre. Voleu desar-lo " "igualment?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "De_sa igualment" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fitxer" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nou" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Obre..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Obre recent" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Desa" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Anomena i _desa..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importa..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exporta com a QIF ..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Recupera" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaura còpia de seguretat" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propietats..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Surt" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferències..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Visualitza" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Barra d'eines" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Llistes de transaccions" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro minor" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gestiona" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "C_omptes..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Beneficiaris..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categories..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etiquetes..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Organitzador/Plantilla..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Assignacions..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Monedes..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Pressupost..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Pressupost (vista de taula)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaccions" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Afegeix..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Mostra..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Ajust del planificador..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Afegeix les operacions planificades" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Informes" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Estadístiques" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendència temporal..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "P_ressupost..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Cost vehicle..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Mostra el diàleg de benvinguda..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Estadístiques del fitxer" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimitza..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "A_juda" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "C_ontingut" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obtenir Ajuda en Línia..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Cerca actualitzacions" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Notes de la versió" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Informeu d'un problema..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduïu aquesta aplicació..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Quant a" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nou" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Crea un fitxer nou" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Obre" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Obre un fitxer" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Obre un fitxer utilitzat recentment" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Desa" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Desa el fitxer actual" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Compte" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gestiona els comptes" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Beneficiari" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gestiona els beneficiaris" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categoria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gestiona les categories" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Pressupost" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gestiona el pressupost" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Assignació" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Mostra les transaccions del compte seleccionat" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Afegeix transaccions" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Obre l'informe d'estadístiques" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Obre l'informe de tendència temporal" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Obre l'informe de saldo" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Obre l'informe de pressupost" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Cost del vehicle" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Obriu l'informe de costos del vehicle" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Ajuda" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Feu una donació" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Planificat" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futur" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Recorda" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(sense categoria)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "format CSV no vàlid" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Interval de dates no vàlid!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tipus" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Estat" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etiqueta" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Pagament" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Quantitat" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Text" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Desconegut" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "Quilòmetres per litre" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "Milles per litre" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(sense beneficiari)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-T%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Mostra la versió de l'aplicació" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FITXER]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Error del navegador." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "No s'ha pogut mostrar l'URL «%s»" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(sense institució)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Els teus comptes" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copia al porta-retalls" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Agrupa per" #: ../src/hub-account.c:595 msgid "type" msgstr "tipus" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Mostra-ho tot" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expandeix-ho tot" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Agrupa-ho tot" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "No hi ha cap transacció per afegir" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transacció afegida: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Comproveu el resultat previst de transaccions" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "data màxima per afegir" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Afegeix" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Saldo del compte" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Altre" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Despeses" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Ingressos" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Despeses i ingressos" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "compte importat" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Suma total" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Comptes" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Conciliat" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Liquidat" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Avui" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- separador -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Descripció" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etiquetes" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultat" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Aplaçat" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Pendents" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Pròxima data" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d a sota %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Llista" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Visualitza els resultats com a llista" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Línia" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Visualitza els resultats com a línies" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalls" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Commuta els detalls" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Actualitza" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Informe de saldo" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Pantalla" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Mostra línia buida" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Amplia les X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Interval:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Des de:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Fins a:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Selecciona:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Tots" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inverteix" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Gastat" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mes" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Pressupost per categoria" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Pressupost per mes" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " sobre" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " queda" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " sota" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Veure els resultats com barres de pila" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Resultat al portapapers" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Resultat a CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detall al portapapers" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detall a CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "No s'ha definit cap compte per ser-ne part del pressupost." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Hauríeu d'incloure alguns comptes des del diàleg de comptes." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Informe del pressupost" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipus:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Només fora de pressupost" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Pressupost:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Gastat:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s per %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Mostra els resultats en columnes" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Mostra els resultats en donut" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Commuta la llegenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Commuta el percentatge" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Informe estadístic" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Visualitza per:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Ingressos:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Despeses:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Promig:%s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Informe de tendència temporal" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Acumulat" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Partició temporal" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Comptaquilòmetres" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Combustible" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Preu" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exporta com a CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Informe del cost del vehicle" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "Cate_goria:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Comptaquilòmetres:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consum:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Cost del combustible:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Altres costos:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Cost total:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(cap)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nom del compte" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Error" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Impossible afegir un compte '%s',\n" "aquest nom ja existeix" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "No es pot suprimir el compte '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Segur que voleu eliminar definitivament '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Si esborreu un compte, aquest no es podrà recuperar." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "No es pot canviar el nom d'aquest compte,\n" "de «%s» a «%s»,\n" "aquest nom ja existeix." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gestió dels comptes" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Suprimeix" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Canvia el nom" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Mou avall" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "General" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grup:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_Número:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Saldo _inicial:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Moneda" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "aquest compte ha estat _tancat" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Pàgina web:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notes:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportament" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Plantilla per defecte" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Exclòs de l'informe" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "exclou del resum del _compte" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "exclou del _pressupost" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "exclou de qualsevol _informe" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Altres" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Número actual del xec" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Bloc de xecs_1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Bloc de xecs_2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Límits de saldo" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Descobert a:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Aquesta plantilla s'utilitza com a plantilla de compte i no es pot suprimir." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Si esborreu una transacció programada o una plantilla, aquesta no es podrà " "recuperar." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Pròxima_data" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Ca_da:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Cap de Setmana" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_atura després de:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "entrades" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Gestioni programada / transaccions de plantilla" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Plantilla" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplica" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notes" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "La cerca no pot estar buida" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Aquest text de cerca ja existeix a la posició %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Cancel·la" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_D'acord" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condició" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Distingeix entre majúscules i minúscules" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Beneficiari:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Sobreescriu" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Paga_ment:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Si esborreu una assignació, aquesta no es podrà recuperar." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Gestiona les assignacions" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank mostrarà un títol a la finestra principal,\n" "Pot ser una etiqueta qualsevol o el teu nom." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Títol:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Configurar monedes addicionals" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Afegeix" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "No s'ha trobat" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configurar categories per al meu idioma" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Fitxer predefint:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Crea el meu primer compte" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nom:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Aquesta és una pàgina de confirmació.\n" "\n" "premeu 'Aplica' per aplicar canvis" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Vàlid" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nom" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Obre" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Fitxers coneguts" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Fitxers QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Fitxers OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Fitxers CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Tots els fitxers" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nou compte global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nou compte" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "ignorat" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d de %d transaccions" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Alguna data no pot ser convertida. Intenti canviar el format de la data per " "continuar." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importa %s a:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "aquest arxiu" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "aquest compte" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nom: %s\n" "Número: %s\n" "Arxiu: %s\n" "Codificació: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importa transaccions des d'un banco o targeta de crèdit" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Amb aquest assistent se li indicarà la forma d'importar un o diversos\n" "moviments descarregats des del seu banc o targeta de crèdit, en els següents " "formats:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recomanat: .OFX o .QFX\n" "(A vegades anomenat Money™ o Quicken™)\n" "Suportat: .QIF\n" "(Arxiu Quicken™ usual)\n" "Només usuaris avançats: .CSV\n" "(format específic de HomeBank, mireu la documentació)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "No es realitzaran canvis fins que faci clic a \"Aplica\" al final d'aquest " "assistent." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "No tornis a mostrar aquest missatge" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "La identificació del compte de destí per nom o número ha fallat." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "ordre de la data" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importa descripcions" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Intercanviar descripcions amb beneficiaris" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "Nom _OFX:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Descripció:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "_Convertir a majúscules els camps descripció/beneficiari" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Transacció similar en el compte destí (possiblement duplicada)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dies" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "La coincidència es realitza per ordre: per compte, per quantitat i per " "data.\n" "Una tolerància de data de 0 dies significa una data exacta" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Benvingut" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Seleccioni arxiu(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importa" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmació" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Error en el format del fitxer" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "El fitxer CSV ha de contenir el nombre exacte de columnes,\n" "separades per un punt i coma, si us plau vegeu l'ajuda per a més detalls." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Esteu segur que voleu esborrar l'entrada?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Si continua, cada quantitat serà reiniciada a 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Neteja" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Pressupost per %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gestiona el pressupost" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Esborra entrada" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Preferències" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Força fer un seguiment d'aquesta categoria" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Gen" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Abr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maig" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ago" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Des" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Resum" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Aquesta categoria està sent utilizada.\n" "Tota operació que utilitzi aquesta categoria serà modificada com a (sense " "categoria)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Suprimeix la categoria '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Fusiona" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Elimina les categories no utilizades" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Esteu segur que voleu suprimir\n" "permanentment les categories\n" "no utilitzades?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Ingressos" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "No es pot canviar el nom d'aquesta categoria,\n" "de «%s» a «%s»,\n" "aquest nom ja existeix." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Fusiona la categoria '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Les transaccions assignades a aquesta categoria, \n" "seran desplaçades a la categoria seleccionada més avall" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Gestioneu les categories" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nova categoria" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nova subcategoria" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Moneda base" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Símbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Tipus de canvi" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Darrera modificació" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Edita la moneda" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moneda" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalitza" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Símbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Es _prefix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Separador _decimal:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Número de decimals:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Separador de milers:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Selecciona la moneda base" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Seleccioneu la moneda" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Codi ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Afegeix una moneda personalitzada" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Actualitza error de connexió" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Si elimineu una moneda, aquesta es perdrà definitivament" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Canvieu la moneda base" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Si ho fa, els tipus d'altres monedes seran\n" "establerts a zero, no s'oblidi d'actualitzar-los." #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Monedes" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Actualitza online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Establir com a base" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Estadístiques del fitxer" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transacció" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Actualiza" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Seleccioneu la moneda base" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Des de la v5.1, HomeBank pot gestionar diverses monedes\n" "si la següent moneda no és correcta, canvieu-la:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Moneda:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exporta a QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importa des de CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Obre un fitxer de HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Obre una còpia de seguretat de HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Desa l'arxiu HomeBank com a" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Fitxers homebank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Arxiu de còpia de seguretat" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Totes les còpies de seguretat" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Voleu desar les dades abans de tancar?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Si no ho deseu, els canvis es perdran definitivamente.\n" "Nombre de canvis:% d" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Tanca _sense desar" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Carpeta:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Escull una carpeta" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nom de fitxer:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exporta com a PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exporta com a _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank ha trobat alguna operació que pugui estar associat a la transacció " "per a la transferència interna." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Descripció" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Restableix" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propietats dels fitxers" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Transaccions programades" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Elimina el beneficiari no utilitzat" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Esteu segur que voleu eliminar\n" "permanentment el beneficiari no utilitzat?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_gament:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "No es pot canviar el nom d'aquest beneficiari,\n" "de «%s» a «%s»,\n" "aquest nom ja existeix." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Uneix beneficiaris '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Les transaccions associades a aquest beneficiari, \n" "seran desplaçades al beneficiari seleccionat més avall." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Elimina el beneficiari '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Aquest beneficiari està sent utilitzat.\n" "Tota operació que utilitzi aquest beneficiari serà definida com a (sense " "beneficiari)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gestiona els beneficiaris" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nou beneficiari" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interfície" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Configuració local" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transaccions" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transferència" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importa/exporta" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Informe" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Còpia de seguretat" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Carpetes" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Idioma del sistema" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Escollir una carpeta Homebank per defecte" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Escollir una carpeta d'importació per defecte" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Escoller una carpeta d'exportació per defecte" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Opcions generals" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opcions OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Opcions QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Opcions CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(només la transacció importada)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separador:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Finestra principal d'informes" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Filtre inicial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opcions d'estadístiques" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Mostra per l'_import" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Mostra la columna del _percentatge" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Mostra els _detalls" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opcions de pressupost" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Habilita" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Predefinit:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interfície d'usuari" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Idioma:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a nom abreujat del dia de la setmana.\n" "%A nom complet del dia de la setmana.\n" "%b nom abreujat del mes.\n" "%B nom complet del mes.\n" "%c format local de data i hora.\n" "%C segle (any dividit per 100 i arrodonit a sencer) com a decimal [00-99].\n" "%d dia del mes com a decimal [01,31].\n" "%D equivalent a %m /%d /%y.\n" "%e dia del mes com decimal [1,31]; una sola xifra que es precedeix amb un " "espai.\n" "%j dia de l'any com a decimal [001,366].\n" "%m mes com a decimal [01,12].\n" "%p format local de data.\n" "%y any de dos decimals (sense el segle) [00,99].\n" "%Y any amb el segle en format decimal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Exercici fiscal" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "S'inicia:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unitats de mesura" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Usa _milles per metres" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Utilitza _galons al combustible" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Mostra el futur:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "Dies endavant" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "dies seguits" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Línies de quadrícula:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Opcions dels gràfics" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Barra d'eines" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Habilita les còpies de seguretat automàtiques" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Número de còpies de seguretat a mantenir:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "La còpia de seguretat es fa una vegada al dia" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Carteres" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Intercanvia fitxers" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importació:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exportació:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Inici del programa" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Mostra la pantalla de presentació" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Carrega el darrer fitxer obert" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Afegeix les transaccions programades pendents" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Actualitza les monedes online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Restableix totes les preferències" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Segur que voleu restablir\n" "totes les preferències als seus valors\n" "per defecte?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferències" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informació" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Hauràs de reiniciar Homebank\n" "perquè el canvi d'idioma es faci efectiu." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "No es pot renombrar aquesta etiqueta,\n" "des de '%s' a '%s',\n" "aquest nom ja existeix." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gestiona etiquetes" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "etiqueta nova" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Acabar" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Mostra _programades" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Mostrar _tots els comptes" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Afegeix una transacció" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Hereta la transacció" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- teclegi: d, d/m, m/d per completar la data\n" "- usi les fletxes + ctrl o shift\n" "- deixi en blanc per avui" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Divideix la transacció" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Compte:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- teclegi alguna lletra per autocompletat\n" "- teclegi text nou per crear una nova entrada" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Estat:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Descripció:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Atenció: la quantitat i el signe de la categoria no coincideixen" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Edita múltiples transaccions" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Aplica" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Canceŀla" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Import de la transacció:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "No assignat:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Suma de divisions:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(sense tipus)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Entitat financera" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Efectiu" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Actiu" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Targeta de crèdit" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Passiu" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dia" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Abans" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Després" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Any" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Setmana" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestre" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Incloure" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Excloure" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Aquest mes" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Ing. i desp." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Qualsevol tipus" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Qualsevol estat" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "No liquidat" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Sense conciliar" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Sense categoria" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Valors predeterminats del sistema" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Només icones" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Només text" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text sota les icones" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text al costat de les icones" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horitzontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Ambdues" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignora" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Afegeix a la descripció" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Afegeix al beneficiari" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulació" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Coma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Punt i coma" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Espai" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Gener" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Febrer" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Març" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Abril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juny" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juliol" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agost" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Setembre" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Octubre" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembre" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Desembre" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Set" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Cerca..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Xec" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Targeta de dèbit" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Ordena'l ara" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pagament electrònic" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Dipòsit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI fee" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Domiciliació" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/hr.po0000644000175000017500000031631714775770051010412 # Croatian translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2016-06-25 10:16+0000\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "Homebank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Obriši" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Jeste li sigurni da želite promijeniti status u Nijedan?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Neke transakcije u vašem odabiru već su usklađene." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Promijeni" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Jeste li sigurni da želite prebaciti status u Usklađen?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Prebaci" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Svaki iznos transakcije će biti podjeljen s %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Konvertiraj" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Transakcija nije mijenjana" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Dodaj..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Naslijedi..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "U_redi..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ništa" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "Očišćeno" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "Usklađeno" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Nema" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Kreiraj predložak..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "Izbriši" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Izvezi QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Izvezi CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Uredi" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Alati" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Dodaj novu transakciju" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Dodaj" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Naslijedi iz aktivne transakcije" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Naslijedi" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Uredi aktivnu transakciju" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Uredi" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Prebaci u očišćeno odabrane transakcije" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Prebaci u usklađeno odabranu(e) transakciju(e)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Izbriši označenu(e) transakciju(e)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Osvježi" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Osvježi rezultate" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Danas:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Budućnost:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Vratiti nespremljene promjene u datoteku '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "-Promjene u datoteci bit će nepovratno izgubljene\n" "-Datoteka će biti pokrenuta od zadnjeg spremanja (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "V_rati" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Jeste li sigurno da želite anonimizirati datoteku?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimiziraj" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Dobrodošli u HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Zatvori" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Kreiraj _novu datoteku" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Otvori postojeću datoteku" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Otvori ogl_ednu datoteku" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Pročitajte Homebank priručnik" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Nemoguće otvoriti '%s', datoteka ne postoji.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O greška datoteke '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Datoteka '%s' nije ispravna Homebank datoteka." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Datoteka '%s' spremljena je novijom verzijom HomeBanka\n" "i ne može biti otvorena trenutnom verzijom." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Greška datoteke" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Datoteka" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Novo" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Otvori..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Spremi" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Povrati" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Izlaz" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Podešenja..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "Pri_kaži" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Alatna traka" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro minor" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "Ad_ministriraj" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Računi..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Primatelji..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategorije..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Planirano/Predložak..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Doznake..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Proračun..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transakcije" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Dodaj..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Prikaži..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Namjesti planer..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Istakni planirano" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Izvješća" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistika..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "Trendovi" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "_Proračun" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Putni troškovi..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Prikaži dijalog dobrodošlice..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Statistika o datotekama..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimiziraj..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Pomoć" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Sadržaj" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Prijavi problem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Prevedite ovaj program..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_O programu" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Kreiraj novu datoteku" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Otvori datoteku" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Otvori nedavno korištenu datoteku" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Spremi trenutnu datoteku" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Račun" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Primatelj" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategorija" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Proračun" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Doznaka" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Prikazuje transakcije označenog računa" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Dodaj transakcije" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Otvori izvješće o statistici" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Otvori izvješće o trendovima" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Bilanca" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Otvori izvješće o bilanci" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Otvori izvješće o proračunu" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Putni troškovi" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Otvori izvješće o putnim troškovima" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Buduće" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Podsjeti" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(nekategorizirano)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Oznaka" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Iznos" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Nepoznato" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(nema primatelja)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[DATOTEKA]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Greška pretraživača." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Nemoguće prikazati URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Vaši računi" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Nema transakcija za dodati" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "dodane transakcije: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Provjeri stanje planiranih transakcija" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "maksimalan datum isticanja" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Ukupno" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Ostalo" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Trošak" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Prihod" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Sveukupni iznos" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Računi" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Usklađeno" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Očišćeno" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Danas" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "-razdvoji-" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Tagovi" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Rezultat" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Kasni" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Sljedeći datum" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d pod %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Popis" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Pregled rezultata kao popis" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linija" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Pregled rezultata kao linije" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalj" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Uključi detalj" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Osvježi" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Izvješće o bilanci" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Prikaži" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zumiraj X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Raspon:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Od:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Do:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Sve" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Preokreni" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Potrošeno" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mjesec" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " preko" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " lijevo" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " ispod" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Prikaz rezultata kao gomile" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Nema računa koji bi bio dio proračuna." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Morate uključiti neke račune iz dijaloga s računima." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Izvještaj o proračunu" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "Vrs_ta:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Rezultat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Proračun:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Potrošeno:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s po %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Prikaz rezultata kao stupac." #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Prikaz rezultata kao torta" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Uključi legendu" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Uključi stopu" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Izvještaj o statistici" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "Prikaz prema:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Prihod:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Trošak:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Prosjek: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Izvješće o trendovima" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "Skupi" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Vremenski odsječak" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Brojač" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Gorivo" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Cijena" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Udalj." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Izvezi kao CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Izvješće o putnim troškovima" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategorija:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Brojač:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Potrošnja:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Trošak za gorivo:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Ostali troškovi:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Ukupni troškovi:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ništa)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Vidljivo" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Ime računa" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Greška" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Nije moguće dodati račun '%s'.\n" "to ime se već koristi." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Nije moguće izbrisati račun '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Jeste li sigurni da želite trajno izbrisati '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Ako izbrišete račun, bit će nepovratno izgubljen." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nije moguće preimenovati račun,\n" "s '%s' na '%s',\n" "to ime već postoji." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Upravljanje računima" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Općenito" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Broj" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Početna _bilanca:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "taj račun je zatvoren" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Izuzeće iz izvješća" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "izuzmi iz _sažetka računa" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "izuzmi iz proračuna" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "izuzmi iz svakog izvješća" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Trenutni broj provjere" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Knjiga provjere _1" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Knjiga provjere _2" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Ako izbrišete planirano ili predložak, bit će trajno izgubljeni." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Sljedeći _datum:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Svaki_h:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Kraj tjedna:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "Prekini poslije:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "objave" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Upravljaj planiranim transakcijama i predlošcima" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Odustani" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_U redu" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Uvjet" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "O_sjetljivost na velika/mala slova" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Primatelj:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Plaćanje" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Ako izbrišete doznaku, bit će trajno izgubljena." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Upravljaj doznakama" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Dodaj" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nije pronađeno" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Unaprijed postavi datoteku:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Ime:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Otvori" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Poznate datoteke" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF datoteke" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX datoteke" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV datoteke" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Sve datoteke" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Poredak datuma:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dani" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Podudaranje ide ovim redom. prema računu, iznosu i datumu.\n" "Odstupanje od 0 dana znači pravo podudaranje." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Dobrodošli" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Uvezi" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Potvrda" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Greška formata datoteke" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Jeste li sigurni da želite očistiti ulaz?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Ako nastavite, svaki iznos će biti postavljen na 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Očisti" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Proračun za %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Upravljanje proračunom" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Bilanca:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "Očisti ulaz" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Odrednice" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "Prisili praćenje kategorije" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Sij" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Velj" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Ožu" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Tra" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Svibanj" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Lip" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Srp" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Kol" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Lis" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Stu" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Pro" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Kategorija se koristi.\n" "Svaka transakcija koja koristi tu kategoriju bit će postavljena kao " "(nekategorizirano)." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "Izbriši kategoriju '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Spoji" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Prihod" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nemoguće preimenovanje kategorije,\n" "iz '%s' u '%s',\n" "ovo ime već postoji." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Spoji kategoriju '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transakcije doznačene ovoj kategoriji\n" "bit će premještene u izabranu kategoriju ispod." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Upravljanje kategorijama" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nova kategorija" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nova podkategorija" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Dec. znamenki:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Statistika datoteka" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transakcija" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Izvezi kao QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Uvezi iz CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank datoteke" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Spremiti promjene u datoteku prije zatvaranja?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Ako nećete spremiti, promjene će biti nepovratno izgubljene.\n" "Broj promjena: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Zatvori _bez spremanja" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank je našao istu transakciju koja bi mogla biti doznačena transakcija " "za interni prijenos." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memo:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Početno stanje" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Svojstva datoteke" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Planirane transakcije" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Plaćanja:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nemoguće preimenovanje primatelja,\n" "iz '%s' u '%s',\n" "ovo ime već postoji." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Spoji primatelja '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transakcije doznačene ovom primatelju,\n" "bit će premještene odabranom primatelju ispod." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "Izbriši primatelja '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Taj se primatelj koristi.\n" "Svaka transakcija tog primatelja bit će postavljena kao (nema primatelja)." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Upravljaj primateljima" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "novi primatelj" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Sučelje" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transakcije" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Prijenos" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Uvoz/Izvoz" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Izvješće" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Jezik sustava" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Izaberi zadani Homebankov direktorij" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Izaberi zadani uvozni direktorij" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Izaberi zadani izvozni direktorij" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX odrednice" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Glavni prozor izvješća" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "polazni filter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Odrednice statistike" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Prikaži prema _iznosu" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Prikaži stupac _stope" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Prikaži _detalje" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Odrednice proračuna" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "Omogući" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "Unaprijed _postavi:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Jezik:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Fiskalna godina" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Počinje od:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Mjerne jedinice" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Koristi _milje umjesto metara" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Odrednice grafikona" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Alatna _traka:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Uvezi:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Izvezi:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Pokretanje programa" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Prikaži pozdravni zaslon" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Učitaj posljednje otvorenu datoteku" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Istakni planirane transakcije koje se provode" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Podešenja" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informacije" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Morat ćete ponovno pokrenuti Homebank\n" "kako biste promijenili jezik." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Dodaj transakciju" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Naslijedi transakciju" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Odjeljci transakcija" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Račun" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Iznos transakcije:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Nedoznačeno:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Zbroj odjeljaka" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(ništa)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banka" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Gotovina" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Imovina" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditna kartica" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Obveza" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dan" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Moguće" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Prije" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Poslije" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Godina" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Tjedan" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Kvartal" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Uključi" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Isključi" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Troš. & prih." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Svaka vrsta" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Svaki status" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Neočišćeno" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Neusklađeno" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Nekategorizirano" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Pretpostavke sustava" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Samo ikone" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Samo tekst" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Tekst iznad ikona" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Tekst pored ikona" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-g" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-g" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "g-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Zanemari" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Priključi memo-u" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Siječanj" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Veljača" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Ožujak" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Travanj" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Lipanj" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Srpanj" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Kolovoz" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Rujan" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Listopad" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Studeni" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Prosinac" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Ruj" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Čekovi" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debitna kartica" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Trajni nalog" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronsko plaćanje" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Bankovne naknade" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Izravno terećenje" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ChangeLog0000644000175000017500000000000011023413026011141 homebank-5.9.1/po/Makefile.in.in0000644000175000017500000001604612431730646012100 # Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/po/tr.po0000644000175000017500000035114014775770004010415 # Turkish translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-02-12 13:42+0000\n" "Last-Translator: muratdur \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: tr\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Kişisel finans" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Herkes için ücretsiz kolay ve kişisel muhasebe" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finans;muhasebe;bütçe;kişisel;para;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank, kişisel muhasebenizi yönetmenize yardımcı olacak özgür ve ücretsiz " "bir yazılımdır." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Güçlü filtreleme araçlarını ve güzel grafikleri kullanarak kişisel " "finansınızı kullanımı kolay ve ayrıntılı bir şekilde analiz edebilmek için " "tasarlanmıştır." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Kişisel muhasebenizi yönetmek için tamamen ücretsiz ve kolay bir yol " "arıyorsanız, HomeBank sizin için doğru tercihtir." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d işlem" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d hareketleri, %d seçili, ortalama: %s, toplam: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Kilitli. Kilidi açmak için tıklayın" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Kilitli değil. Kilitlemek için tıklayın" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Hayat Enerjisi" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "\"Saat başı kazan\" seçili Cüzdan'da ayarlanmamış." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "%d seçili işlemi silmek istediğinize emin misiniz?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Eğer bir işlemi silerseniz, kalıcı olarak kaybolacaktır." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Sil" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Durumu Hiçbiri olarak değiştirmek istediğinize emin misiniz?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Seçiminizdeki bir işlem zaten Bağdaşık." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Değiştir" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Durumu Temizlendi yapmak istediğinizden emin misiniz?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Bağdaşık duruma geçiş yapmak istediğinize emin misiniz?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Geçiş" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Oluştur" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Şablon Oluştur" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d önceden doldurulmuş bir simgeyle oluşturuldu" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Görev Oluştur" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Tüm işlemler" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Benzer hareketlerin%d grubu var" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Benzer bir işlem bulunamadı!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "İç transfer sonucunu kontrol et" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Tutarsızlık bulunamadı !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Tutarsızlık bulundu: %d\n" "Gözden geçirmek ve düzeltmek ister misiniz?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Her işlem miktarı %.6f tarafından bölünecektir." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "Bu hesabın döviz türünü Euro yapmak istediğinizden emin misiniz?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Dönüştür" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Değişen işlem yok" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "hareket değiştirildi: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Otomatik atama sonuçları" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Ekle..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Devral..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Düzenle..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Hiçbiri" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Temizlendi" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Mutabık" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Durum" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Hiçbiri" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Kırmızı" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Turuncu" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Sarı" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Yeşil" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Mavi" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Mor" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "Onay" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "İptal (Sil)" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Çoklu değiştir..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Parçalı Gör" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Raw değerini kopyala" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Taslak oluştur..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Görev oluştur" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Sil..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Üst" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Aşağı" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "QIF olarak dışa Aktar" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Dışa Aktar CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Yazdır..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Web Sitesine Göz Atın" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Çıkış" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "H_esap" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopyala" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Yapıştır" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Yapıştır (bugün)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Panoya kopyala" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Ara" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "Değiştir" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Yineleneni işaretle..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "İç transferi kontrol et" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Otomatik tahsis" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Euro'ya çevir..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Araçlar" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "İşlemi yukarı taşı" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "İşlemi aşağıya taşı" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Yeni bir işlem ekle" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Ekle" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Etkin işlemden devral" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Devral" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Etkin işlemleri düzenle" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Düzenle" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Seçilen işlem(ler) için temizlenmiş olana geçiş yap" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Seçilen işlem(ler) için bağdaşık olana geçiş yap" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Birden fazla işlemi düzenle" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Seçilen işlem(ler)i sil" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Mutabık kılınan değişiklikler:" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(kapandı)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s -HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Göster" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Yenile" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Tarih _boşluğu:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "%d gün öncesini göstermeyi aç/kapat" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Filtreyi düzenle" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Filtreyi temizle" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Sonuçları yenile" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Döviz Kuru" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Uzlaşılan:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Silindi:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Bugün:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Gelecek:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "'%s' dosyasındaki kaydedilmemiş değişiklikler geri alınsın mı?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "-Dosyada yapılan değişiklikler kalıcı olarak kaybedilecek\n" "-Dosya son kayıttan yeniden yüklenecek (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Geri Al" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Dosyayı anonimize etmek istediğinize emin misiniz?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Bu hareket herhangi bir metni anonimize edecektir, \n" "'hesap x', 'alacaklı y', 'not z', gibi..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimleştir" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "HomeBank'a hoş geldiniz" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Kapat" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Açılan _son dosyayı aç" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Yeni bir dosya_oluştur" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Mevcut bir dosyayı aç" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Örnek _dosyayı aç" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "HomeBank _Kılavuzunu Oku" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Tercihleri düzenle" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Bu pencereyi bir sonraki zaman göster" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Bir yedek dosyasını ('%s') açmak üzeresiniz.\n" "Bunu yapmak istediğinizden emin misiniz?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Yedek dosyası açılsın mı?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Yedeği aç" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "'%s' dosyası açılamadı, dosya yok\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Bilinmeyen hata" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "'%s' dosyası için G/Ç hatası." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "'%s' dosyası HomeBank için uygun değil." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "Dosya '%s' HomeBank'in ileri versiyonu ile kaydedildi." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Dosya hatası" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Dosya yüklendikten sonra değiştirilmiş." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Eğer kaydederdeniz, tüm dış kaynaklı değişiklikler kaybolabilir. Kaydetmek " "istiyor musunuz?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Yine de Kaydet" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Temizle" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Dosya" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Yeni" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Aç..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Son _Kullanılanı Aç" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Kaydet" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Farklı _Kaydet..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "İçeri Aktar..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Dışa Aktar QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Geri al" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Yedeklemeyi Geri Yükle" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Özellikler..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Çık" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Tercihler..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Görüntüle" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Araç çubuğu" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Toplam Çizelgesi" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Zaman Çizelgesi" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Alt Listeler" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Döviz Kuru" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Yönet" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Cüzdan..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "He_saplar..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Alacaklılar..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategoriler..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etiketler..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Zamanlanmış/taslak..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Tanımlamalar..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Dövizler..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Bütçe..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Bütçe (tablo görünümü)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_İşlemler" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Ekle ..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Göster..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Tümünü Göster..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Zamanlayıcıyı ayarla..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Zamanlanmış işlemler" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Raporlar" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "İs_tatistikler..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Eğilim zamanı..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Bütçe..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_ütçe..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Araç maliyeti..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Hoşgeldin penceresini göster..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Dosya istatistikleri..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimleştir..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Yardım" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_İçindekiler" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Çevrimiçi Yardım Alın..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Güncellemeleri denetle..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Sürüm notları" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Bir sorun bildir..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Uygulamayı tercüme et..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Hakkında" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Yeni" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Yeni bir dosya oluştur" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Aç" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Bir dosya aç" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Yakın geçmişteki bir dosyayı aç" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Kaydet" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Mevcut dosyayı kaydet" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Hesap" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Hesapları yönet" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Alacaklı" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Alacaklıları yönet" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategori" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Kategorileri yönet" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Planlanmış / Şablon" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Zamanlanan / şablon işlemlerini yönet" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Bütçe" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Bütçeyi yönet" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Atama" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Otomatik atamaları yönet" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Seçili hesap işlemlerini gösterir" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "İşlemleri ekle" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "İstatistikler" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "İstatistik raporlarını aç" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trend zaman" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Eğilim zamanı raporlarını aç" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Bakiye" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Bakiye raporunu aç" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Bütçe raporunu aç" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Araç maliyeti" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Araç maliyeti raporunu aç" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Yardım" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Bağış Yap" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "HomeBank projesine bağışta bulunun" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Zamanlanmış" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Gelecek" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Hatırlat" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Bugün" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(bilgi notu yok)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(kopya)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(kategori yok)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "geçersiz CSV uzantısı" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Hatalı tarih!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tür" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Durum" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "yok" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "temizlendi" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etiket" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Ödeme" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Miktar" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Yazı" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Bilinmeyen" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/litre" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mil/litre" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(alacaklı yok)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(grup yok)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(etiket yok)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "%02d.hf" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "%d.çr" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "%d.yy" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-ç%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-yy%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Uygulama sürümünü göster" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[DOSYA]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Gezinme hatası." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "'%s' URL'si görüntülenemedi" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(Kurum belirtilmemiş)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Hesaplarınız" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Panoya kopyala" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Gruplandırma ölçütü" #: ../src/hub-account.c:595 msgid "type" msgstr "tür" #: ../src/hub-account.c:596 msgid "group" msgstr "grup" #: ../src/hub-account.c:597 msgid "institution" msgstr "kurum" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Tümünü göster" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Tümünü genişlet" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Tümünü daralt" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "topl: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Eklenecek işlem yok" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "%d işlem eklendi" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Planlanan işlemler sonucu kontrol et" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Program başladığında yayınla" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Açık" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Kapalı" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "yaklaşan gönderim tarihi" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Toplam" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Atla" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Düzenle & Gönder" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Gönder" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "En Fazla %d Harcama / Kategori" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "En Fazla %d Harcama / Alacaklı" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "En Yüksek %d Harcama / Hesap" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "En fazla %d Gider / Hesap" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Hesap Bakiyesi" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Hesap Grupları Bakiyesi" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Diğer" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Toplam çizelge" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "En Fazla" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Hesap grubu" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Harcama" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Gider" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Gelir" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Gelir" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Harcama ve Gelir" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Gider ve Gelir" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Küresel Bakiye" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Zaman çizelgesi" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Genel" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "içe aktarılmış hesap" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Genel Toplam" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "son uzlaştırılan" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "kredili mevduata kadar" #: ../src/list-account.c:753 msgid "before maximum" msgstr "maksimumdan önce" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Hesaplar" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Bağdaşık" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Temizlendi" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Bugün" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- böl -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "-kategori gerekiyor-" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Tarih" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Sayı" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Not" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etiketler" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Ödeme/Numara" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "İçe aktarıldı" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "Geçmiş tarih" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "İşaret" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Eşleşme" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "Ara Toplam" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Sonuç" #: ../src/list-report.c:957 msgid "Average" msgstr "Ortalama" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Geciken" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Devamlı" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "İleri tarih" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "%s'nın bakiyesi" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d altında %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Liste" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Sonuçları liste şeklinde görüntüle" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Çizgi" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Sonuçları çizgiler şeklinde göster" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detay" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Detaya geç" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Yenile" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Yazdır" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Bakiye raporu" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Görüntüle" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Aralık:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Boş satırı göster" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Yakınlaştır X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Süzgeç" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Etkin:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Aralık:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Kaynak:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Hedef:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Seç:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Tümü" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Tersine çevir" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Transferleri dahil et" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Harcama" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Yerine getirildi" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Ay" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Kategoriye göre bütçe" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Aya göre bütçe" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " üstünde" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " sol" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " altında" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Yığın" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Sonuçları yığın barı olarak göster" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "Sonucu panoya kopyala" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "Sonucu CSV olarak kaydet" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "Detayları panoya kopyala" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "Detayları CSV olarak kaydet" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Hiçbir hesap bütçenin parçası olarak tanımlanmamıştır." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Hesap penceresinden bazı hesapları dahil etmelisiniz." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Bütçe raporu" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Mod:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tür:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Sadece bütçe dışı" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Sonuç:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Bütçe:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Harcama:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s seçimi %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Gösterebilmek için çok fazla sutün var" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Lütfen daha geniş aralık ve/veya daha dar tarih aralığı seçin" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Sütun" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Sonuçları kolon olarak görüntüle" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Donut" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Sonuçları donut olarak görüntüle" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Sonuçları yığın olarak görüntüle" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Yığın %100" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Sonuçları %100 yığın olarak görüntüle" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Açıklama" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Göstergeye geçiş yap" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Puan" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Orana geçiş yap" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "İstatistik Raporu" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Göster:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Bakiye modu" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "Para akışı tahmini" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "_miktar'a göre sırala" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Karşılaştır Uzm. & Inc." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Toplam:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Gelir:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Gider:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Ortalama: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Eğilim Zaman Raporu" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Toplama" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Öğe" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Zaman dilimi" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Sayaç" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Yakıt" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Fiyat" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Uzaklık." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Dışa Aktar" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "CSV Olarak Dışa Aktar" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Araç maliyet raporu" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategori:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Sayaç:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Tüketim:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Yakıt gideri:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Diğer giderler:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Toplam giderler:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(hiçbiri)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Görünür" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Hesap adı" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Hata" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "'%s' e bir hesap eklenemez,\n" "bu isim zaten mevcut." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "'%s' hesabı silemezsiniz" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "İşlem var" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Xfer işleminin hedefidir" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Planlanan/şablon var" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Bu, planlanan xfer/şablonun hedefidir" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "'%s' ı kalıcı olarak silmek istediğinize emin misiniz?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Eğer bir hesabı silerseniz, o kalıcı olarak yok olacaktır." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Hesap adı %s adından %s adına yeniden adlandırılamadı, çünkü bu ada sahip " "hesap zaten mevcut." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Hesapları Yönet" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Sil" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Yeniden adlandır" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Yukarı taşı" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Aşağı taşı" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Genel" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Group:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Kurum:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "R_akam:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Başlangıç _bakiyesi:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Döviz:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "bu hesap kapanmıştır" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "İnternet sitesi:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notlar:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Davranış" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Otomasyon" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Öntanımlı _şablon:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Rapor aktarma" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "hesap özetini çıkar" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "özete çıkış" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "bütçe özetini çıkar" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "her hangi bir tür rapor çıkar" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Dğr." #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Şuanki kontrol numarası" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Çek defteri_1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Çek defteri_2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Bakiye limitleri" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Limit aşma yeri:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Maxi_mum" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Şablonu sil" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "Bu şablon hesap şablonu olarak kullanılıyor ve silinemez." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Eğer bir planlamayı/şablonu silerseniz, o kalıcı olarak yok olacaktır." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "İleri _tarih:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "Şablon tekrarı" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Her:" #: ../src/ui-archive.c:918 msgid "The" msgstr "Bu" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Daha fazla seçenek" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Hafta sonu:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Sonra dur:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "gönderiler" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Zamanlanmış/Taslak işlemleri yönet" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Şablon" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Çoğalt" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Zamanla" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Ara" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notlar" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "Öde" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Arama boş olmaz" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Bu arama '%d' metni konumda zaten var" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_İptal" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Tamam" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Kondisyon" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Ara:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_İçinde:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Küçük/Büyük _harfe duyarlı" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "_Kurallı ifade" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Miktar:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_VE" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Atamalar" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Alacaklı:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Üzerine yaz" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Öde_me:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Etiketler:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Bu çalışma kopyalanamaz,\n" "'%s' zaten var." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(kural %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Eğer bir atamayı silerseniz, o kalıcı olarak yok olacaktır." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Şuraya taşı..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Kuralı taşı" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Taşı" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Tanımlama Yönet" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Bu asistan yeni bir HomeBank dosyası\n" "oluşturmak için size yardımcı olacak" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Burada ayarladığınız tüm öğeler gerektiğinde daha sonra değiştirilebilir." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Bu asistanın sonundaki \"Uygula\" yı tıklayana kadar hiçbir değişiklik " "yapılmayacak." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank ana pencere için bir başlık gösterecek,\n" "Bu, sizin isminiz veya başka bir başlık olabilir." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Başlık:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank çoklu para birimini desteklemektedir. Temel para birimi, \n" "yeni hesaplar ve raporlar için varsayılandır." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Temel:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Ek para birimleri Ayarla" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Ekle" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Bulunamadı" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank, CSV dosyası mevcutsa ve topluluk tarafından sağlanıyorsa\n" "dilinize ilişkin kategorileri önceden doldurabilir." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Dilim için kategoriler ayarla" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Şimdiki dosya:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank, hesaplarınızı indirilmiş finansal kurum dosyalarından\n" "içe aktarmanıza olanak tanır veya hesabınızı manuel olarak " "oluşturabilirsiniz." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "İlk hesabımı oluştur" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_İsim:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Bu bir onay sayfasıdır.\n" "Değişiklikleri kaydetmek için 'Uygula' ya basınız" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Dosya Ayarlamayı Başlat" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Dosya Seçenekleri" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Para Birimi Seç" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Kategori Seç" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Hesap Oluştur" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Dosya Ayarlamayı Bitir" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Geçerli" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "İsim" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Aç" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Bilinen dosya" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF dosyaları" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX dosyaları" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV dosyaları" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Tüm dosyalar" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "yeni global hesap" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "yeni hesap" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "atlandı" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ",%d %d hareketlerin" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d işlem, %d benzer, %d varolan, %d seçilen" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d işlem, %d seçilen" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Bazı tarihler dönüştürülemez. Devam etmek için tarih sırasını değiştirmeyi " "deneyin." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "İçe aktarma %s içine:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "bu dosya" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "bu hesap" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "İsim: %s\n" "Numara: %s\n" "Dosya: %s\n" "Kodlama: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "İşlemleri banka veya kredi kartından içe aktarma" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Bu asistanla, bankanızdan veya kredi kartınızdan indirilen bir veya birden " "fazla ifadeyi\n" "aşağıdaki formatlarda içe aktarma işlemi boyunca yönlendirileceksiniz:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Önerilen: .OFX yada .QFX\n" "(Bazen Money ™ veya Quicken ™ olarak adlandırılır)\n" "Desteklenen: .QIF\n" "(Yaygın Quicken™ dosyası)\n" "İleri düzey kullanıcılar: .CSV\n" "(biçimi HomeBank 'a özeldir, belgelere bakın)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Bu asistanın sonunda \"Uygula\" yı tıklayana kadar hiçbir değişiklik " "yapılmayacak." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Bu mesajı tekrar gösterme" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Bir veya daha fazla dosyayı Sürükle&Bırak ile içe aktar\n" "Aynı zamanda listenin ekle/sil tuşlarını da kullanabilirsiniz." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Seçtiğiniz dosyada çok fazla hesap bulunmaktadır,\n" "lütfen geri butonuna basarak daha az dosya seçiniz" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "İsme veya numaraya göre hedef hesap tanımlaması başarısız oldu." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Tarih sırası:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Notları içe aktar" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "Notları alacaklılarla _değiştirme" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Adı:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Notlar:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Cümle olay not/alacaklı" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_ Tutarı değiştir" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Hedef hesapta benzer işlem (olası yinelenen)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "günler" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Eşleşme bu sıralamayla yapıldı: Hesap, miktar ve tarih.\n" "0 günlük yakınlık kesin sonucu gösterir" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "Seçenek" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "İçeri aktarma bekleniyor" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Otomasyonu çalıştır" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) _alacaklı varsayılanı ile zenginleştir" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Otomatik _atama kurallarını çalıştır" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "\"Uygula\" tuşu ile hesaplarınızı güncelleyin." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Hoşgeldiniz" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Dosya(ları) seç" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "İçe aktar" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Onay" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Dosya biçimi hatası" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV dosyaları noktalı virgülle ayrılmış sütunların tam sayısını " "içermelidir.\n" "Lütfen daha fazla ayrıntı için yardımı görün." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Girişi temizlemek istediğinize emin misiniz?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Devam ederseniz her miktar 0'a ayarlanır." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Temizle" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%s için bütçe" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Bütçeyi Yönet" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Bakiye:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "her ay için aynı" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "Girişi _Temizle" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "her ay için farklı" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Seçenekler" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "Bu kategoriyi göstermeye _zorla" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Ocak" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Şubat" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mart" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Nisan" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mayıs" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Haziran" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Temmuz" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ağustos" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Eylül" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Ekim" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Kasım" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Aralık" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Özet" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Toplamlar" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Yıllık\n" "Toplam" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Aylık\n" "Ortalama" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Aylık" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Kategori ekleyin" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Uygula" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Üst kategori" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Kategori ismi" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Bu kategori kullanılmış.\n" "Bu kategoriye atanan her hareket (Kategori yok)'a atanacak." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Kategorileri birleştir" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "'%s' kategorisine atanan işlemler, aşağıda seçilen kategoriye taşınacak." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Hedef kategori" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "Kategori '%s' i _Sil" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "'%s' için tüm girişleri temizlemek istediğinize emin misiniz?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "Tüm bütçeyi temizle" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" "Kalıcı olarak bütçeyi silmek\n" "istiyor musunuz?" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "_Tümünü temizle..." #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Kategori ekle" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Kategori sil" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Birleştir" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Girişi temizle" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Kullanılmayan kategorileri sil" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Kullanılmayan kategorileri kalıcı\n" "olarak silmek ister misiniz?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Varolan kategori ismi. Başka bir isim dene." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Kategori Düzenle" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Türü Değiştir" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Gelir" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Bu isimde bir Kategori adı\n" "mevcut '%s'\n" "'%s' yeniden adlandırılamaz." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Kategori '%s' i birleştir" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Bu kategoriye atanan haraketler aşağıda\n" "seçilen kategoriye aktarılacak." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "_Altkategorileri dahil et" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Kategorileri Düzenle" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Gizlileri Göster" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Kullanımı Göster" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Taşı/Birleştir" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Göster/Gizle" #: ../src/ui-category.c:2552 msgid "new category" msgstr "yeni kategori" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "yeni alt kategori" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Temel para birimi" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Sembol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Döviz kuru" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Son değişiklik" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Para birimini düzenle" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Para Birimi" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Biçim" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Düzenle" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Sembol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "_Önek" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Ondalık basamağı:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Kesi_r haneleri:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Toplama basamağı:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Temel para birimini seçin" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Para birimini seçin" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO Kodu" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Özel _para birimi ekle" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Çevrimiçi hatayı güncelle" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Bir para birimini silerseniz, kalıcı olarak kaybolacak." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Temel para birimini değiştirin" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Eğer devam ederseniz, diğer para birimlerinin\n" "kurları 0'a ayarlanacak. Onları güncellemeyi unutmayın" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Para Birimleri" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Çevrimiçi güncelleyin" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Çagrı Kaydı" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Temel olarak ayarla" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Dosya istatistikleri" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "İşlem" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Yükselt" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Bir temel para birimi seçin" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Sürüm v5.1 başlarken, HomeBank çeşitli para birimlerini yönetebilir.\n" "Aşağıdaki para birimi doğru değilse, lütfen değiştirin:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Para Birimi:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "QIF Olarak Dışa Aktar" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "CSV'den içe aktar" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "HomeBank dosyası aç" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "HomeBank yedek dosyasını aç" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "HomeBank dosyasını farklı kaydet" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank dosyaları" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Dosya yedeği" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Tüm yedekler" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Kapatmadan önce dosyaya değişiklikler kaydedilsin mi?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Eğer kaydetmezseniz, değişiklikler kalıcı olarak kaybolacak.\n" "Değişikliklerin sayısı: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "_Kaydetmeden kapat" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "_CSV olarak dışa aktar" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Klasör:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Bir klasör seçin" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Dosya adı:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Durum sütunu ekle" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detaylı bölünmüş çizgiler" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Dışarı Aktar PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Dışarı Aktar _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Hedef oluşturma için eylem seç" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Yeni _Oluştur" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Seçimi_Kullan" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Kaynağı aktar" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank hesaplar arası aktarım işlemleriyle bağlantılı olabilecek bazı " "işlemler buldu." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "işlem eşlemesi yok." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Not:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Sayılar:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Gider Transferi" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Gelir Trasferi" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Sıfırla" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Kaydet & Kullan" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Kullan" #: ../src/ui-filter.c:1370 msgid "default" msgstr "varsayılan" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Tutar/Yazı" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Her zaman göster" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Geçersiz" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Eklendi" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Düzenlendi" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(varsayılan)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Filtreyi yeniden adlandır" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Yeni filtre %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Filtre adı" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Farklı kaydet..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Yeniden adlandır..." #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Bitiş Tarihi" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Sonraki Ödeme" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Peşinen" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Dosya özellikleri" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Planlanan işlemler" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "ay" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Kullanılmayan alacaklıları sil" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Kullanılmayan alacaklıları kalıcı olarak\n" "silmek istediğinizden emin misiniz?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Varsayılan Dolgu" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Ödeme:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Bu isimde bir Ödeme adı\n" "mevcut '%s' \n" "'%s' yeniden adlandırılamaz." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Alacaklı '%s' i birleştir" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Bu alacaklıyla ilgil işlemler aşağıda\n" "seçili alacaklıya aktarılacak." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "Alacaklı '%s' i _Sil" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Bu alacaklı kullanılmış.\n" "Bu alacaklıyı kullanan tüm işlemler (no payee) olarak ayarlanacak." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Alacaklıları Düzenle" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "yeni alacaklı" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Arayüz" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "Tema" #: ../src/ui-pref.c:92 msgid "Color" msgstr "Renkli" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Yerelleştir" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "İşlemler" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "Diyalog" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transfer" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "İçe Aktar/Dışa Aktar" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Rapor" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Tahmin" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Yedekleme" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Klasörler" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Gelişmiş" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Sistem Dili" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Bir varsayılan HomeBank dosya klasörü seçin" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Varsayılan HomeBank yedekleme dosyası klasörünü seçin" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Bir varsayılan alma klasörü seçin" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Bir varsayılan verme klasörü seçin" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "Ödeme türlerini seç & göster" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Taşımak için tut sürükle" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Adres:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Anahtar:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Genel seçenekler" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX seçenekleri" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF seçenekleri" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV seçenekleri" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(sadece işlem aktarımı)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Ayraç:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Ana pencere raporları" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Maksimum öğe" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Başlangıç süzgeci" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "İstatistik seçenekleri" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "_Tutar olarak göster" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "_Oran sütununu göster" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "_Detayları göster" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Bütçe seçenekleri" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Etkinleştir" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Tahmini ay:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Etkinleştir" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Ön ayar:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Yapılandırma" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Kullanıcı arabirimi" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Dil:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "_Özelleştir" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Biçim:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a bir yerel ayarın kısaltılmış hafta içi adı.\n" "%A yerel haftanın tam adı. \n" "%b yerel ayarının kısaltılmış ay adı. \n" "%B yerel ayarının tam ay adı. \n" "%c yerel ayarının uygun tarih ve saat gösterimi. \n" "%C yüzyıl numarası (yıl 100'e bölünür ve bir tam sayıya kesilir) ondalık " "sayı olarak [00-99]. \n" "%d ondalık sayı olarak ayın günü [01,31]. \n" "%D %m/%d/%y ile aynı. \n" "%e bir ondalık sayı olarak Ayın günü [1,31]; tek bir rakam bir boşluk önce " "gelir. \n" "%j ondalık sayı olarak yılın günü[001,366]. \n" "%m ondalık sayı olarak ay [01,12]. \n" "%p yerel ayarın uygun tarih gösterimi. \n" "%y ondalık sayı olarak yüzyıl olmadan yıl [00,99]. \n" "%Y bir ondalık sayı olarak yüzyıl ile yıl." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Mali yıl" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Bu _zamanda başlat:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Ölçü birimleri" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Mesafe için mil kullan" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Yakıt için galon kullan" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Her zaman hatırlatıyıcı göster" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Her zaman boşluğu göster" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Hatırlatmayı dengeye dahil edin ve raporlayın" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "Defter penceresi" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Gelecek işlemler:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "gün önce" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Mutabakatları sakla" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "İşlem iletişim kutusu" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "ortalama gün" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "5 Saniye için onay metni ekle'yi göster" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Düzenlerken şablon listesini göster" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "Davranış" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "GTK ayarları" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Klavuz çizgisi:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Grafik seçenekleri" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Daha küçük yazı fontu" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Araç çubuğu:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "Otomatik yedeklemeyi _etkinleştir" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Saklanacak yedek sayısı:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Yedekleme aralığı günde bir kez" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Cüzdanlar:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Yedeklemeler:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Döviz Kuru dosyaları" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_İçe Aktar:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Dışa Aktar:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Program başlangıcı" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Karşılama ekranını göster" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Son açılan dosyayı yükle" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Bekleyen zamanlanmış işlemleri yayınla" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Kurları çevrimiçi güncelle" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Tüm Tercihleri Sıfırla" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Tüm tercihleriniz sıfırlanacak\n" "Sıfırlamak istiyor musunuz?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Tercihler" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Bilgi" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Dil değişikliğinin etkin olması için HomeBank\n" "yeniden başlatılması gereklidir." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Yedekleme klasörü değişti,\n" "'.bak' dosyanızı bu yeni dosya yoluna kopyalamanız gerekebilir." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Bu Etiketi yeniden adlandıramıyor,\n" "%s' den '%s' e,\n" "Bu isim zaten mevcut." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "'%s' etiketini birleştir" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Bu etikete atanan işlem\n" "seçilen etikete taşınacaktır" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "'%s' etiketini _sil" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Bu etiket kullanılmaktadır.\n" "Bu etiket, kullanan herhangi bir işlemden silinecektir." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Etiketleri Yönet" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "yeni etiket" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "%s işlemi oluşturuldu." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Ara" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Zamanlananları göster" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "_Tüm hesapları göster" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Taslak kullan" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Ekle & _Sakla" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "İşlem ekle" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Taslak ekle" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "İşlem devret" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Taslak devret" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "İşlemi düzenle" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Taslağı düzenle" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Tarih:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- tuşla: d, d/m, m/d tam tarih\n" "- yön tuşarı + ctrl veya shift\n" "- bugün için boş" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "Kime:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "İşlem bölünmeleri" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "H_esap:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Kitap_2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- otomatik tamamlama için bir kaç harf girin\n" "- giriş oluşturmak için yeni metin girin" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Kategori:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Durum:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "Not:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Uyarı: Tutar ve kategori işareti uyuşmuyor" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Hareketleri toplu düzenle" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Transfer\n" "tipinde" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Hepsini sil" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Uygula" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "İptal" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "İşlem miktarı:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Atanmamış:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Bölünme toplamı:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Uyarı: bölünmelerin toplamı ve işlem türü eşleşmiyor" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Uyarı: bölünmelerin toplamı ve işlem tutarı eşleşmiyor" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(belirsiz tip)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banka" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Nakit" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Varlık" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kredi kartı" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Borçlar" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Denetleniyor" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Gün" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Mümkün" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Önce" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Sonra" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Zaman" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Yıl" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Hafta" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "İki Hafta" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "3 Ay" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Yarım Yıl" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Dahil et" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Hariç tut" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Dün" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Yarın" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Geçen Hafta" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Bu Hafta" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Gelecek Hafta" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Geçen İki Hafta" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "İki Hafta" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Gelecek İki Hafta" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Geçen Üç Ay" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "3 Ay" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Gelecek 3 Ay" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Geçen Yıl" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Bu Yıl" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Gelecek yıl" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "Yıldan bugüne" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Son 90 Gün" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Son 60 Gün" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Son 30 Gün" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Son 12 Ay" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Ortalama 30 Gün" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Tüm Zaman" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Bu ay" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Gelecek ay" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Sonraki 30 gün" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Gelecek 60 gün" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Gelecek 90 gün" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Gid. & Gel." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Herhangibir Tip" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Herhangi bir durum" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Temizlenmemiş" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Sonuçlanmamış" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Kategorilenmemiş" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Sistem varsayılanı" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Sadece simgeler" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Sadece metin" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Metin simgenin altında" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Metin simgelerin yanında" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Yatay" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Dikey" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Her ikisi" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "a-g-y" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "g-a-y" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "y-a-g" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Yoksay" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Nota ekle" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Alacaklıya ekle" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tab" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Virgül" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Noktalı verigül" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Boşluk" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Ocak" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Şubat" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Mart" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Nisan" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Haziran" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Temmuz" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Ağustos" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Eylül" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Ekim" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Kasım" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Aralık" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Eylül" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Arama..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Denetle" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Banka Transferi" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Banka kartı" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Bekleyen emir" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronik ödeme" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Yatan" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Finans ücreti" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Otomatik ödeme" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/el.po0000644000175000017500000041627214775770030010377 # Hellenic translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-04-01 20:45+0000\n" "Last-Translator: Evan \n" "Language-Team: Hellenic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Προσωπικά οικονομικά" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Δωρεάν, εύκολη, διαχείριση των προσωπικών σας οικονομικών" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "οικονομικά;λογιστική;προϋπολογισμός;προσωπικά;χρήματα;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "Το HomeBank είναι ελεύθερο λογισμικό (τόσο με την έννοια της \"ελευθερίας " "του λόγου\", αλλά και την έννοια της \"δωρεάν μπίρας\"), που θα σας βοηθήσει " "να διαχειριστείτε τα προσωπικά οικονομικά σας." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Είναι σχεδιασμένο να είναι εύκολο στη χρήση και να επιτρέπει τη λεπτομερή " "ανάλυση των προσωπικών οικονομικών σας χρησιμοποιώντας ισχυρά εργαλεία " "φιλτραρίσματος και όμορφα γραφήματα." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Αν ψάχνετε για έναν πλήρως δωρεάν και εύκολο τρόπο να διαχειριστείτε τα " "προσωπικά σας οικονικά, τότε το HomeBank πρέπει να είναι το λογισμικό της " "επιλογής σας." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d συναλλαγές" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d συναλλαγές, %d επιλεγμένες, μ.ο: %s, αθρ: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Κλειδωμένο. Πατήστε για ξεκλείδωμα" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Ξεκλείδωτο. Πατήστε για κλείδωμα" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Διαγραφή" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Είστε σίγουροι ότι θέλετε να αλλάξετε την κατάσταση σε Κανένα;" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Ορισμένες από τις επιλεγμένες συναλλαγές σας είναι ήδη Συμφωνημένες." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Αλλαγή" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Είστε σίγουρος ότι θέλετε να αλλάξετε την κατάσταση σε Συμφωνημένο;" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Εναλλαγή" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Δημιουργία" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Δημιουργία προτύπου" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Δημιουργία Ανάθεσης" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Όλες οι συναλλαγές" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Υπάρχει(ουν) %d ομάδα(ες) παρόμοιων συναλλαγών" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Δεν βρέθηκε παρόμοια συναλλαγή!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Έλεγχος αποτελέσματος εσωτερικής μεταφοράς" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Δεν βρέθηκε ασυνέπεια !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Βρέθηκαν ασυνέπειες: %d\n" "Θέλετε να τις εξετάσετε και να τις διορθώσετε;" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Κάθε ποσό συναλλαγής θα διαιρεθεί με %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Μετατροπή" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Δεν τροποποιήθηκε καμία συναλλαγή" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "η συναλλαγή άλλαξε: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Αποτέλεσμα αυτόματης ανάθεσης" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Προσθήκη..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Μεταβίβαση..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Επεξεργασία..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Τίποτα" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Εκκαθαρισμένο" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Συμφωνημένο" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Κατάσταση" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Κανένα" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Πολλαπλή επεξεργασία..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Εμφάνιση _Διαχωρισμών" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Αντιγραφή του ποσού (σε αρχική μορφή)" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Δημιουργία πρότυπου..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Δημιουργία ανάθεσης..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Διαγραφή..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Πάνω" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Κάτω" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Εξαγωγή QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Εξαγωγή CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Εκτύπωση..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "Λο_γαριασμός" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Αντιγραφή" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Επικόλληση" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Επικόλληση (σήμερα)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Επεξεργασία" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Επισήμανση διπλότυπου..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Έλεγχος εσωτερικής μεταφοράς" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Αυτόματες αναθέσεις" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Μετατροπή σε Ευρώ..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Εργαλεία" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Μετακίνηση συναλλαγής πάνω" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Μετακίνηση συναλλαγής κάτω" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Προσθήκη νέας συναλλαγής" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Προσθήκη" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Μεταβίβαση από την τρέχουσα συναλλαγή" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Μεταβίβαση" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Επεξεργασία της τρέχουσας συναλλαγής" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Επεξεργασία" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Εναλλαγή της κατάστασης εκκαθάρισης για την επιλεγμένη συναλλαγή(ες)" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Εναλλαγή της κατάστασης συμφωνίας για την επιλεγμένη συναλλαγή(ες)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Επεξεργασία πολλαπλών συναλλαγών" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Διαγραφή επιλεγμένης(ων) συναλλαγής(ων)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Οι ενημερώσεις που έχουν συμφωνηθεί/επικυρωθεί είναι" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(κλειστός)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Εμφάνιση" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Ανανέωση" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Διάστημα _ημερομηνίας:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Εναλλαγή εμφάνισης %d επόμενων ημερών" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Επεξεργασία φίλτρου" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Ανανέωση αποτελεσμάτων" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Ευρώ _σε δευτερεύον νόμισμα" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Συμφωνημένο:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Εκκαθαρισμένο:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Σήμερα:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Μελλοντικά:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Επαναφορά μη αποθηκευμένων αλλαγών στο αρχειο '%s';" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Αλλαγές που τυχόν έγιναν στο αρχείο θα χαθούν οριστικά\n" "- Θα φορτωθεί αντίγραφο ασφαλείας από την τελευταία αποθήκευση (.xhb ~) " "(.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Επαναφορά" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Είστε βέβαιοι ότι θέλετε να ανωνυμοποιήσετε το αρχείο;" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Αν προχωρήσετε θα ανωνυμοποιηθεί κάθε κείμενο\n" "όπως 'λογαριασμός x', 'δικαιούχος y', 'αιτιολογία z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Ανωνυμοποίηση" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Καλωσορίσατε στο HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Κλείσιμο" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Άνοιγμα _τελευταίου ανοικτού αρχείου" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Δημιουργία _νέου αρχείου" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Άνοιγμα υπάρχοντος αρχείου" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Άνοιγμα του αρχείου _παραδείγματος" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Διαβάστε το εγχειρίδιο χρήσης του Homebank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Ρύθμιση _προτιμήσεων" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Εμφάνιση αυτού του παραθύρου την επόμενη φορά" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Πρόκειται να ανοίξετε το αντίγραφο ασφαλείας '%s'.\n" "\n" "Είστε σίγουροι ότι θέλετε να το κάνετε?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Άνοιγμα του αντίγραφου ασφαλείας;" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Άνοιγμα αντιγράφου ασφαλείας" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Αδυναμία ανοίγματος '%s', το αρχείο δεν υπάρχει.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Άγνωστο σφάλμα" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Παρουσιάστηκε σφάλμα ανάγνωσης/εγγραφής για το αρχείο '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Το αρχείο '%s' δεν αποτελεί έγκυρο αρχείο του προγράμματος Homebank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Το αρχείο '%s' αποθηκεύτηκε με μια νεότερη έκδοση του HomeBank\n" "και δεν μπορεί να φορτωθεί από την τρέχουσα έκδοση." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Σφάλμα αρχείου" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Το αρχείο έχει τροποποιηθεί από την τελευταία ανάγνωση." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Αν επιλέξετε αποθήκευση όλες οι αλλαγές που κάνατε μπορεί να χαθούν. " "Αποθήκευση ούτως ή άλλως;" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Αποθήκευση οπωσδήποτε" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Εκκαθάριση" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Αρχείο" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Νέο" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Άνοιγμα..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Άνοιγμα _Πρόσφατων" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Αποθήκευση" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Αποθήκευση _Ως..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Εισαγωγή..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Εξαγωγή ως QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Επαναφορά" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Επαναφορά αντιγράφου ασφαλείας" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Ιδιότητες..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Έξοδος" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Προτιμήσεις..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Προβολή" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Εργαλειοθήκη" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Κάτω λίστες συναλλαγών" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Ευρώ σε δευτερεύον νόμισμα" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Διαχείριση" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Πορτοφόλι..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Λογαριασμοί..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Δικαιούχοι..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "_Κατηγορίες..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Ετικέτες..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Προγραμματισμένες/Πρότυπο..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Aναθέσεις..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Νομίσματα..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Προϋπολογισμός..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Προϋπολογισμός (προβολή πίνακα)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Συναλλαγές" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Προσθήκη..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Προβολή..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Ορισμός χρονοδιαγράμματος..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Η εκτέλεση έχει προγραμματιστεί" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Αναφορές" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Στατιστικά..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trend Time..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Ισοζύγιο..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Π_ροϋπολογισμός..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Κόστ_ος οχήματος..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Εμφάνιση διαλόγου Καλωσορίσματος..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Στατιστικά αρχείου..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "_Ανωνυμοποίηση..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Βοήθεια" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Περιεχόμενα" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Λήψη Βοήθειας από το Διαδίκτυο..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Έλεγχος για ενημερώσεις..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Σημειώσεις έκδοσης" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Αναφορά Προβλήματος..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Μετάφραση της Εφαρμογής..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Σχετικά" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Νέο" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Δημιουργία νέου αρχείου" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Άνοιγμα" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Άνοιγμα αρχείου" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Άνοιγμα ενός πρόσφατου αρχείου" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Αποθήκευση" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Αποθήκευση τρέχοντος αρχείου" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Λογαριασμός" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Διαχείριση των λογαριασμών" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Δικαιούχος" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Διαχείριση των δικαιούχων" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Κατηγορία" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Διαχείριση των κατηγοριών" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Προγραμματισμένες/Πρότυπο" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Διαχείριση των προγραμματισμένων/προτύπων συναλλαγών" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Προϋπολογισμός" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Διαχείριση του προϋπολογισμού" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Ανάθεση" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Διαχείριση των αυτόματων εντολών" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Εμφάνιση των συναλλαγών του επιλεγμένου λογαριασμού" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Προσθήκη συναλλαγής" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Στατιστικά" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Άνοιγμα της αναφοράς Στατιστικών" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trend time" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Άνοιγμα της αναφοράς Trend Time" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Ισοζύγιο" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Άνοιγμα της αναφοράς Ισοζυγίου" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Άνοιγμα της αναφοράς Προϋπολογισμού" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Κόστος Οχήματος" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Άνοιγμα της αναφοράς Κόστους οχήματος" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Βοήθεια" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Δωρεά" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Δωρεά στο έργο HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Προγραμματισμένες" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Μελλοντικά" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Υπενθύμιση" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Σήμερα" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(χωρίς σημείωση)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(χωρίς κατηγορία)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "μη έγκυρη μορφή CSV" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Τύπος" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Κατάσταση" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Ετικέτα" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Πληρωμή" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Ποσό" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Κείμενο" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Άγνωστο" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f λίτρο" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "χλμ/λίτρο" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "μίλια / λίτρο" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(κανένας δικαιούχος)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(χωρίς ομάδα)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(χωρίς ετικέτα)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-Εβδ.%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-Τ%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-Εξάμ.%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ΑΡΧΕΙΟ]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Σφάλμα φυλλομετρητή." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Αδυναμία εμφάνισης της ιστοσελίδας '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(κανένα ίδρυμα)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Οι λογαριασμοί σας" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Προβολή όλων" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Επέκταση όλων" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Σύμπτυξη όλων" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "άθροισμα: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Δεν υπάρχει συναλλαγή για να προστεθεί" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "συναλλαγή προστέθηκε: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Έλεγχος αποτελέσματος προγραμματισμένων συναλλαγών" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "μέγιστη ημερομηνία εκτέλεσης" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Σύνολο" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Παράλειψη" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Επεξεργασία & Ε_κτέλεση" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Εκτέλεση" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Άλλο" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Έξοδα" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Έσοδα" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "εισαχθέντας λογαριασμός" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Γενικό σύνολο" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "τελευταία συμφωνημένο" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "μέχρι υπερχρέωση" #: ../src/list-account.c:753 msgid "before maximum" msgstr "προ του μέγιστου" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Λογαριασμοί" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Συμφωνημένο" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Εκκαθαρισμένο" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Σήμερα" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- διαχωρισμός -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- δεν έχει οριστεί κατηγορία -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Ημερομηνία" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Αιτιολογία" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Ετικέτες" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Αντιστοίχιση" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Αποτέλεσμα" #: ../src/list-report.c:957 msgid "Average" msgstr "Μέση τιμή" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Αργοπορημένες" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Εναπομείνασες" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Επόμενη ημερομηνία" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d κάτω από %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Λίστα" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Εμφάνιση αποτελεσμάτων ως λίστα" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Γραμμή" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Προβολή αποτελεσμάτων ως γραμμές" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Λεπτομέρειες" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Εναλλαγή εμφάνισης λεπτομερειών" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Ανανέωση" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Εκτύπωση" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Αναφορά ισοζυγίου" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Προβολή" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Διάστ_ημα:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Εμφάνιση κενής γραμμής" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Μεγένθυνση X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Φίλτρο" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Εύρος:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Από:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Έως:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Επιλέξτε:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Όλα" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Αντιστροφή" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Συμπεριέλαβε μεταφορά" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Έξοδα" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Μήνας" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " κενό" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " αριστερά" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " κάτω" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Στοίβα" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Προβολή αποτελεσμάτων ως μπάρες στοίβας" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Αποτέλεσμα στο πρόχειρο" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Αποτέλεσμα σε CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Λεπτομέρειες στο πρόχειρο" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "Λεπτομέρειες σε CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Δεν έχει οριστεί λογαριασμός ώστε να είναι μέρος του προϋπολογισμού." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" "Θα πρέπει συμπεριλάβετε κάποιους λογαριασμούς από το παράθυρο διαλόγου των " "λογαριασμών." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Αναφορά Προϋπολογισμού" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Λειτουργία:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Τύπος:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Μόνο εκτός προϋπολογισμού" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Αποτέλεσμα:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Προϋπολογισμός:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Έξοδα:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s ανά %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Πάρα πολλές στήλες για εμφάνιση" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "Παρακαλώ επιλέξτε ένα ευρύτερο διάστημα ή / και ένα μικρότερο εύρος " "ημερομηνιών" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Στήλη" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Προβολή αποτελεσμάτων ως στήλη" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Ντόνατ" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Δείτε τα αποτελέσματα ως κύκλο" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Προβολή αποτελεσμάτων με μορφή στοιβαγμένης γραμμής" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Γράφημα 100% στοιβαγμένης γραμμής" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Προβολή αποτελεσμάτων με μορφή 100% στοιβαγμένης γραμμής" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Υπόμνημα" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Εναλλαγή εμφάνισης υπομνήματος" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Ισοτιμία" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Εναλλαγή εμφάνισης ισοτιμίας" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Αναφορά στατιστικών" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Προβολή κατά:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "Λειτουργία ισοζυγίου" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Ταξινόμηση κατά _ποσό" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Σύγκριση Εξ. & Εσ." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Σύνολο:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Έσοδα:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Έξοδα:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Μέσος όρος: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Αναφορά Trend Time" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Συσσώρευση" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Μερίδιο χρόνου" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Μετρητής" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Καύσιμα" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Τιμή" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Απόσταση" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Εξαγωγή" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Εξαγωγή CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Αναφορά κόστους οχήματος" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Κατηγορία:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Μετρητής:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Κατανάλωση:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Δαπάνη καυσίμων:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Άλλες δαπάνες:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Συνολική δαπάνη:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(κανένα)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Ορατό" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Όνομα λογαριασμού" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Σφάλμα" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Δεν μπορεί να προστεθεί λογαριασμός '%s', \n" "το όνομα αυτό υπάρχει ήδη." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Δεν μπορεί να διαγραφεί ο λογαριασμός '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Είστε σίγουροι ότι επιθυμείτε μόνιμη διαγραφή του '%s';" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Αν διαγράψετε έναν λογαριασμό, θα χαθεί μόνιμα." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Δεν είναι δυνατή η μετονομασία αυτού του λογαριασμού,\n" "από '%s' έως '%s',\n" "αυτό το όνομα υπάρχει ήδη." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Διαχείριση Λογαριασμών" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Διαγραφή" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Μετονομασία" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Μετακίνηση προς τα πάνω" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Μετακίνηση προς τα κάτω" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Γενικά" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Ομάδα:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Ίδρυμα:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Α_ριθμός:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Αρχικό _ισοζύγιο:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "Νόμισμα:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "αυτός ο λογαριασμός _έκλεισε" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Σημειώσεις:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Συμπεριφορά" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Αυτοματοποίηση" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Προεπιλεγμένο _Πρότυπο:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Αναφορά εξαίρεσης" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "εξαίρεση από λογαριασμό" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "Ροή εξόδων στη σύνοψη" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "εξαίρεση από _προϋπολογισμό" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "εξαίρεση από οποιαδήποτε _αναφορά" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Διάφορα" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Τρέχον νούμερο επιταγής" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Μπλοκ Επιταγών _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Μπλοκ Επιταγών _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Όρια ισοζυγίου" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Υπερανάληψη σε:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Μέγ_ιστο:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Εάν διαγράψετε ένα προγραμματισμένο/πρότυπο, θα χαθεί μόνιμα." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Επόμενη _ημερομηνία:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Κάθε:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Περισσότερες επιλογές" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Τέλος εβδομάδας:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Παύση μετά από:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "εγγραφές" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Διαχείριση προγραμματισμένων/προτύπων συναλλαγών" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Πρότυπο" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Πρόγραμμα" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Αναζήτηση" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Σημειώσεις" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Αυτό το κείμενο αναζήτησης υπάρχει ήδη στη θέση %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Άκυρο" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Εντάξει" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Συνθήκη" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Αναζήτηση:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Σε:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Διάκριση πεζών από κεφαλαία" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Πο_σό:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "ΚΑΙ" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Αναθέσεις" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Δικαιούχος:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Αντικατάσταση" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Πληρωμή:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Ετικέτες:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(κανόνας %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Εάν διαγράψετε μια ανάθεση, θα χαθεί μόνιμα." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Μετακίνση σε..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Μετακίνηση κανόνα" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Μετακίνηση" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Διαχείριση αναθέσεων" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Αυτός ο βοηθός θα σας βοηθήσει να ρυθμίσετε μια ελάχιστη διαμόρφωση\n" "για ένα νέο αρχείο HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Όλα τα στοιχεία που ρυθμίζετε εδώ μπορούν να αλλάξουν αργότερα, εάν είναι " "απαραίτητο." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Δεν θα γίνουν αλλαγές μέχρι να κάνετε κλικ στο \"Εφαρμογή\"\n" "στο τέλος αυτού του βοηθού." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "Το HomeBank θα εμφανίσει έναν τίτλο για το κύριο παράθυρο,\n" "μπορεί να είναι μια ελεύθερη ετικέτα ή το όνομά σας." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Τίτλος:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "Το HomeBank υποστηρίζει πολλαπλά νομίσματα. Το νόμισμα βάσης είναι\n" "η προεπιλογή για νέους λογαριασμούς και αναφορές." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Βάση:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Ρύθμιση πρόσθετων νομισμάτων" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "Προσθήκη" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Δεν βρέθηκε" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "Το HomeBank μπορεί να συμπληρώσει τις κατηγορίες για τη γλώσσα σας\n" "εάν ένα αρχείο CSV είναι διαθέσιμο και παρέχεται από την κοινότητα." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Ρύθμιση κατηγοριών για τη γλώσσα μου" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Προκαθορισμένο αρχείο:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "Το HomeBank επιτρέπει την εισαγωγή των λογαριασμών σας από ληφθέντα\n" "αρχεία χρηματοοικονομικού ιδρύματος ή μπορείτε να δημιουργήσετε το " "λογαριασμό σας με μη αυτόματο τρόπο." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Δημιουργία του πρώτου μου λογαριασμού" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Όνομα:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Αυτή είναι μια σελίδα επιβεβαίωσης,\n" "\n" "πατήστε \"Εφαρμογή\" για να εφαρμόσετε τις αλλαγές" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Εκκίνηση Ρύθμισης Αρχείου" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Επιλογές Αρχείων" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Επιλέξτε Νομίσματα" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Επιλέξτε Κατηγορίες" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Δημιουργία λογαριασμού" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Ολοκλήρωση Ρύθμισης Αρχείου" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<Νέος λογαριασμός (καθολικός)>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<Νέος λογαριασμός>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "<Παράλειψη αυτού του λογαριασμού>" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Έγκυρο" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Όνομα" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Άνοιγμα" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Γνωστά αρχεία" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Αρχεία QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Αρχεία OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Αρχεία CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Όλα τα αρχεία" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "νέος καθολικός λογαριασμός" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "νέος λογαριασμός" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "παραλείφθηκε" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d από %d συναλλαγές" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" "%d συναλλαγή(ές), %d παρόμοια(ες), %d υπάρχουσα(ες), %d επιλεγμένη(ες)" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d συναλλαγή(ές), %d επιλεγμένη(ες)" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Κάποια ημερομηνία δεν ήταν δυνατό να μετατραπεί. Παρακαλώ προσπαθήστε να " "αλλάξετε τη σειρά των ημερομηνιών για να συνεχίσετε." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Εισαγωγή %s σ_το:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "αυτό το αρχείο" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "αυτός ο λογαριασμός" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Όνομα: %s\n" "Αριθμός: %s\n" "Αρχείο: %s\n" "Κωδικοποίηση: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Εισαγωγή συναλλαγών από τράπεζα ή πιστωτική κάρτα" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Με αυτόν τον βοηθό θα καθοδηγηθείτε στη διαδικασία εισαγωγής ενός ή " "περισσότερων\n" "ληφθέντων αντιγράφων κινήσεων από την τράπεζα ή την πιστωτική σας κάρτα, με " "τις ακόλουθες μορφές:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Συνιστάται: .OFX ή .QFX\n" "(Μερικές φορές ονομάζεται Money™ ή Quicken™)\n" "Υποστηρίζεται: .QIF\n" "(Κοινό αρχείο Quicken™)\n" "Προχωρημένοι χρήστες μόνο: .CSV\n" "(η μορφή είναι συγκεκριμένη για το HomeBank, δείτε την τεκμηρίωση)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Δεν θα γίνουν αλλαγές μέχρι να κάνετε κλικ στο \"Εφαρμογή\" στο τέλος αυτού " "του βοηθού." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Να μην εμφανιστεί ξανά" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Σύρετε και αποθέστε ένα ή περισσότερα αρχεία για εισαγωγή.\n" "Μπορείτε επίσης να χρησιμοποιήσετε τα κουμπιά προσθήκη/διαγραφή της λίστας." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Υπάρχουν πάρα πολλοί λογαριασμοί στα αρχεία που επιλέξατε,\n" "χρησιμοποιήστε το κουμπί επιστροφής για να επιλέξετε λιγότερα αρχεία." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Η αναγνώριση λογαριασμού στόχου κατά όνομα ή αριθμό απέτυχε." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Διάταξη ημερομηνίας:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Εισαγωγή αιτιολογιών" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Εναλλαγή αιτιολογιών με δικαιούχους" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Όνομα:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Αιτιολογία:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Κεφαλαία-πεζά _πρότασης σε αιτιολογία/δικαιούχος" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Εναλλαγή ποσού" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Παρόμοια συναλλαγή στο λογαριασμό στόχο (πιθανό διπλότυπο)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "ημέρες" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Η αντιστοίχιση γίνεται κατά σειρά: ανά λογαριασμό, ποσό και ημερομηνία.\n" "Ημερομηνία με ανοχή 0 ημερών σημαίνει ακριβές ταίριασμα" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Εκτέλεση αυτοματοποίησης" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Εμπλουτισμός με προεπιλεγμένο _δικαιούχο" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Εκτέλεση κανόνων αυτόματης _ανάθεσης" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" "Κάντε κλικ στο \"Εφαρμογή\" για να ενημερώσετε τους λογαριασμούς σας." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Καλωσορίσατε" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Επιλογή αρχείου(ων)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Εισαγωγή" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Επιβεβαίωση" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Σφάλμα μορφής αρχείου" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Το αρχείο CSV πρέπει να περιέχει τους ακριβείς αριθμούς στηλών,\n" "διαχωριζομένων με άνω τελεία, παρακαλούμε ανατρέξτε στη βοήθεια για " "περισσότερες λεπτομέρειες." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Είστε σίγουροι ότι επιθυμείτε εκκαθάριση δεδομένων;" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Εάν προχωρήσετε, κάθε ποσό θα οριστεί σε 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Εκκαθάριση" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Προϋπολογισμός για %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Διαχείριση Προϋπολογισμού" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Ισοζύγιο:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "είναι το ίδιο κάθε μήνα" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Καθαρισμός καταχωρήσεων" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "είναι διαφορετικό ανά μήνα" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Επιλογές" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Εξαναγκασμός παρακολούθησης αυτής της κατηγορίας" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Ιαν" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Φεβ" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Μαρ" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Απρ" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Μάιος" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Ιούν" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Ιούλ" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Αύγ" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Σεπτ" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Οκτ" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Νοέ" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Δεκ" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Σύνολο" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Σύνολα" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Ετήσιο\n" "Σύνολο" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Μηνιαίος\n" "Μέσος όρος" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Μηνιαίος" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Προσθήκη μία κατηγορίας" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Εφαρμογή" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Γονική κατηγορία" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Όνομα κατηγορίας" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Αυτή η κατηγορία χρησιμοποιείται.\n" "Κάθε συναλλαγή που χρησιμοποιεί αυτήν την κατηγορία θα οριστεί σε (χωρίς " "κατηγορία)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Συγχώνευση κατηγοριών" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Οι συναλλαγές που έχουν ανατεθεί στην κατηγορία '%s', θα μετακινηθούν στην " "παρακάτω επιλεγμένη κατηγορία." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Κατηγορία Στόχος" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Διαγραφή κατηγορίας '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Είστε σίγουροι ότι θέλετε να εκκαθαρίσετε τις καταχωρήσεις για '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Προσθήκη κατηγορίας" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Αφαίρεση κατηγορίας" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Συγχώνευση" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Καθαρισμός καταχώρησης" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# σνλ" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# ρυθ" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Διαγραφή μη χρησιμοποιούμενων κατηγοριών" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Είστε σίγουροι ότι θέλετε να διαγράψετε \n" "μόνιμα τις μη χρησιμοποιούμενες κατηγορίες;" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Επεξεργασία κατηγορίας" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Αλλαγή Τύπου" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Έσοδα" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Εφαρμόζω σε υπο-κατηγορίες" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Δεν μπορεί να μετονομαστεί αυτή η Κατηγορία\n" "απο '%s' σε '%s',\n" "διότι αυτό το όνομα υπάρχει ήδη." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Συγχώνευση κατηγορίας '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Συναλλαγές που ανατέθηκαν σε αυτήν την κατηγορία \n" "θα μετακινηθούν στην κατηγορία που επιλέχτηκε παρακάτω." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Συμπερίληψη _υποκατηγοριών" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Διαχείριση Κατηγοριών" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Προβολή κρυφών" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Προβολή χρήσης" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Μετακίνηση/Συγχώνευση" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Εμφάνιση/Απόκρυψη" #: ../src/ui-category.c:2552 msgid "new category" msgstr "νέα κατηγορία" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "νέα υποκατηγορία" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Νόμισμα βάσης" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Σύμβολο" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Συναλλαγματική ισοτιμία" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Τελευταία τροποποίηση" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Επεξεργασία συναλλάγματος" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Νόμισμα" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Μορφή" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Προσαρμογή" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Σύμβολο:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Είναι πρό_θεμα" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Δεκαδικός χαρακτήρας:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Δεκαδικά ψηφία:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Χαρακτήρας χιλιάδων:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Επιλογή νομίσματος βάσης" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Επιλογή νομίσματος" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Κωδικός ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Προσθέστε ένα προσαρμοσμένο _νόμισμα" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Σφάλμα online ενημέρωσης" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Εάν διαγράψετε ένα νόμισμα, τότε θα χαθεί μόνιμα." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Αλλαγή νομίσματος βάσης" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Εάν συνεχίσετε, οι ισοτιμίες άλλων νομισμάτων\n" "θα οριστούν σε 0, μην ξεχάσετε να τις ενημερώσετε" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Νομίσματα" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Ενημέρωση online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Θέστε ως βάση" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Στατιστικά αρχείων" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Συναλλαγή" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Αναβάθμιση" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Επιλέξτε ένα νόμισμα βάσης" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Ξεκινώντας από την έκδοση v5.1, το Homebank μπορεί να διαχειριστεί αρκετά " "νομίσματα\n" "αν το παρακάτω νόμισμα δεν είναι σωστό, παρακαλώ αλλάξτε το:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Νόμισμα:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Εξαγωγή ως QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Εισαγωγή από CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Άνοιγμα αρχείου HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Άνοιγμα αρχείου αντιγράφου ασφαλείας του Homebank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Αποθήκευση αρχείου HomeBank ως" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Αρχεία HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Αρχείο αντιγράφου ασφαλείας" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Όλα τα αντίγραφα ασφαλείας" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Αποθήκευση αλλαγών στο αρχείο πριν το κλείσιμο;" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Εάν δεν γίνει αποθήκευση, οι αλλαγές θα χαθούν οριστικά. \n" "Αριθμός αλλαγών: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Κλείσιμο _χωρίς αποθήκευση" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Εξαγωγή ως _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Φάκελος:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Επιλέξτε φάκελο" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Όνομα αρχείου:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Προσθήκη στήλης Κατάστασης" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Διαχωρισμός γραμμών λεπτομερειών" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Το αρχείο δεν θα είναι στη μορφή CSV του HomeBank, επειδή εξάγετε\n" "από 'Όλες τις συναλλαγές', ή διαλέξατε μια επιλογή." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Εξαγωγή σε PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Εξαγωγή ως _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Με το HomeBank, η εκτύπωση προσανατολίζεται προς μία υπεύθυνη στάση για το\n" "περιβάλλον, στην κατεύθυνση της πιο διαδεδομένης ψηφιακής μορφής: του PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Επιλέξτε ενέργεια για τη δημιουργία στόχου" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Δημιουργία _νέου" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Χρήση Επιλογής" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Μεταφορά πηγής" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Προτείνεται συσχέτιση με τον στόχο" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "Το HomeBank έχει βρει κάποια συναλλαγή που μπορεί να είναι σχετική συναλλαγή " "για την εσωτερική μεταφορά." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Αιτιολογία:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Επαναφορά" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Χρήση" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Ποσό/Κείμενο" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Εμφάνιση πάντα" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Ακυρωμένο" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Προστέθηκε" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Επεξεργάστηκε" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Ημερομηνία Πληρωμής" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Επόμενη αμοιβή" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Προκαταβολή" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Ιδιότητες αρχείου" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Προγραμματισμένες συναλλαγές" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "κάθ' ενός" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "μήνας" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Διαγραφή δικαιούχου που δεν χρησιμοποιείται" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Είστε σίγουροι ότι θέλετε να\n" "διαγράψετε μόνιμα τον μη χρησιμοποιούμενο δικαιούχο;" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Επεξεργασίας δικαιούχου" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Προσυμπλήρωση" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Πλη_ρωμή:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Δεν μπορεί να μετονομαστεί αυτός ο Δικαιούχος\n" "απο '%s' σε '%s',\n" "αυτό το όνομα υπάρχει ήδη." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Συγχώνευση δικαιούχου '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Οι συναλλαγές που έχουν αντιστοιχιστεί σε αυτόν τον δικαιούχο,\n" "θα μεταφερθούν στο δικαιούχο που επιλέχτηκε παρακάτω." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Διαγραφή Δικαιούχου '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "Αυτός ο δικαιούχος χρησιμοποιείται" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Διαχείριση δικαιούχων" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "νέος δικαιούχος" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Διεπαφή" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Γλώσσα" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Συναλλαγές" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Μεταφορά" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Εισαγωγή / Εξαγωγή" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Αναφορά" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Αντίγραφο ασφαλείας" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Φάκελοι" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Γλώσσα συστήματος" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Επιλέξτε τον προεπιλεγμένο φάκελο αρχείων του HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" "Επιλογή ενός προκαθορισμένου φακέλου για τα αντίγραφα ασφαλείας του Homebank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Επιλέξτε τον προεπιλεγμένο φάκελο εισαγωγής" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Επιλέξτε τον προεπιλεγμένο φάκελο εξαγωγής" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Γενικές επιλογές" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Επιλογές OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Επιλογές QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Επιλογές CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(εισαγωγή συναλλαγών μόνο)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Διαχωριστικό:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Αναφορές κυρίου παραθύρου" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Μέγιστος αριθμός _αντικειμένων:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Αρχικό φίλτρο" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Επιλογές στατιστικών" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Εμφάνιση με βάση το _ποσό" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Εμφάνιση με βάση την _ισοτιμία" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Εμφάνιση _λεπτομερειών" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Επιλογές προϋπολογισμού" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Ενεργοποίηση" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Προκαθορισμένο:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Διεπαφή χρήστη" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Γλώσσα:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Μορφοποίηση:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a συμπτυγμένο όνομα ημέρας εβδομάδας τοπικής γλώσσας.\n" "%A πλήρες όνομα ημέρας εβδομάδας τοπικής γλώσσας. \n" "%b συμπτυγμένο όνομα μήνα τοπικής γλώσσας. \n" "%B πλήρες όνομα μήνα τοπικής γλώσσας. \n" "%c κατάλληλη αναπαράσταση ημερομηνίας και ώρας τοπικής γλώσσας. \n" "%C αριθμός αιώνα (το έτος διαιρούμενο με 100 και περικομμένο σε ακέραιο) ως " "δεκαδικός αριθμός [00-99]. \n" "%d ημέρα του μήνα ως δεκαδικός αριθμός [01,31]. \n" "%D ίδιο με %m/%d/%y. \n" "%e ημέρα του μήνα ως δεκαδικός αριθμός [1,31], σε μονοψήφιο προηγείται κενό. " "\n" "%j ημέρα του έτους ως δεκαδικός αριθμός [001,366]. \n" "%m μήνας ως δεκαδικός αριθμός [01,12]. \n" "%p κατάλληλη αναπαράσταση ημερομηνίας τοπικής γλώσσας. \n" "%y έτος χωρίς αιώνα ως δεκαδικός αριθμός [00,99]. \n" "%Y έτος με αιώνα ως δεκαδικό αριθμό." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Φορολογικό έτος" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Ξεκινά _από:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Μονάδες μέτρησης" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Χρήση _μιλίων για μετρητή" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Χρήση _γαλονιών για καύσιμα" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Πάντα εμφάνιση υπενθύμισης" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Πάντα εμφάνιση ακυρωμένων" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Κλείδωμα των επαληθευμένων συναλλαγών για οποιαδήποτε αλλαγή" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Εμφάνιση μέλλοντος:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "ημέρες μπροστά" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Απόκρυψη συμφωνημένων" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Διάλογος συναλλαγής" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Ενεργοποίηση αυτόματης συμπλήρωσης _αιτιολογίας με" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "κυλιόμενες μέρες" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Εμφάνιση επιβεβαίωσης προσθήκης για 5δ" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Ρυθμίσεις Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Γραμμή πλέγματος:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Επιλογές γραφημάτων" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Μικρότερη γραμματοσειρά υπομνήματος" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Εργαλειοθήκη:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Ενεργοποίηση αυτόματων αντιγράφων ασφαλείας" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Αριθμός αντιγράφων ασφαλείας προς διατήρηση:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Η συχνότητα των αντιγράφων ασφαλείας είναι μια φορά την ημέρα" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Πορτοφόλια:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Αντίγραφα ασφαλείας:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Εισαγωγή-εξαγωγή αρχείων" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Εισαγωγή:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Εξαγωγή:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Εκκίνηση προγράμματος" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Εμφάνιση οθόνης εκκίνησης" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Φόρτωση τελευταίου ανοιγμένου αρχείου" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Εκτέλεση προγραμματισμένων συναλλαγών" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Ενημέρωση νομισμάτων/ισοτιμιών online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Επαναφορά όλων των προτιμήσεων" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Θέλετε πραγματικά να επαναφέρετε\n" "όλες τις προτιμήσεις στις προκαθορισμένες\n" "τιμές?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Προτιμήσεις" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Πληροφορίες" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Θα πρέπει να επανεκκινήσετε το HomeBank\n" "για να εφαρμοστούν οι αλλαγές στην γλώσσα." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Ο κατάλογος του αντιγράφου ασφαλείας έχει αλλάξει,\n" "ίσως χρειαστεί να αντιγράψετε το '.bak' αρχείο σε αυτήν την νέα τοποθεσία." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Επεξεργασία ετικέτας" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Αδυναμία μετονομασίας αυτής της Ετικέτας,\n" "από '%s' σε '%s',\n" "αυτό το όνομα υπάρχει ήδη." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Συγχώνευση ετικέτας '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Οι συναλλαγές που έχουν ανατεθεί σε αυτήν την ετικέτα, \n" "θα μεταφερθούν στην παρακάτω επιλεγμένη ετικέτα." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Διαγραφή της ετικέτας '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Αυτή η ετικέτα χρησιμοποιείται.\n" "Εκείνη η ετικέτα θα διαγραφεί από κάθε συναλλαγή που την χρησιμοποιεί." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Διαχείριση Ετικετών" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "νέα ετικέτα" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "H συναλλαγή %s δημιουργήθηκε." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Θέλετε να διασπάσετε την εσωτερική μεταφορά;\n" "\n" "Αν συνεχίσετε θα διαγραφεί η συναλλαγή στόχος." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Διάσπαση" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Δείξε _προγραμματισμένο" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Εμφάνιση _όλων των λογαριασμών" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Χρήση ενός προτύπου" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Προσθήκη & _Διατήρηση" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Προσθήκη συναλλαγής" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Προσθήκη προτύπου" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Κληρονόμηση συναλλαγής" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Κληρονόµηση προτύπου" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Επεξεργασία συναλλαγής" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Επεξεργασία προτύπου" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Ημερομηνία:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- τύπος: ημ, ημ/μη, μη/ημ μία πλήρης ημερομηνία\n" "- χρησιμοποιήστε πλήκτρο βέλους + ctrl ή shift\n" "- κενό για σήμερα" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "Π_ρος:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Διαχωρισμοί συναλλαγής" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Δεν υπάρχει διαθέσιμη ισοτιμία για αυτόματη συμπλήρωση" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Λογαριασμός:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Μπλοκ _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- πληκτρολογήστε κάποιο γράμμα για αυτόματη συμπλήρωση\n" "- πληκτρολογήστε νέο κείμενο για να δημιουργήσετε καταχώριση" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Κατη_γορία:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Κατάσταση:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "Αι_τιολογία:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Προειδοποίηση: πινακίδα ποσό και κατηγορία δεν ταιριάζουν" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Επεξεργασία πολλαπλών συναλλαγών" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Τύπος ως\n" "μεταφορά" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Διαγραφή όλων" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Εφαρμογή" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Ακύρωση" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Ποσό συναλλαγής:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Δεν έχει ανατεθεί:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Άθροισμα των διαχωρισμών:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Προειδοποίηση: το άθροισμα των διαχωρισμών και ο τύπος συναλλαγής δεν " "ταιριάζουν" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Προειδοποίηση: το άθροισμα των διαχωρισμών και το ποσό συναλλαγής δεν " "ταιριάζουν" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(χωρίς τύπο)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Τράπεζα" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Μετρητά" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Πάγιο" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Πιστωτική κάρτα" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Παθητικό" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Επιταγές" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Αποταμιεύσεις" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Ημέρα" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Εφικτό" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Πριν" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Μετά" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Παράλειψη" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Χρόνος" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Έτος" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Εβδομάδα" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "δύο βδομάδες" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Τρίμηνο" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Εξάμηνο" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Συμπερίληψη" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Εξαίρεση" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Εχθές" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Αύριο" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Προηγούμενη εβδομάδα" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Αυτήν την εβδομάδα" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Επόμενη Εβδομάδα" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Τελευταίες 2 εβδομάδες" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Το τρέχων 14ήμερο" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Τις επόμενες 2 εβδομάδες" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Τελευταίο μήνα" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Τρέχων Μήνα" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Επόμενο Μήνα" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Τελευταίο Τρίμηνο" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Τρέχων Τρίμηνο" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Επόμενο Τρίμηνο" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Τελευταίο έτος" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Τρέχων έτος" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Επόμενο έτος" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Τελευταίες 90 Ημέρες" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Τελευταίες 60 Ημέρες" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Τελευταίες 30 Ημέρες" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Τελευταίοι 12 Μήνες" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 Ημέρες πέριξ" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Όλες οι Ημερομηνίες" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Τρέχον μήνας" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Επόμενος μήνας" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Επόμενες 30 ημέρες" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Επόμενες 60 ημέρες" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Επόμενες 90 ημέρες" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Έξοδα & Έσοδα" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Οποιοσδήποτε Τύπος" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Οποιαδήποτε κατάσταση" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Μη εκκαθαρισμένο" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Μη συμφωνημένο" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Χωρίς Κατηγορία" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Προεπιλογές συστήματος" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Μόνο εικονίδια" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Μόνο κείμενο" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Κείμενο κάτω από τα εικονίδια" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Κείμενο δίπλα από τα εικονίδια" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Οριζόντια" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Κατακόρυφα" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Και στα δύο" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "μ-η-ε" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "η-μ-ε" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "ε-μ-η" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Παράβλεψη" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Προσάρτηση στην Αιτιολογία" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Προσάρτηση σε Δικαιούχο" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Καρτέλα" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Κόμμα" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Άνω τελεία" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Κενό" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Ιανουάριος" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Φεβρουάριος" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Μάρτιος" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Απρίλιος" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Ιούνιος" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Ιούλιος" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Αύγουστος" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Σεπτέμβριος" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Οκτώβριος" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Νοέμβριος" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Δεκέμβριος" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Σεπ" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Αναζήτηση..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Επιταγή" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Τραπεζική Μεταφορά" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Χρεωστική κάρτα" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Πάγια εντολή" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Ηλεκτρονική πληρωμή" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Κατάθεση" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Προμήθεια τράπεζας" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Άμεση Χρέωση" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/fr_CA.po0000644000175000017500000036340114775770114010747 # French (Canada) translation for homebank # Copyright (c) 2020 Rosetta Contributors and Canonical Ltd 2020 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2020. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-04-08 10:25+0000\n" "Last-Translator: TG \n" "Language-Team: French (Canada) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finances personnelles" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "La comptabilité personnelle, gratuite et facile pour tous" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finances;comptabilité;budget;personnel;argent ;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank est un logiciel libre et gratuit qui vous aidera à gérer votre " "comptabilité personnelle." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Il est conçu pour être facile à utiliser et pouvoir analyser en détail vos " "finances personnelles à l'aide de puissants outils de filtrage et de beaux " "graphiques." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Si vous recherchez un moyen totalement gratuit et facile de gérer votre " "comptabilité personnelle, alors HomeBank devrait être le logiciel qu’il vous " "faut." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "%d nécessite une approbation" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transactions" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" "%d transactions, %d sélectionnées, moyenne : %s, somme : %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Verrouillé. Cliquez pour déverrouiller" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Déverrouillé. Cliquez pour verrouiller" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Energie de vie" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Gain par heure' n'est pas définit pour le portefeuille courant." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Êtes-vous sûr de vouloir supprimer les %d opérations sélectionnées ?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Si vous supprimez une opération, elle est définitivement perdue." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Supprimer" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Voulez-vous vraiment changer l'état en « Aucun » ?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Certaines transactions dans votre sélection sont déjà rapprochées." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Modifier" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Etes-vous sûr de vouloir changer le statut en Pointée ?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Voulez-vous vraiment inverser l'état Rapprochée des transactions ?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Basculer" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Êtes-vous sûr de vouloir créer des modèles depuis les %d opérations " "sélectionnées ?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Créer" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Créer un modèle" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d créé avec une icône 'préremplie'" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Êtes-vous sûr de vouloir créer des affectations depuis les %d opérations " "sélectionnées ?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Créer une affectation" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Toutes les transactions" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "%d dont le signe de catégorie ne correspond pas" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "Aucun signe de catégorie ne correspondant pas n'a été trouvé !" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Il existe le groupe %d avec des transactions similaires" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Aucune transaction similaire n'a été trouvée !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Vérifier le résultat du transfert interne" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Aucune incohérence trouvée !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Des incohérences ont été constatées : %d\n" "Voulez-vous revoir et corriger ?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Le montant de chaque transaction sera divisé par %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Êtes-vous sûr de vouloir convertir ce compte à l'euro comme monnaie " "principale ?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Convertir" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Aucune transaction n'a été modifiée" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "la transaction a été modifiée : %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Résultat de l'affectation automatique" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Ajouter..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Hériter..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Modifier…" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Aucun" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Pointée" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Rapprochée" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_État" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Aucun" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Rouge" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Orange" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Jaune" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Vert" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Bleu" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Violet" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Drapeau" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "Approuver" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "Rejeter (Supprimer)..." #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Modification m_ultiple..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Voir _Ventilation" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copier montant brut" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Créer un modèle..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Créer affectation..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Supprimer..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Monter" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Descendre" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exporter en QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exporter en CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Imprimer..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Visiter le site web" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Fermer" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Compte" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copier" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Coller" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Coller (date du jour)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Copier presse-papier" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Rechercher" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Édition" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marquer les doublons..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "Marquer le signe de catégorie..." #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Vérifier les virements internes" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Affectations Auto." #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Convertir en Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "Ou_tils" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Déplacer vers le haut" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Déplacer vers le bas" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Ajouter une nouvelle opération" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Ajouter" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Ajouter une transaction héritant de celle sélectionnée" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Hériter" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Modifier la transaction sélectionnée" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Modifier" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Inverser l’état Pointée des opérations sélectionnées" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Inverser l’état Rapprochée des transactions sélectionnées" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Modifier plusieurs transactions" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Supprimer les transactions sélectionnées" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Changements rapprochées est" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(fermé)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Afficher" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Actualiser" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Ecart _date:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Basculer affichage %d jours d'avance" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Modifier le filtre" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Effacer les filtres" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Actualiser les résultats" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Basculer Energie de vie" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro _mineur" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Rapproché:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Pointé:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Aujourd’hui :" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futur :" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Rétablir les changement non enregistrés du fichier « %s » ?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Les modifications faites au fichier seront perdues\n" "- Le fichier sera restauré à sa dernière sauvegarde (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Rétablir" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Voulez-vous vraiment anonymiser le dossier ?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "La procédure rendra anonyme tout texte,\n" "comme \"compte x\", \"bénéficiaire y\", \"mémo z\", ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymiser" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Bienvenue dans HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Fermer" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Ouvrir _dernier fichier ouvert" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Créer un _nouveau fichier" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Ouvrir un fichier existant" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Ouvrir le fichier d’_exemple" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Lire le _manuel utilisateur" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configurer les _préférences" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Montrer cette fenêtre la prochaine fois" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Vous êtes sur le point d'ouvrir le fichier de sauvegarde '%s'\n" "\n" "Êtes-vous certain de vouloir faire cela ?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Ouvrir le fichier de sauveguarde" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Ouvrir sauvegarde" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Impossible d'ouvrir « %s », le fichier n'existe pas.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Erreur inconnue" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Erreur d’E/S pour le fichier « %s »." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Le fichier « %s » n'est pas un fichier HomeBank valide." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Le fichier « %s » a été enregistré dans une version supérieure de HomeBank\n" "et ne peut être lu par cette version." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Erreur du fichier" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Le fichier a été modifié depuis son ouverture." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Si vous l’enregistrez, toutes les modifications externes pourraient être " "perdues. Souhaitez-vous enregistrer quand même ?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Enregistrer quand même" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Effacer" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fichier" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nouveau" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Ouvrir..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Ouvrir les _récents" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Enregistrer" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Enregistrer _sous..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importer..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exporter en QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Rétablir" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaurer la sauvegarde" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propriétés…" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Quitter" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Préférences..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Affichage" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Barre d’outils" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Graphique de T_otal" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Graphique de T_emps" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "Listes en _bas" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro mineur" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gérer" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Portefeuille..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "C_omptes…" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Tiers..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Catégories..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Étiquettes..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Planifiées/Modèles…" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Affectations…" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Devises..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget…" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (vue tableur)" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Opérations" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Ajouter..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Montrer..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Tout montrer..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Définir le planificateur…" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Valider les opérations planifiées" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Rapports" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistiques…" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendance" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "So_lde..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget…" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Coût _Voiture..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Afficher la fenêtre d’accueil…" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Statistiques du fichier…" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymiser…" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Aide" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Aide d’HomeBank" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obtenez de l'aide en ligne..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Vérifier les mises à jour" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Notes de Version" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Signalez un problème..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduire cette application…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_À propos" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nouveau" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Créer un nouveau fichier" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Ouvrir" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Ouvrir un fichier" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Ouvrir un fichier utilisé récemment" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Enregistrer" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Enregistrer le fichier actuel" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Compte" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gérer les comptes" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Tiers" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gérer les tiers" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Catégorie" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gérer les catégories" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Planifiées/Modèles" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gérer les opérations planifiées/modèles" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gérer le budget" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Affectation" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Gérer les affectations automatiques" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Afficher les opérations du compte sélectionné" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Ajouter des opérations" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistiques" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Ouvrir le rapport de statistiques" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Tendance" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Ouvrir le rapport de tendance" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Solde" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Ouvrir le rapport de solde" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Ouvrir le rapport de budget" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Coût véhicules" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Ouvrir le rapport de coût des véhicules" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Aide" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Faire un don" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Faire un don au projet HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Planifiée" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futur" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Rappel" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Aujourd'hui" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(pas de mémo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copie)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(sans catégorie)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "format CSV invalide" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Plage de dates invalide !" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Type" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-débit" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-crédit" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-débit" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-crédit" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "État" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "aucun" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "effacé" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "rapproché" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Étiquette" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Paiement" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Montant" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Texte" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Inconnu" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(sans tiers)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(sans groupe)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(sans tag)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "S%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "T%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "S%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-s%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-t%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d's%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Afficher la version de l’application" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FICHIER]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Erreur du navigateur." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Impossible d’afficher l’URL « %s »" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(sans institution)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Vos comptes" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copier vers le presse-papiers" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Grouper par" #: ../src/hub-account.c:595 msgid "type" msgstr "type" #: ../src/hub-account.c:596 msgid "group" msgstr "groupe" #: ../src/hub-account.c:597 msgid "institution" msgstr "Institution" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Voir tous" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Tout développer" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Tout réduire" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "somme: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Aucune opération à ajouter" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "opérations ajoutées : %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Résultat de l’ajout des opérations planifiées" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Publier quand le programme démarre" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Actif" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Inactif" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "Date maximale de validation" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Passer" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Editer & P_oster" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Valider" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Dépense / Catégorie" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Top %d débit / catégorie" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d Dépense / Tiers" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Top %d débit / tiers" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Dépense / Compte" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Top %d débit / compte" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Solde du compte" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Solde Groupe de compte" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Autre" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Graphique de Total" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Top par" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Montant bruts" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Groupe de compte" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Dépenses" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Dépenses" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Revenus" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Revenus" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Dépenses & Revenus" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Débit & crédit" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Solde global" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Graphique de Temps" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Global" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "compte importé" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total général" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "dernier rapprochement" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "avant découvert" #: ../src/list-account.c:753 msgid "before maximum" msgstr "avant maximum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Comptes" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Rapprochée" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Pointée" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Aujourd'hui" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- ventilé -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- catégorie requise -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Date" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Numéro" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Mémo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Étiquettes" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Pay./Numéro" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "Importé" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "Date passée" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Drapeau" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Correspond" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "Et." #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Résultat" #: ../src/list-report.c:957 msgid "Average" msgstr "Moyenne" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "En retard" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Reste" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Prochaine date" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Solde par %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d en dessous de %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Liste" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Voir les résultats en liste" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Ligne" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Voir les résultats en lignes" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Détail" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Afficher le détail" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Actualiser" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Imprimer..." #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Rapport de solde" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Affichage" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Montrer les lignes vides" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X :" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtre" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Actif:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Plage :" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_De :" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_À :" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Sélection :" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Tous" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inverser" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Inclure les _transferts" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Dépensé" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Réalisé" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mois" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budget par catégorie" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budget par mois" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " au-dessus" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " restant" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " en-dessous" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(non-budgeté)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Empilé" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Voir les résultats en barres empilées" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Résultat vers presse-papier" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Résultat vers CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Détail vers presse-papier" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Détail vers CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Aucun compte n’est défini pour être inclus dans le budget." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" "Vous devriez inclure des comptes dans la fenêtre de dialogue des comptes." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Rapport budget" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Mode :" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Type :" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Seulement les hors-budget" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "Jusqu'à aujourd'hui" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Résultat :" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget :" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Dépensé :" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s par %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Trop de colonnes à afficher" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "Sélectionnez un intervalle plus large et / ou une plage de date plus " "restreinte" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Colonne" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Voir les résultats en colonnes" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "En anneau" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Voir les résultats en anneau" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Voir résultat en pile" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Pile 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Voir résultat en pile 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Légende" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Afficher la légende" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Taux" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Inverser l'affichage du taux" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Rapport statistiques" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Afficher par :" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "Mode _solde" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Prévision" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Trier par _montant" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Comparer Déb. & Créd." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total :" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Revenus :" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Dépenses :" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Moyenne : %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Rapport de tendance" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Cumuler" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Élément" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_Par:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Part de temps" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Compteur" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Carburant" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Prix" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exporter" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exporter en CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Rapport de coût des véhicules" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Catégorie :" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Compteur :" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consommation :" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Coût carburant :" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Autres coûts :" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Coût total :" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(aucun)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nom du compte" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Erreur" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Impossible d’ajouter un compte « %s »,\n" "ce nom existe déjà." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Impossible de supprimer le compte « %s »" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Il a des opérations" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Il est la destination du transfert" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Il a des opérations planifiées/modèles" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Il est la destination de transfert d'opérations planifiées/modèles" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Voulez-vous vraiment supprimer définitivement « %s » ?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Si vous supprimez un compte, il sera définitivement perdu." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossible de renommer ce compte,\n" "de « %s » vers « %s »,\n" "ce nom existe déjà." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gérer les comptes" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Supprimer" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Renommer" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Monter" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Descendre" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Général" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Groupe :" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institution:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_uméro :" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Solde _initial :" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Devises :" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "ce compte est clos" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Site internet:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notes :" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportement" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatisation" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Modèle par défaut:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Exclusion des rapports" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "exclure du ré_sumé des comptes" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "hors flux dans le résumé" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "exclure du _budget" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "exclure de tous les _rapports" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Divers" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Numéro de chèque en cours" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Carnet de chèque _1 :" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Carnet de chèque _2 :" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limites de solde" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Découvert à:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Effacer Modèle" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Ce modèle est utilisé en tant que modèle de compte\r\n" "et ne peut pas être supprimé" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Si vous supprimez une planification/modèle, elle sera définitivement perdue." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "La date de publication sera décalée après la fin de semaine" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Prochaine _date :" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "Modèle de récurrence" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "To_us les :" #: ../src/ui-archive.c:918 msgid "The" msgstr "Le" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Plus d’options" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Fin de semaine :" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Arrêt après :" #: ../src/ui-archive.c:972 msgid "posts" msgstr "postage" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Gérer les opérations planifiées/modèles" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Modèle" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Dupliquer" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Programme" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Rechercher" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notes" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "Tier" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Recherche ne peut pas être vide" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Ce texte de recherche existe déjà en position %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Annuler" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condition" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Rechercher:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Dans:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Sensible à la casse" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "Expression _régulière" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Monta_nt:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_ET" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Affectations" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Tiers :" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Remplacer" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Paie_ment :" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "É_tiquettes:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Impossible de dupliquer cette règle,\n" "'%s' existe déjà." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(règle %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Si vous supprimez une affectation, elle sera définitivement perdue." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Déplacer vers…" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Déplacer la règle" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Déplacer" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Gérer les affectations" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Cet assistant vous aidera à paramétrer une configuration minimale\n" "pour un nouveau fichier HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Tous les éléments que vous configurez ici peuvent être modifiés " "ultérieurement si nécessaire." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Aucune modification ne sera apportée tant que vous \n" "n'aurez pas cliqué sur «Appliquer» à la fin de cet assistant." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank affichera un titre pour la fenêtre principale,\n" "il peut s'agir d'un intitulé de votre choix ou de votre nom." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Titre:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank prend en charge plusieurs devises. La devise de base est\n" "la valeur par défaut pour les nouveaux comptes et rapports." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Configurer des devises supplémentaires" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Ajouter" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Non trouvé" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank peut préremplir les catégories pour votre langue\n" "si un fichier CSV est disponible et fourni par la communauté." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configurer les catégories pour ma langue" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Fichier prédéfini :" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank permet d'importer vos comptes depuis les fichiers téléchargés\n" " des sites de vos institutions financières ou vous pouvez créer votre compte " "manuellement." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Créer mon premier compte" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nom :" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Ceci est une page de confirmation,\n" "\n" "appuyez sur «Appliquer» pour appliquer les modifications" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Démarrer la configuration du fichier" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Options de fichier" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Choisissez les devises" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Choisissez des catégories" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Créer un compte" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Terminer la configuration du fichier" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Valide" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nom" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Ouvrir" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Fichiers connus" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Fichiers QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Fichiers OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Fichiers CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Tous les fichiers" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nouveau compte global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nouveau compte" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "sauté" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d de %d opérations" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d opération(s), %d similaire, %d existante, %d sélectionnée" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d opération(s), %d sélectionnée(s)" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Certaines dates ne peuvent être converties. Modifier le format de date pour " "continuer" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importer %s _vers:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "ce fichier" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "ce compte" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nom: %s\n" "Numéro: %s\n" "Fichier: %s\n" "Codage %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importer l'opération depuis la banque ou la carte de crédit" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Avec cet assistant vous serez guidé durant l'importation d'un ou plusieurs\n" "relevés téléchargés depuis votre banque ou votre carte de crédit, dans les " "formats suivants:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recommandé: .OFX ou .QFX\n" "(parfois nommé Money ™ ou Quicken ™)\n" "Pris en charge: .QIF\n" "(fichier Quicken ™)\n" "Utilisateurs avancés uniquement: .CSV\n" "(le format est spécifique à HomeBank, voir la documentation)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Aucun changement ne sera effectué jusqu'à ce que vous cliquiez sur " "\"Appliquer\" à la fin de cet assistant." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Ne pas montrer de nouveau" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Glisser & déposer un ou plusieurs fichiers à importer.\n" "Vous pouvez aussi utiliser les boutons ajouter/supprimer de la liste." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Il y a trop de comptes dans les fichiers que vous avez choisis,\n" "veuillez utiliser le bouton Précédent pour sélectionner moins de fichiers." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "L'identification du compte cible par nom ou numéro a échoué." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Ordre des dates :" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importer memos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Inverser memos avec tiers" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "_Nom OFX:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "_Memo OFX:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Casse de phrase pour memo/tiers" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Basculer mon_tant" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Transaction similaire dans le compte cible (duplicata possible)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "jours" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "La concordance est faite dans l’ordre par : compte, montant et date.\n" "Une tolérance de date de 0 signifie un concordance exacte." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "Option" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "Importer en attente" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Jouer l'automatisation" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Compléter avec la valeur par défaut des _tiers" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Lancer les règles d'affectation automatique" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Cliquer \"Appliquer\" pour mettre à jour vos comptes" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Bienvenue" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Sélectionner fichier(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importer" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmation" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Erreur de format du fichier" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Le fichier au format CSV doit contenir le nombre exact de colonnes,\n" "séparées par un point-virgule, reportez-vous à l’aide pour plus de détails." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Voulez-vous vraiment effacer l'entrée ?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Si vous continuez, chaque montant défini à 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Vider" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget pour %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gérer le budget" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importer CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "E_xporter CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Solde :" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "est le même chaque mois" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Vider la saisie" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "est différent chaque mois" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Options" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forcer l’affichage de cette catégorie" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Fév" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Avr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jui" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Juil" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aoû" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Déc" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Synthèse" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totaux" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Total\n" "Annuel" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Moyenne\n" "Mensuelle" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mensuel" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Ajouter une catégorie" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "A_ppliquer" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Catégorie parente" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nom de la catégorie" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Cette catégorie est utilisée.\n" "Toute opération utilisant cette catégorie sera définie en (sans catégorie)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Fusionner les catégories" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Les opérations affectées à la catégorie '%s' seront migrées vers la " "catégorie sélectionnées ci-dessous." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Catégorie cible" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Supprimer la catégorie « %s »" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Êtes-vous certain de vouloir effacer les saisies pour '%s' ?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "Effacer l'intégralité du budget" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" "Etes-vous sûr de vouloir effacer\n" "définitivement le budget ?" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "Tout effa_cer..." #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Ajouter catégorie" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Supprimer catégorie" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Fusionner" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Effacer la saisie" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# opé" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Supprimer les catégories inutilisées" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Voulez-vous vraiment supprimer\n" "définitivement les catégories inutilisées ?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Nom de catégorie en double. Essayez un autre nom." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Modifier la catégorie" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Modifier le type" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Revenus" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propager aux _enfants" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossible de renommer cette catégorie,\n" "de « %s » vers « %s »,\n" "ce nom existe déjà." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Fusionner la catégorie « %s » ?" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Les opérations affectées a cette catégorie \n" "seront migrées vers la catégorie sélectionnée ci-dessous." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Inclure _sous catégories" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "_Supprimer la catégorie '%s' (et le budget)" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Gérer les catégories" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Afficher ce qui est caché" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Afficher l'utilisation" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Supprimer inutilisés...." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Bouger/Fusionner" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Afficher/Masquer" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nouvelle catégorie" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nouvelle sous-catégorie" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Devise de base" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbole" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Taux de change" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Dernière modification" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Éditer la Devise" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Devise" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personnaliser" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbole :" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "est pré_fixe" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Caractère _décimal:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Nombre de _décimales :" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Car. de _groupement:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Choisir la devise de base" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Sélection de devise" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Code ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Ajouter une _devise personnalisée" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO :" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Erreur de mise à jour en ligne" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Si vous supprimez une devise, elle sera définitivement perdue." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Changer la devise de base" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Si vous continuez, le taux de change des autres devises\n" "sera remis a 0, n'oubliez pas de mettre à jour" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Devises" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Mise à jour en ligne" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Journal d'appel" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Définir comme base" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Statistiques du fichier" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Opération" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Mettre à niveau" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Choisir une devise de base" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "A partir de la v5.1, HomeBank peut gérer plusieurs devises\n" "si la devise ci-dessous n'est pas correcte, merci de la changer:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Devise :" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exporter en QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importer depuis CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Ouvrir un fichier HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Ficher de sauveguarde HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Enregistrer le fichier HomeBank sous" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Fichiers HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Fichier sauvegarde" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Toutes les sauveguardes" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Enregistrer les modifications avant de fermer le fichier ?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Si vous n'enregistrez pas, les modifications seront définitivement perdues.\n" "Nombre de modifications : %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Fermer _sans enregistrer" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exporter en _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Dossier :" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Sélectionnez un dossier" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nom du fichier:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Ajout la colonne d'état" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Détailler les ventilations" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Le fichier ne sera pas dans le format CSV HomeBank, car vous exportez\n" "depuis 'Toutes les opérations' ou que vous avez coché une option." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exporter en PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exporter en _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Avec HomeBank, l'impression est orientée vers une attitude éco-responsable\n" "vers l'usage du format numérique le plus répandu: le format PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Sélectionnez l'action pour la création de cible" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Créer _Nouvelle" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Utiliser _Sélection" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Virement source" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Associations suggérées" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank a trouvé des opérations qui peuvent être les opérations cibles du " "virement interne." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Pas d'opération correpondante." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Saisir de -30 a -15 pour filtrer sur des débits" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Mémo :" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Numéro:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Débit virement" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Crédit virement" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Réinitialiser" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Sauver & utiliser" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Utiliser" #: ../src/ui-filter.c:1370 msgid "default" msgstr "Par défaut" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Montant/Texte" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Toujours afficher" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Nul" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Ajouté" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Modifié" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(par défaut)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Renommer filtre" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Nouveau filtre %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Nom du filtre" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Enregistrer sous..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Renommer…" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Date d’échéance" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Prochaine Paie" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "En avance" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "La date de publication maximale est %s (incluse)" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propriétés du fichier" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Opérations planifiées" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "de chaque" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mois" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Gain par heure:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Supprimer les tiers inutilisés" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Voulez-vous vraiment supprimer\n" "définitivement les tiers inutilisés ?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Nom de tiers en double. Essayez un autre nom." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Modifier Tiers" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Remplissage par défaut" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_iement :" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossible de renommer ce tiers,\n" "de « %s » vers « %s », ce nom existe déjà." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Fusionner le tiers « %s » ?" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Les opérations affectées à ce tiers \n" "seront déplacées vers le tiers sélectionnée ci-dessous." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Supprimer le tiers « %s »" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Ce tiers est utilisé.\n" "Toute opération utilisant ce tiers sera définie en (sans tiers)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gérer les tiers" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nouveau tiers" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "Thème" #: ../src/ui-pref.c:92 msgid "Color" msgstr "Couleur" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Localisation" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Opérations" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "Boîte de dialogue" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Virement" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importer/Exporter" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Rapport" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Prévision" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Sauvegarde" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Dossiers" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Mode expert" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Langue système" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Choisir le dossier par défaut des fichiers HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Choisissez un dossier de sauvegarde par défaut" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Choisir le dossier par défaut des importations" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Choisir le dossier par défaut des exportations" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "Paiement affichés et choisis" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Utiliser le glisser et déposer pour ordonnancer" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "API de devise" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Clé:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Options générales" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Options OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Options QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Options CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(import opération uniquement)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Séparateur :" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Rapports de l'accueil" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max. éléments" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Filtre initial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Options des statistiques" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Montrer par _montant" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Montrer la _colonne des taux" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Montrer les _détails" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Options du budget" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "Exclure les sous-catégories de la ligne non budgétisée" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Activer les _prévisions" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Nombre de mois:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "Activ_er" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Prédéfini :" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Réglages" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interface utilisateur" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Langue :" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "Affichage de la date :" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "_Personnaliser" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format :" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a abréviation du jour de la semaine.\n" "%A nom complet du jour de la semaine.\n" "%b abréviation du mois.\n" "%B nom complet du mois.\n" "%c affichage de l’heure et de la date.\n" "%C le siècle représenté par un nombre [00-99].\n" "%d le jour du mois représenté par un nombre [01,31].\n" "%D identique à %m/%d/%y.\n" "%e le jour du mois représenté par un nombre [1,31]; les chiffres seuls sont " "précédés par un espace.\n" "%j le jour de l’année représenté par un nombre [001,366].\n" "%m le mois représenté par un nombre [01,12].\n" "%p représentation appropriée de la date.\n" "%y l’année représentée par un nombre sans le siècle [00,99].\n" "%Y l’année représentée par un nombre incluant le siècle." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Année fiscale" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Début _le :" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unités de mesure" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Utiliser les _miles pour le compteur" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Utiliser les _gallons pour le carburant" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Toujours afficher les rappels" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Toujours afficher nul" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Inclure les rappels dans les soldes et les rapports" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "Sécurité" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Verrouiller les rapprochées de tout changement" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "Approuver les ajouts avant le dernier rapprochement" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "Approuver les ajouts" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "jours avant la date d'aujourd'hui" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "Fenêtre du grand livre" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Voir futures:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "jours avant" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Cacher les rapprochées" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Fenêtre opération" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "Conserver la date lors d'ajouts multiples ou d'héritage" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Activer la saisie automatique des mémo avec" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "jours glissants" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Voir confimation ajout de 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Montrer la liste des modèle en édition" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "Comportement" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" "Lors de l'ajout, toujours affichez la boîte de dialogue d'_action pour la " "cible" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "É_cart de date pour trouver une cible :" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "Synchroniser" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "_Date" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "Thème" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "Mode sombre :" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "Le système n'a aucune préférence" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "Le système préfère le sombre" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "Le système préfère le clair" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "Utiliser le mode _sombre si disponible" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "Icônes" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "Thème icônes:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "Utiliser les icônes _symboliques si disponible" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Préférences Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "Ecras_er" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "Taille de _police:" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "Graphique" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "_Palette:" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "Autres" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "Utiliser les couleurs de la palette de graphiques" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "_Dépense" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "_Avertissement" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "Fond des _futures" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "Colorer les mont_ants" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "Colorer le _fond des opératiosn futures" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "Lignes de _grille:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Options des graphiques" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Petite _police légende" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Barre d’outils :" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Activer les sauvegardes automatiques" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Nombre de sauvegardes à conserver:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "La fréquence des sauvegardes est d'une fois par jour" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Portefeuilles:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "Sauve_gardes:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Fichiers d'échanges" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importer :" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "E_xporter :" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Démarrage du programme" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Afficher la fenêtre de démarrage" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Charger le dernier fichier ouvert" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Valider les opérations planifiées en attente" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Mise à jour des devises en ligne" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Réinitialiser toutes les préférences" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Voulez-vous vraiment réinitialiser\n" "toutes les préférences à leur valeur \n" "par défaut ?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Préférences" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Vous devez redémarrer HomeBank\n" "pour que la modification de langue soit effective." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Le dossier de sauvegarde a changé,\n" "vous pourriez copier les fichier '.bak' vers ce nouveau dossier." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Effacer les étiquettes inutilisées" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Êtes-vous sûr de vouloir\n" "effacer définitivement les étiquettes inutilisées ?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Nom d'étiquette en double. Essayez un autre nom." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Modifier le Tag" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossible de renommer cette étiquette,\n" "de « %s » vers « %s »,\n" "ce nom existe déjà." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Fusionner l'étiquette '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Les transactions affectées à cette étiquette \n" "seront déplacées vers l'étiquette sélectionnée ci-dessous." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Supprimez l'étiquette '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Cette étiquette est utilisée.\n" "Cette étiquette sera supprimée de toute opération l'utilisant." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gérer les étiquettes" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nouvelle étiquette" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Opération de %s créée." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Voulez-vous supprimer le lien interne du virement ?\n" "\n" "Si oui, le virement lié sera supprimé." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Briser" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Montrer les _planifiées" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Voir _tous les comptes" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Utiliser un modèle" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Ajouter & Co_nserver" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Ajouter une opération" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Ajouter un modèle" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Hériter d’une opération" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Hériter le modèle" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editer l'opération" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editer le modèle" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Date :" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- tapez: j, j/m, m/j une date complète\n" "- utilisez les touches flèche + ctrl ou shift\n" "- vider pour aujourd'hui" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_À :" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Opération ventilée" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Pas de taux disponible pour le remplissage automatique" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Compte :" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Carnet _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- tapez des lettres pour la saisie automatique \n" "- tapez un nouveau texte pour créer une entrée" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Catégorie:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_État :" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_émo :" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Attention: signe de montant et signe de catégorie ne concordent pas" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Édition d'opérations multiples" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Typer comme\n" "virement" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Voulez-vous supprimer toutes les ventilations" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Tout supprimer" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Préfixez avec -/+ pour forcer le signe" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Appliquer" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Annuler" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Montant de l’opération :" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Non-affecté :" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Somme des ventilations :" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Nombre maximum de ventilation atteint" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Attention: la somme des ventilations et le type d'opération ne concordent pas" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Avertissement: la somme des fractionnements et du montant de la transaction " "ne correspond pas" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(sans type)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banque" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Espèces" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Biens" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Carte de crédit" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Dettes" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Chèque" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Épargne" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "Quotidien" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "Hebdomadaire" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "Annuel" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "jour(s)" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "semaine(s)" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "mois" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "an(s)" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "Premier" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "Second" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "Troisième" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "Quatrième" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "Dernier" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Jour" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "Lundi" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "Mardi" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "Mercredi" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "Jeudi" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "Vendredi" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "Samedi" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "Dimanche" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Avant" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Après" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Passer" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Temps" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Groupe de comptes" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Année" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Semaine" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Quinzaine" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestriel" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Inclure" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Exclure" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Hier" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Demain" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Semaine dernière" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Semaine actuelle" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Semaine prochaine" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Quinzaine dernière" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Quinzaine actuelle" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Quinzaine prochaine" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Mois dernier" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Mois actuel" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Mois prochain" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Trimestre dernier" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Trimestre actuel" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Trimestre prochain" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Année dernière" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Année actuelle" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Année prochaine" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "Année à ce jour" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "Mois à ce jour" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "Toutes les dates" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "90 derniers jours" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "60 derniers jours" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "30 derniers jours" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "12 derniers mois" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 jours environ" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Toutes les dates" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Personnalisé" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Mois actuel" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Mois prochain" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Prochains 30 jours" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Prochains 60 jours" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Prochains 90 jours" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Date de publication maximale" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Débits et crédits" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Tous les types" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Tous les états" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Non pointée" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Non-rapprochée" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Sans catégorie" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "Non approuvé" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Valeurs par défaut du système" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Icônes uniquement" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Texte uniquement" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Texte sous les icônes" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Texte à côté des icônes" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontale" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Verticale" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Les deux" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-j-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "j-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-j" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorer" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Ajouter après numéro" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Ajouter à Mémo" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Ajouter au tiers" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tab" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Virgule" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Point-virgule" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Espace" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Janvier" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Février" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Mars" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Avril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juin" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juillet" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Août" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Septembre" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Octobre" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembre" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Décembre" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Rechercher..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Drapeaux quelconques" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Chèque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Virement bancaire" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Carte de débit" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Virement permanent" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Paiement électronique" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Dépôt" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Frais bancaires" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Prélèvement direct" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Téléphone mobile" homebank-5.9.1/po/be.po0000644000175000017500000031712314775770071010365 # Belarusian translation for homebank # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-08-15 19:07+0000\n" "Last-Translator: Sciapan \n" "Language-Team: Belarusian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Асабістыя фінансы" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Бясплатны, просты, асабісты ўлік для ўсіх" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "фінансы;ўлік; бюджэт; асабістае; грошы;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank - гэта свабоднае праграмнае забеспячэнне, якое дапаможа вам " "кіраваць асабістымі фінансамі." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Просты ў выкарыстанні і дазваляе дэталёва аналізаваць вашыя асабістыя " "фінансы з дапамогай магутных інструментаў фільтрацыі і прыгожых графікаў." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Калі вы шукаеце цалкам свабодны і просты спосаб кіравання вашай асабістай " "бухгалтэрыяй, то HomeBank – гэта Ваш выбар." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d транзакцый" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d транзакцый, %d абрана, сярэд.: %s, сума: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Замкнутыя. Націсніце, каб адамкнуць" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Адамкнутыя. Націсніце, каб замкнуць" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Вы ўпэўненыя, што хочаце выдаліць %d абраных транзакцый?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Калі вы выдаліце транзакцыю, яе нельга будзе аднавіць." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Выдаліць" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Вы ўпэўненыя, што хочаце змяніць стан на Ніякі?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Некаторыя з абраных транзакцый ужо Пацверджаныя" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Змяніць" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Вы ўпэўненыя, што хочаце пераключыць стан Пацвярджэння?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Пераключыць" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Вы ўпэўненыя, што хочаце стварыць шаблон з %d абраных транзакцый?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Стварыць" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Стварыць Шаблон" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "Створана: %d" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Вы ўпэўненыя, што хочаце стварыць прызначэнне з %d абраных транзакцый?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Стварыць Прызначэнне" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Усе транзакцыі" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Існуе %d група падобных транзакцый" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Падобных транзакцый не знойдзена!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Праверце вынік ўнутранага пераводу" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Cупярэчнасці незнойдзеныя!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Знайшліся супярэчнасці: %d\n" "ці хочаце Вы праглядзець і паправіць іх?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Сума кожнай транзакцыі будзе падзеленая на %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Вы ўпэўненыя, што хочаце змяніць асноўную валюту гэтага рахунку на Еўра?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Змяніць" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Ніводная транзакцыя не была змененая" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "змененыя транзакцыі: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Вынік аўтаматычнага прызначэння" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Дадаць..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Успадкаваць..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Рэдагаваць..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ніякі" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Ачышчаны" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Пацверджаны" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Стан" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Нічога" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Рэдагаваць Некалькі..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Стварыць шаблон..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Стварыць прызначэнне..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Выдаліць..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Угору" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Уніз" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Экспартаваць QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Экспартаваць CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "_Надрукаваць..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Агледзець Вэб-старонку" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "Ра_хунак" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Рэдагаваць" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Прылады" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Дадаць транзакцыю" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Дадаць" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Успадкаваць ад бягучай транзакцыі" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Успадкаваць" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Кіраваць бягучую транзакцыю" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Рэдагаваць" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Абнавіць вынікі" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Сёння:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Будучыня:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Зачыніць" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Не атрымалася адкрыць '%s', файл не існуе.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Памылка файла" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Файл" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Новы" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Адкрыць" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Захаваць" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Адкаціць" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Выйсці" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Налады..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Выгляд" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Панэль прыладаў" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Кіраванне" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Рахункі..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Атрымальнікі плацяжу..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Катэгорыі..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Заданні..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Бюджэт..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Транзакцыі" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Дадаць..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Паказаць..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Справаздачы" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Статыстыка..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "_Бюджэт..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Дапамога" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "Змест" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Паведаміць аб праблеме..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Перавесці гэтае прыкладанне..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "Аб праграме" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Адкрыць файл" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Адкрыць адзін з папярэдніх файлаў" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Рахунак" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Атрымальнік плацяжу" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Катэгорыя" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Бюджэт" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Паказаць транзакцыі ў абраных рахунках" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Адкрыць статыстычную справаздачу" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Баланс" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Адкрыць бюджэтную справаздачу" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Будучыня" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Пазнака" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Сума" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[Файл]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Не атрымалася адлюстраваць URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Разам" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Выдатак" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Прыбытак" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Сёння" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Дата" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Пазнакі" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Вынік" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d пад %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Спіс" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Вынікі спісам" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Лінія" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Вынікі ў выглядзе ліній" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Дэталі" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Паказаць дэталі" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Абнавіць" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Дыяпазон:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_З:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Да:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Усе" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Інвертаваць" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Выдаткавана" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Месяц" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Справаздача па бюджэце" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Тып:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Бюджэт:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Выдаткавана:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Паказаць легенду" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Змяніць стаўку" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Справаздача па статыстыцы" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Прыбытак:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Выдатак:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Лічыльнік" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Паліва" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Кошт" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Адлегл." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Экспарт у CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Катэгорыя:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Лічыльнік:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Спажыванне:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Кошт паліва:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Іншыя выдаткі:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Агульны кошт:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(пуста)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Бачны" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Памылка" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не магу пераназваць гэты Акаўнт.\n" "з '%s' у '%s',\n" "гэтае імя ўжо выкарыстоўваецца." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Кіраванне рахункамі" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Агульны" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Кож_ны:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "З _улікам рэгістру" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "Атрымальнік плаця_жу:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "П_лацёж:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Імя:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Файлы QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX файлы" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Файлы CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Усе файлы" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "дзён" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Супастаўленне вырабляецца ў наступным парадку: па рахунку, па суме і па " "даце.\n" "Розніца ў датах \"0\" дзён азначае дакладнае супадзенне." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Памылка фармату файла" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Кіраванне бюджэтам" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Баланс:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Травень" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Прыбыткі" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Немагчыма пераназваць катэгорыю\n" "з '%s' у '%s',\n" "гэтае імя ўжо выкарыстоўваецца." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Кіраванне катэгорыямі" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Лі_чбаў пасля коскі:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Экспартаваць як QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Імпарт з CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Файлы HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Немагчыма пераназваць гэтага Атрымальніка,\n" "з '%s' у '%s',\n" "гэтае імя ўжо выкарыстоўваецца." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Кіраванне Атрымальнікамі" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Вонкавы выгляд" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Перадача" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Паказаць па _суме" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Паказаць слупок курсу" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Паказаць _дэталі" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Прадусталяванне:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Панэль пр_ылад" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "І_мпарт" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Экспарт" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Загрузіць апошні адчынены файл" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Налады" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Інфармацыя" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Дадаць транзакцыю" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Успадкаваць транзакцыю" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Дата:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Рахунак" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Банк" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Гатоўка" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Крэдытная карта" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Дзень" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Год" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Тыдзень" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Улу_чыць" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Выкл_ючыць" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Выд. і прыб." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Па змаўчанні" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Толькі значкі" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Толькі тэкст" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Тэкст пад значкамі" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Тэкст побач са значкамі" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Студзень" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Люты" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Сакавік" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Красавік" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Чэрвень" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Ліпень" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Жнівень" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Верасень" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Кастрычнік" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Лістапад" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Снежань" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Спраўдзіць" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/br.po0000644000175000017500000032252414775770073010405 # Breton translation for homebank # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-06-24 17:45+0000\n" "Last-Translator: Anthony Guechoum \n" "Language-Team: Breton \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "X-Poedit-SearchPath-0: br\n" "X-Poedit-Basepath: .\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Kellidoù personel" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Jederezh personel, digoust hag aes evit an holl" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "kellidoù;kontoù;kellidsteuñv;personel;arc'hant;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "Ur meziant digor ha digoust eo HomeBank a roy skoazell deoc'h da verañ ho " "jederezh personel." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Ergrafet eo bet da vezañ aes d'ober gantañ ha da vezañ gouest da zielfennañ " "ho kellidoù personel dre ar munud dre arver binvioù silañ kreñv ha diervadoù " "brav." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Mard emaoc'h o klask un doare aes ha digoust evit merañ ho jederezh personel " "e tlefe Homebank bezañ ar meziant da zibab." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Dilemel" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Ha sur oc'h hoc'h eus c'hoant da gemmañ ar stad da 'Tra ebet' ?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Treuzgreadoù e-kreiz ho tiuzad zo bet reizhaet endeo." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "Kemmañ" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Ha sur oc'h e fell deoc'h trec'haoliñ ar stad da Reishaet ?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Trec'haoliñ" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Krouiñ" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Digempoellder ebet bet kavet !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Pep sav treuzgread a vo rannet dre %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Amdreiñ" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "N'eus treuzgread ebet bet kemmet" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "treuzgread bet kemmet : %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Ouzhpennañ..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Hêrezhiñ..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "Daskemmañ" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Tra ebet" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Skarzhet" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "Ad_unvanet" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Stad" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Tra ebet" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Embann lies..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Krouiñ ur patrom..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Diverkañ..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Ezporzhiañ ar restr mod QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Ezporzhiañ ar restr mod CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "K_ont" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "K_emmañ" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Amdreiñ da Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Binvioù" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Ouzhpennañ un treuzgread all" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Ouzhpennañ" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Hêrezhiñ diouzh an treuzgread oberiant" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Hêrezhiñ" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Daskemmañ an treuzgread oberiant" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Kemmañ" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Trec'haoliñ da wiriet an treuzgread(où) bet diuzet" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Trec'haoliñ da reizhaet an treuzgread(où) bet diuzet" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Embann meur a dreuzgread" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Diverkañ an treuzgread(où) bet diuzet" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Azgrenaat" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Azbevaat an disoc'hoù" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Moneiz _vroadel kent an euro" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hiziv :" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Dazont :" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Tuginañ ar c'hemmoù nad int ket bet enrollet er restr '%s' ?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Kollet e vo ar c'hemmoù graet d'ar restr da vat\n" "- Diouzh an enrolladenn diwezhañ e vo adkarget ar restr (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Tuginañ" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Ha sur oc'h e fell deoc'h dilemel anv ar restr ?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Mar bez graet e vo lakaet an testennoù da bezañ dizanv, \n" "evel 'kont x', 'emvataer y', 'krounskrid z' ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Lakaat da zizanv" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Donemat e Homebank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Serriñ" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Krouiñ ur restr _nevez" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Digeriñ ur restr ez eus anezhi" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Digeriñ ar restr skou_er" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Lenn dornlevr Ho_mebank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "N'haller ket digeriñ '%s', n'eus ket eus ar restr-mañ.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Fazi enankañ/ec'hankañ evit ar restr '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Ar restr '%s' n'eo ket ur restr mod Homebank talvoudek." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Gant un handelv nevesoc'h eus Homebank eb bet enrollet ar restr '%s'\n" "ha n'hall ket bezañ karget gant an handelv vremanel." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Fazi gant ar restr" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Restr" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nevez" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Digeriñ..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Enrollañ" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "_Enrollañ evel..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Distreiñ" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Perzhioù..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Kuitaat" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Gwellvezioù..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "G_welout" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "Barrenn_Ostilhoù" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Moneiz vroadel kent an euro" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Ardeiñ" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Kont_où..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Emvataerion..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Rummadoù..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Steuñvet/Patrom..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Derannadurioù..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Teulennoù..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Kellidsteuñv..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Treuzgreadoù" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Ouzhpennañ" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Diskouez..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Arventennañ ar steuñverez..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Kas ar re steuñvet" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Danevelloù" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Stadegoù..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tuadur dre an amzer..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Kellidste_uñv..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Kost ar _c'harbed..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Diskouez boestad emziviz Donemat..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Stadegoù ar restr..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Lakaat da zizanv..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Skoazell" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "Endal_c'hadoù" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Danevellañ ur gudenn..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Treiñ an arload-mañ..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_A-zivout" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Krouiñ ur restr nevez" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Digeriñ ur restr" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Digeriñ ur restr nevez-implijet" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Enrollañ ar restr vremanel" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Kont" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Emvataer" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Rummad" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Kellidsteuñv" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Dezverkadur" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Diskouez a ra treuzgreadoù ar gont diuzet" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Ouzhpennañ treuzgreadoù" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Digeriñ danevell ar stadegoù" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Digeriñ danevell evit an tuadur dre an amzer" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Mentelad" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Digeriñ danevell ar ventelad" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Digeriñ danevell ar c'hellidsteuñv" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Koust ar c'harbed" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Digeriñ danevell koust ar c'harbed" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Steuñvet" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Dazont" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Evezh" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(rummad ebet)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "mentrezh mod CSV didalvoudek" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Stad" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Klav" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Savad" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Dianav" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(emvataer ebet)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[RESTR]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Fazi digant ar merdeer." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "N'haller ket skrammañ an URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Ho kontoù" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Astenn pep tra" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Diskar pep tra" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Treuzgread ebet da ouzhpennañ" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "treuzgread ouzhpennet : %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Gwiriañ disoc'hoù an treuzgreadoù steuñvet" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "deiziad pellañ ar c'has" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Hollad" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Kas" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "All" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Ezkefiad" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Enkefiad" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Hollad diwezhel" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Kontoù" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Reishaet" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Skarzhet" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hiziv" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- marz -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Deiziad" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Kounger" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Klavioù" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Disoc'h" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Diwezhat" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Deiziad da zont" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d dindan %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Roll" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Gwelout an disoc'hoù evel ur roll" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linenn" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Gwelout an disoc'hoù evel linennoù" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Munud" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Trec'haoliñ ar munudoù" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Azbevaat" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Danevell ar ventelad" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Skrammañ" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoum X :" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Ledad :" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Eus :" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Da :" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "An holl anezho" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Tuginañ" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Dispignet" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Miz" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " dreist" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " o chom" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " dindan" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Gwelout an disoc'hoù dre stumm ur bern" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "N'eus kont ebet bet despizet da vezañ lakaet er c'hellidsteuñv." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Gwell e vefe deoc'h enlakaat kontoù dre voestad emziviz ar c'hontoù." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Danevell ar c'hellidsteuñv" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Rizh :" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Disoc'h :" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Kellidsteuñv :" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Dispignet :" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s dre %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Gwelout an disoc'oùh dre stumm ur bann" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Gwelout an disoc'hoù dre stumm un donut" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Trec'haoliñ al leadell" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Trec'haoliñ ar feur" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Danevell ar stadegoù" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Gwelout dre :" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Enkefiad :" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Ezkefiad :" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Keitad : %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Danevell an tuadur dre an amzer" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Dassammañ" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Trovezh" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Pellder" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Trelosk" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Priz" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Pellder" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Ezporzhiañ evel restr mod CSV..." #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Danevelloù a-fet koust ar c'harbed" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Rummad :" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Pellder :" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Bevezerezh :" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Koust ar strilheoul :" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Koustoù all :" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Koust hollek :" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(tra ebet)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Hewel" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Anv ar gont" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Fazi" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "N'haller ket ouzhpennañ ur gont '%s',\n" "an anv-mañ zo anezhañ endeo." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "N'haller ket diverkañ ar gont '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Ha fellout a ra deoc'h diverkañ '%s' da vat ?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Mar bez diverket ur gont e vo kollet da vat." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "N'haller ket adenvel ar gont-mañ,\n" "eus '%s' da '%s',\n" "an anv zo anezhañ endeo." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Ardeiñ kontoù" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Hollek" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Ni_ver :" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Kregiñ gant ar _ventelad :" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Teulenn :" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "serret e oa bet ar gont-mañ" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notennoù :" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Lakaat an ezlakadenn en danevell" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "ezlakaat diouzh _berrskrid ar gont" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "ezlakaat diouzh ar c'hellid_steuñv" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "ezlakaat diouzh an holl _zanevelloù" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Niver ar chekenn vremanel" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Karned chekennoù _1 :" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Karned chekennoù _2 :" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Mar bez diverket ur gwezhiadur steuñvet/ur patrom e vo kollet da vat." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Deiziad _da zont :" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Be_p :" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Dibenn sizhun :" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Arsaviñ goude :" #: ../src/ui-archive.c:972 msgid "posts" msgstr "a gasoù" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Ardeiñ an treuzgreadoù steuñvet pe batrom" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Patrom" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Nullañ" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Mat eo" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Diferadenn" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Teurel e_vezh ouzh an direnneg" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Emvataer :" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Flastrañ" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Tala_dur :" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Mar bez diverket un dezverkadur e vo kollet da vat." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Ardeiñ an derannadurioù" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Ouzhpennañ" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "N'eo ket bet kavet" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Ragarventennañ ar restr :" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Anv :" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Anv" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Digeriñ" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Restroù anavezet" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Restroù mod QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Restroù mod OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Restroù mod CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "An holl restroù" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Urzh an deiziad :" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "a zeizioù" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Graet eo ar genglotadenn en urzh-mañ : dre ar gont, ar savad hag an " "deiziad.\n" "Un aotrevarz o kevatal da 0 a dalv d'ur genglotadenn rik" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Donemat" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Enporzhiañ" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Kadarnaat" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Fazi mentrezh ar restr" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Sur oc'h e fell deoc'h skarzhañ an enankad ?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Mar bez graet, pep sav a vo lalaket da 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Skarzhañ" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Kellidsteuñv evit %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Ardeiñ ar c'hellidsteuñv" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Mentelad :" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Skarzhañ an enankad" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Dibarzhioù" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Bountañ war ouarnerezh ar rummad-mañ" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Gen" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "C'hwe" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Meu" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Ebr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mae" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Mez" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Gou" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Eos" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Her" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Du" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Ker" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "War arver emañ ar rummad-mañ.\n" "An holl dreuzgreadoù o'h ober gant ar rummad-mañ a vo lakaet da (rummad ebet)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Dilemel ar rummad '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Toueziañ" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Enkefiad" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "N'haller ket adenvel ar rummad-mañ,\n" "eus '%s' da '%s',\n" "an anv zo anezhañ endeo." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Toueziañ ar rummad '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "An treuzgreadoù dezverket ouzh ar rummad-mañ\n" "a vo dilec'hiet e-barzh ar rummad bet diuzet amañ dindan." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Ardeiñ ar rummadoù" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "rummad nevez" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "isrummad nevez" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Arouez" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Teulenn" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Mentrezh" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personelaat" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Arouez :" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Si_froù goude ar skej :" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Stadegoù ar restr" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Treuzgread" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Hizivaat" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Teulenn :" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Ezporzhiañ evel restr mod QIF..." #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Enporzhiañ diouzh ur restr mod CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Restroù mod Homebank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Enrollañ ar c'hemmoù graet d'ar restr kent serriñ ?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Ma n'enrollot ket e vo kollet ar c'hemmoù da vat.\n" "Niver a gemmoù : %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Serriñ _hep enrollañ" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "Treuzgreadoù a c'hallfe bezañ an treuzgread kevredet evit an treuzkas " "diabarzh zo bet kavet gant Homebank." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Kounger" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "Adde_raouekaat" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Perzhioù ar restr" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Treuzgreadoù steuñvet" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Tal_adur :" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "N'haller ket adenvel an emvataer-mañ,\n" "eus '%s' da '%s',\n" "an anv zo anezhañ endeo." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Toueziñ an emvataer '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "An treuzgreadoù dezverket ouzh an emvataer-mañ\n" "a vo dilec'hiet betek an trede bet diuzet amañ dindan." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Dilemel an emvataer '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "War arver emañ an emvataer.\n" "Pep treuzgreag oc'h ober gant an emvataer-mañ a vo lakaet da (emvataer ebet)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Ardeiñ an emvataerion" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "emvataer nevez" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Ketal" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Treuzgreadoù" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Treuzkas" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Enporzhiañ/Ezporzhiañ" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Danevell" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Yezh ar reizhiad" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Dibab ur c'havlec'hiad restroù mod Homebank dre ziouer" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Dibab ur c'havlec'hiad enporzhiañ dre ziouer" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Dibab ur c'havlec'hiad ezporzhiañ dre ziouer" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Dibarzhioù ar restroù mod OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Danevelloù ar prenestr pennañ" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Sil deraouiñ" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Dibarzhioù ar stadegoù" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Diskouez dre s_avad" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Diskouez bann ar feu_r" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Diskouez ar munu_doù" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Dibarzhioù ar c'hellidsteuñv" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Gweredekaat" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Ragarventennañ :" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Yezh :" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Mentrezh :" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Bloavezh kemedel" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Kre_giñ a ra d'an/ar :" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unanennoù muzuliañ" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Ober gant _mileoù evit ar pellder" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Arverañ ar _gallon evit ar strilheoul" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Dibarzhioù an diervadoù" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Barrennad ostilhoù :" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "E_nporzhiañ :" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Ezporzhiañ :" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Loc'hadur ar goulev" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Diskouez ar skeudenn ginnig" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Kargañ ar restr digoret da ziwezhañ" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Kas an treuzgreadoù steuñvet o c'hortoz" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Gwellvezioù" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Titouroù" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Ret eo deoc'h adloc'h Homebank\n" "a-benn ma vo efedus ar c'hemm yezh." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Ouzhpennañ un treuzgread" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Treuzgread dre hêrezh" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Deiziad :" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Treuzgread kroueriet" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "Ko_nt :" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Stad :" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "Koung_er :" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Embannadur treuzgreadoù lies" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Savad an treuzgread :" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Anderannet :" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Sammad ar marzioù" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(rizh ebet)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Arc'hant liñvel" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Fred" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kartenn gred" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Diwan" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Deiz" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Gallout a ra bezañ" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Kent" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Goude" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Bloaz" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Sizhun" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimiziad" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Enlakaat" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Ezlakaat" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Ezk. & Enk." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Ne vern pe rizh" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Ne vern pe stad" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Diskarzhet" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Digompez" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Dirummad" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Arventennoù dre ziouer ar reizhiad" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Arlunioù hepken" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Testenn hepken" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Testenn dindan an arlunioù" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Testenn e-kichen an arlunioù" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "A-blaen" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "A-serzh" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "An eil hag egile" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-b" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-b" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "b-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Leuskel a-gostez" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Ouzhpennañ da Kounger" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Genver" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "C'hwevrer" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Meurzh" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Ebrel" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Mezheven" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Gouere" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Eost" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Gwengolo" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Here" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Du" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Kerzu" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Gwe" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Klask..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Chekenn" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Kartenn dle" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Urzh treuzkas" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Taladur elektronek" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Fiziad" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Mizoù arc'hant un ensavadur" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Dle dihanterat" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/es.po0000644000175000017500000035605114775767771010426 # GTK+ HomeBank # Copyright (C) 1995-2006 Free Software Fundation # This file is distributed under the same license as the HomeBank package. # Alberto Caso , 2006. # Alfredo José Quintero , 2020. # msgid "" msgstr "" "Project-Id-Version: HomeBank 3.2 alpha2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-09-16 04:39+0000\n" "Last-Translator: Fernando Villarreal Castillo \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: es\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finanzas personales" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Contabilidad personal fácil y gratis para todos" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finanzas;contabilidad;presupuesto;personal;dinero;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank es un programa de software libre y gratuito que le ayudará a " "gestionar su contabilidad personal." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Está diseñado para ser fácil de utilizar y ser capaz de analizar sus " "finanzas personales en detalle utilizando potentes herramientas de filtrado " "y gráficos muy intuitivos." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Si está buscando una manera completamente libre y fácil de manejar su " "contabilidad personal, entonces HomeBank debería ser su elección." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transacciones" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transacciones, %d seleccionado, promedio: %s, suma: %s (%s -%s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Bloqueado. Click para desbloquear" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Desbloqueado. Click para bloquear" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Energía vital" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "El \"salario por hora\" no está configurado en la cartera actual." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" "¿Está seguro de que quiere eliminar las %d transacciones seleccionadas?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Si elimina una transacción, no se podrá recuperar." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Eliminar" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "¿Está seguro de que quiere cambiar el estado a Ninguno?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Alguna transacción de su selección ya está conciliada." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Cambiar" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "¿Está seguro de que quiere cambiar el estado a liquidado?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "¿Está seguro de que quiere cambiar el estado a Reconciliado?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Cambiar" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "¿Está seguro de que quiere crear una plantilla para las %d transacciones " "seleccionadas?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Crear" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Crear Plantilla" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d creado con un icono precargado" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "¿Está seguro de que quiere crear asignaciones para las %d transacciones " "seleccionadas?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Crear asignación" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Todas las transacciones" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Hay %d grupo(s) de transacción(es) similares" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "¡No se han encontrado transacciones similares!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Comprobar el resultado de la transferencia interna" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "¡No se ha encontrado ninguna inconsistencia!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Se encontraron inconsistencias: %d\n" "¿Quiere revisarlo y arreglarlo?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "El importe de cada transacción será dividido por %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "¿Está seguro de que quiere convertir esta cuenta al euro como moneda " "principal?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Convertir" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Ninguna transacción modificada" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transacción cambiada: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Resultado de asignación automática" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Añadir..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Heredar..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Editar..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ninguno" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Liquidado" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Conciliado" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Estado" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Ninguno" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Rojo" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Naranja" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Amarillo" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Verde" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Azul" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Púrpura" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Marca" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Edición _múltiple..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Ver _divididas" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copiar importe en bruto" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Crear plantilla..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Crear asignación..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Eliminar…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Subir" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Bajar" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exportar QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportar CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Imprimir…" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Navegar por el sitio web" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Cerrar" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Cuenta" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copiar" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Pegar" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Pegar (hoy)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Buscar" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Editar" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marcar duplicados..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Comprobar transferencia interna" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Autoasignaciones" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Convertir a Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Herramientas" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Mover transacción arriba" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Mover transacción abajo" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Añadir una transacción nueva" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Añadir" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Heredar desde la transacción activa" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Heredar" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Edita la transacción activa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Editar" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Cambia el estado de las transacciones seleccionadas a liquidado" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Cambiar a conciliadas las transacciones seleccionadas" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Editar múltiples transacciones" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Elimina transacción(es) seleccionada(s)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Edición de Reconciliadas está" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(cerrado)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Mostrar" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Actualizar" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Intervalo de _fechas:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Mostrar %d días de antelación" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Editar filtro" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Quitar el filtro" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Actualizar resultados" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Actiivar energía vital" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Céntimo de Euro" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Conciliado:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Liquidado:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hoy:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futuro:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "¿Quiere revertir los cambios no guardados en el archivo «%s»?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Los cambios realizados en el archivo se perderán definitivamente.\n" "- El archivo se cargará a partir del último guardado (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Revertir" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "¿Está seguro de querer anonimizar el archivo?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Procediendo a cifrar cualquier texto, \n" "como 'cuenta x', 'beneficiario y', 'memo z',..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimizar" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Bienvenido a HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Cerrar" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Abrir _último archivo abierto" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Crear un archivo _nuevo" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Abrir un archivo existente" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Abrir el archivo de _ejemplo" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Leer el _manual de HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configurar las _preferencias" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Mostrar esta ventana la próxima vez" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Está a punto de abrir el archivo de respaldo «%s».\n" "\n" "¿Está seguro de que quiere hacer esto?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "¿Abrir el archivo de respaldo?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Abrir respaldo" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "No se puede abrir «%s». El archivo no existe.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Error desconocido" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Error de E/S para el archivo «%s»." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "El archivo «%s» no es un archivo válido de HomeBank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "El archivo «%s» fue guardado con una versión superior de HomeBank\n" "y no puede cargarse en la versión actual del programa." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Error de archivo" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "El archivo ha sido modificado desde que lo leyó." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Si lo guarda, todos los cambios externos pueden perderse. ¿Guardarlo de " "todos modos?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Guardar de todos modos" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Borrar" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Archivo" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nuevo" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Abrir..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Abrir _recientes" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Guardar" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "G_uardar como…" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importar..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exportar como QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Deshacer" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaurar copia de seguridad" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propiedades..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Salir" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferencias..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Vista" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Barra de herramientas" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Gráfico Total" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Gráfico Temporal" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Listas de transacciones" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro menor" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gestionar" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Monedero" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Cuentas..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Beneficiarios..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorías..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etiquetas..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Programación/Plantillas..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Asignaciones..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Monedas..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Presupuesto..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Presupuesto (vista de tabla)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transacciones" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Añadir..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Mostrar..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Mostrar todo..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Configurar el planificador..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Añadir transacciones programadas" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Informes" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Estadísticas..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendencia temporal..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balance..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "_Presupuesto..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Coste del _vehículo..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Mostrar la pantalla de bienvenida..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Estadísticas de archivo..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimizar..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "Ay_uda" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Contenidos" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obtener ayuda en línea..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Buscar actualizaciones..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Notas de lanzamiento" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Informar de un problema…" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traducir esta aplicación…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Acerca de" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nuevo" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Crear un archivo nuevo" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Abrir" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Abrir un archivo" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Abrir un archivo usado recientemente" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Guardar" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Guardar archivo actual" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Cuenta" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gestionar las cuentas" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Beneficiario" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gestionar beneficiarios" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categoría" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gestionar categorías" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Programación/plantillas" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gestionar la programación/plantillas de transacciones" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Presupuesto" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gestionar el presupuesto" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Asignación" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Gestionar las asignaciones automáticas" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Mostrar las transacciones de la cuenta seleccionada" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Añadir transacciones" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Estadísticas" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Abrir informe de estadísticas" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Tendencia temporal" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Abrir informe de la tendencia temporal" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Abrir informe del balance" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Abrir el informe de presupuesto" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Coste del vehículo" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Abrir el informe del coste del vehículo" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Ayuda" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donar" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Donar al proyecto HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Programadas" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futuro" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Recordar" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Hoy" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(no memo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copia)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(sin categoría)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "formato CSV no válido" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Rango de fechas no válido" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tipo" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "Gasto normal" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "Ingreso normal" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "Gasto por transferencia" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "Ingreso por transferencia" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Estado" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "ninguno" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "Liquidado" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "Conciliado" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etiqueta" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Pago" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Importe" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Texto" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Desconocido" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "kilómetros por cada litro" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "millas por cada litro" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(ningún beneficiario)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(sin grupo)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(sin etiqueta)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-S%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-T%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Mostrar la versión de la aplicación" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ARCHIVO]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Error del explorador." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "No se puede mostrar la URL «%s»" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(sin institución)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Tus cuentas" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copiar al portapapeles" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Agrupar por" #: ../src/hub-account.c:595 msgid "type" msgstr "tipo" #: ../src/hub-account.c:596 msgid "group" msgstr "agrupar" #: ../src/hub-account.c:597 msgid "institution" msgstr "institución" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Mostrar todo" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expandir todo" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Contraer todo" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "suma: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Ninguna transacción para añadir" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transacción añadida: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Comprobar el resultado de las transacciones previstas" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Contabilizar en el inicio del programa" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Encendido" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Apagado" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "fecha máxima de asiento" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Ignorar" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "_Editar y asentar" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Asentar" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Gasto / Categoría" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Top %d gastos por categoría" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d Gasto / Beneficiario" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Gasto / Cuenta" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Top %d gasto por cuenta" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Saldo en cuenta" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Balance de grupo de cuentas" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Otro" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Gráfico Total" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Cantidad bruta" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Grupo de cuenta" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Gastos" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Gasto" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Ingresos" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Ingreso" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Gastos y Ganacias" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Egresos e Ingresos" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Balance Global" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Gráfico de tiempo" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Global" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "cuenta importada" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total general" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "última conciliación" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "hasta descubierto" #: ../src/list-account.c:753 msgid "before maximum" msgstr "antes del máximo" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Cuentas" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Conciliado" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Liquidado" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hoy" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- división -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- esto necesita una categoría -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Fecha" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Número" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etiquetas" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Pago/Número" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Coincidencia" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultado" #: ../src/list-report.c:957 msgid "Average" msgstr "Promedio" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Atrasado" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Pendiente" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Siguiente fecha" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Saldo en %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d bajo %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lista" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Ver los resultados como una lista" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Línea" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Ver los resultados como líneas" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalle" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Mostrar _detalles" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Actualizar" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Imprimir" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Informe del balance" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Mostrar" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_valo:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Mostrar línea vacía" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Ampliar X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtro" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Activo:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Intervalo:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Desde:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Hasta:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Seleccionar:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Todos" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invertir" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Incluir _transferencias" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Gasto" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Cumplido" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mes" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Presupuesto por categoría" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Presupuesto por mes" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " sobre" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " queda" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " bajo" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "Sin presupuestar" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Barras" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Ver los resultados como un gráfico de barras apiladas" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "Exportar el _resultado al portapapeles" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "Exportar el _resultado a CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "Exportar el _detalle al portapapeles" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "Exportar el _detalle a CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Ninguna cuenta está definida para ser parte del presupuesto." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Debe incluir algunas cuentas desde el diálogo de la cuenta." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Informe de presupuesto" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modo:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipo:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Sólo fuera de presupuesto" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultado:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Presupuesto:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Gasto:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s por %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Demasiadas columnas para mostrar" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "Por favor seleccione un intervalo más largo y/o un rango de fechas más corto" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Columna" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Ver los resultados en columnas" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Gráfico circular" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Ver resultados en gráfico circular" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Ver los restultados en una pila" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Pila 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Ver los restultados en una pila al 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Leyenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Cambiar leyenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Porcentaje" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Mostrar tasa" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Informe estadístico" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Ver por:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "modo _Balance" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Previsión" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Ordenar por _cantidad" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Comparar Gastos e Ingresos." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Totales:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Ingresos:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Gastos:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Promedio: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Informe de tendencia temporal" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Acumulado" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Elemento" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Fracción de tiempo" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Contador" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Carburante" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Precio" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exportar" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exporta como CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Informe de coste del vehículo" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categoría:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Contador:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumo:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Coste del carburante:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Otros costes:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Coste total:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ninguno)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nombre de la cuenta" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Error" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "No se puede añadir la cuenta «%s»,\n" "ya existe ese nombre." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "No se puede eliminar la cuenta «%s»" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Dispone de transacción" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Es el objetivo de la transacción xfer" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Tiene programada/plantilla" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Es objetivo de xfer programado/plantilla" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "¿Está seguro de que quiere eliminar definitivamente la cuenta «%s»?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Si elimina una cuenta, no se podrá recuperar." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "No se puede renombrar la cuenta\n" "«%s» como «%s» porque ya existe\n" "otra cuenta con ese nombre." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gestionar cuentas" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Eliminar" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Renombrar" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Mover arriba" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Mover abajo" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "General" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grupo:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institución:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_úmero:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Saldo _inicial:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Moneda:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "Esta cuenta está _cerrada" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Sitio Web:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Observaciones:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportamiento" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatizar" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Plantilla por defecto:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Excluir de los informes" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "Excluir del sumario de cuentas" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "Resumen de las salidas" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "Excluir del _presupuesto" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "Excluir de cualquier info_rme" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Varios" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Número actual de cheque" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Chequera _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Chequera _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Límites del balance" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Descubierto hasta:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Máx_imo:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Eliminar plantilla" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Esta plantilla se utiliza como plantilla de cuenta y no se puede eliminar." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Si elimina una transacción programada/plantilla, no se podrá recuperar." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Próximo _día:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Ca_da:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Más opciones" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Fin de semana:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Detenerse después de:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "asientos" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Gestionar transacciones programadas/plantillas" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Plantilla" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplicado" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Planificar" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Buscar" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notas" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "La búsqueda no puede estar vacía" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Este texto de búsqueda ya existe en la posición %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Cancelar" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Aceptar" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condición" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Buscar:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_En:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Sensible a mayúsculas" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Ca_ntidad:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_Y" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Asignaciones" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Beneficiario:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Sobrescribir" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Pago:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "E_tiquetas:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "No se puede duplicar esta asignación,\n" "'%s' ya existe." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regla %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Si elimina una asignación, se perderá definitivamente." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Mover a…" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Mover asignación" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Mover" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Administrar asignaciones" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Este asistente le ayudará a establecer la configuración\n" "mínima para un archivo nuevo de HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "La configuración puede modificarse posteriormente." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "No se aplicarán los cambios hasta que haga clic en «Aplicar»\n" "al final de este asistente." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank mostrará un título para la ventana principal,\n" "puede ser cualquier etiqueta o su nombre." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Título:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank admite múltiples monedas. La moneda base es\n" "el valor predeterminado para nuevas cuentas e informes." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Configurar monedas adicionales" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Añadir" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "No se ha encontrado" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank puede autocompletar las categorías en su idioma\n" "si existe un archivo CSV proporcionado por la comunidad." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configurar categorías para mi idioma" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Archivo predeterminado:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank le permite importar sus cuentas desde archivos\n" "descargados de instituciones financieras, o puede crear su cuenta " "manualmente." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Crear mi primera cuenta" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nombre:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Esta es una página de confirmación,\n" "\n" "pulse «Aplicar» para aplicar los cambios" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Iniciar configuración de archivo" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Opciones de archivo" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Elegir monedas" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Elegir categorías" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Crear cuenta" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Finalizar configuración de archivo" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Válido" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nombre" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Abrir" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Archivos conocidos" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Archivos QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Archivos OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Archivos CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Todos los archivos" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nueva cuenta global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nueva cuenta" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "omitido" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d de %d transacciones" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transacciones, %d similares, %d existen, %d seleccionadas" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transacciones, %d seleccionadas" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Alguna fecha no puede ser convertida. Intente cambiar el formato de fecha " "para continuar." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importar %s en:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "este archivo" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "esta cuenta" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nombre: %s\n" "Número: %s\n" "Archivo: %s\n" "Codificación: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importar transacciones desde un banco o una tarjeta de crédito" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Con este asistente se le indicará la forma de importar uno o varios\n" " movimientos descargados desde su banco o tarjeta de crédito, en los " "siguientes formatos:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recomendado: .OFX o .QFX\n" "(Reconocido como Money™ or Quicken™)\n" "Soportado: .QIF\n" "(archivo Quicken™ común)\n" "Sólo usuarios avanzados: .CSV\n" "(formato específico de HomeBank, vea la documentación)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "No se realizarán cambios hasta que haga clic en «Aplicar» al final de este " "asistente." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "No mostrar esto de nuevo" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Arrastre y suelte uno o varios archivos para importar.\n" "También puede usar los botones añadir/eliminar de la lista." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Hay demasiadas cuentas en los archivos seleccionados,\n" "use el botón Atrás para seleccionar menos archivos." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Falló la identificación por nombre o número de la cuenta destino." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Orden de fecha:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importar campos memos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Intercambiar campo memo por campo beneficiario" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "_Nombre OFX:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "_Memo OFX:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "_Convertir a mayúsculas campos memo/beneficiario" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Cambiar can_tidad" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Transacción similar en cuenta destino (posiblemente duplicada)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "días" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "La concordancia se realiza en el siguiente orden: cuenta, importe, fecha.\n" "Una tolerancia de fecha de 0 días implica una concordancia exacta" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Ejecutar de forma automática" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Rellenar con beneficiario por defecto" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Ejecutar reglas de asignación automáticas" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Pulsa «Aplicar» para actualizar las cuentas." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Bienvenido/a" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Seleccione archivo(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importar" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmación" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Error en el formato del archivo" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "El archivo CSV debe contener el número exacto de columnas,\n" "separadas por un punto y coma, por favor vea la documentación para más " "detalles." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "¿Está usted seguro de borrar la entrada?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Si continua, cada cantidad será reiniciada a 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Limpiar" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Presupuesto para %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gestionar presupuesto" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importar CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balance:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "Es lo mismo cada mes" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Borrar entrada" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "Es diferente por mes" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Opciones" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forzar el monitoreo de esta categoría" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Ene" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Abr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "May" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ago" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sep" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dic" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Resumen" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totales" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Total\n" "anual" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Media\n" "Mensual" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mensual" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Añadir una categoría" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Aplicar" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Categoría principal" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nombre de la categoría" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Esta categoría está siendo utilizada.\n" "Cualquier transacción que utilice esta categoría, será establecida como (sin " "categoría)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Combinar categorías" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Las transacciones asignadas a la categoría «%s» se moverán a la categoría " "seleccionada a continuación." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Categoría destino" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Eliminar la categoría «%s»" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "¿Seguro que desea borrar las entradas para «%s»?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Añadir categoría" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Eliminar categoría" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Combinar" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Borrar entrada" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Eliminar categorías sin utilizar" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "¿Está seguro de que quiere eliminar\n" "permanentemente las categorías\n" "sin utilizar?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Nombre de categoría duplicado. Pruebe con otro nombre." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Editar Categoría" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Tipo de cambio" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Ingreso" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propagar a_niños" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "No se puede renombrar esta categoría\n" "de «%s» a «%s» porque\n" "ese nombre ya existe." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Combinar categorías «%s»" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Las transacciones asignadas a esta categoría,\n" "serán desplazadas a la categoría seleccionada más abajo." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Incluir _subcategorías" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Gestionar categorías" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Mostrar ocultos" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Mostrar Uso" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Mover/Combinar" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Mostrar/Ocultar" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nueva categoría" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nueva subcategoría" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Moneda base" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Símbolo" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Tipo de cambio" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Última modificación" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Editar moneda" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moneda" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formato" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalizar" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Símbolo:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Es _prefijo" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Separador _decimal:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Número de decimales:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Separador de millares:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Selecciona la moneda base" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Seleccionar moneda" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Código ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Añadir una _divisa personalizada" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Error al actualizar en línea" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Si elimina una moneda, se perderá permanentemente." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Cambiar la moneda base" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Si lo hace, los tipos de otras monedas serán\n" "establecidos a cero, no se olvide de actualizarlo" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Monedas" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Actualización en línea" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Registro de llamadas" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Establecer como base" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Estadísticas del archivo" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transacción" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Actualizar" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Seleccione una moneda base" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Iniciando la versión 5.1, HomeBank puede gestionar varias monedas\n" "si la moneda de abajo no es correcta, por favor, cámbiela:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Moneda:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exporta como QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importar desde CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Abrir archivo HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Abrir copia de seguridad de HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Guardar como archivo de HomeBank" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Archivos de HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Copia de seguridad" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Todas las copias de seguridad" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "¿Guardar cambios en el archivo antes de cerrar?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Si no los guarda, los cambios se perderán definitivamente.\n" "Número de cambios: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Cerrar _sin guardar" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exportar como _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Carpeta:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Elegir una carpeta" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nombre del archivo:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "anadir una columna de estado." #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detallar transacciones divididas" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "El archivo no esta en formato CSV HomeBank , porque ha sido exportado \n" "desde \"Todas las transacciones\", o una opcion ha sido seleccionada." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exportar como PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportar como _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "En HomeBank, la impresión está orientada hacia una actitud ecológica\n" "y recomienda el uso del formato digital PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Seleccionar acción para la creación del destino" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Crear _Nuevo" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Usar _Selección" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Transferencia origen" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Sugerencia de asociación" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank ha encontrado alguna transacción que puede estar asociada a la " "transferencia interna." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "No hay transacciones coincidentes" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memo:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Número:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Reiniciar" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Usar" #: ../src/ui-filter.c:1370 msgid "default" msgstr "predeterminado" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Cantidad/Texto" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Mostrar siempre" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Vacío" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Añadido" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Editado" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(predeterminado)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Fecha de vencimiento" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Próximo Pago" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Por adelantado" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propiedades del archivo" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Transacciones programadas" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "de cada" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mes" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Elimina beneficiario sin utilizar" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "¿Seguro que desea eliminar\n" "permanentemente el beneficiario sin utilizar?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Nombre de beneficiario duplicado. Pruebe con otro nombre." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Editar Beneficiario" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Por defecto" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Tipo de _pago:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "No se puede renombrar este beneficiario\n" "de «%s» a «%s» porque\n" "ese nombre ya existe." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Combinar beneficiarios «%s»" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Las transacciones asociadas a este beneficiario,\n" "serán desplazadas al beneficiario seleccionado más abajo." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Eliminar el beneficiario «%s»" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Este beneficiario está en uso.\n" "Toda operación que utilice este beneficiario será definida como (sin " "beneficiario)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gestionar beneficiarios" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nuevo beneficiario" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interfaz" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Configuración regional" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transacciones" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transferencia" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importar/Exportar" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Informes" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Previsión" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Copia de seguridad" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Carpetas" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Avanzado" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Idioma del sistema" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Elegir carpeta de archivos HomeBank predeterminada" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" "Elegir una carpeta predeterminada para las copias de seguridad de HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Elegir carpeta importar predeterminada" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Elegir carpeta exportar predeterminada" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "URL:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Clave:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Opciones generales" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opciones OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Opciones QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Opciones CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(sólo transacción importada)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separador:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Ventana principal de informes" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Máximo de items:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Filtro inicial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opciones de las estadísticas" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Mostrar por _importe" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Mostrar _columna de porcentaje" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Mostrar _detalles" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opciones de presupuestos" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Activar _previsión" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Número del mes:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Activar" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Predeterminado:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interfaz de usuario" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Idioma:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formato:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a nombre abreviado del día de la semana. \n" "%A nombre completo del día de la semana. \n" "%b nombre abreviado del mes. \n" "%B nombre completo del mes. \n" "%c formato local de fecha y hora. \n" "%C siglo (año dividido por 100 y redondeado a entero) como decimal [00-99]. " "\n" "%d día del mes como decimal [01,31]. \n" "%D equivalente a %m/%d/%y. \n" "%e día del mes como decimal [1,31]; una sola cifra se precede con un " "espacio. \n" "%j día del año como decimal [001,366]. \n" "%m mes como decimal [01,12]. \n" "%p formato local de fecha. \n" "%y año de dos decimales (sin el siglo) [00,99]. \n" "%Y año con el siglo en formato decimal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Año fiscal" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Inicia en:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unidades de medida" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Usar _millas para metros" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Usar _galón para combustible" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Mostrar siempre recordatorios" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Mostrar siempre vacío" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Incluir recordatorios en balance e informe" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Bloquear Transacciones reconciliadas" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Mostrar futuro:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "días hacia delante" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Ocultar conciliadas" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Diálogo de transacciones" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "_Mantener la última fecha en múltiples adesiones o herencias" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Permitir autocompletado de memo con" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "días seguidos" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Mostrar texto de confirmación de adición durante 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Preferencias de GTK" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "Línea de _rejilla:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Opciones de graficos" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "_Fuente para leyenda más pequeña" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Barra de _herramientas:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Habilitar copias de seguridad automáticas" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Número de copias de seguridad a mantener:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "La copia de seguridad se hace una vez al día" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Carteras:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Backups:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Intercambiar ficheros" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importar:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exportar:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Inicio de programa" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Mostrar pantalla de inicio" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Cargar el último achivo abierto" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Añadir transacciones programadas pendientes" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Actualiza monedas en línea" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Restablecer todas las preferencias" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "¿Está seguro de que quiere restablecer\n" "todas las preferencias a sus valores\n" "por defecto?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferencias" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Debe reiniciar Homebank\n" "para que el cambio de lenguaje tenga efecto." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "El directorio de copias de seguridad ha cambiado,\n" "es posible que deba copiar el archivo '.bak' a esta nueva ubicación." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Eliminar etiqueta no utilizada" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "¿Está seguro de que desea\n" "eliminar permanentemente la etiqueta no utilizada?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Nombre de etiqueta duplicado. Pruebe con otro nombre." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Editar Etiqueta" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "No se puede renombrar esta etiqueta,\n" "de «%s» a «%s» porque\n" "este nombre ya existe." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Combinar etiqueta «%s»" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Las transacciones asignadas a esta etiqueta\n" "se moverán a la etiqueta seleccionada abajo." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Eliminar la etiqueta «%s»" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Esta etiqueta está en uso.\n" "Será eliminada de cualquier transacción que la use." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gestionar etiquetas" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nueva etiqueta" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transacción de la cuenta %s creada." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "¿Quiere deshacer la transferencia interna?\n" "\n" "Si continua se eliminará la transacción de destino." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Detener" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Mostrar _programadas" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Mostrar tod_as las cuentas" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Usar una plantilla" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Añadir y _mantener" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Añadir transacción" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Añadir plantilla" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Heredar transacción" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Heredar plantilla" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editar transacción" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editar plantilla" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Fecha:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- teclee: d, d/m, m/d para completar fecha\n" "- use flechas + ctrl o shift\n" "- deje en blanco para hoy" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_Para:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Dividir transacción" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "No hay tarifa disponible para autocompletar" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Cuenta:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Libro_2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- teclee alguna letra para auto completado\n" "- teclee texto nuevo para crear una nueva entrada" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_goría:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Estado:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Advertencia: la cantidad y el signo de la categoría no concuerdan" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Editar transacciones múltiples" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Teclear como\n" "transferencia" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "¿Quiere eliminar todas las divisiones?" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Eliminar todo" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Añada un prefijo -/+ para forzar el signo" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Aplicar" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Cancelar" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Importe de la transacción:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Sin asignar:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Suma de divisiones:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Se ha alcanzado el límite de divisiones" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Atención: la suma de la división y el tipo de transacción no concuerdan" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Advertencia: la suma de divisiones y el monto de la transacción no coinciden" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(sin tipo)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banco" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Efectivo" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Activo" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Tarjeta de crédito" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Pasivo" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Cheques" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Ahorros" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Día" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Posible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Antes" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Después" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Omitir" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Tiempo" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Grupo de cuentas" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Año" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Semana" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Quincena" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestre" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Incluir" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Excluir" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Ayer" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Mañana" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Semana Anterior" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Esta semana" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Próxima Semana" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Quincena anterior" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Esta Quincena" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Próxima Quincena" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Último Mes" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Este Mes" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Próximo Mes" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Último trimestre" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Este Trimestre" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Próximo Trimestre" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Año Anterior" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Este Año" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Próximo Año" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Últimos 90 Días" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Ultimos 60 días" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Últimos 30 días" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Últimos 12 Meses" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "En torno a 30 días" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Todas las fechas" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Personalizado" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Este mes" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Próximo mes" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Próximos 30 días" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Próximos 60 días" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Próximos 90 días" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Fecha máxima de contabilización" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Gasto e ingreso." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Cualquier tipo" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Cualquier estado" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "No aprobado" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "No conciliado" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Sin categoría" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Predeterminado del sistema" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Sólo iconos" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Sólo texto" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Texto bajo los iconos" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Texto junto a los iconos" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Ambas" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorar" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Añadir a la memoria" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Añadir a beneficiario" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulador" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Coma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Punto y coma" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Espacio" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Enero" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Febrero" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Marzo" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Abril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Junio" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Julio" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agosto" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Septiembre" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Octubre" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Noviembre" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Diciembre" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Buscar..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Transferencia bancaria" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Tarjeta de débito" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Orden de posición" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pago electrónico" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depósito" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Honorarios FI" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Cargo Directo" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Telefonía móvil" homebank-5.9.1/po/POTFILES.in0000644000175000017500000000203214725106333011167 # List of source files containing translatable strings. data/homebank.desktop.in.in data/homebank.appdata.xml.in # Main application src/dsp-account.c src/dsp-mainwindow.c src/gtk-dateentry.c src/hb-archive.c src/hb-assign.c src/hb-category.c src/hb-export.c src/hb-filter.c src/hb-hbfile.c src/hb-payee.c src/hb-preferences.c src/hb-report.c src/hb-transaction.c src/homebank.c src/hub-account.c src/hub-scheduled.c src/hub-reptotal.c src/hub-reptime.c src/hb-import-csv.c src/hb-import.c src/list-account.c src/list-operation.c src/list-report.c src/list-scheduled.c src/rep-balance.c src/rep-budget.c src/rep-stats.c src/rep-time.c src/rep-vehicle.c src/ui-account.c src/ui-archive.c src/ui-assign.c src/ui-assist-start.c src/ui-assist-import.c src/ui-budget.c src/ui-budget-tabview.c src/ui-category.c src/ui-currency.c src/ui-dialogs.c src/ui-filter.c src/ui-flt-widget.c src/ui-group.c src/ui-hbfile.c src/ui-payee.c src/ui-pref.c src/ui-tag.c src/ui-transaction.c src/ui-txn-multi.c src/ui-txn-split.c src/ui-widgets-data.c src/ui-widgets.c homebank-5.9.1/po/zh_TW.po0000644000175000017500000033430614775770044011034 # Traditional Chinese translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # 線上英文說明 : http://homebank.free.fr/help/index.html # FIRST AUTHOR , 2007. # # Translator: Barlos Lee , 2010 # Taiwan traditional Chinese translation for "HomeBank 4.4" # where to to the translated homebank.mo file / 哪邊放翻譯好的 homebank.mo 已中文化檔案 # \HomeBank\share\locale\zh_TW\LC_MESSAGES\homebank_new.mo msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-12-08 01:14+0000\n" "Last-Translator: Lee Ming-Yuan \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Translator: Wayne Su \n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "個人財務" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "自由易用的個人財務管理" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "財務;會計;預算;個人;錢;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "HomeBank 是自由軟體可以協助您管理個人財務" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "它的設計易於使用,並能夠使用強大的篩選工具和美麗的圖表詳細分析您的個人財務。" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "如果您正在尋找一個完全免費而簡單的方法來管理您的個人財務,那麼HomeBank會是首選軟體。" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d 交易" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "共 %d 交易, 選擇了%d 筆, 平均: %s, 總合: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "已鎖定,擊點解除鎖定" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "解除鎖定, 擊點鎖定" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "刪除(_D)" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "您是否確定要變更狀態為無?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "有些選擇的交易已經核銷" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "變更(_C)" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "您是否要切換狀態為已核銷?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "切換 (_T)" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "建立(_C)" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "建立範本" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "所有交易" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "有 %d 組相似交易" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "沒有找到相似交易!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "檢查內部交易結果" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "沒發現不一致!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "在%d當中發現不一致\n" "你是否要重新檢視及修正?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "每個交易金額會被 %.6f分割" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "轉換(_C)" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "沒有變更任何交易" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "已變更的交易: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "自動填入結果" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "新增(_A)..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "繼承 (_I)..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "編輯 (_E)..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "無(_N)" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "已登帳(_C)" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "已核銷(_R)" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "狀態(_S)" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "無" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "紅色" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "橘色" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "黃色" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "綠色" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "藍色" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "紫紅色" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "加上旗幟(_F)" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "複合編輯(_M)..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "複製總額" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "建立範本..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "創建自動填入..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "刪除(_D)…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "向上(_U)" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "向下(_D)" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "輸出 QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "匯出 CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "列印..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "瀏覽網站" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "關閉" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "帳戶(_C)" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "複製" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "貼上" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "貼上(今日)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "搜尋" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "編輯 (_E)" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "標記重複..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "檢查內部交易" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "自動填入" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "轉換為歐元..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "工具(_T)" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "向上移動交易" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "向下移動交易" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "加入新的交易" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "新增" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "繼承現有的交易" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "繼承" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "編輯現有的交易" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "編輯" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "切換選擇的交易為已登帳" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "切換選擇的交易為已核銷" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "編緝複合交易" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "刪除選擇的交易" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(已關閉)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "顯示" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "重新整理(_R)" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "日期間隔(_g):" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "編輯篩選條件" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "清除過濾器" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "重新整理結果" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "歐元次要(_m)" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "已核銷:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "已登帳" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "今天:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "未來:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "將未儲存的改變復原為 '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- 這個檔案的改變將永久消失\n" "- 檔案將會重新載入上次儲存的 (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "復原(_R)" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "您確定要匿名化這個檔案?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "繼續會將所有內文匿名化\n" "例如 '帳戶 X', '收款人 Y', '備註 X', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "匿名化(_A)" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "歡迎使用 HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "關閉 (_C)" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "開啟最後開啟的檔案(_l)" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "建立一個新檔案 (_n)" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "開啟一個現有檔案(_O)" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "開啟範例檔案(_e)" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "閱讀 HomeBank 使用說明(_M)" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "設定選項(_p)" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "下次顯示這個視窗" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "你正在開啟備份檔案'%s'\n" "你是否確定要這樣做?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "是否開啟備份檔案" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_(O)開啟備份" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "無法開啟「%s」,該檔案不存在。\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "未知的錯誤" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "'%s' 檔案 I/O 錯誤." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "'%s' 不是有效的 HomeBank 檔案" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "'%s' 檔案是以更新版本的 HomeBank 儲存的\n" "不能被目前的版本載入." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "檔案錯誤" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "讀取之後這個檔案已經被修改" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "如果儲存它,將會失去所有外部作出的變更。仍要儲存它?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "仍然儲存(_A)" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "清除" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "檔案 (_F)" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "新增 (_N)" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "開啟 (_O)..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "開啟最近使用檔案(_R)" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "儲存 (_S)" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "另存新檔(_A)…" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "匯入..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "匯出為QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "還原" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "還原備份" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "屬性…" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "離開(_Q)" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "偏好設定..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "檢視 (_V)" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "工具列(_T)" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "底部列表(_B)" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "歐元次要" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "管理(_M)" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "帳戶(_O)..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "收款人 (_P)..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "分類..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "標籤..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "已排程/範本..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "自動填入..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "幣別..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "預算..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "預算(表格)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "交易 (_T)" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "新增..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "顯示..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "全部顯示..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "設定排程..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "發佈排程" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "報告 (_R)" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "統計 (_S)..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "時間趨勢(_T)..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "結餘報告(_B)..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "預算 (_U)..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "交通工具花費(_V)" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "顯示歡迎視窗..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "檔案統計..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "匿名化..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "輔助說明 (_H)" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "內容 (_C)" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "取得線上說明..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "檢查更新..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "發行說明" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "問題回報..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "翻譯這個應用程式..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "關於 (_A)" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "新增" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "建立一個新檔案" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "開啟" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "開啟檔案" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "開啟最近使用的檔案" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "儲存" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "儲存目前檔案" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "帳戶" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "管理帳戶" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "收款人" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "管理收款人" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "分類" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "管理分類" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "已排程/範本" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "管理已排程/範本交易" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "預算" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "管理預算" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "自動填入" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "管理自動填入" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "顯示選取的帳戶的交易" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "新增交易" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "統計" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "開啟統計報告" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "時間趨勢" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "開啟時間趨勢報告" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "結餘" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "開啟結餘報告" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "開啟預算報告" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "交通工具花費" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "開啟交通工具花費報告" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "說明" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "贊助" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "贊助HomeBank專案" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "已排程" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "未來" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "提醒" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "今天(_T)" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(無註解)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(副本)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(沒有類別)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "無效的 CSV 格式" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "日期錯誤" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "類型" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "狀態" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "無" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "清空" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "標籤" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "支付" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "金額" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "文字" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "未知" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(沒有收款人)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(沒有群組)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(沒標籤)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d年-第%02d週" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-第%d季" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[檔案]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "瀏覽器錯誤" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "無法顯示網址 %s" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(沒有機構)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "您的帳戶" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "顯示全部" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "全部展開" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "全部收起" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "沒有新增交易" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "交易已新增: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "檢查已排程交易結果" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "最大發佈日期" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "總計" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "略過(_S)" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "編輯並發佈(_o)" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "發佈(_P)" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "其他" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "支出" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "收入" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "已匯入的帳戶" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "總計" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "上一個已核銷" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "帳戶" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "已核銷" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "已登帳" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "今天" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- 分割 -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- 這需要類別 -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "日期" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "備註" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "標籤" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "符合" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "結果" #: ../src/list-report.c:957 msgid "Average" msgstr "平均" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "延遲" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "還有" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "下個日期" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d / %d 項低於 %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "清單" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "以清單檢視結果" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "折線圖" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "以折線圖檢視結果" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "明細" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "切換顯示明細" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "重新整理" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "列印" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "結餘報告" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "顯示" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "間隔(_v):" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "顯示空行" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "縮放顯示(_Z):" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "篩選" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "範圍(_R):" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "從 (_F):" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "到(_T):" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "選取:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "全部" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "反相選取" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "已支出" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "月" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " 超支" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " 剩餘" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " 低於" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "堆疊圖" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "以堆疊長條圖檢視結果" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "結果到剪貼簿(_R)" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "結果到CSV檔(_R)" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "細項到剪貼簿(_D)" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "細項到CSV檔(_D)" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "此預算沒有設定帳戶" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "您應該包含一些來自帳戶對話框的帳戶" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "預算報告" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "模式:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "類型(_T):" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "只顯示超出預算" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "結果:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "預算:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "花費" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s 依 %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "太多欄無法顯示" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "欄" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "以柱狀圖檢視結果" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "環圈圖" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "以圓環圖檢視結果" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "以堆疊圖檢視結果" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "堆疊100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "以堆疊100%檢視結果" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "圖表" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "切換顯示圖例" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "匯率" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "切換顯示百分比" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "統計報告" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "檢視(_V):" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "依金額排序(_a)" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "比較支出與收入" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "總計:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "收入:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "支出:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "平均: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "時間趨勢報告" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "累計(_C)" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "時段" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "里程表" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "燃料" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "價格" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "距離" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "匯出" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "匯出成 CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "交通工具花費報告" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "分類(_C):" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "里程表:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "耗油:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "燃料費用:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "其它費用:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "總計費用:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(無)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "顯示" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "帳戶名稱" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "錯誤" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "無法新增帳戶 '%s',\n" "這個名稱已經被使用了" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "無法刪除帳戶 '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "您是否確定要永久刪除 '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "如果您刪除帳戶,內容將會永久消失" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "無法將帳戶名稱 %s 變更為 %s,\n" "這個名稱已存在。" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "管理帳戶" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "刪除" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "重新命名" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "一般" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "群組(_G):" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "機構(_I):" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "帳號(_U):" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "起始餘額(_b):" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "幣別(_C):" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "此帳號已被關閉(_c)" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "備註:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "行為" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "自動化" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "預設範本(_T):" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "報告剔除" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "從帳號概況剔除 (_s)" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "從預算剔除(_b)" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "從任何報告剔除(_r)" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "其他" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "當前支票號碼" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "支票本(_1):" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "支票本(_2):" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "餘額限制" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "透支(_O):" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "最大值(_i)" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "如果您刪除了排程/範本,內容會永久消失" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "下一天(_d):" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "每(_Y):" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "更多選項" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "週末:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "停止於(_S):" #: ../src/ui-archive.c:972 msgid "posts" msgstr "發佈" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "管理已排程/範本交易" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "範本" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "排程(_S)" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "搜尋" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "說明" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "搜尋的文字已經在 %d位置" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "取消(_C)" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "確定(_O)" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "條件" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "搜尋(_S):" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "在(_I):" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "區分大小寫(_S)" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "總額(_n):" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "自動填入" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "收款人(_P):" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "覆寫" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "付款方式(_M):" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "標籤(_T):" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "如果您刪除自動填入,它會永久消失" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "管理自動填入" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "所有在此設定的選項稍後都可以依需求改變" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "在小幫手最後\n" "按下「套用」之前不會有任何改變。" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank會在主要視窗顯示一個標題\n" "它可以是一個自選的標籤或你的名字" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "標題(_T):" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank支援多種貨幣。\n" "基準幣別是創新帳戶或報告的預設值" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "基準:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "設定其他貨幣" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "新增 (_A)" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "找不到" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "依我的語言設定類別" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "預設檔案:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank可以由金融機構下載的檔案\n" "匯入你的帳戶, 或者你也可以手動建立帳戶" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "創建我的第一個帳戶" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "名稱 (_N):" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "這是一個確認頁面,\n" "\n" "按下「套用」以套用變更" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "開始檔案設定" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "檔案選項" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "選擇貨幣" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "選擇類別" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "建立帳戶" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "完成檔案設定" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<新帳戶(通用)>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<新帳戶>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "<略過這個帳戶>" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "有效" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "名稱" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "開啟(_O)" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "已知檔案" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF 檔案" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX 檔案" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV 檔案" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "所有檔案" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "新通用帳戶" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "新帳戶" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "略過" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d當中的 %d筆交易" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d 筆交易, %d 筆相似, %d 筆存在, %d 筆已選擇" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d 筆交易, %d 筆已選擇" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "部分日期無法轉換. 請嘗試變更日期順序後再繼續" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "匯入 %s到(_t):" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "這個檔案" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "這個帳戶" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "名稱: %s\n" "數量: %s\n" "檔案: %s\n" "編碼: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "從銀行或信用卡匯入交易" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "這個小幫手會引導你匯入由銀行或信用卡\n" "下載的帳單, 支援以下格式:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "推薦: .OFX 或 .QFX\n" "(有時也稱為 Money™ 或 Quicken™)\n" "支援: .QIF\n" "(一般的 Quicken™ 檔案)\n" "只建議進階使用者: .CSV\n" "(適用於 HomeBank 的格式請參考說明件文)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "在小幫手最後按下「套用」之前不會有任何改變。" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "不再顯示" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "拖放一個或數個檔案匯入.\n" "你可以使用下列的新增/刪除按鍵" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "你選擇的檔案當中有太多帳戶,\n" "請使用退回鍵以選擇較少檔案" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "日期排序:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "匯入備註(_I)" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "交換備註與收款人(_S)" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX 名稱(_N):" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX備註(_M):" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "切換顯示金額(_T)" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "在目標帳戶中有相似交易(可能是相同重覆)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "天" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "已按以下順序完成比對:帳戶、金額、日期。\n" "日期誤差為 0 表示必須完全相同" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "自動填入" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "按下「套用」更新你的帳戶" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "歡迎" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "選擇檔案" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "匯入" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "確認" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "檔案格式錯誤" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV 檔案必須包含特定欄位並以分號分隔, \n" "請見輔助說明有更多細節" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "您確定要清除輸入?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "如果您繼續, 總額將被設為0" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "清除 (_C)" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%s 的預算" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "管理預算" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "結餘:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "每月相同" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "清除輸入(_C)" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "每月不同" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "選項" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "強制監視此分類(_F)" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "1月" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "2月" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "3月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "4月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "5月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "6月" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "7月" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "8月" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "九月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "10月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "11月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "12月" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "總覽" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "總計" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "每月" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "增加類別" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "套用(_A)" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "母分類" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "分類名稱" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "這個類別已經不用\n" "使用此類別的交易將會被設為(無類別)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "合併類別" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "指定為'%s'類別的交易, 會被移動到下面選擇的類別" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "目標類別" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "刪除(_D)類別 '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "你是否確定要清除 '%s'的輸入?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "增加分類" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "移除分類" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "合併" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "清除輸入" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "交易" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "配置" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "刪除未使用的類別" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "您是否確定永久\n" "刪除未使用的類別" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "收入 (_I)" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "無法將分類名稱 %s 變更為 %s,\n" "這個名稱已存在。" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "合併類別 '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "交易被指定到這個類別,\n" "會被移動到下面選擇的類別" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "包含子類別(_s)" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "管理分類" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "移動/合併" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "新類別" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "新次類別" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "基準幣別" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "符號" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "匯率" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "最後修改" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "編輯幣別" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "幣別" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "格式" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "自訂(_C)" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "符號(_S):" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "前綴(_f)" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "進位符號(_D)" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "小數位數(_F):" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "分組符號(_G)" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "選擇基準幣別" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "選擇幣別" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO 代碼" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "新增自訂貨幣(_c)" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "更新線上錯誤" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "如果您刪除一個幣別,它將會永久消失" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "變更基準幣別" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "如果您繼續,其他幣別的匯資\n" "將會被設為0, 請勿忘記更新" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "貨幣" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "線上更新" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "設為基準" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "檔案統計" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "交易" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "更新" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "選擇基準幣別" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "從HomeBank v5.1版起可以管理多種貨幣\n" "如果下列幣別不正確,請變更:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "幣別" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "匯出成 QIF 檔案" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "從 CSV 檔案匯入" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "開啟 HomeBank 檔案" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "開啟 HomeBank 備份檔案" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "儲存 HomeBank 檔案為" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank 檔案" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "檔案備份" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "全部備份" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "關閉檔案前儲存變更?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "如果您不儲存, 變更將會永久消失\n" "變更數: %d" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "關閉但不儲存 (_W)" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "滙出為CSV檔(_C)" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "資料夾:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "選擇資料來" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "檔案名稱:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "新增狀態欄" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "細節分成多行" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "因為你從「所有交易」或選擇的項目滙出\n" "所以檔案將不會是 HomeBank CSV 格式" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "匯出成 PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "匯出為PDF檔(_P)" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "HomeBank對列印抱持環保的態度\n" "所以採取最廣泛通用的數位格式:PDF " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "新建(_N)" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "HomeBank 找到一些交易, 也許是與內部互轉連結." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "備註(_M):" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "重新設定(_R)" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "空白" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "檔案屬性" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "已排程交易" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "刪除未使用的收款人" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "您是否確定要永久地\n" "刪除未使用的收款人?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "支付(_y)" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "無法將收款人名稱 %s 變更為 %s,\n" "這個名稱已存在。" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "合併收款人 '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "已經指定給這個收款人的交易,\n" "將會移動到下面選擇的收款人" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "刪除收款人(_D) '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "此收款人已不使用\n" "使用此收款人的交易將被設為(無收款人)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "管理收款人" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "新收款人" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "介面" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "地區" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "交易" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "轉帳" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "匯入/匯出" #: ../src/ui-pref.c:99 msgid "Report" msgstr "報告" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "備份" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "資料夾" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "系統語言" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "選擇 HomeBank 檔案預設資料夾" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "選擇 HomeBank 預設備份資料夾" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "選擇預設匯入資料夾" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "選擇預設匯出資料夾" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "一般選項" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX 選項" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF 選項" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV 選項" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(只適用匯入交易)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "分隔符號:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "主視窗報告" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "最多項目:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "初始篩選條件" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "統計選項" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "依金額顯示(_a)" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "顯示百分比欄位(_R)" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "顯示明細 (_D)" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "預算選項" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "啟用(_E)" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "顏色組合(_P):" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "使用者介面" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "語言(_L):" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "格式(_F):" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "會計年度" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "起始於(_o):" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "計量單位" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "使用英哩(_m)" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "使用加侖(_g)" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "總是顯示提醒" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "總是顯示空白" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "顯示未來(_S):" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "未來幾天" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "隱藏已核銷" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "交易對話框" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk設定" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "網格線(_G):" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "圖表選項" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "較小的圖例字體(_f)" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "工具列(_T):" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "啟用自動備份(_E)" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "維持幾個備份(_N):" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "每日備份一次" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "錢包(_W):" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "備份(_B):" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "交易檔案" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "匯入 (_I):" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "匯出 (_E):" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "程式開始" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "顯示潑濺(splash)畫面" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "載入最後開啟的檔案" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "發佈待定的交易排程" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "線上更新貨幣" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "重置所有偏好設定" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "您是否確定將\n" "所有偏好設定\n" "重置為預設值" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "偏好設定" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "資訊" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "您必須重新啟動 HomeBank\n" "使語言變更生效" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "備份路徑已經改變\n" "你需要複製'.bak'檔到新位置" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "無法將標籤由\n" "'%s' 重新命名為 '%s'\n" "這個名稱已經存在。" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "合併標籤 '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "指派到這個標籤的交易,\n" "將會移動到下面選擇的標籤" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "(_D)刪除標籤 '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "這個標籤正在被使用.\n" "所有交易中的標籤將被刪除." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "管理標籤" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "新標籤" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "建立了 %s的交易" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "中斷(_B)" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "顯示排程(_s)" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "顯示所有帳戶(_a)" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "使用範本" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "新增並保留(_K)" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "新增交易" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "新增範本" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "繼承交易" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "繼承範本" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "編輯交易" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "編輯範本" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "日期 (_D):" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "收件者(_O):" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "分割交易" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "帳戶(_C):" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "分類(_G):" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "狀態(_S):" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "備註(_e):" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "警告:金額與類別不相符" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "複合編輯交易" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "全部刪除" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "套用" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "取消" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "交易金額:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "未指定:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "分割的總和:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "警告:分割的總和與交易類型不一致" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "警告:分割的總和與交易金額不一致" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(沒有類型)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "銀行" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "現金" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "資產" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "信用卡" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "債務" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "檢查" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "日" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "允許" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "提前" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "延後" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "時間" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "年" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "週" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "季" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "半年" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "包含" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "不包含" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "本月" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "下個月" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "後30天" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "後60天" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "後90天" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "支出與收入" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "任何類型" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "任何狀態" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "未登帳" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "未核銷" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "尚未分類" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "系統預設" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "只有圖示" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "只有文字" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "文字在圖示下方" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "文字在圖示旁邊" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "水平" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "垂直" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "兩者皆是" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "月-日-年" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "日-月-年" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "年-月-日" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "忽略" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "增加到備註" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "增加到收款人" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "分頁" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "逗號" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "分號" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "空白鍵" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "1月" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "2月" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "3月" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "4月" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "6月" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "7月" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "8月" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "9月" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "10月" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "11月" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "12月" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "9月" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "搜尋..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "支票" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "銀行交易" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "簽帳卡" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "定期轉帳代繳" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "電子付費" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "存款" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "金融機構費用" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "直接債務" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/de.po0000644000175000017500000035703614775770020010370 # German translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-04-05 06:20+0000\n" "Last-Translator: Wang Jikun \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Persönliche Finanzen" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Kostenlose und einfache Kontenverwaltung für alle" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "Finanzen;Buchungen;Budget;Persönliches;Geld;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank ist eine freie Software, die Sie bei der Verwaltung Ihrer " "persönlichen Finanzen unterstützt." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Entwickelt zur einfachen Bedienung und ausführlichen Analyse Ihrer Finanzen " "mit mächtigen Filterwerkzeugen und aussagekräftigen Diagrammen." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Wenn Sie eine einfache und kostenlose Lösung für das Verwalten Ihrer Konten " "suchen, dann sollten Sie die Software \"HomeBank\" wählen." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "%d erfordern eine Genehmigung." #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d Transaktionen" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d Transaktionen, %d ausgewählt, Durchschn.: %s, Summe: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Gesperrt. Klicken zum Entsperren" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Entsperrt. Klicken zum Sperren" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Lebensenergie" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "Stundenlohn" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" "Sind Sie sicher, dass Sie die ausgewählte %d Transaktion löschen möchten?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" "Wenn Sie eine Transaktion löschen, wird sie dauerhaft verloren gehen." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Löschen" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Sind Sie sicher, dass Sie den Status auf \"Ohne\" ändern möchten?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" "Einige Transaktion(en) in Ihrer Auswahl sind bereits im Status " "\"Abgeglichen\"." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "Ä_ndern" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Sind Sie sicher, dass Sie den Status auf \"Geklärt\" ändern möchten?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" "Sind Sie sicher, dass Sie auf den Status \"Ausgeglichen\" umschalten möchten?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Umschalten" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Sind Sie sicher, dass Sie eine Vorlage aus der %d ausgewählten Transaktion " "erstellen möchten?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "A_nlegen" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Vorlage erstellen" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d erstellt mit einem vorausgefüllten Symbol" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Sind Sie sicher, dass Sie eine Zuweisung aus der %d ausgewählten Transaktion " "erstellen möchten?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Zuweisung erstellen" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Alle Transaktionen" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Es gibt eine %d-Gruppe ähnlicher Transaktionen." #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Es wurden keine ähnlichen Transaktionen gefunden!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Überprüfe internes Übertragungsergebnis" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Keine Unstimmigkeiten gefunden." #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Inkonsistenz gefunden: %d\n" "Möchten Sie diese überprüfen und beheben?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Jeder Buchungsbetrag wird durch %.6f geteilt." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Sind Sie sicher, dass Sie dieses Konto in Euro als Hauptwährung umwandeln " "möchten?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "Konvertiere" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Keine Transaktion geändert" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "Transaktion geändert: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Ergebnis der automatischen Zuordnung" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Hinzufügen …" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "Über_nehmen …" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Bearbeiten …" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Keine" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Freigegeben" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "Ab_geglichen" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Ohne" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Rot" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Orange" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Gelb" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Grün" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Blau" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Violett" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Markieren" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Mehrere bearbeiten..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "_Split anzeigen" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Betragswert kopieren" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Vorlage erstellen …" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Erstelle Zuordnung..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Löschen …" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Hoch" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Runter" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "QIF exportieren …" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "CSV exportieren …" #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Drucken..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Webseite besuchen" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Schließen" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "K_onto" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopieren" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Einfügen" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Einfügen (heute)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Suchen" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Bearbeiten" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Duplikate markieren ..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Internen Transfer überprüfen" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Automatische Zuordnung" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "In Euro umwandeln..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Werkzeuge" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Transaktion nach oben verschieben" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Transaktion nach unten verschieben" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Neue Transaktion hinzufügen" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Hinzufügen" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Von der aktiven Transaktion übernehmen" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Übernehmen" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Aktive Transaktion bearbeiten" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Bearbeiten" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Aktuelle Transaktion(en) auf den Status \"Freigegeben\" umschalten" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Aktuelle Transaktion(en) auf den Status \"Ausgeglichen\" umschalten" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Mehrere Transaktionen bearbeiten" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Lösche ausgewählte Transaktion(en)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Abgestimmte Änderungen sind" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(geschlossen)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Anzeigen" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Aktualisieren" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Datums_lücke" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Anzeige von %d Tage im Voraus umschalten" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Filter bearbeiten" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Filter zurücksetzen" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Ergebnisse aktualisieren" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro_klein" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Abgeglichen" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Freigegeben:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Heute:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Zukünftig:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Ungesicherte Änderungen der Datei '%s' wiederherstellen?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "Die Änderungen an der Datei werden verworfen\n" "Die letzte gespeicherte Datei (.xhb~) wird geladen" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Zurücksetzen" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Sind Sie sicher, dass Sie die Datei anonymisieren wollen?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Im nächsten Schritt werden alle Texte anonymisiert.\n" "Zum Beispiel \"Konto x\", \"Zahlungsempfänger Y\", ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymisieren" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Willkommen bei HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "S_chließen" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "_Zuletzt geöffnete Datei öffnen" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "_Neue Datei erstellen" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Öffne existierende Datei" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Öffne die _Beispiel-Datei" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "HomeBank _Anleitung lesen" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Konfiguration Voreinstellung" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Dieses Fenster beim nächsten Mal anzeigen" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Sie sind dabei die Backup Datei '%s' zu öffnen.\n" "\n" "Sind Sie sicher, dass Sie dies tun möchten?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Backup-Datei öffnen?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "Backup öffnen" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "" "Die Datei '%s' konnte nicht geöffnet werden, weil sie nicht existiert.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Unbekannter Fehler" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "E/A Fehler für Datei: %s" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Die Datei '%s' ist keine gültige HomeBank Datei." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Die Datei '%s' wurde mit einer neueren Version von HomeBank erstellt und " "kann mit dieser nicht geladen werden." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Dateifehler" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Die Datei wurde seit dem Lesen geändert." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Wenn Sie speichern, können alle externen Änderungen verloren gehen. Trotzdem " "speichern?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Trotzdem speichern" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Bereinigen" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Datei" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Neu" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "Ö_ffnen …" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Zuletzt ge_öffnet" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Speichern" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Speichern _unter …" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Import …" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Export als QIF …" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Rückgängig" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Sicherung wiederherstellen" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Eigenschaften …" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Beenden" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Eins_tellungen …" #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Ansicht" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "Werkzeugleis_te" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Übersichtsdiagramm" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Zeitdiagramm" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Untere Listen" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro - Altwährung" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Verwalten" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Geldbörse ..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Konten …" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Zahlungsempfänger …" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kate_gorien …" #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Schlagwörter ..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Geplant/Vorlage …" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Zuordnungen …" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Währungen ..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget …" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (Tabellenansicht)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaktionen" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Hinzufügen …" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Anzeigen …" #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Alle anzeigen..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Zeitplan einstellen …" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Geplante Transaktionen buchen" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Berichte" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "Stat_istiken …" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trendzeit …" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Saldo..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget …" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Fahrzeugkosten …" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Begrüßungsdialog anzeigen …" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Dateistatistik …" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymisieren …" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Hilfe" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "Inha_lt …" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Hilfe online erhalten..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Auf Aktualisierungen prüfen …" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Informationen zur aktuellen Version" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Ein Problem melden …" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Diese Anwendung übersetzen …" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "Ü_ber" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Neu" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Neue Datei erstellen" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Öffnen" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Eine Datei öffnen" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Eine vor kurzem genutzte Datei öffnen" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Speichern" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Aktuelle Datei speichern" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Konto" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Konten verwalten" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Zahlungsempfänger" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Zahlungsempfänger verwalten" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategorie" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Kategorien verwalten" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Geplant/Vorlage" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Geplante/vorgesehenen Transaktionen verwalten" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Budgets verwalten" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Zuweisung" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Automatische Zuordnungen verwalten" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Zeigt die Transaktionen des ausgewählten Kontos an" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Transaktion hinzufügen" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistiken" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Statistische Auswertung öffnen" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trendzeit" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Den Trendzeit-Report öffnen" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Kontostand-Bericht öffnen" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Budget-Auswertung öffnen" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Fahrzeugkosten" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Öffne die Fahrzeugkosten Übersicht" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Hilfe" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Spenden" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "An das Homebank Projekt spenden" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Geplant" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Zukünftig" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Erinnern" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Heute" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(kein Memo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(Kopie)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(keine Kategorie)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "Ungültiges CSV-Format" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Ungültiger Datumsbereich!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Typ" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "gelöscht" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Schlagwort" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Zahlung" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Betrag" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Text" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Unbekannt" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "km/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(kein Zahlungsempfänger)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(keine Gruppe)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(kein Schlagwort)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d – q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-H%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Anwendungsversion anzeigen" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[DATEI]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Browser-Fehler" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Die Adresse »%s« konnte nicht angezeigt werden" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(kein Institut)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Ihre Konten" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "In die Zwischenablage kopieren" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Gruppieren nach" #: ../src/hub-account.c:595 msgid "type" msgstr "Typ" #: ../src/hub-account.c:596 msgid "group" msgstr "Gruppe" #: ../src/hub-account.c:597 msgid "institution" msgstr "Institut" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Alle anzeigen" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Alle aufklappen" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Alle zuklappen" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "Summe: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Kein Vorgang hinzuzufügen" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "Transaktion hinzugefügt: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Überprüfe Ergebnis der geplanten Transaktionen" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Post beim Programmstart" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "An" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Aus" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "spätestes Versanddatum" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Gesamt" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Überspringen" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Po_sten bearbeiten" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Buchen" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Ausgaben / Kategorie" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d Ausgaben / Zahlungsempfänger" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Ausgaben / Konto" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Kontosaldo" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Kontogruppen-Saldo" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Andere" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Übersichtsdiagramm" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Oben nach" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Kontogruppe" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Ausgaben" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Ausgaben" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Einnahmen" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Einnahmen" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Ausgaben & Einnahmen" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Gesamtkontostand" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Zeitdiagramm" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Weltweit" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "importiertes Konto" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Gesamtsumme" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "zuletzt abgeglichen" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "bis zur Überziehung" #: ../src/list-account.c:753 msgid "before maximum" msgstr "vor dem Maximum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Konten" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Ausgeglichen" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Freigegeben" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Heute" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- aufgeteilt -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- dies benötigt eine Kategorie -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Nummer" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Buchungstext" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Schlagwörter" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Übereinstimmung" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Ergebnis" #: ../src/list-report.c:957 msgid "Average" msgstr "Durchschnitt" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Überfällig" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Noch" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Nächster Termin" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Kontostand nach %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d unter %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Liste" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Ergebnisse als Liste anzeigen" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linie" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Ergebnisse als Linien anzeigen" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Details" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Details anzeigen" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Aktualisieren" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Drucken" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Kontostand-Bericht" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Anzeigen" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Zeige leere Zeile" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filter" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Zeitraum:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Vom:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Zum:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Auswahl:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Alle" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Umkehren" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "_Überweisung einbeziehen" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Ausgaben" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Erfüllt" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Monat" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budget nach Kategorie" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budget nach Monat" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " über" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " verbleiben" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " unter" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stapel" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Ergebnissanzeige als Säulendiagramm" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Ergebnis in die Zwischenablage" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Ergebnis in CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Details in die Zwischenablage" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Details in CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Es wurde kein Konto als Teil des Budgets definiert" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Du solltest Konten aus dem Kontendialog auswählen" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budget-Auswertung" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modus:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Typ:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Nur außerhalb des Budgets" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Ergebnis:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Ausgegeben:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s nach %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Zu viele Spalten zum Anzeigen" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "Bitte wählen Sie einen größeren Intervall und/oder einen engeren " "Datumsbereich" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Spalte" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Ergebnisse in einer Spalte darstellen" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Donut" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Ergebnisse in einem Ringdiagramm anzeigen" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Zeige Ergebnisse als Stapel" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stapel 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Zeige Ergebnisse als Stapel 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legende" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Legende anzeigen" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Bewerten" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Wachstum anzeigen" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistische Auswertung" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Ansicht nach:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Balance-Modus" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Vorhersage" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Nach Wert _sortieren" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Ausgaben und Einnahmen vergleichen" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Gesamt:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Einnahmen:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Ausgaben:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Mittelwert: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trendzeit-Report" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Ansammeln" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Zeitanteil" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Meter" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Treibstoff" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Preis" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Distanz" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Export" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Als CSV exportieren" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Fahrzeugkosten-Bericht" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategorie:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Meter:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Verbrauch:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Treibstoffkosten:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Andere Kosten:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Gesamtkosten:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ohne)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Sichtbar" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Name des Kontos" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Fehler" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Kann Konto %s nicht hinzufügen,\n" "da der Name bereits existiert." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Konto '%s' kann nicht gelöscht werden" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Es hat Transaktion" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Es ist das Ziel der xfer-Transaktion" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Es hat geplant/Vorlage" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Es ist Ziel von xfer geplant/Vorlage" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Sind Sie sicher, dass Sie '%s' unwiderruflich löschen wollen?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Wenn Sie ein Konto löschen, wird dies unwiderruflich gelöscht." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Dieses Konto kann nicht von '%s' nach '%s' umbenannt werden, da dieser Name " "bereits existiert." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Konten verwalten" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Löschen" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Umbenennen" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Nach oben verschieben" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Nach unten verschieben" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Allgemein" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Gruppe:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institut:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_ummer:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Anfangskontostand" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Währung:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "Dieses Konto wurde _geschlossen" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Webseite:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Bemerkungen:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Verhalten" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatisierung" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Standard _Vorlage:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Berichtsausschluss" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "von der Kontoübersicht ausschließen" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "Abfluss in die Zusammenfassung" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "vom _Budget ausschließen" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "von Berichten ausschließen" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Sonstiges" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Aktuelle Schecknummer" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Scheckbuch _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Scheckbuch _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Bilanzgrenzen" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Überziehung bei:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imum" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Vorlage löschen" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Diese Vorlage wird als Kontovorlage verwendet und kann nicht gelöscht werden." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Das Löschen eines vorgeplanten Ereignisses oder einer Vorlage ist " "irreversibel." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Nächster _Termin:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Jeden:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Weitere Optionen" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Wochenende:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "En_det nach:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "Einträge" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Transaktionsvorlagen und regelmäßige Transaktionen verwalten" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Vorlage" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplizieren" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Terminplanung" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Suchen" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Anmerkungen" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Die Suche darf nicht leer sein" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Dieser Suchtext existiert bereits an der Position %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Abbrechen" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Bedingung" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Suchen:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_In:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Groß-/Kleinschreibung berücksichtigen" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Betr_ag:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_UND" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Zuweisungen" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Zahlungsempfänger:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Überschreiben" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Be_zahlung:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Schlagwörter:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Kann diese Zuweisung nicht duplizieren,\n" "\"%s\" existiert bereits." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(Regel %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Wenn Sie den Eintrag löschen, wird er unwiderruflich verloren." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Verschieben nach …" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Regel verschieben" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Verschieben" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Zuordnungen verwalten" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Dieser Assistent hilft Ihnen beim Einrichten einer Mindestkonfiguration\n" "für eine neue HomeBank Datei." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Alle getätigten Einstellungen können bei Bedarf später geändert werden." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Es werden keine Änderungen vorgenommen, solange Sie nicht nach\n" "Ausführung dieses Assistenten auf \"Übernehmen\" klicken." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank zeigt einen Titel für das Hauptfenster an,\n" "Es kann eine freie Bezeichnung oder Ihr Name sein." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Titel" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank unterstützt mehrere Währungen. Die Basiswährung ist\n" "Die Standardeinstellung für neue Konten und Berichte." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Basis" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Richten Sie zusätzliche Währungen ein" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Hinzufügen" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nicht gefunden" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank kann die Kategorien für Ihre Sprache vorab ausfüllen\n" "wenn eine CSV-Datei verfügbar ist und von der Gemeinschaft bereitgestellt " "wird." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Kategorien einrichten für meine Sprache" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Vorlage:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank ermöglicht den Import Ihrer Konten von heruntergeladenen\n" "Dateien von Finanzinstituten, oder Sie können Ihr Konto manuell erstellen." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Erstelle mein erstes Konto" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Name:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Dies ist eine Bestätigungsseite,,\n" "\n" "Klicken Sie auf 'Übernehmen' um Änderungen anwenden" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Starten Sie das Datei-Setup" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Dateioptionen" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Währungen wählen" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Kategorien wählen" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Konto anlegen" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Beende Datei-Setup" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Gültig" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Name" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Öffnen" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Bekannte Dateien" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF-Dateien" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX-Dateien" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV-Dateien" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Alle Dateien" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "neues globales Konto" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "neues Konto" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "übersprungen" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d von %d Transaktionen" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d Transaktion(en), %d ähnlich, %d existierend, %d ausgewählt" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d Transaktion(en), %d ausgewählt" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Einige Daten können nicht konvertiert werden. Bitte versuchen Sie, die " "Reihenfolge der Daten zu ändern, um fortzufahren." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importiere %s nach:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "diese Datei" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "dieses Konto" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Verschlüsselung: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importiere Transaktionen von Bank- oder Kreditkarte" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Dieser Assistent führt Sie durch den Importprozess eines oder mehrerer\n" "heruntergeladenen Kontoauszüge Ihrer Bank oder Kreditkarte mittels folgender " "Formate:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Empfohlen: .OFX or .QFX\n" "(Auch als Money™ oder Quicken™ bezeichnet)\n" "Supported: .QIF\n" "(Gewöhnliche Quicken™ Datei)\n" "Für fortgeschrittene Anwender: .CSV\n" "(das Format ist eigens für HomeBank, mehr dazu in der Dokumentation)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Es werden keine Änderungen vorgenommen bis sie \"Speichern\" am Ende dieses " "Assistenten klicken." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Diese Meldung nicht mehr anzeigen" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Drag&Drop eine oder mehrere Dateien zum Importieren.\n" "Sie können auch die Buttons Hinzufügen/Entfernen der Liste nutzen." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Die von Ihnen ausgewählten Dateien enthalten zu viele Konten,\n" "benutzen Sie bitte den Zurück-Button, um weniger Dateien auszuwählen." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" "Identifikation des Zielkontos nach Nummer oder Name ist fehlgeschlagen" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Datumsreihenfolge:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "Buchungstexte _importieren" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "Buchungstexte mit Zahlungsempfängern _tauschen" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX-_Name" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX-_Memo" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Ersten Buchstaben groß bei Buchungstext/Zahlungsempfänger" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Wert umstellen" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Ähnliche Transaktion auf dem Zielkonto (mögliches Duplikat)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "Tag(e)" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Die Zusammenfügung geschieht in folgender Reihenfolge: Konto, Summe und " "Datum.\n" "Eine Datumstoleranz von 0 Tagen bedeutet eine exakte Übereinstimmung." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Automatisch ausführen" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Erweitern mit Standard-_Zahlungsempfänger" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Automatische _Zuweisungsregeln ausführen" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Auf \"Anwenden\" klicken um die Konten zu aktualisieren." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Willkommen" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Datei(en) auswählen" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importieren" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Bestätigung" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Falsches Dateiformat" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Die CSV-Datei muss die korrekte Anzahl an Spalten haben,\n" "getrennt durch ein Semikolon. Bitte schauen Sie in die Hilfe für weitere " "Details." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Sind Sie sicher das Sie Ihre Eingaben löschen möchten?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Wenn Sie fortfahren, alle Werte werden auf 0 gesetzt." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Leeren" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget für %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Budget verwalten" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "CSV _importieren..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "ist pro Monat gleich" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "Eingabe löschen" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "ist pro Monat unterschiedlich" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Einstellungen" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Beobachten dieser Kategorie erzwingen" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mrz" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dez" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Zusammenfassung" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Gesamtzahlen" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Jährliche\n" "Gesamtsumme" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Monatlicher\n" "Durchschnitt" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Monatlich" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Eine Kategorie hinzufügen" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Anwenden" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Übergeordnete Kategorie" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Kategorienname" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Diese Kategorie wird benutzt.\n" "Alle Transaktionen, die zu dieser Kategorie zugeordnet sind, \n" "werden auf (ohne Kategorie) gesetzt." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Kategorien zusammenfassen" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transaktionen, die der Kategorie '%s' zugeordnet sind, werden in die unten " "ausgewählte Kategorie verschoben." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Zielkategorie" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "Kategorie '%s' _löschen" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Sind Sie sicher, dass Sie die Eingaben für '%s' löschen wollen?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Kategorie hinzufügen" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Kategorie entfernen" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Zusammenführen" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Eingabe löschen" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Unbenutzte Kategorien löschen" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Sind Sie sich sicher, dass unbenutzte Kategorien gelöscht werden sollen?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Doppelter Kategoriename. Versuchen Sie einen anderen Namen." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Kategorie bearbeiten" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Ändere Typ" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "E_inkommen" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "An Unterelemente vererben" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Die Kategorie konnte nicht\n" "von '%s' nach '%s' umbenannt werden.\n" "Der Name existiert bereits." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Kategorie '%s' zusammenführen" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transaktionen, die zu dieser Kategorie zugeordnet sind,\n" "werden zu der unten ausgewählten Kategorie verschoben." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Unterkategorien einbeziehen" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Kategorien verwalten" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Verborgene anzeigen" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Verwendung zeigen" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Bewegen/Zusammenführen" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Ein-/Ausblenden" #: ../src/ui-category.c:2552 msgid "new category" msgstr "neue Kategorie" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "neue Unterkategorie" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Standardwährung" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Wechselkurs" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Zuletzt geändert" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Währung bearbeiten" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Währung" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Anpassen" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Ist pre_fix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Dezimalzeichen" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Nachkommastellen:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Grouping Zeichen:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Als Standardwährung festlegen" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Währung auswählen" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO-Code" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Füge benutzerdefinierte _Währung hinzu" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Updatefehler" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Wenn Sie eine Währung löschen, werden die Daten permanent entfernt." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Standwardwährung wählen" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Wenn Sie fortfahren, werden die Raten von anderen Währungen\n" "auf 0 gesetzt. Vergessen Sie nicht diese zu aktualisieren." #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Währungen" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Online aktualisieren" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Anrufliste" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Als Standard festlegen" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Dateistatistik" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transaktion" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Aktualisieren" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Standardwährung wählen" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Ab v5.1 unterstützt HomeBank mehrere Währungen.\n" "Bitte die Währung unten ändern, wenn diese nicht korrekt ist:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Währung:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Nach QIF exportieren" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Aus CSV importieren" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Öffne HomeBank-Datei" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Öffne HomBank Sicherungsdatei" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Speichere HomeBank-Datei als" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank-Dateien" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Sicherungsdatei" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Alle Sicherungen" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Sollen die Änderungen vor dem Beenden gespeichert werden?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Wenn Sie die Änderungen nicht speichern, gehen sie verloren.\n" "Anzahl der Änderungen: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "_Ohne speichern beenden" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Als _.csv exportieren" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Ordner:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Wählen Sie einen Ordner" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Dateiname:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Spalte Status hinzufügen" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detail geteilte Zeilen" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Die erstellte Datei wird nicht im HomeBank CSV Format angelegt, da der " "Export\n" "aus der Ansicht \"Alle Transaktionen\" angestoßen wurde, oder eine " "zusätzliche\n" "Option selektiert worden ist." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Als PDF exportieren" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportiere als _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Mit HomeBank wird das Drucken in eine ökologisch-verantwortungsvolle\n" "Richtung zum am weitesten verbreiteten digitalen Format orientiert: Dem PDF-" "Format. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Aktion für Zielerstellung wählen" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "_Neu anlegen" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Auswahl benutzen" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Quellenübertrag" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Zielverbindung vorgeschlagen" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "Homebank hat einige Transaktionen gefunden, die für die interne Buchung " "hiermit verknüpft sein könnte." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Buchungstext:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Nummer:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Zurücksetzen" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Anwenden" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Betrag/Text" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Immer zeigen" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Ungültig" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Hinzugefügt" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Geändert" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Filter umbenennen" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Filtername" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Speichern unter…" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Umbenennen…" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Fälligkeitsdatum" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "nächste Auszahlung" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "im Voraus" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Dateieigenschaften" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Geplante Transaktionen" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "von jedem" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "Monat" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Unbenutze Zahlungsempfänger löschen" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Sind Sie sicher, daß sie alle ungenutzen Zahlungsempfänger\n" "endgültig löschen möchten?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Doppelter Empfängername. Versuchen Sie einen anderen Namen." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Zahlungsempfänger bearbeiten" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Vorbefüllung" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Zahlung (_Y):" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Dieser Zahlungsempfänger konnte nicht\n" "von '%s' nach '%s' umbenannt werden.\n" "Der Name existiert bereits." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Zahlungsenpfänger '%s' zusammenführen" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transaktionen, die diesem Zahlungsempfänger zugeordnet sind,\n" "werden dem unten ausgewählten Zahlungsempfänger zugeordnet." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "Zahlungsempfänger '%s' _löschen" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Dieser Zahlungsempfänger wird benutzt,\n" "Alle Transaktionen, die zu diesem Zahlungsempfänger zugeordnet sind,\n" "werden auf \"ohne Zahlungsempfänger\" gesetzt." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Zahlungsempfänger verwalten" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "neuer Zahlungsempfänger" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Erscheinungsbild" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Lokalisierung" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Überweisungen" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Überweisung" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importieren/Exportieren" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Bericht" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Prognose" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Sicherung" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Verzeichnisse" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Erweitert" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Systemsprache" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Standard HomeBank-Ordner wählen" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" "Wählen Sie einen Ordner für die Wiederherstellungsdateien von Homebank aus" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Importordner wählen" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Wähle einen Standardexportordner" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "Währungs-API" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Schlüssel:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Allgemeine Optionen" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX-Optionen" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF Optionen" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV-Einstellungen" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(Nur Transaktionsimport)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Trennzeichen:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Berichte im Hauptfenster" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max. Anzahl _Posten:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Standardfilter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistikoptionen" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Nach _Betrag anzeigen" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "_Raten-Spalte anzeigen" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "_Details anzeigen" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Budget-Einstellungen" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Prognose aktivieren" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Anzahl Monate:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "Aktivi_eren" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "V_orlage:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Benutzeroberfläche" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Sprache:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a lokaler gängiger Name des Wochentags.\n" "%A lokaler vollständiger Name des Wochentags. \n" "%b lokaler gängiger Name des Monats. \n" "%B lokaler vollständiger Name des Monats. \n" "%c lokale gängiges Format für Datum und Zeit. \n" "%C Jahrzehnt (das Jahr wird durch 100 dividiert und als Ganzzahl " "abgeschnitten) als Dezimalzahl [00-99]. \n" "%d Tag des Monats als zweistellige Dezimalzahl [01,31]. \n" "%D gleichbedeutend wie %m/%d/%y. \n" "%e Tag des Monats als Dezimalzahl [1,31]; Bei einstelligen Zahlen wird ein " "Leerzeichen vorangestellt. \n" "%j Tag des Jahres als Dezimalzahl [001,366]. \n" "%m Monat als zweistellige Dezimalzahl [01,12]. \n" "%p lokale gängige Darstellung des Datums. \n" "%y Jahreszahl ohne Jahrzehnt als zweistellige Dezimalzahl [00,99]. \n" "%Y Jahreszahl mit Jahrzehnt als vierstellige Dezimalzahl." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Wirtschaftsjahr" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Beginnt am:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Maßeinheit" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Verwende _Meilen statt Meter" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Verwende _Gallone für Kraftstoff" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Immer Erinnerung anzeigen" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Ungültig immer anzeigen" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Erinnern in die Bilanz und den Bericht aufnehmen" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Abgestimmte Einträge für Änderungen sperren" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Zeige künftige:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "Tage voraus" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Abgestimmte ausblenden" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Transaktionsdialog" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" "_Behalte das letzte Datum, wenn mehrere hinzugefügt oder vererbt werden" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Aktivieren Sie die automatische Vervollständigung von Notizen mit" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "laufende Tage" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Text zur Bestätigung des Hinzufügens für 5 Sekunden anzeigen" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk Einstellungen" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Gitternetzlinien" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Diagrammoptionen" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Kleinere Legenden_schriftart" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Symbolleis_te:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Aktiviere automatische Sicherungen" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Anzahl der zu behaltenden Sicherungen" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Automatische Sicherungen erfolgen täglich" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Geldbörsen:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Wiederherstellungen:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Austauschdateien" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importieren:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "Exportieren:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Programmstart" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Startbildschirm anzeigen" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Zuletzt benutzte Datei öffnen" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Anstehende geplante Transaktionen buchen" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Währungen online aktualisieren" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Alle Einstellungen zurücksetzen" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Möchten Sie wirklich alles zurücksetzen\n" "all Ihre Einstellungen werden auf Standardwerte\n" "zurückgesetzt?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Einstellungen" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "HomeBank muss neugestartet werden um den Sprachwechsel durchzuführen." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Das Wiederherstellungsverzeichnis hat sich geändert,\n" "sie müssen die '.bak'-Datei eventuell an diesen neuen Ort kopieren." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Unbenutzten Tag löschen" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Sind Sie sicher, dass Sie das unbenutzte Tag dauerhaft löschen möchten?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Doppelter Tag-Name. Versuchen Sie einen anderen Namen." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Tag bearbeiten" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kann diese Merkierung von '%s'\n" "nach '%s' nicht umbenennen,\n" "der Name besteht schon." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Tag '%s' zusammenführen" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Diesem Tag zugewiesene Transaktionen,\n" "wird zu dem unten ausgewählten Tag verschoben." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Löschen Sie das Tag '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Dieses Tag wird verwendet.\n" "Dieses Tag wird aus jeder Transaktion gelöscht, die es verwendet." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Schlagwörter verwalten" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "neues Schlagwort" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transaktion von %s erstellt." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Möchten Sie die interne Übertragung unterbrechen?\n" "\n" "Wenn Sie fortfahren, wird die Zieltransaktion gelöscht." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Unterbrechen" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Zeige geplante" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Zeige _alle Konten" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Eine Vorlage benutzen" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "hinzufügen & behalten" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Transaktion hinzufügen" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Vorlage hinzufügen" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Transaktion übernehmen" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Vorlage vererben" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Transaktion bearbeiten" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Vorlage bearbeiten" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- schreiben Sie: t, t/m, m/t ein komplettes Datum\n" "- nutzen Sie die Pfeiltasten + Strg oder Umschalt\n" "- für heute leer" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "A_n:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Transaktion spalten" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Kein Kurs zum automatischen Ausfüllen verfügbar" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Konto:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Buch _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- schreiben Sie einige Buchstaben für die Autovervollständigung\n" "- schreiben Sie neuen Text, um einen Eintrag zu erstellen" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Kategorie" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "Buchungst_ext:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Achtung: der Betrag und das Kategoriezeichen passen nicht zueinender" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Mehrere Transaktionen bearbeiten" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Eingabe als\n" "Transfer" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Möchten Sie alle geteilten Zeilen löschen" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Alle löschen" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Vorzeichen mit -/+ erzwingen" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Übernehmen" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Abbrechen" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Buchungsbetrag:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Nicht zugewiesen:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Anzahl der Aufteilungen:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Das Limit für die Anzahl der Aufteilungen ist erreicht" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Warnung: Summe der Splits und Transaktionstyp stimmen nicht überein" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Warnung: Summe der Teilungen und Transaktionsbetrag stimmen nicht überein" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "Kein Typ" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Bargeld" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Anlagegüter" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditkarte" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Verbindlichkeit" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Prüfen" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Ersparnisse" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Tag" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Möglich" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Vorher" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Nachher" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Überspringen" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Zeit" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Kontogruppe" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Jahr" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Woche" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "2 Wochen" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Quartal" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Halbjahr" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Einbeziehen" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Ausschliessen" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Gestern" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Morgen" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Letzte Woche" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Diese Woche" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Nächste Woche" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Letzte vierzehn Tage" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Diese vierzehn Tage" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Nächste vierzehn Tage" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Letzter Monat" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Dieser Monat" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Nächster Monat" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Letztes Quartal" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Dieses Quartal" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Nächstes Quartal" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Letztes Jahr" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Dieses Jahr" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Nächstes Jahr" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Letzte 90 Tage" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Letzte 60 Tage" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Letzte 30 Tage" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Letzte 12 Monate" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Rund 30 Tage" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Jedes Datum" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Benutzerdefiniert" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Dieser Monat" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Nächster Monat" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Nächsten 30 Tage" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Nächsten 60 Tage" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Nächsten 90 Tage" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Maximales Postdatum" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Ausgaben & Einnahmen" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Jeder Typ" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Jeder Status" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Nicht freigegeben" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Nicht ausgeglichen" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Ohne Kategorie" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "System-Standard" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "nur Symbole" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "nur Text" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text unter Symbolen" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text neben Symbolen" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertikal" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Beides" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "Monat-Tag-Jahr" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "Tag-Monat-Jahr" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "Jahr-Monat-Tag" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorieren" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Anhängen an Nummer" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Zum Memo anfügen" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "An Zahlungsempfänger anfügen" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tab" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Komma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Semikolon" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Leerzeichen" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Januar" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februar" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "März" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juni" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juli" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "August" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Dezember" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Suchen …" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Scheck" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Überweisung" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debit-Karte" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Dauerauftrag" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronische Bezahlung" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Einzahlung" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Bankgebühr" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Lastschrift" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Mobiltelefon" homebank-5.9.1/po/pl.po0000644000175000017500000035220314775770021010403 # Polish translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-06-05 19:23+0000\n" "Last-Translator: Sunmoon51 \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: pl\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Zarządzanie finansami osobistymi" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Bezpłatna i łatwa księgowość osobista dla każdego" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finanse;księgowość;budżet;osobiste;pieniądze;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank to wolny (w znaczeniu jak \"wolność słowa\") i darmowy program, " "który pomoże ci zarządzać finansami osobistymi." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Prosty w użyciu, pozwala analizować szczegóły twoich osobistych finansów " "przy użyciu zaawansowanych filtrów i pięknych wykresów." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Jeśli szukasz całkiem darmowego i łatwego sposobu zarządzania twoimi " "finansami powinieneś wybrać HomeBank ." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transakcji" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transakcji, %d zaznaczono, śr.: %s, suma: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Zablokowane. Kliknij aby odblokować" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Odblokowane. Kliknij aby zablokować" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Energia życiowa" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "Opcja „Zarobki na godzinę” nie jest ustawiona w bieżącym Portfelu." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Czy jesteś pewien że chcesz usunąć %d wybraną transakcję?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Jeśli usuniesz transakcję, zostanie ona trwale utracona." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Usuń" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Czy na pewno wyzerować status?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Niektóre z zaznaczonych transakcji są już uzgodnione." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Zmień" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Czy na pewno chcesz zmienić status na Rozliczony?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Czy na pewno zamienić status Uzgodnione?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Przełącz" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Czy na pewno chcesz utworzyć szablon z %d wybranej transakcji?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Utwórz" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Utwórz szablon" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d utworzony z wstępnie wypełnioną ikoną" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "Czy na pewno chcesz utworzyć przypisanie z %d wybranej transakcji?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Utwórz przypisanie" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Wszystkie transakcje" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Jest %d podobnych transakcji" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Nie znaleziono podobnych transakcji!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Sprawdź wynik przelewu wewnętrznego" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Nie znaleziono niezgodności!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Stwierdzono niespójność: %d\n" "chcesz ją przejrzeć i naprawić?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Kwota każdej transakcji zostanie podzielona przez %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Czy na pewno chcesz przekonwertować to konto na euro jako główną walutę?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Przelicz" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Żadna transakcja nie została zmieniona" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transakcja zmieniona: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Wynik automatycznego przypisywania" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "Dod_aj..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Powiel..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Edytuj..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Brak" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "Rozli_czone" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Uzgodnione" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Brak" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Z_mień wiele..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Wyświetl podział" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Utwórz szablon..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Utwórz przypisanie..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Usuń..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "W górę" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "W _dół" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Eksportuj QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Eksportuj CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Drukuj..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Przeglądaj stronę internetową" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Zamknij" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "Ko_nto" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopiuj" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Wklej" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Wklej (dziś)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Skopiuj schowek" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Edycja" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Zaznacz duplikaty..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Sprawdź przelew wewnętrzny" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Automatyczne przypisania" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Przelicz na Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "Narzędz_ia" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Przenieś transakcję w górę" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Przenieś transakcję w dół" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Dodaj nową transakcję" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Dodaj" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Powiel zaznaczoną transakcję" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Powiel" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Zmień zaznaczoną transakcję" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Zmień" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Oznacz wybrane transakcje jako rozliczone" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Oznacz wybrane transakcje jako uzgodnione" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Zmień jednocześnie wszystkie zaznaczone transakcje" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Usuń zaznaczone transakcje" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Zmiany w uzgodnionych są" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(zamknięte)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Pokaż" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Odśwież" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Przedział dat" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Przełącz wyświetlanie %d dni do przodu" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Edytuj filtr" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Wyczyść filtr" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Odśwież raport" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro-centy" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Uzgodnione:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Rozliczone:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Dzisiaj:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Przyszłość:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Cofnąć niezapisane zmiany w pliku '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Zmiany wprowadzone w tym pliku zostaną utracone\n" "- Plik zostanie przywrócony do ostatniego zapisanego stanu (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "P_rzywróć" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Czy na pewno przekształcić plik w wersję anonimową?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Anonimizacja zmieni wszystkie teksty na anonimowe,\n" "jak 'konto x', 'odbiorca y', 'opis z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimizuj" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Witamy w HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Zamknij" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Otwórz ostatnio otwarty p_lik" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Utwórz _nowy plik" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Otwórz istniejący plik" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "_Otwórz przykładowy plik" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Przeczytaj podręcznik programu HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Konfiguracja preferencji" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Pokaż to okno następnym razem" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Otwierasz plik kopii zapasowej '%s'.\n" "\n" "Czy na pewno chcesz to zrobić?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Otworzyć plik kopii zapasowej?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Otwórz kopię zapasową" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Nie można otworzyć '%s', plik nie istnieje.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Nieznany błąd" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Błąd wejścia/wyjścia (I/O) dla pliku %s." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Plik '%s' nie jest poprawnym plikiem programu HomeBank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Plik '%s' był używany przez nowszą wersję programu HomeBank\n" "i nie może być używany przez obecną wersję." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Błąd pliku" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Plik został zmodyfikowany od czasu jego odczytania." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Zapis może spowodować utratę wszystkich zewnętrznych zmian. Zapisać mimo to?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Z_apisz mimo to" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Wyczyść" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Portfel" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nowy" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Otwórz..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Ostatnio _używane" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "Zapi_sz" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Z_apisz jako..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importuj..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Eksportuj jako QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Przywróć" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Przywróć kopię zapasową" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Właściwości..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "Za_kończ" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferencje…" #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Widok" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Pasek narzędzi" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Wykres sumaryczny" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Wykres czasowy" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "Dolne listy" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Przeliczanie euro" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Zarządzaj" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Portfel..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Konta..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "Odbiorcy..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategorie..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etykiety..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Zaplanowane/Szablony..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Przypisania..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Waluty..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budżet..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budżet (tabela)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transakcje" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Dodaj..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Pokaż..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Pokaż wszystkie..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Ustawienia zaplanowanych transakcji..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Zaksięguj zaplanowane" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Raporty" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statystyki..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trendy..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "S_aldo..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udżet..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Koszt pojazdu..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Pokaż okno powitalne..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Statystyka pliku..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimizuj..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "P_omoc" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Zawartość" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Uzyskaj pomoc online..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Sprawdź aktualizacje..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Informacje o wydaniu" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Zgłoś błąd w programie..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Przetłumacz ten program..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_O programie" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nowy" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Utwórz nowy plik" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Otwórz" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Otwórz plik" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Otwórz ostatnio używany plik" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Zapisz" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Zapisz bieżący plik" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Konto" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Zarządzaj kontami" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Odbiorca" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Zarządzaj odbiorcami" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategoria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Zarządzaj kategoriami" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Zaplanowane/Szablony" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Zarządzaj transakcjami Zaplanowanymi/Szablonami" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budżet" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Zarządzaj budżetem" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Przypisania" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Zarządzaj automatycznymi przypisaniami" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Pokaż transakcje z wybranego konta" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Dodaj transakcje" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statystyki" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Pokaż raport statystyczny" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trendy" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Otwórz raport trendów" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Otwórz raport salda" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Otwórz raport budżetu" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Koszty pojazdu" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Otwórz raport kosztów pojazdu" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Pomoc" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Wspomóż" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Wspomóż projekt HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Zaplanowane" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Przyszłość" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Przypomnij" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Dziś" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(brak opisu)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(kopia)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(brak kategorii)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "Niewłaściwy format CSV" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Typ" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "brak" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etykieta" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Płatność" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Kwota" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Tekst" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Nieznany" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(brak odbiorcy)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(brak grupy)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(bez etykiety)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[PLIK]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Błąd przeglądarki." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Nie można wyświetlić adresu '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(brak instytucji)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Twoje konta" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Kopiuj do schowka" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Grupuj według" #: ../src/hub-account.c:595 msgid "type" msgstr "typ" #: ../src/hub-account.c:596 msgid "group" msgstr "grupa" #: ../src/hub-account.c:597 msgid "institution" msgstr "instytucja" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Pokaż wszystkie" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Rozwiń wszystkie" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Zwiń wszystkie" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "suma: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Brak transakcji do dodania" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transakcja dodana: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Status księgowania zaplanowanych transakcji" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "Maksymalny termin księgowania" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Razem" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Pomiń" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "_Edytuj i zaksięguj" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Zaksięguj" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Największe %d wydatków / Kategoria" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Największe %d Kosztów / Kategoria" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Największe %d wydatków / Odbiorca" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Największe %d Kosztów / Odbiorca" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Największe %d wydatków / Konto" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Największe %d Kosztów / Konto" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Saldo konta" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Saldo grupy kont" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Pozostałe" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Wykres sumaryczny" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Grupa kont" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Wydatki" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Koszt" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Przychód" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Przychód" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Wydatki i przychody" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Koszty i dochody" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Saldo globalne" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Wykres czasowy" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Globalne" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "konto importowane" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Całkowita suma" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "ostatnia uzgodniona" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "przed maksimum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Konta" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Uzgodnione" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Rozliczone" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Dzisiaj" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- różne -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- to wymaga kategorii -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Numer" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Opis" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etykiety" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Flaga" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Wynik" #: ../src/list-report.c:957 msgid "Average" msgstr "Średnia" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Opóźnione" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Pozostało" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Następna data" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Wydatki według %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d poniżej %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lista" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Pokaż wyniki jako listę" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linia" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Pokaż wyniki na wykresie liniowym" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Transakcje" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Pokaż/ukryj transakcje" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Odśwież" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Drukuj" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Raport salda" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Wyświetl" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Okres:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Pokaż pustą linię" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Przybliż oś X" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtr" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Zakres" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Od:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Do:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Wybierz:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Wszystkie" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Odwróć" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Uwzględnij _transfer" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Wydatki" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Spełnione" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Miesiąc" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budżet według kategorii" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budżet według miesiąca" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " przekroczone" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " dostępne" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " niezrealizowane" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stos" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Pokaż wyniki na wykresie słupkowym skumulowanym" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Wynik do schowka" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Wynik do CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Szczegóły do schowka" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Szczegóły do CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Nie zdefiniowano kont będących częścią budżetu." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" "Powinieneś dołączyć jakieś konta do budżetu za pomocą okna zarządzania " "kontami." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Raport budżetu" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Tryb:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Rodzaj:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Tylko poza budżetem" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Wynik:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budżet:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Wydatki:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s według %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Zbyt wiele kolumn do wyświetlenia" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Wybierz szerszy przedział i/lub węższy zakres dat" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Kolumna" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Pokaż wyniki na wykresie kolumnowym" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Pączek" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Pokaż wyniki na wykresie pierścieniowym" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Wyświetl wyniki jako stos" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stos 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Wyświetl wyniki jako stos 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Pokaż objaśnienia obok wykresu" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Stawka" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Pokaż/ukryj udział procentowy" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Raport statystyczny" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Wyświetl według" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Tryb salda" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Prognoza" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "_Sortuj wg kwot" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Porównaj wyd. i przy." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Suma:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Przychód:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Koszt:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Średnia: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Raport trendów" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Kumuluj" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Pozycja" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Wycinek czasu" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Licznik" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Paliwo" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Cena" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Odl." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Eksport" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Eksportuj jako CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Raport kosztów pojazdu" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategoria:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Licznik:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Zużycie paliwa:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Koszty paliwa:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Inne koszty:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Łączne koszty:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(brak)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Widoczny" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nazwa konta" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Błąd" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Nie można dodać konta '%s',\n" "taka nazwa już istnieje." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Nie można usunąć konta '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Czy na pewno chcesz trwale usunąć '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Jeśli usuniesz konto, nie będzie można go odzyskać." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nie można zmienić nazwy tego konta,\n" "z '%s' do '%s',\n" "taka nazwa już istnieje." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Zarządzaj kontami" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Usuń" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Zmień nazwę" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Przesuń w górę" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Przesuń w dół" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Ogólne" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grupa:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Instytucja:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umer:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Saldo _początkowe:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Waluta" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "to konto zostało _zamknięte" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Strona internetowa:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notatki:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Zachowanie" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatyzacja" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Domyślny szablon" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Raport wykluczeń" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "wyklucz z podsumowania _kont" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "wyklucz z _budżetu" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "wyklucz ze wszystkich _raportów" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Różne" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Aktualny numer książeczki czekowej" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Książeczka czekowa _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Książeczka czekowa _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limity salda" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "Debet przy:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Maks_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Jeśli usuniesz szablon, nie będzie można go odzyskać." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Następna data" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Co:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Więcej opcji" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Koniec tygodnia" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Zatrzymaj po:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "wpisów" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Zarządzaj zaplanowanymi transakcjami" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Szablon" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Powiel" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "Zaplanuj" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Szukaj" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notatki" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Wyszukiwanie nie może być puste" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Ten wyszukiwany tekst już istnieje na pozycji %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Anuluj" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Warunek" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Szukaj:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "W:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Rozróżnianie wielkości _liter" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Kwota" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_I" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Przypisania" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Odbiorca:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Zastąp" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Pł_atność:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "E_tykiety" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Nie można zduplikować tego przypisania,\n" "'%s' już istnieje." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(reguła%d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Jeśli usuniesz przypisanie, nie będzie można go odzyskać." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Przenieś do..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Reguła przenoszenia" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Przenieś" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Zarządzaj przypisaniami" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Ten asystent pomoże Ci w podstawowej konfiguracji\n" "nowego pliku HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "Wszystkie ustawienia mogą być później, w razie potrzeby, zmienione." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Żadne zmiany nie będą wprowadzone dopóki nie klikniesz \"Zastosuj\"\n" "na końcu tego asystenta." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank wyświetli tytuł w oknie głównym,\n" "może to być dowolna nazwa lub Twoje imię." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Tytuł:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank obsługuje wiele walut. Bazowa waluta jest\n" "domyślną dla nowych kont i raportów." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Baza:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Skonfiguruj dodatkowe waluty" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "Dod_aj" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nie znaleziono" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank może wstępnie wypełnić kategorie w Twoim języku\n" "jeżeli plik CSV jest dostępny i dostarczony przez społeczność." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Skonfiguruj kategorie dla mojego języka" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Plik ustawień" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank umożliwia importowanie Twoich kont z plików pobranych\n" "z instytucji finansowych lub możesz utworzyć swoje konto ręcznie." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Utwórz moje pierwsze konto" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nazwa:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "To jest strona potwierdzenia,\n" "\n" "naciśnij „Zastosuj” aby zastosować zmiany" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Rozpocznij konfigurację" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Opcje pliku" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Wybierz waluty" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Wybierz kategorie" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Utwórz konto" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Zakończ konfigurację pliku" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Prawidłowy" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nazwa" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Otwórz" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Rozpoznawane pliki" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Pliki QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Pliki OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Pliki CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Wszystkie pliki" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nowe konto łączne" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nowe konto" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "pominięto" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d z %d transakcji" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transakcji, %d podobnych, %d istniejących, %d wybranych" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transakcji, %d wybranych" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Niektóre daty nie mogły być przetworzone. Spróbuj zmienić format daty " "(kolejność) aby kontynuować." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Impor_tuj %s do:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "ten plik" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "to konto" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nazwa: %s\n" "Liczba: %s\n" "Plik: %s\n" "Kodowanie: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importuj transkacje z banku lub karty kredytowej" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Ten asystent poprowadzi Cię przez proces importu jednego lub kilku pobranych " "\n" "wyciągów bankowych lub z karty kredytowej, w następujących formatach:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Rekomendowany: .OFX lub .QFX\n" "(Czasem nazywane Money™ lub Quicken™)\n" "Obsługiwany: .QIF\n" "(Plik Quicken™)\n" "Tylko dla zaawansowanych użytkowników: .CSV\n" "(format specyficzny dla HomeBank, sprawdź dokumentację)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Żadne zmiany nie zostaną wprowadzone dopóki nie klikniesz \"Zastosuj\" na " "końcu tego asystenta." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Nie pokazuj ponownie" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Przeciągnij i upuść jeden lub kilka plików do zaimportowania.\n" "Możesz także użyć przycisków dodawania/usuwania listy." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "W wybranych przez Ciebie plikach jest za dużo kont,\n" "użyj przycisku Wstecz, aby wybrać mniej plików." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" "Identyfikacja konta docelowego według nazwy lub numeru nie powiodła się." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Format daty:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importuj opisy" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "Zamień opi_sy z odbiorcami" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Nazwa:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Notatka:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Opis/Odbiorca wielką literą" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Przełącz kwotę" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "podobne transakcje na koncie docelowym (możliwy duplikat)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dni" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Dopasowanie jest realizowane w kolejności: wg konta, kwoty oraz daty.\n" "Tolerancja daty równa zero oznacza dokładne dopasowanie" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Uruchom automatyzację" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Wzbogać się o domyślną opcję _payee" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Uruchom automatyczne reguły _przydziału" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Kliknij przycisk „Zastosuj” aby zaktualizować swoje konta." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Witaj" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Wybierz plik(-i)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importuj" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Potwierdzenie" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Błąd formatu pliku" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Plik CSV musi zawierać określoną liczbę kolumn,\n" "oddzielonych średnikami, sprawdź pomoc aby uzyskać więcej szczegółów" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Czy na pewno wyczyścić pole?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Kontynuacja wyzeruje wszystkie kwoty." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Wyczyść" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budżet dla %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Zarządanie budżetem" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "jest taki sam w każdym miesiącu" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "Wyczyść pole" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "jest inny w każdym miesiącu" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Ustawienia" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Wymuszaj monitorowanie tej kategorii" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Sty" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Lut" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Kwi" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maj" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Cze" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Lip" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Sie" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Wrz" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Paź" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Lis" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Gru" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Podsumowanie" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Sumy" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Suma\n" "roczna" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Średnia\n" "miesięczna" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Miesięcznie" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Dodaj kategorię" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "Z_astosuj" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Kategoria nadrzędna" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nazwa kategorii" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Kategoria jest używana.\n" "Transakcje należące do tej kategorii zostaną zmienione na nieskategoryzowane" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Scal kategorie" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transakcje przypisane do kategorii '%s', zostaną przesunięte do kategorii " "wybranej poniżej." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Kategoria docelowa" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "Usuń kategorię '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Czy na pewno chcesz wyczyścić dane wejściowe dla '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Dodaj kategorię" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Usuń kategorię" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Scal" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Wyczyść pole" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Usuń nieużywane kategorie" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Jesteś pewien, że chcesz bezpowrotnie\n" "usunąć nieużywane kategorie?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Zduplikowana nazwa kategorii. Spróbuj innej nazwy." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Edytuj kategorię" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Zmień typ" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Przychód" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Rozszerzyć do _children" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nie można zmienić nazwy tej kategorii\n" "z '%s' na '%s',\n" "ponieważ taka nazwa już istnieje." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Scal kategorię '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transakcje przypisane do tej kategorii,\n" "zostaną przeniesione do kategorii zaznaczonej poniżej." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Uwzględnij _podkategorie" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Zarządzaj kategoriami" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Pokaż ukryte" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Pokaż użycie" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Usuń nieużywane..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Przenieś/Scal" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Pokaż/Ukryj" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nowa kategoria" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nowa podkategoria" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Waluta bazowa" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Kurs wymiany" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Ostatnia modyfikacja" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Edytuj walutę" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Waluta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Dostosuj" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbol" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Umieść przed kwotą" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Separator _dziesiętny:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Miejsca dziesiętne:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Separator _grup cyfr:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Wybierz walutę bazową" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Wybierz walutę" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Kod ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Dodaj niestandardową walutę" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Błąd aktualizacji online" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Jeśli usuniesz walutę, nie będzie można jej odzyskać." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Zmień walutę bazową" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Jeśli będziesz kontynuował, kursy innych walut\n" "zostaną ustawione na 0, nie zapomnij ich uaktualnić" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Waluty" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Aktualizuj online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Ustaw jako bazową" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Statystyka pliku" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transakcja" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Uaktualnij" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Wybierz walutę bazową" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Od wersji 5.1, HomeBank potrafi obsługiwać wiele walut,\n" "jeśli poniższa waluta nie jest poprawna, zmień ją:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Waluta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Eksportuj jako QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importuj z pliku CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Otwórz plik HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Otwórz plik kopii zapasowej HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Zapisz plik HomeBank jako" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Pliki HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Plik kopii zapasowej" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Wszystkie kopie zapasowe" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Zapisać zmiany przed zamknięciem?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Jeśli nie zapiszesz zmian, zostaną one bezpowrotnie utracone.\n" "Liczba zmian: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Zamknij bez zapisywania" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Eksportuj jako _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Katalog:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Wybierz katalog" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nazwa pliku:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Dodaj kolumne ze statusem" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Plik nie będzie w formacie HomeBank CSV, ponieważ eksportujesz\n" "z „Wszystkie transakcje” lub wybrałeś opcję." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Eksportuj jako PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Eksportuj jako _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Z HomeBank, drukowanie jest nastawione na odpowiedzialność ekologiczną\n" "w kierunku najbardziej rozpowszechnionego formatu cyfrowego: formatu PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Utwórz _nowy" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Użyj _wyboru" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Źródło transferu" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Sugerowane skojarzenie docelowe" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank znalazł transakcje, które mogą być powiązanymi transakcjami " "przelewu wewnętrznego." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Opis:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Transfer kosztów" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Transfer dochodów" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Resetuj" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Zapisz i użyj" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Użyj" #: ../src/ui-filter.c:1370 msgid "default" msgstr "domyślny" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Kwota/Tekst" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Zawsze pokazuj" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Nieważne" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Dodane" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Zmodyfikowane" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(domyślny)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Zmień nazwę filtra" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Nowy filtr %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Nazwa filtru" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Zapisz jako..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Zmień nazwę..." #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Termin płatności" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Następna wypłata" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Z góry" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Właściwości pliku" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Zaplanowane transakcje" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "z każdego" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "miesiąc" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Dochód na godzinę:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Usuń nieużywanych odbiorców" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Czy jesteś pewien, że chcesz\n" "trwale usunąć nieużywanych odbiorców?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Zduplikowana nazwa odbiorcy. Spróbuj innej nazwy." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Edytuj odbiorcę płatności" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Domyślne wypełnienie" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Płatność:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nie można zmienić nazwy tego odbiorcy\n" "z '%s' na '%s',\n" "ponieważ taka nazwa już istnieje." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Scal odbiorcę '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transakcje przypisane do tego odbiorcy,\n" "zostaną przeniesione na wskazanego poniżej." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "Usuń odbiorcę '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Ten odbiorca jest aktualnie używany.\n" "Wszystkie transakcje z jego udziałem zostaną zmienione na nieposiadające " "odbiorcy." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Zarządzaj odbiorcami" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nowy odbiorca" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interfejs" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Ustawienia regionalne" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transakcje" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Przelew" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importuj/Eksportuj" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Raport" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Prognoza" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Kopia zapasowa" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Foldery" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Zaawansowane" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Język systemu" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Wybierz domyślny katalog dla plików HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Wybierz domyślny folder plików kopii zapasowych HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Wybierz domyślny katalog importu" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Wybierz domyślny katalog eksportu" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Użyj „przeciągnij i upuść”, aby zmienić kolejność" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Ustawienia ogólne" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opcje OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Opcje QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Opcje CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(tylko import transakcji)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separator:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Raporty w oknie głównym" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Domyślny filtr" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opcje statystyk" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Pok_aż wg kwoty" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Pokaż udział p_rocentowy" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Pokaż _szczegóły" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opcje budżetu" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Włącz _prognozę" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Numer miesiąca:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Włącz" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Ustawienie:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interfejs użytkownika" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Język:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a skrócona nazwa tygodnia dla regionu.\n" "%A pełna nazwa tygodnia dla regionu. \n" "%b skrócona nazwa miesiąca dla regionu.\n" "%B pełna nazwa miesiąca dla regionu. \n" "%c odpowiednia reprezentacja daty i godziny dla regionu. \n" "%C numer wieku (rok podzielony przez 100 i skrócony do liczby całkowitej) " "jako liczba dziesiętna [00-99]. \n" "%d dzień miesiąca jako liczba dziesiętna [01,31]. \n" "%D to samo co %m/%d/%y. \n" "%e dzień miesiąca jako liczba dziesiętna [1,31]; pojedyncza cyfra jest " "poprzedzona spacją. \n" "%j dzień roku jako liczba dziesiętna [001,366]. \n" "%m miesiąc jako liczba dziesiętna [01,12]. \n" "%p odpowiednia reprezentacja daty dla regionu. \n" "%y rok bez wieku jako liczba dziesiętna [00,99].\n" "%Y rok z wiekiem jako liczbą dziesiętną." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Rok podatkowy" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Rozpoczyna się:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Jednostki miary" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Używaj _mil dla odległości" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Używaj _galonów dla objętości" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Zawsze pokazuj przypomnienie" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Zawsze pokazuj unieważnione" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Uwzględnij przypomnienia w bilansie i raporcie" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Blokada zmian w uzgodnionych" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "Pokaż przy_szłe:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dni" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Ukryj uzgodnione" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Okno dialogowe transakcji" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Włącz autouzupełnianie opisów za pomocą" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "ostatnich dni" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Pokaż tekst potwierdzenia dodania przez 5sek" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Ustawienia Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "Linie siatki" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Ustawienia wykresów" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Mniejsza czcionka legendy" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Paski _narzędzi:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "Włącz automatyczn_e kopie zapasowe" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "Liczba kopii do zachowa_nia:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Częstotliwość tworzenia kopii zapasowej to raz dziennie" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Portfele" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "Kopie zapasowe:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Pliki wymiany" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Import:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Eksport:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Start programu" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Pokazuj ekran startowy" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Otwórz ostatnio otwarty plik" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Księguj oczekujące zaplanowane transakcje" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Aktualizuj waluty online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Resetuj wszystkie preferencje" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Czy na pewno chcesz przywrócić\n" "wszystkie preferencje do wartości\n" "domyślnych?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferencje" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informacja" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "Aby zmienić język, należy ponownie uruchomić HomeBank." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Katalog kopii zapasowych zmienił się,\n" "może być konieczne skopiowanie plików „.bak” do tej nowej lokalizacji." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Usuń nieużywany tag" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Czy na pewno chcesz\n" "trwale usunąć nieużywany tag?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Zduplikowana nazwa tagu. Spróbuj innej nazwy." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Modyfikuj etykietę" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nie mogę zmienić nazwy tej etykiety\n" "z '%s' na '%s',\n" "ta nazwa już istnieje." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Scal etykietę '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transakcje przypisane do tej etykiety,\n" "zostaną przeniesione do etykiety wybranej poniżej." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Usuń etykietę '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Ta etykieta jest używana.\n" "Ta etykieta zostanie usunięta z każdej transakcji, która jej używa." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Zarządzaj etykietami" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nowa etykieta" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Utworzono transakcję na %s." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Czy chcesz przerwać przelew wewnętrzny?\n" "\n" "Kontynuacja spowoduje usunięcie transakcji docelowej." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Przerwa" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Pokaż zaplanowane" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Pok_aż wszystkie konta" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Użyj szablonu" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Dodaj i zachowaj" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Dodaj transakcję" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Dodaj szablon" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Powiel transakcję" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Odziedzicz szablon" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Edytuj transakcję" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Edytuj szablon" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "Można:\n" "- wpisać: d, d/m lub kompletną datę\n" "- użyć klawiszy strzałek + ctrl lub shift\n" "- pozostawić puste = dziś" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_Do:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Podział transakcji" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Brak dostępnych stawek do automatycznego wypełnienia" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Konto:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- wpisz kilka znaków dla autouzupełniania\n" "- wpisz nowy tekst aby utworzyć nowy wpis" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Kate_goria:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "O_pis:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Uwaga: znak (+/-) kwoty nie pasuje do kategorii" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Zmień wiele transakcji" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Rodzaj jako\n" "transfer" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Usuń wszystko" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Zastosuj" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Anuluj" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Kwota transakcji:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Kwota nieprzydzielona:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Suma rozdzielonych kwot:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Ostrzeżenie: suma podziałów i typ transakcji nie zgadzają się" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Uwaga: suma kwot podziału oraz łączna kwota transakcji nie są równe" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(brak rodzaju)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Gotówka" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Kapitał" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Karta kredytowa" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Zobowiązanie" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Rachunek bieżący" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Oszczędności" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dzień" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Możliwe" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Przed" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Po" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Pomiń" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Czas" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Grupa Kont" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Rok" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Tydzień" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Dwa tygodnie" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Kwartał" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Półrocze" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Dołącz" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Wyklucz" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Wczoraj" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Jutro" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Poprzedni tydzień" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Bieżący tydzień" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Następny tydzień" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Poprzednie dwa tygodnie" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Bieżące dwa tygodnie" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Następne dwa tygodnie" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Poprzedni miesiąc" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Bieżący miesiąc" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Następny miesiąc" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Poprzedni kwartał" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Bieżący kwartał" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Następny kwartał" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Poprzedni rok" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Bieżący rok" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Następny rok" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Ostatnie 90 dni" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Ostatnie 60 dni" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Ostatnie 30 dni" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Ostatnie 12 miesięcy" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Wszystkie daty" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Niestandardowe" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Bieżący miesiąc" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Następny miesiąc" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Następne 30 dni" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Następne 60 dni" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Następne 90 dni" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Wydatek i przychód" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Jakikolwiek rodzaj" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Jakikolwiek status" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Nierozliczone" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Nieuzgodnione" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Brak statusu" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Domyślne" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Tylko ikony" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Tylko tekst" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Tekst pod ikonami" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Tekst obok ikon" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Pozioma" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Pionowa" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Obie" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-r" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-r" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "r-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignoruj" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Dołącz do opisu" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Dołącz do odbiorcy" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulator" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Przecinek" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Średnik" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Spacja" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Styczeń" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Luty" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Marzec" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Kwiecień" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Czerwiec" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Lipiec" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Sierpień" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Wrzesień" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Październik" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Listopad" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Grudzień" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Wrz" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Szukaj..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Czek" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Przelew Bankowy" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Karta debetowa" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Zlecenie stałe" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Płatność elektroniczna" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depozyt" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Prowizja / opłata bankowa" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Polecenie Zapłaty" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/sl.po0000644000175000017500000034603614775770035010422 # Slovenian translations for homebank. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the homeban package. # # Matej Urbančič , 2007 - 2012. # msgid "" msgstr "" "Project-Id-Version: homebank master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-03-14 07:04+0000\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian GNOME Translation Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "X-Poedit-Country: SLOVENIA\n" "Language: \n" "X-Poedit-Language: Slovenian\n" "X-Poedit-SourceCharset: utf-8\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Osebne finance" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Brezplačno in enostavno računovodstvo za vsakogar" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finance;računovodstvo;denar;budget;osebno;banka;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "Program HomeBank je prosta programska oprema (kot \"svoboda govora\" in tudi " "kot \"brezplačno pivo\"), s katero je mogoče enostavno upravljati osebnih " "financ." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Zasnovan je za enostavno rabo, zmogljivo analizo osebnih financ in podrobni " "prikaz s filtri in uporabnimi diagrami." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Če iščete povsem brezplačen in enostaven način za osebno računovodstvo, " "potem mora biti program Homebank vaša prva izbira." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transakcij" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transakcij, %d izbranih, povprečje: %s, vsota: %s (%s – %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Zaklenjeno. Kliknite za odklepanje" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Odklenjeno. Kliknite za zaklepanje" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Izbriši" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Ali ste prepričani, da želite odstraniti status?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Nekatere transakcije v izboru so že potrjene." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Spremeni" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Ali ste prepričani, da želite preklopiti stanje na Potrjeno?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Preklopi" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Ustvari" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Ustvari predlogo" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Ustvari nalogo" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Vse transakcije" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Obstaja skupina %d podobnih transakcij." #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Ni zaznanih podobnih transakcij!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Preverite rezultate notranjih transakcij" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Ni zaznanih neskladnosti!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Zaznane so neskladnosti: %d\n" "Ali želite pregledati popravke?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Vsak znesek transakcije bo deljen z %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Pretvori" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Ni spremenjenih transakcij" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "spremenjena transakcija: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Samodejni rezultat naloge" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Dodaj ..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Prevzemi ..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Uredi ..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Brez" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Sprejeto" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Potrjeno" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Stanje" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Brez" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Hkratno urejanje ..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Prikaži _Split" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Kopiraj neobdelano količino" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Ustvari predlogo ..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Ustvari nalogo ..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Izbriši ..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Gor" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Dol" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Izvozi kot QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Izvoz podatkov v CSV ..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Natisni ..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Račun" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopiraj" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Prilepi" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Prilepi (danes)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Uredi" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Označi kot podvojeno ..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Preveri notranji prenos" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Samodejne naloge" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Pretvori v evro ..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Orodja" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Premakne transakcijo višje" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Premakne transakcijo nižje" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Dodaj transakcijo" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Dodaj" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Prevzemi iz dejavne transakcije" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Prevzemi" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Uredi trenutno transakcijo" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Uredi" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Preklopi oznako Sprejeto za izbrane transakcije" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Preklopi stanje potrjeno za izbrane transakcije." #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Urejanje več transakcij" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Izbriši izbrane transakcije" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Usklajene spremembe je" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(zaprto)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Pokaži" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Osveži" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Datumski _razkorak:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Uredi filter" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Osvežitev rezultatov" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Druga _valuta" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Potrjeno:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Sprejeto:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Danes:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Prihodnje:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Ali želite povrniti neshranjene spremembe v datoteki '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Spremembe, narejene v datoteki, bodo trajno izgubljene\n" "- Datoteka bo naložena iz zadnje shranjene varnostne kopije (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Povrni" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Ali ste prepričani, da želite počistiti vse osebne podatke?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Z dejanjem bodo izbrisana osebna besedila, \n" "kot so 'račun x', 'stranka y', 'opomnik z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Počisti osebne podatke" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Dobrodošli v program HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Zapri" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Odpri _nazadnje odprto datoteko" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Ustvari _novo datoteko" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Odpri obstoječo datoteko" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Odpri _vzorčno datoteko primerov" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Preberi priročnik programa _HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Nastavitev _možnosti" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Pokaži okno tudi naslednjič" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Odpreti nameravate datoteko varnostne kopije »%s«.\n" "\n" "Ali ste prepričani, da želite nadaljevati?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Ali želite odpreti datoteko varnostne kopije?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Odpri datoteko varnostne kopije" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Ni mogoče odpreti '%s'. Datoteka ne obstaja.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Neznana napaka" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Napaka V/I za datoteko '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Datoteka '%s' ni veljavna datoteka programa HomeBank" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Datoteka '%s' je shranjena v zapisu višje različice programa\n" "HomeBank, zato je ni mogoče naložiti." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Napaka datoteke" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Datoteka je bila od časa zadnjega branja spremenjena." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Če jo shranite, bodo vse zunanje spremembe izgubljene. Ali jo želite vseeno " "shraniti?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Vseeno shrani" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Počisti" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Datoteka" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Novo" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Odpri ..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Odpri _nedavno" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Shrani" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Shrani _kot ..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Uvozi ..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Izvozi kot QIF ..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Povrni" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Obnovi varnostno kopijo" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Lastnosti ..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Končaj" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Možnosti ..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Pogled" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Orodna vrstica" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Spodnji seznami" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Druga valuta" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Upravljanje" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Denarnica ..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Ra_čuni ..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Stranke ..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategorije ..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Oznake ..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Načrtovano/Predloge ..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Nakazila ..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valute ..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Proračun ..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Proračun (preglednični pogled) ..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Prenosi" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Dodaj ..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Pokaži ..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Nastavi načrtovane transakcije" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Objavi načrtovane transakcije" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Poročila" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistika ..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Časovni trend ..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Stanje ..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Prorač_un ..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Stroški _vozila ..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Pokaži pozdravno pogovorno okno ..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Statistika datoteke ..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Brisanje osebnih podatkov ..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Pomoč" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Vsebina" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Poišči pomoč na spletu ..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Preveri za posodobitve ..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Opombe ob izdaji" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Poročilo o napaki ..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Prevod programa ..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_O programu" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Novo" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Ustvari novo datoteko" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Odpri" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Odpri datoteko" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Odpri nedavno uporabljeno datoteko" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Shrani" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Shrani trenutno datoteko" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Račun" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Upravljaj z računi" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Stranka" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Upravljaj s strankami" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategorija" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Upravljaj kategorije" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Načrtovano/Predloga" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Upravljanje načrtovanih/predlog transakcij" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Proračun" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Upravljanje proračuna" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Nakazila" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Upravljanje samodejnih nalog" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Pokaže transakcije izbranega računa" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Dodaj transakcije" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistike" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Odpri statistično poročilo" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trend" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Odpri poročilo o trendu" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Stanje" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Odpri poročilo o stanju" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Odpri poročilo proračuna" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Stroški vozila" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Odpri poročilo o stroških vozila" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Pomoč" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Doniraj" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Donacija projektu HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Načrtovano" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Prihodnost" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Opomni" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Danes" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(ni opomnika)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(ni določene kategorije)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "neveljaven zapis CSV" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tip" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Stanje" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Oznaka" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Plačilo" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Znesek" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Besedilo" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Neznano" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(ni določene stranke)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(ni skupine)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(ni oznake)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-%02dt" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-Č%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[DATOTEKA]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Napaka brskalnika" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Ni mogoče prikazati URL naslova '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(ni navedene ustanove)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Računi" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Pokaži vse" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Razširi vse" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Zloži vse" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Ni dodane transakcije" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "dodana transakcija: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Preveri rezultat načrtovanih transakcij" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "najkasnejši datum objave" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Skupno" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Preskoči" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Uredi in _Pošlji" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Oddaj" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Drugo" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Izplačila" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Vplačila" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "uvožen račun" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Skupni seštevek" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "nazadnje potrjeno" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "do limita" #: ../src/list-account.c:753 msgid "before maximum" msgstr "pred največjo vrednostjo" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Računi" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Potrjeno" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Sprejeto" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Danes" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- razdelitev -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "– vnos zahteva kategorijo –" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Opomnik" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Oznake" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Se sklada" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Rezultat" #: ../src/list-report.c:957 msgid "Average" msgstr "Povprečje" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Za rokom" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Ostaja" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Naslednji datum" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d pod %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Seznam" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Seznamski pregled" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Črta" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Vrstični pregled" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Podrobnost" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Preklop podrobnosti" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Osveži" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Natisni" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Poročilo stanja" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Pokaži" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Pokaži prazne vrednosti" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Približaj os X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filter" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Obdobje:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Od:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Do:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Izbor:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Vse" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Preobrn_i" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Vključi _prenos" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Porabljeno" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mesec" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " preko" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " na levi" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " spodaj" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Sklad↓" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Pokaži rezultate kot naložene stolpce" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Kopiraj rezultat v odložišče" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Shrani rezultat v datoteko CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Kopiraj podrobnosti v odložišče" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Shrani podrobnosti v datoteko CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Ni določenih računov, ki so del proračuna." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Vključiti je treba računa v pogovornem oknu računov." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Poročilo proračuna" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Način:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "Vrs_ta:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Le iz proračuna" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Rezultat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Proračun:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Porabljeno:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s po elementu %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Za prikaz je odprtih preveč stolpcev" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Izbrati je treba širši interval ali pa ožji časovni obseg" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Stolpec" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Poglej rezultate v stolpcu" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Kolobar" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Prikaz podatkov v diagramu" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Oglejte si rezultate kot skupek" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Skupek 100 %" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Ogled rezultatov kot skupek100 %" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Preklop legende" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Mera" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Preklopi mero" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistično poročilo" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Pokaži za:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Balance način" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Razvrsti po _znesku" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Primerjaj prihodke in odhodke" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Skupaj:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Dohodek:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Izdatek:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Povprečje: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Poročilo časovnega trenda" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Seštevaj" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Časovno obdobje" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Števec" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Gorivo" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Cena" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Pot" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Izvozi" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Izvozi v CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Poročilo o stroških vozila" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategorija:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Števec:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Poraba:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Cena goriva:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Ostali stroški:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Skupna cena:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(brez)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Vidno" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Ime računa" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Napaka" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Ni mogoče dodati računa '%s',\n" "saj račun s tem imenom že obstaja." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Ni mogoče izbrisati računa '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Ali ste prepričani, da želite trajno izbrisati '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Izbrisan račun je trajno izgubljen." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Ni mogoče preimenovati računa\n" "iz '%s' v '%s',\n" "saj to ime že obstaja." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Upravljanje računov" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Izbriši" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Preimenuj" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Premakni navzgor" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Premakni navzdol" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Splošno" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Skupina:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Ustanova:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_Številka:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Začetno _stanje:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Valuta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "ta račun je _zaprt" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Opombe:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Obnašanje" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Avtomatizacijaa" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Privzeta _predloga:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Izločitve iz poročila" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "izloči iz prikaza _povzetka računa" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "izliv v povzetek" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "izloči iz prikaza _proračuna" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "izloči iz _vseh poročil" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Razno" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Številka trenutnega čeka" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Čekovna knjižica _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Čekovna knjižica _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limit računa" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Limit pri:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "_Največ:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Če urnik ali predlogo izbrišete, bo ta trajno izgubljena." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Naslednji _datum:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Vsak:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Več možnosti" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Konec tedna:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Zaustavi po:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "objave" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Upravljanje z načrtovanimi transakcijami in predlogami" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Predloga" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Urnik" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Iskanje" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Opombe" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Ta iskalni niz že obstaja na mestu %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Prekliči" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_V redu" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Pogoj" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Poišči:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_V:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Razlikovanje velikosti črk" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Račun:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_IN" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Naloge" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Stranka:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Prepiši" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "P_lačilo:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "O_znake:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(pravilo %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Če nakazilo izbrišete, bo trajno izgubljeno." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Premakni v ..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Pravilo premikanja" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Premakni" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Upravljanje nakazil" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Ta pomočnik vam bo pomagal nastaviti minimalno konfiguracijo\n" "za novo datoteko HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "Vse elemente, ki jih tukaj nastavite, lahko pozneje spremenite." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Spremembe ne bodo izvedene, dokler ne kliknete »Uporabi«\n" "na koncu tega asistenta." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank bo prikazal naslov glavnega okna,\n" "lahko je poljubna oznaka ali vaše ime." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Naslov:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank podpira več valut. Osnovna valuta je\n" "privzeto za nove račune in poročila." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Osnova:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Nastavtiev dodatnih valut" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Dodaj" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Ni mogoče najti" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank lahko vnaprej izpolni kategorije za vaš jezik\n" "če je datoteka CSV na voljo in jo zagotovi skupnost." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Nastaviteve kategorij za jezik" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Datoteka določil:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank omogoča uvoz računov iz prenesenih\n" "datotek finančne institucije ali pa lahko svoj račun ustvarite ročno." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Ustvari prvi račun" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Ime:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "To je zaključek\n" "\n" "pritisnite 'Sprejmi\" za uveljavitev sprememb" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Prični ustvarjati novo datoteko" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Možnosti datoteke" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Izbor denarne enote" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Izbor kategorij" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Ustvari račun" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Končaj nastavitev datoteke" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Veljavno" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Ime" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Odpri" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Znane datoteke" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF datoteke" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Datoteke OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV datoteke" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Vse datoteke" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nov splošni račun" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nov račun" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "preskočen" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d od %d transakcij" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "Zbranih je %d transakcij,%d podobnih, %d obstoječih, %d izbranih" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "Transakcije: %d, izbranih: %d" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Nekaterih datumov ni mogoče pretvoriti. Poskusite zamenjati vrstni red " "datuma za nadaljevanje." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Uvozi %s _v:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "ta datoteka" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "ta račun" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Ime: %s\n" "Številka: %s\n" "Datoteka: %s\n" "Kodiranje: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Uvozi transakcije bančne ali kreditne kartice" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "S tem asistentom vas bo vodil skozi postopek uvoza enega ali več\n" "prenesli izpiske iz svoje banke ali kreditne kartice v naslednjih oblikah:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Priporočeno: .OFX ali .QFX\n" "(Poimenovano tudi Money™ ali Quicken™)\n" "Podprto: .QIF\n" "(Splošna datoteka Quicken™)\n" "Za zahtevnejše uporabnike: .CSV\n" "(Lasten zapis HomeBank, več o tem je v dokumentaciji.)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Do sprememb ne bo, dokler na koncu tega pomočnika ne kliknete »Uporabi«." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Sporočila ne pokaži več" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Povlecite in spustite eno ali več datotek za uvoz.\n" "Uporabite lahko tudi gumbe za dodajanje / brisanje seznama." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "V izbranih datotekah je preveč računov,\n" "prosimo, uporabite gumb za nazaj, da izberete manj datotek." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Določitev ciljnega računa po imenu oziroma število je spodletelo." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Razvrstitev datuma:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Uvozi opomnike" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Zamenjaj opomike z nazivi strank" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "_Ime OFX:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "_Opomnik OFX:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Prva črka je vlika pri zapisu opomnika in stranke" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Preklopi znesek" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Podobna transakcija v ciljnem računu (morebitna podvojitev)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dni" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Podatki se primerjajo v vrsti: po računu, znseku in datumu.\n" "Izbor 0 dni pomeni, da mora odstopanje ni dovoljeno." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Zaženi samodejna dejanja" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Obogatite s privzetim _plačnikom" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Zaženi samodejna _pravila nalog" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Za posodobitev računov kliknite gumb »Uporabi«." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Dobrodošli" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Izbor datotek" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Uvozi" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Potrditev" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Napaka zapisa datoteke" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Datoteka CSV mora vsebovati natančno določeno število stolpcev,\n" "ločenih s podpičji. Za več podrobnosti si oglejte dokumentacijo." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Ali ste prepričani, da želite počistiti vnos?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "V primeru nadaljevanja bodo vsi zneski nastavljeni na vrednost 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Počisti" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Proračun za %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Upravljanje proračuna" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Stanje:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "je enak vsak mesec" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Počisti vnos" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "je drugačen na mesec" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Možnosti" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Vsili nadzor nad kategorijo" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "maj" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Avg" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Povzetek" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Skupaj" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mesečno" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Dodaj kategorijo" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Uveljavi" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Nadrejena kategorija" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Naziv kategorije" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Kategorija je v uporabi!\n" "Vsaka transakcija, ki uporablja izbrano kategorijo, bo nastavljena na (brez " "kategorije)." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Združi kategorije" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transakcije, dodeljene kategoriji '% s', bodo premaknjene v spodnjo " "kategorijo." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Ciljna kategorija" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Izbriši kategorijo '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Ali ste prepričani, da želite počistiti vnose »%s«?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Dodaj kategorijo" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Odstrani kategorijo" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Združi" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Počisti vnos" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# transa" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# nasta" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Izbriši neuporabljene kategorije" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Ali ste prepričani, da želite\n" "trajno izbrisati neuporabljene kategorije?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Uredi kategorijo" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Tip spremembe" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Vplačila" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Razširi na _otroke" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Ni mogoče preimenovati kategorije,\n" "iz '%s' v '%s',\n" "saj tako ime že obstaja." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Združi kategorijo '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transakcija, dodeljena tej kategoriji,\n" "bo premaknjena k izbrani kategoriji." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Vključi _subcategories" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Upravljanje kategorij" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Pokaži skrito" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Prikaži porabo" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Premakni/Združi" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Prikaži/Skrij" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nova kategorija" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nova podrejena kategorija" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Osnovna valuta" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Simbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Menjalni tečaj" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Nazadnje spremenjeno" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Uredi valuto" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Valuta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Oblika" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Prilagodi" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Simbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Je pre_dpona" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Decimalni znak:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Decimalna mesta:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Ločilo tisočic:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Izbor osnovne valute" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Izbor valute" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Koda ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Dodaj _valuto po meri" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Posodobi omrežno napako" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Če izbrišete podatke valute, bo ta trajno izgubljena." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Spremeni osnovno valuto" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "V primeru nadaljevanja bodo vsi tečaji uporabljenih denarnih\n" "enot nastavljeni na vrednost 0. Ne pozabite jih posodobiti!" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valute" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Posodobi prek omrežja" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Nastavi kot osnovno" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Statistika datoteke" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transakcija" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Nadgradi" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Izbor osnovne valute" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Od različice programa HomeBank v5.1 je mogoče upravljati več\n" "denarnih enot. Če spodaj navedena valuta ni prava, jo spremenite:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Valuta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Izvozi kot QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Uvoz iz CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Odpri datoteko Homebank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Odpri varnostno kopijo HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Shrani datoteko kot" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Datoteke" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Varnostna kopija datoteke" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Vse varnostne kopije" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Ali želite shraniti spremembe pred zapiranjem?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "V kolikor sprememb ne shranite, bodo te trajno izgubljene.\n" "Število sprememb: %d" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Zapri _brez shranjevanja" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Izvozi kot _CVS" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Mapa:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Izbor mape" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Ime datoteke:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Dodaj Status stolpec" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Ločilne črte podrobnosti" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Datoteka ne bo v formatu HomeBank CSV, ker izvozite\n" "iz 'Vse transakcije' ali ste izbrali možnost." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Izvozi kot PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Izvozi kot _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Z HomeBank je tiskanje usmerjeno v okolju prijazno\n" "odnos do najbolj razširjene digitalne oblike: oblika PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Izberite dejanje za ustvarjanje cilja" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Ustvari _novo" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Uporabite _Izbrano" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Prenos vira" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Predlagana ciljna povezava" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "Zaznane so transakcije, ki so morda povezane z notranjim prenosom sredstev." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Opomnik:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Ponastavi" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Uporabi" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Znesek/Besedilo" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Vedno prikaži" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Razveljavljeno" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Dodano" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Urejeno" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Datum zapadlosti" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Naslednje izplačilo" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Vnaprej" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Lastnosti datoteke" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Načrtovane transakcije" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "od vsakega" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mesec" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Izbriši neuporabljeno stranko" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Ali ste prepričani, da želite trajno\n" "izbrisati neuporabljene stranke?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Uredi prejemnika plačila" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Privzeto polnjenje" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "P_lačilo:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Ni mogoče preimenovati stranke,\n" "iz '%s' v '%s',\n" "saj tako ime že obstaja." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Združi stranko »%s«" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transakcije, ki so dodeljene tej stranki,\n" "bodo premaknjene k novi izbrani stranki." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Izbriši stranko »%s«" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Stranka je v uporabi!\n" "Vsaka transakcija, ki uporablja ta podatek, bo nastavljena na (brez stranke)." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Upravljanje strank" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nova stranka" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Vmesnik" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Jezikovne nastavitve" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transakcije" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Prenos" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Uvoz/Izvoz" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Poročilo" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Varnostna kopija" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Mape" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Sistemski jezik" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Izbor privzete mape z datotekami Domače banke" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Izberite privzeto mapo za varnostne kopije datotek HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Izbor privzete mape za uvoz" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Izbor privzete mape za izvoz" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Splošne možnosti" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Možnosti OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Možnosti QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Možnosti CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(le uvoz transakcij)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Ločilnik:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Poročila glavnega okna" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Največ _items:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Začetni filter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Možnosti statistike" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Razvrsti po _znesku" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Pokaži odstotni stolpec" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Pokaži _podrobnosti" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Možnosti proračuna" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Omogoči" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Privzeto:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Uporabniški vmesnik" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Jezik:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Oblika:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a skrajšano ime dneva v tednu.\n" "%A polno ime dneva v tednu. \n" "%b skrajšano ime meseca za jezik.\n" "%B polno ime meseca za jezik.\n" "%c ustrezna predstavitev datuma in časa področne nastavitve.\n" "%C število stoletja (leto deljeno s 100 in okrnjeno na celo število) kot " "decimalno število [00-99].\n" "%d dan v mesecu kot decimalno število [01,31].\n" "%D enako kot %m/%d/%y.\n" "%e dan v mesecu kot decimalno število [1,31]; pred eno števko je presledek.\n" "%j dan v letu kot decimalno število [001,366].\n" "%m mesec kot decimalno število [01,12].\n" "%p ustrezna predstavitev datuma področne nastavitve.\n" "%y leto brez stoletja kot decimalno število [00,99].\n" "%Y leto s stoletjem kot decimalnim številom." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Proračunsko leto" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Začetek:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Enote za merjenje" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Uporabi _milje za razdalje" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Uporabi _galone pri gorivu" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Vedno prikaži opomnik" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Vedno pokaži razveljavljeno" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Zaklepanje usklajeno za morebitne spremembe" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Pokaži prihodnje:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dni naprej" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Skrij potrjene" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Transakcijsko pogovorno okno" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Omogoči samodejno dokončanje _memo z" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "tekoči dnevi" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Pokaži potrditveno besedilo za 5 s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Nastavitve GTK" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Mrežne črte:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Možnosti diagramov" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Menjša pisava _legende" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Orodna vrstica:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Omogoči samodejne varnostne kopije" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Število shranjenih samodejnih varnostnih kopij:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Pogostost shranjevanja je enkrat dnevno" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Denarnice:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Varnostne kopije:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Izmenjava datotek" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Uvozi:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Izvoz:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Zagon programa" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Pokaži pozdravno okno" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Naloži zadnjo odprto datoteko" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Objavi načrtovane transakcije v čakanju" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Posodobi spletne valute" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Ponastavi vse nastavitve" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Ali res želite ponastaviti\n" "vse nastavitve privzete\n" "vrednote?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Možnosti" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Podrobnosti" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Za uveljavitev nastavitev jezika je treba\n" "program HomeBank ponovno zagnati." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Imenik varnostnih kopij se je spremenil,\n" "boste morda morali kopirati datoteko .bak na to novo mesto." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Uredi oznako" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Te oznake ni mogoče preimenovati,\n" "od '% s' na '% s',\n" "to ime že obstaja." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Združi oznako »%s«" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transakcije, dodeljene tej oznaki,\n" "bo premaknjena na spodnjo oznako." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Izbriši oznako »%s«" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Ta oznaka se uporablja.\n" "Ta oznaka bo izbrisana iz katere koli transakcije, ki jo uporablja." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Upravljaj oznake" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nova oznaka" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transakcija %s je ustvarjena." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Ali želite prekiniti interni prenos?\n" "\n" "Če nadaljujete, bo ciljna transakcija izbrisana." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Break" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Pokaži _načrtovane" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Pokaži _vse račune" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Uporabi predlogo" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Dodaj in _ohrani" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Dodaj transakcijo" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Dodaj predlogo" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Prevzemi transakcijo" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Prevzemi predlogo" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Uredi transakcijo" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Uredi predlogo" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- vrsta: d, d / m, m / d popoln datum\n" "- uporabite puščično tipko + ctrl ali shift\n" "- prazno za danes" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_Za:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Razdelitev transakcije" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Stopnja za samodejno izpolnjevanje ni na voljo" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "Rač_un:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Knjiga _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- vnesite nekaj črk za samodokončanje\n" "- vnesite novo besedilo, da ustvarite vnos" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "K_ategorija:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Stanje:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Opomnik:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Opozorilo: predznak zneska ni skladen z izbrano kategorijo!" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Urejanje več transakcij" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Vnesite kot\n" "prenos" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Izbriši vse" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Uveljavi" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Prekliči" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Znesek transakcije:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Nedodeljeno:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Vsota razdelitev:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Opozorilo: vsota delitev in vrsta transakcije se ne ujemata" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Opozorilo: vsota delitev in znesek transakcije se ne ujemata" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(ni določene vrste)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banka" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Gotovina" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Premoženje" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditna kartica" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Odgovornost" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Preverjanje" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Varčevanje" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dan" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Možno" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Pred" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Po" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Preskoči" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Čas" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Leto" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Teden" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Četrtletje" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Polletje" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Vključi" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Ne upoštevaj" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Včeraj" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Jutri" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Predhodni teden" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Ta teden" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Naslednji teden" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Zadnjih štirinajst dni" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Teh štirinajst dni" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Naslednjih štirinajst dni" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Prejšnji mesec" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Ta mesec" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Naslednji mesec" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Zadnje četrtletje" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "To četrtletje" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Naslednje četrtletje" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Prejšnje leto" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "To leto" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Naslednje leto" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Zadnjih 90 dni" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Zadnjih 60 dni" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Zadnjih 30 dni" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Zadnjih 12 mesecev" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Približno 30 dni" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Vsi datumi" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "trenutni mesec" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Naslednji mesec" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Naslednjih 30 dni" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Naslednjih 60 dni" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Naslednjih 90 dni" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Izplačila / Vplačila" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Katerakoli vrsta" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Kakršnokoli stanje" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Nepregledano" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Nepotrjeno" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Neopredeljeno" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Sistemske nastavitve" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Le ikone" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Le besedilo" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Besedilo pod ikonami" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Besedilo ob ikonah" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Vodoravno" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Navpično" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Oboje" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-y" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-y" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "y-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Prezri" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Pripni k opomniku" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Pripni k stranki" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulator" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Vejica" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Podpičje" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Presledek" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "januar" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "februar" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "marec" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "april" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "junij" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "julij" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "avgust" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "september" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "november" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "december" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Poišči ..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Ček" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Bančno nakazilo" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debetna kartica" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Pošiljanje naročila" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronsko plačilo" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Polog" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Finančni stroški" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Trajnik" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/id.po0000644000175000017500000031376714775770065010410 # Indonesian translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-11-07 13:09+0000\n" "Last-Translator: dadanhrn \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Keuangan pribadi" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Akuntasi pribadi yang mudah dan gratis untuk semua orang" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "keuangan;akuntansi;anggaran;pribadi;uang;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank adalah perangkat lunak gratis (sebagaimana seperti \"kebebasan " "berpendapat\" dan juga sebagaimana seperti \"bir gratis\") yang akan " "membantu mengelola akuntansi pribadi Anda." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Dirancang agar mudah digunakan dan dapat menganalisa keuangan pribadi Anda " "secara detail menggunakan alat penyaringan yang teruji dan serta grafis yang " "menarik." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Jika Anda mencari cara untuk mengelola akuntansi pribadi Anda secara gratis " "dan mudah digunakan maka HomeBank merupakan pilihan yang tepat." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transaksi" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transaksi, %d dipilih, rata-rata:%s,jumlah:%s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Terkunci. Klik untuk membuka." #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Tidak terkunci. Klik untuk mengunci." #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Hapus" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Apakah Anda yakin ingin mengubah status ke Tidak Ada?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Beberapa transaksi yang Anda pilih telah Direkonsilisasi." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Ubah" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Anda yakin ingin beralih status ke Direkonsiliasi?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Beralih" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Buat" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Semua transaksi" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Ada %d grup transaksi yang mirip" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Tidak ada transaksi mirip yang ditemukan !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Cek hasil transfer internal" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Tidak ditemukan inkonsistensi !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Ditemukan inkonsistensi: %d\n" "apakah Anda ingin mengulas dan memperbaiki?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Setiap jumlah transaksi akan dibagi dengan %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Konversi" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Tidak ada transaksi yang diubah" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transaksi diubah: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Hasil penugasan otomatis" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Tambah..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Limpahan" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Sunting..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Nihil" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Selesai" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Rekonsiliasi" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Tidak ada" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Ubah Beberapa..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Lihat _Bagi" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Buat template..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Buat penempatan..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Hapus..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Naik" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Turun" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Ekspor QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Ekspor CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Cetak..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "A_ccount" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Salin" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Tempel" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Tempel (today)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Ubah" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Tandai duplikat..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Cek transfer internal" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Penugasan otomatis" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Ubah ke Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Alat" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Pindahkan transaksi keatas" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Pindahkan transaksi kebawah" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Tambah transaksi baru" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Tambah" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Limpahan dari transaksi aktif" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Limpahkan" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Ubah transaksi aktif" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Ubah" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Beralih dibersihan untuk transaksi yang dipilih" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Rekonsiliasi transaksi yang dipilih" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Ubah beberapa transaksi" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Hapus transaksi terpilih" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(ditutup)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Penyegaran" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Muat ulang hasil" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro _minor" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Sudah di rekonsiliasi" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Selesai" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hari ini:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Yang akan datang:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Kembalikan perubahan yang tidak disimpan ke berkas '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Perubahan yang dibuat akan hilang permanen\n" "- Berkas akan dibuka ulang dari penyimpanan terakhir (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Kembalikan" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Apakah kamu ingin menganonimkan berkas?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Jika melanjutkan akan menganonimkan teks, \n" "seperti 'akun x', 'penerima pembayaran y', 'memo z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Menganonimkan" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Selamat datang di HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Tutup" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Buka berkas terakhir _terakhir" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Buat berkas baru" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Buka berkas yang ada" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Buka berkas _contoh" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Baca HomeBank _Manual" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Konfigurasi _preferensi" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Tampilkan jendela ini lain kali" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Anda akan membuka berkas cadangan '%s'.\n" "Apakah Anda yakin ingin melanjutkan?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Buka berkas cadangan" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Buka cadangan" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Gagal membuka '%s', berkas tidak ditemukan.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Kesalahan tidak dikenal" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Kesalahan I/O pada berkas '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Berkas '%s' bukan merupakan berkas HomeBank yang valid." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Berkas '%s' telah disimpan menggunakan vesi HomeBank yang lebih tinggi\n" "dan tidak dapat dimuat pada versi yang sekarang digunakan." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Galat berkas" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Berkas telah dimodifikasi sejak pembacaan." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Jika Anda memilih menyimpan, seluruh perubahan eksternal lainnya akan " "hilang. Tetap simpan?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Tetap S_impan" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Bersihkan" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Berkas" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Baru" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Buka..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Buka _Terkini" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Simpan" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Simpan _Sebagai..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Impor..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Ekspor sebagai QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Kembali pada" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Pulihkan cadangan" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Properti..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Keluar" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferensi..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Tampilan" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Bilah_Alat" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "Daftar _Terbawah" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro minor" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Kelola" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Dompet..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "A_kun..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Penerima..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategori..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Tagar..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Terjadwal/Template..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Penugasan..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Mata uang..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Anggaran..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Anggaran (tampilan tabel)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaksi" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Tambah..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Tampilkan..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Atur penjadwalan..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Pos dijadwalkan" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Laporan" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistik..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tren Waktu..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Saldo..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "A_nggaran" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Harga _kendaraan..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Tampilkan pesan sambutan" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Berkas statistik..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimkan..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Bantuan" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Daftar Isi" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Dapatkan Bantuan Daring..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Cek pembaharuan..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Laporkan masalah..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Terjemahkan aplikasi ini..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Tentang Program Ini" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Baru" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Buat berkas baru" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Buka" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Buka berkas" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Buka berkas yang baru dibuka" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Simpan" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Simpan berkas ini" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Akun" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Kelola akun" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Penerima" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategori" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Kelola kategori" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Anggaran" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Tampilkan transaksi akun yang dipilih" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Tambahkan transaksi" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistik" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Buka laporan statistik" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Buka laporan Tren Waktu" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Neraca" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Buka laporan Neraca" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Buka laporan anggaran" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Bantuan" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donasi" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Beri donasi untuk proyek HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Terjadwal" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Akan datang" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Ingatkan" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(salin)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "format CSV tidak sah" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Label" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Jumlah" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mil/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[BERKAS]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Tidak dapat menampilkan URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Salin ke papan klip" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Biaya" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Pendapatan" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Rekonsiliasi" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Dibersihkan" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hari ini" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Tanggal" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Label" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Hasil" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d di bawah %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Daftar" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Tampilkan hasil dalam bentuk daftar" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Garis" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Tampilkan hasil dalam bentuk grafik garis" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Rincian" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Rincian Toggle" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Muat ulang" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Cetak" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Laporan neraca" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "X _Zum" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Rentang" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Dari:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Ke:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Semua" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Balik" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Pengeluaran" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Bulan" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Laporan anggaran" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipe" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Anggaran:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Pengeluaran" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Toggle legend" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Toggle rate" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Laporan Statistik" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Tampilan dalam bentuk:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Pendapatan:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Pengeluaran" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Laporan Tren Waktu" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Meter" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Bahan bakar" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Harga" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Jarak" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Ekspor sebagai CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Laporan biaya kendaraan" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategori:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Meter:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Konsumsi:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Biaya bahan bakar:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Biaya lain-lain" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Total biaya:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(tidak ada)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Nampak" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Galat" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Tidak bisa mengubah nama Akun ini,\n" "dari '%s' ke '%s',\n" "nama ini sudah ada." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Kelola Akun" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Hapus" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Umum" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_Nomor" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Setia_p" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Batalkan" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Penerima:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Pembayaran" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Tidak ditemukan" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nama:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Berkas QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Berkas CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Seluruh berkas" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "hari" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Konfirmasi" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Format berkas salah" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Kelola Anggaran" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Neraca" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mei" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Agu" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Des" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Pendapatan" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Tidak dapat menamai ulang kategori ini.\n" "dari '%s' ke '%s',\n" "nama ini sudah terpakai." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Kelola Kategori" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Digit _pecahan" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Ekspor sebagai QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Impor dari CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Berkas HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Reset" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Tidak bisa mengubah nama penerima ini,\n" "dari '%s' ke '%s',\n" "nama ini sudah ada." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Kelola Penerima" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Antarmuka" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transfer" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Tampilkan berdasarkan _jumlah" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Tampilkan kolom _rate" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Tampilkan _rincian" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Aktifkan" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Batang alat:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_impor:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Ekspor:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Buka berkas terakhir" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Pengaturan" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Tambah transaksi" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Transaksi yg dilimpahkan" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Tanggal" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "A_kun:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Mengedit beberapa transaksi" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Tunai" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Aset" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kartu kredit" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Hari" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Tahun" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Minggu" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Kuartal" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Termasuk" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Pengecualian" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Biaya & Insentif" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Asali sistem" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Ikon saja" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Teks saja" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Teks di bawah ikon" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Teks disamping ikon" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Abaikan" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Januari" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februari" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Maret" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juni" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juli" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agustus" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Desember" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Kartu debit" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pembayaran elektronik" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/vi.po0000644000175000017500000031324514775770020010410 # Vietnamese translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2022-01-14 13:30+0000\n" "Last-Translator: Tạ Quang Khôi \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Tài chính cá nhân" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Kế toán cá nhân miễn phí, dễ dàng cho tất cả mọi người" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "tài chính;kế toán;ngân sách;cá nhân;tiền;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank là một phần mềm miễn phí (và tự do) sẽ hỗ trợ bạn quản lý kế toán " "cá nhân của chính mình." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Nó được thiết kế để dễ sử dụng và có thể phân tích chi tiết tài chính cá " "nhân của bạn bằng cách sử dụng các bộ lọc mạnh mẽ và biểu đồ đẹp mắt." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Nếu bạn đang tìm kiếm một cách hoàn toàn miễn phí và dễ dàng để quản lý kế " "toán cá nhân của mình thì HomeBank nên là phần mềm đáng để lựa chọn." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Bạn có chắc chắn muốn thay đổi trạng thái thành Không?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Bật/tắt" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Tạo" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Có %d nhóm các giao dịch tương tự nhau" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Không có giao dịch tương tự nào được tìm thấy!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Kiểm tra kết quả chuyển giao nội bộ" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Không tìm thấy mâu thuẫn!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Đã tìm thấy sự mâu thuẫn: %d\n" "bạn có muốn xem lại và chỉnh sửa?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Mỗi số tiền giao dịch sẽ được chia cho %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Chuyển đổi" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Thêm..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Kế thừa" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Sửa..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Không" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Không chọn gì" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Tạo mẫu mới..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Xuất ra CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "In..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Chỉnh sửa" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Công cụ" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Thêm một giao dịch mới" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Thêm" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Kế thừa từ các giao dịch đang hoạt động" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Kế thừa" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Chỉnh sửa giao dịch đang hoạt động" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Chỉnh sửa" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Làm mới kết quả" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hôm nay:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Tương lai:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Xin chào bạn đã đến với HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Đóng" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Mở file mẫu" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Không thể mở « %s » vì tập tin đó không tồn tại.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Lỗi nhập xuất của tập tin '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Tập tin '%s' không phù hợp với tập tin HomeBank" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Tập tin '%s' đã được lưu với phiên bản cao nhất của HomeBank, \n" "và không thể xem trên phiên bản cũ." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Lỗi tập tin" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Tập tin" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Mới" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Mở..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Lưu" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Hoàn nguyên" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Thoát" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Thiết lập..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Hiển thị" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Thanh công cụ" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Quản lý" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Tài khoản..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Người được trả tiền..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Danh mục..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Ấn định..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Ngân sách..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Giao dịch" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Thêm..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Hiện thị..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Báo cáo" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Thống kê..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Thời gian hướng tới..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Nhân sách..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Hiển thị hộp thoại chào mừng..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Trợ giúp" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Nội dung" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Báo cáo lỗi" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Dịch ứng dụng này..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Giới thiệu" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Tạo tập tin mới" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Mở tập tin" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Mở tập tin vừa dùng" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Lưu tập tin hiện tại" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Tài khoản" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Người nhận" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Danh mục" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Ngân sách" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Hiển thị những giao dịch của tài khoản đã chọn" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Mở báo cáo thống kê" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Mở báo cáo Trend Time" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Số dư" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Mở báo cáo số dư" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Mở báo cáo ngân sách" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Tương lai" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Trạng thái" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Nhãn" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Số lượng" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Chưa xác định" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[TẬP TIN]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Không thể hiển thị địa chỉ URL « %s »" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "Giao dịch được thêm vào: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Kiểm tra kết quả giao dịch dự kiến" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Tổng cộng" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Chi phí" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Thu nhập" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Tổng cộng" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Các tài khoản" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hôm nay" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- chia -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Ngày tháng" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Ghi nhớ" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Nhãn" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Kết quả" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d dưới %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Danh sách" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Hiển thị kết quả kiểu danh sách" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Hàng" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Hiển thị kết quả theo hàng" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Chi tiết" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Đảo ngược chi tiết" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Làm mới" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Báo cáo số dư" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Phóng lớn X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Khoảng" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Từ:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "Đế_n:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Tất cả" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Đảo ngược" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Tiêu xài" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Tháng" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Không có tài khoản được định nghĩa là một phần của ngân sách" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Bạn nên gộp một số tài khoản từ hộp thoại tài khoản." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Báo cáo ngân sách" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Loại:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Ngân sách:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Chi tiêu" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Đảo ngược chú thích" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Đảo ngược tỷ giá" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Báo cáo thống kê" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Hiển thị theo:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Thu nhập:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Chi phí" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Báo cáo theo khuynh hướng" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Tích lũy" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Mẩu nhỏ theo thời gian" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Mét" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Nhiên liệu" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Giá" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Khoảng cách" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Xuất ra thành CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Báo cáo chi phí xe cộ" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Hạng mục:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Đo lường:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Tiêu thụ:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Chi phí nhiên liệu:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Chi phí khác:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Tổng chi phí:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(không có)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Xem được" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Lỗi" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Không thể đổi tên tài khoản này,\n" "từ '%s' thành '%s',\n" "vì tên này đã có rồi." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Quản lý tài khoản" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Chung" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Số:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "không bao gồm từ báo cáo" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "&Mỗi:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Phân biệt chữ hoa/thường" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Người được trả:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Thanh_toán:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Quản lý phân công" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Không tìm thấy" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Tập tin được cài đặt sẵn:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Tên:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Tập tin dạng QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Tập tin dạng OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Tập tin CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Tất cả các tập tin" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "ngày" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Sự sắp xếp phù hợp được thực hiện theo thứ tự: theo tài khoản, số tiền và " "ngày tháng.\n" "Một ngày gia hạn bằng 0 ngày nghĩa là một sự phù hợp chính xác." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Sự chứng thực" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "File lỗi" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Quản lý ngân sách" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Số dư:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "Áp đặt theo dõi loại này" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Tháng 1" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Tháng 2" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Tháng 3" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Tháng 4" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Tháng Năm" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Tháng 6" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Tháng 7" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Tháng 8" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Tháng 10" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Tháng 11" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Tháng 12" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Thu nhập" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Không thể đổi tên danh mục này,\n" "từ '%s' thành '%s',\n" "vì tên này đã có rồi." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Quản lý danh mục" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Phân số" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Xuất ra dạng QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Nhập vào từ tập tin CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Tập tin HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Không thể đổi tên người được trả tiền,\n" "từ '%s' thành '%s',\n" "vì tên này đã có rồi." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Quản lý người được trả tiền" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Giao tiếp" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Đổi" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Trình bày theo _số lượng" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Trình bày cột giá" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Trình bày chi tiết" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Bật" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Mẫu có sẵn\"" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Thanh công cụ:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Nhập" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Xuất ra:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Nạp tập tin đã mở gần đây" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Tuỳ chọn" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Thông tin" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Thêm giao dịch" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Giao dịch kế thừa" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Ngày:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "Tài khoản:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Ngân hàng" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Tiền mặt" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Tài sản" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Thẻ tín dụng" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Trách nhiệm" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Ngày" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Năm" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Tuần" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Quý" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Bao gồm" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Loại trừ" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Thu & Chi" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Hệ thống mặc định" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Chỉ có biểu tượng" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Chỉ có chữ" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Chữ dưới biểu tượng" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Chữ nằm kế hình" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Bỏ qua" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Tháng 1" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Tháng 2" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Tháng 3" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Tháng 4" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Tháng 6" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Tháng 7" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Tháng 8" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Tháng 9" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Tháng 10" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Tháng 11" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Tháng 12" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Tháng 9" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Kiểm tra" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Thẻ ghi nợ" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Lệnh" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Tiền điện" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Đặt cọc" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Phí FI" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/cs.po0000644000175000017500000033772614775770013010413 # translation of cs.po to Czech # translation of cs.po to # Czech translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # # FIRST AUTHOR , 2007. # Jiří Zachař , 2007. msgid "" msgstr "" "Project-Id-Version: cs\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-08-28 22:00+0000\n" "Last-Translator: Martin Fiala \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: cs\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Osobní finance" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Jednoduché, osobní účetnictví zdarma pro každého" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finance,účetnictví,rozpočet,osobní,peníze" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank je svobodný software (ve smyslu jak svobody slova, tak zdarma) " "který vám pomůže spravovat vaše osobní účetnictví." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Je navržen pro snadnou, podrobnou analýzu osobních financí pomocí výkonných " "filtračních nástrojů a přehledných grafů." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Pokud hledáte způsob, jak zcela zdarma a snadno spravovat své osobní " "účetnictví, potom by pro vás aplikace HomeBank mohla být volbou." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transakcí" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transakcí, %d vybráno, průměr: %s, součet: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Smazat" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Opravdu chcete změnit stav na Žádný?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Některé transakce ve vašem výběru už jsou ve stavu Schváleno." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Změnit" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Opravdu přepnout do stavu Schváleno?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "Přepnou_t" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Vytvořit" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d vytvořeno s předvyplněnou ikonou" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Vytvořit úkol" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Všechny transakce" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Je zde %d skupina podobných transakcí" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Nenalezeny žádné podobné transakce!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Zkontrolvat výsledek interního převodu" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Nebyla nalezena žádná neshoda!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Byla nalezena neshoda: %d\n" "chcete si ji prohlédnout?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Částka každé transakce bude vydělena %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Převést" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Žádná transakce se nezměnila." #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transakce změněna: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Výsledek automatického přiřazení" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Přidat…" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Odvodit..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Upravit…" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Nic" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Zaplaceno" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Schváleno" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Stav" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Žádný" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Vícenásobná úprava…" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Vytvořit šablonu..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Vytvořit přiřazení..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Smazat…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exportovat QIF…" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportovat CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Tisk…" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "Ú_čet" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopírovat" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Vložit" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Vložit (dnes)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Upravit" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Označit duplikáty..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Zkontrolovat interní převod" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Automatické přiřazení" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Převést na Euro…" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Nástroje" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Posunout transakci výš" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Posunout transakci níž" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Přidat novou transakci" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Přidat" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Vytvořit podle stávající transakce" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Odvodit" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Upravit aktivní transakci" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Upravit" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Změnit na \"Zaplaceno\" pro vybrané transakce" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Přepnout vybrané transakce do stavu Schváleno." #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Upravit více transakcí" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Smazat vybraný převod(y)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Odsouhlasené změny jsou" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(uzavřeno)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s – HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Zobrazit" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Obnovit" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Mezera v datu:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Přepnout zobrazení %d dní dopředu" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Upravit filtr" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Načíst výsledky znovu" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro drobné" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Schváleno:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Zaplaceno:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Dnes:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Budoucí:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Zahodit neuložené změny v souboru '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Provedené změny souboru nebudou uloženy.\n" "- Soubor bude obnoven z posledního uloženého stavu (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Vrátit" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Opravdu chcete soubor anonymizovat?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Pokračováním bude anonymizován jakýkoliv text, \n" "jako „účet x“, “příjemce y“, „poznámka z“, …" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymizovat" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Vítejte v HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Zavřít" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Otevřít _naposledy otevřený soubor" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Vytvořit _nový soubor" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Otevřít existující soubor" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Otevřít _ukázkový soubor" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Přečíst si HomeBank _Manuál" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Nastavit _předvolby" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Zobrazit toto okno i příště" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Právě se chystáte otevřít zálohu '%s'.\n" "\n" "Chcete ji opravdu otevřít?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Otevřít zálohu?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_otevřít zálohu" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Nelze otevřít '%s', soubor neexistuje.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Neznámá chyba" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O chyba pro soubor '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Soubor „%s“ není platným souborem HomeBank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Soubor „%s“ byl uložen novější verzí programu HomeBank\n" "a nelze ho otevřít v této verzi." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Chyba souboru" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Soubor byl upraven od jeho posledního čtení." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Pokud jej uložíte, všechny externí změny mohou být ztraceny. Přesto uložit?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "P_řesto uložit" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Vymazat" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Soubor" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nový" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Otevřít…" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Otevřít _Nedávné" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Uložit" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Uložit _Jako" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importovat…" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exportovat jako QIF…" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Vrátit" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Obnovit zálohu" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Vlastnosti…" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Ukončit" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Předvolby…" #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Zobrazit" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Panel nástrojů" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro drobné" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Spravovat" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Peněženka..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Úč_ty…" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Příjemci…" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategorie…" #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Štítky..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Naplánované/šablona…" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Přiřazení…" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Měny…" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Rozpočet…" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Rozpočet (tabulkové zobrazení)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transakce" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Přidat…" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Zobrazit…" #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Nastavit naplánované…" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Odeslat naplánované" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Sestavy" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistika…" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trend v čase…" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Zůstatek..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Ro_zpočet…" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Náklady na _vozidlo…" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Zobrazit uvítací dialog…" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Statistiky souboru…" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymizovat…" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Nápověda" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Obsah" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Získat online nápovědu…" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Zjistit dostupnost případných aktualizací…" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Poznámky k vydání" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Nahlásit problém…" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Překládat texty této aplikace…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "O _aplikaci" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nový" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Vytvořit nový soubor" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Otevřít" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Otevřít soubor" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Otevřít nedávno používaný soubor" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Uložit" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Uložit právě otevřený soubor" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Účet" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Spravovat účty" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Příjemce" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Spravovat příjemce" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategorie" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Spravovat kategorie" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Naplánované/Šablony" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Spravovat transakce naplánovaných/šablon" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Rozpočet" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Spravovat rozpočet" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Přiřazení" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Spravovat automatické přiřazení" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Zobrazit transakce zvoleného účtu" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Přidat transakce" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistiky" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Otevřít statistiky" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Otevřít výkaz trend v čase" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Bilance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Otevřít přehled zůstatků" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Otevřít zprávu o rozpočtu" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Náklady na vozidlo" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Otevřít přehled nákladů na vozidlo" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Nápověda" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Podpořit" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Podpořit projekt HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Naplánováno" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Budoucí" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Připomenout" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Dnes" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(žádná poznámka)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(žádná kategorie)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "neplatný CSV formát" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Stav" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Štítek" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Částka" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Neznámý" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f L" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mil/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(žádný příjemce)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(žádná skupina)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[SOUBOR]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Chyba prohlížeče." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Nedaří se zobrazit URL adresu „%s“" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(žádná instituce)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Vaše účty" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Zobrazit vše" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Rozbalit vše" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Sbalit vše" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Žádná transakce pro přidání" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "přidána transakce: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Zkontrolujte výsledek naplánovaných transakcí" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Zapnuto" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Vypnuto" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "nejpozdější možné datum zaúčtování" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Celkem" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Přeskočit" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Upravit a O_deslat" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Odeslat" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Jiné" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Výdaje" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Příjmy" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "importovaný účet" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Celkový součet" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Účty" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Schváleno" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Zaplaceno" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Dnes" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- rozděleno -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Poznámka" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Štítky" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Výsledek" #: ../src/list-report.c:957 msgid "Average" msgstr "Průměr" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Později" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Příští datum" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d pod %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Seznam" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Zobrazit výsledky jako seznam" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Čárový" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Zobrazit výsledky jako čárový graf" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Podrobnosti" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Zobrazit/skrýt podrobnosti" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Načíst znovu" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Tisk" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Přehled zůstatku" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Zobrazení" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Ukázat prázdný řádek" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Přiblížení (osa X):" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtr" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Rozsah:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Od:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Do:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Vybrat:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Vše" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invertovat" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Utraceno" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Měsíc" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " přes" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " zbývá" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " pod" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Zobrazit výsledky jako sloupcový graf" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "Výsledek do sch_ránky" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Výsledek do CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Podrobnosti do schránky" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Podrobnosti do CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Není zvolen žádný účet coby součást rozpočtu." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Z dialogu účtů byste měli zahrnout nějaké účty." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Zpráva o rozpočtu" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Mód:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Typ:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Pouze mimo rozpočet" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Výsledek:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Rozpočet:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Utraceno:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s od %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Sloupec" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Zobrazit výsledky jako sloupec" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Donut" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Zobrazit výsledky jako kruhový graf" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Zobrazit/skrýt popisek" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Zobrazit/skrýt poměr" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistiky" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "Zobrazit podle:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Seřadit podle _množství" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Celkem:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Příjem:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Výdaje:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Průměr: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Zpráva o trendu v čase" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Shlukovat" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Časový úsek" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Metr" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Palivo" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Cena" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Vzdálenost" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exportovat" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportovat jako CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Přehled nákladů na vozidlo" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategorie:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Počítadlo kilometrů:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Spotřeba:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Náklady na palivo:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Ostatní náklady:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Celková cena:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nic)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Viditelný" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Název účtu" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Chyba" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Účet nelze přidat pod názvem „%s“,\n" "je už používán pro jiný." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Účet „%s“ nelze smazat" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Opravdu chcete nadobro smazat „%s“?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Pokud účet smažete, bude nadobro ztracen." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Účet „%s“ nelze přejmenovat\n" "na „%s“, protože takto už je\n" "nazvaný jiný." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Správa účtů" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Smazat" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Přejmenovat" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Obecné" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Skupina:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institut" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Č_íslo:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Počáteční_zůstatek:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Měna:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "tento účet byl _uzavřen" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Poznámky:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatizace" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Výchozí _Šablona:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Vynechání z výkazu" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "vynechat z přehledu _účtu" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "vynechat z _rozpočtu" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "vynechat ze všech _sestav" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Různé" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Aktuální počet šeků" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Šeková knížka _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Šeková knížka _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limity zůstatku" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "Přečerpání na:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Pokud naplánovanou transakci nebo šablonu smažete, nebude to možné vzít zpět." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Příští _datum:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Každý:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Více možností" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Konec týdne:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Ukončit po:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "příspěvky" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Spravovat naplánované transakce / šablony transakcí" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Šablona" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Naplánovat" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Hledat" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Poznámky" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Storno" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Podmínka" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Hledat:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_V:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Rozlišovat malá/VELKÁ pí_smena" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Příjemce platby:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Přepsat" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Platba:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Štítky:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Pokud přiřazení smažete, nepůjde to vrátit zpět." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Spravovat přiřazení" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Žádné změny nebudou provedeny, dokud nezmáčknete \"Použít\"\n" "na konci tohoto asistenta." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Název:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Základ:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Nastavit další měny" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "Přid_at" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nenalezeno" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank může předvyplnit kategorie pro váš jazyk,\n" "pokud je CSV soubor dostupný a poskytnutý komunitou." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Nastavit kategorie pro můj jazyk" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Soubor s přednastaveními:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Vytvořit první účet" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Název:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Začít nastavení souboru" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Možnosti souboru" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Vybrat měny" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Vybrat kategorie" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Vytvořit účet" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Dokončit nastavení souboru" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Platný" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Název" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Otevřít" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Podporované soubory" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF soubory" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX soubory" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV soubory" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Všechny soubory" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nový globální účet" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nový účet" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "přeskočeno" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d z %d transakcí" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transakce, %d vybrané" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Některá data nemohou být převedena. Aby bylo možné pokračovat, zkuste změnit " "jejich pořadí." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "_Importovat %s do:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "tento soubor" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "tento účet" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Název: %s\n" "Číslo: %s\n" "Soubor: %s\n" "Kódování: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importovat transakce z banky nebo kreditní karty" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Tento pomocník vás provede procesem importu jednoho nebo více\n" "stažených výpisů z vaší banky nebo kreditní karty, v následujících formátech:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Doporučeno: .OFX nebo .QFX\n" "(Někdy také nazýváno jako Money™ nebo Quicken™)\n" "Podporováno: .QIF\n" "(Běžný Quicken™ soubor)\n" "Pouze pro pokročilé uživatele: .CSV\n" "(formát je specifický pro HomeBank, viz dokumentace)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Dokud na konci tohoto průvodce nekliknete na „Použít“, nebudou provedeny " "žádné změny." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Znovu už toto nezobrazovat" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Identifikace cílového účtu podle názvu nebo čísla se nezdařila." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Pořadí v datu:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importovat poznámky" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "Prohodit poznámky a příjemce" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Název:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX pozná_mka:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Přepnout množství" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Podobná transakce v cílovém účtu (možná duplicita)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dnů" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Párování je prováděno v pořadí: podle účtu, částky a data.\n" "Tolerance data 0 dnů znamená přesnou shodu" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Spustit automatizaci" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Spustit automatické _přiřazovací pravidla" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Vítejte" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Vybrat soubor(y)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Import" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Potvrzení" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Chyba formátu souboru" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Je třeba, aby CSV soubor obsahoval přesná čísla řádků,\n" "oddělovaných středníky. Podrobnosti naleznete v Nápovědě." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Opravdu chcete položku smazat?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Pokud budete pokračovat, všechny částky budou nastaveny na 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Vyčistit" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Rozpočet na %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Spravovat rozpočet" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Zůstatek:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "Vyčistit vstup" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "je jiná každý měsíc" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Možnosti" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Vynutit sledování této kategorie" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Led" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Úno" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Bře" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Dub" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "květen" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Čer" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Čec" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Srp" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Září" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Říj" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Lis" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Pro" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Souhrn" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Součty" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Přidat kategorii" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Použít" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Název kategorie" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Tato kategorie je použitá.\n" "Transakce, které využívají tuto kategorii budou nastaveny na (žádná " "kategorie)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Sloučit kategorie" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Vymazat kategorii „%s“" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Přidat kategorii" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Smazat kategorii" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Sloučit" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Smazat vstup" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# konf." #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Smazat nepoužité kategorie" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "Opravdu chcete nepoužívané kategorie navždy smazat?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Příjem" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kategorii „%s“ nelze přejmenovat\n" "na „%s“, protože tento název\n" "už je používán pro jinou." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Sloučit s kategorií „%s“" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transakce přiřazené do této kategorie\n" "budou přesunuty do té níže vybrané." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Zahrnout _podkategorie" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Spravovat kategorie" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Přesunout/Sloučit" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nová kategorie" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nová podkategorie" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Základní měna" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Kurz" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Naposledy změněno" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Upravit měnu" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Měna" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formát" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Přizpůsobit" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Zobrazovat před částkou" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Desetinná značka:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "D_esetinná místa:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Oddělovač tisíců:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Zvolte základní měnu" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Zvolte měnu" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO kód" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Přidat vlastní _měnu" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Chyba online aktualizace" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Pokud měnu smažete, bude trvale odstraněna." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Změnit základní měnu" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Pokud budete pokračovat, kurzy ostatních měn budou\n" "nastaveny na nulu. Nezapomeňte je aktualizovat" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Měny" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Aktualizace online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Nastavit jako základ" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Statistika souborů" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transakce" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Přejít na novější verzi" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Zvolit základní měnu" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Od verze 5.1, HomeBank umí pracovat s několika měnami\n" "pokud níže uvedená měna není správně, změňte ji:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Měna:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportovat jako QIF data" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importovat z CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Otevřít HomeBank soubor" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Otevřít HomeBank záložní soubor" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Uložit HomeBank soubor jako" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Soubory HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Záložní soubor" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Všechny zálohy" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Před ukončením, uložit změny do souboru?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Bez uložení budou změny navždy ztraceny.\n" "Počet změn: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Zavřít _bez uložení" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exportovat jako _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Složka:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Vyberte složku" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Název souboru:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exportovat do PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportovat do _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank nalezlo některé transakce, které mohou být přiřazenými transakcemi " "pro interní převod." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "Pozná_mka:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Reset" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Vlastnosti souboru" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Plánované transakce" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Smazat nepoužité příjemce" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Opravdu chcete natrvalo\n" "smazat nepoužité příjemce?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "P_latba:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Příjemce „%s“ nelze přejmenovat\n" "na „%s“, protože toto pojmenování\n" "už je použito pro nějakého jiného." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Sloučit s příjemcem „%s“" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transakce přiřazené tomuto příjemci,\n" "budou přesunuty na toho níže vybraného." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Smazat příjemce „%s“" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Tento příjemce je používán.\n" "Jakékoli transakce používající tohoto příjemce budou nastaveny na (žádný " "příjemce)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Spravovat příjemce" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nový příjemce" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Uživatelské rozhraní" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Místní a jazyková nastavení" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transakce" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Převod" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Import/Export" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Sestava" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Zálohovat" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Složky" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Systémový jazyk" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Výběr standardní složky pro soubory HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Výběr standardní složky pro import" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Výběr standardní složky pro export" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Možnosti OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Možnosti QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Možnosti CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Oddělovač:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Výkazy v hlavním okně" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Výchozí filtr" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Nastavení statistik" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Zobr_azit podle částky" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Zob_razit sloupec kurz" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Zobrazit po_drobnosti" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Nastavení rozpočtu" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "Z_apnout" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Předvolba:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Uživatelské rozhraní" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Jazyk:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formát:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a zkrácený název dne v týdnu, dle místních a jazykových nastavení.\n" "%A celý název dne v týdnu, dle, dle místních a jazykových nastavení. \n" "%b zkrácený název měsíce, dle místních a jazykových nastavení. \n" "%B celý název měsíce, dle místních a jazykových nastavení. \n" "%c představuje datum a čas, příslušně dle místních a jazykových nastavení. \n" "%C číslovka století (letopočet dělený 100 a zkrácený na celé číslo) jako " "desítkové číslo [00-99]. \n" "%d den v měsíci jako desítkové číslo [01-31]. \n" "%D stejné jako %m/%d/%y. \n" "%e den v měsíci jako desítkové číslo [1-31], kde osamocené číslici předchází " "mezera. \n" "%j den v roce jako desítkové číslo [001-366]. \n" "%m měsíc jako desítkové číslo [01-12]. \n" "%p představuje datum, příslušně dle místních a jazykových nastavení. \n" "%y rok bez století, jako desítkové číslo [00-99]. \n" "%Y rok se stoletím, jako desítkové číslo." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Daňový rok" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Začíná:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Měrné jednotky" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Vzdálenost uvádět v _mílích" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Objem paliva uvádět v _galonech" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "Zobrazit budoucno_st:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dní dopředu" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Neukazovat schválené" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Dialog transakce" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "dny" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Nastavení Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Čáry mřížky:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Možnosti grafů" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Nástrojová lišta:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Zapnout automatické zálohy" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "Počet záloh, které uchovávat:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Frekvence zálohování je jednou denně" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Peněženky:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Zálohy" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Soubory pro výměnu" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Import:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Export:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Spuštění programu" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Zobrazovat spouštěcí obrazovku" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Načíst minule otevřený soubor" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Odeslat neuskutečněné naplánované transakce" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Aktualizovat měny online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Resetovat všechna nastavení" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Opravdu chcete resetovat\n" "všechna nastavení do výchozích\n" "hodnot?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Předvolby" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Aby se změna jazyka projevila,\n" "bude třeba HomeBank restartovat." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nelze přejmenovat tento Štítek,\n" "z '%s' na '%s',\n" "toto jméno již existuje." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Sloučit štítek '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Smazat štítek '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Spravovat štítky" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nový štítek" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Zobrazit _naplánované" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Zobr_azit všechny účty" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Použít šablonu" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Přidat a _Ponechat" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Přidat transakci" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Přidat šablonu" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Odvozená transakce" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Upravit transakci" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Upravit šablonu" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Rozdělit částku" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "Úče_t:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Stav:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "Po_známka:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Upozornění: částka a znaménko kategorie (+ nebo -) nesouhlasí" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Hromadná úprava transakcí" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Smazat vše" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Použít" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Storno" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Částka:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Nepřiřazené:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Součet položek:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(žádný typ)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banka" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Hotovost" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Aktiva" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditní karta" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Pasiva" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Ověřování" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Úspory" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Den" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Možné" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Před" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Po" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Čas" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Rok" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Týden" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Čtvrtletí" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Půl roku" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Zahrnout" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Vynechat" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Tento měsíc" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Příští měsíc" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Dalších 30 dní" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Dalších 60 dní" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Dalších 90 dní" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Příjmy a výdaje" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Jakýkoli" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Jakýkoli" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Neschváleno" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Nevyrovnaný" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Bez kategorie" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Výchozí ze systému" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Pouze ikony" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Pouze text" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text pod ikonami" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text vedle ikon" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Vodorovně" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Svisle" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "V obou směrech" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-r" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-r" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "r-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorovat" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Připojit k poznámce" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Připojit k příjemci" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Karta" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Čárka" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Středník" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Mezera" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "leden" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "únor" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "březen" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "duben" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "červen" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "červenec" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "srpen" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "září" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "říjen" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "listopad" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "prosinec" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Zář" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Hledat…" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Šek" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Bankovní převod" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debetní karta" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Trvalý příkaz" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronická platba" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Vklad" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Bankovní poplatek" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Inkaso" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/en_CA.po0000644000175000017500000030717514775770061010751 # English (Canada) translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-05-06 21:08+0000\n" "Last-Translator: AyesC \n" "Language-Team: English (Canada) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Personal finance" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Free, easy, personal accounting for everyone" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finance;accounting;budget;personal;money;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank is free software (as in \"free speech\" and also as in \"free " "beer\") that will help manage your personal accounting." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "It is designed to be easy to use, and able to analyse your personal finances " "in detail with powerful filtering tools and beautiful graphs." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be your software of choice." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transactions" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Locked. Click to unlock" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Unlocked. Click to lock" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Life Energy" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Earn by hour' is not set into the current Wallet." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Are you sure you want to delete the %d selected transaction?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "If you delete a transaction, it will be permanently lost." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Delete" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Are you sure you want to change the status to None?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Some transaction in your selection are already Reconciled." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Change" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Are you sure you want to change the status to Cleared?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "No similar transaction was found !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Check internal transfer result." #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "No inconsistency found!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "No transaction changed" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Add..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Inherit..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Edit..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "None" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Export CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Edit" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Tools" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Add a new transaction" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Add" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Inherit from the active transaction" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Inherit" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Edit the active transaction" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Edit" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Refresh results" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Today:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Future:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Welcome to HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Close" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Open the _example file" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Unable to open '%s', the file does not exist.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "File error" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_File" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_New" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Open..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Save" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Revert" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Quit" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferences..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_View" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Toolbar" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Manage" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Acc_ounts..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Payees..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categories..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Assignments..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transactions" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Add..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Show..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Reports" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistics..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trend Time..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Show welcome dialog..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Help" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Contents" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Report a Problem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Translate this Application..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_About" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Open a file" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Open a recently used file" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Account" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Payee" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Category" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Shows selected account transactions" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Open the Statistics Report" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Open the Trend Time report" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Open the Budget Report" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Future" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Tag" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Amount" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FILE]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Could not display the URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Expense" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Income" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Today" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Date" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Tags" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Result" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d under %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "List" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "View results as a list" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Line" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "View results as lines" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detail" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Toggle detail" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Refresh" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Range:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_From:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_To:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "All" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invert" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Spent" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Month" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budget report" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Type:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Spent:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Toggle legend" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Toggle rate" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistics Report" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_View by:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Income:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Expense:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trend Time Report" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Cumulate" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Time slice" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Metre" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Fuel" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Price" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Export as CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Category:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Metre:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumption:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Fuel cost:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Other cost:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Total cost:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(none)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Error" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Manage Accounts" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "General" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umber:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Starting _balance:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Ever_y:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Case _sensitive" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Payee:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Pay_ment:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Manage Assignments" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Not found" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Preset file:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Name:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF files" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX files" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV files" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "All files" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "days" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "The match is done in this order: account, amount and date.\n" "A date tolerance of 0 day means an exact match" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "File format error" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Manage Budget" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balance:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "May" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Income" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Manage Categories" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Frac digits:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Export as QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Import from CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank files" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Manage Payees" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transfer" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Show by _amount" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Show _rate column" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Show _details" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Enable" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Preset:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Toolbar:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Import:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Export:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Load last opened file" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferences" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Add transaction" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Inherit transaction" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Date:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "A_ccount:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Cash" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Asset" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Credit card" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Liability" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Day" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Year" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Week" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Quarter" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Include" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Exclude" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Exp. & Inc." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "System defaults" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Icons only" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Text only" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text under icons" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text beside icons" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignore" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "January" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "February" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "March" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "June" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "July" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "August" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "October" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "December" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debit card" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Standing order" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Electronic payment" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI fee" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/sr.po0000644000175000017500000040264314775770102010420 # Serbian translation for homebank # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the homebank package. # Мирослав Николић , 2011—2017, 2020. msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-09-15 00:22+0000\n" "Last-Translator: Марко М. Костић \n" "Language-Team: српски \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: sr\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "Кућна Банка" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Личне финансије" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Бесплатно, лако, лично рачуноводство за свакога" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "финансије;обрачун;буџет;лично;новац;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "Кућна Банка је слободан софтвер (слободан за преузимање, мењање и " "расподељивање, тј. са доступним изворним кȏдом) који ће вам помоћи при " "вођењу вашег личног рачуноводства." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Осмишљен је да буде лак за коришћење и да може проучити ваше личне финансије " "детаљно користећи моћне алате за издвајање и приказивање прелепих графика." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Ако тражите потпуно бесплатно и једноставно решење за рад са вашим личним " "финансијама онда би Кућна Банка требала бити најбољи избор." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d трансакција" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "Трансакција – %d, одабраних – %d, просек: %s, укупно: %s (%s – %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Закључано. Кликните за откључавање" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Откључано. Кликните за закључавање" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "О_бриши" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Да ли сигурно желите да промените стање у „Ништа“?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Неке трансакције у вашем избору су већ измирене." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Промени" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Да ли сигурно желите да измените стање „Измирено“?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Промени приказ" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Направи" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Направи шаблон" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Направи задатак" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Све трансакције" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Постоји група %d са сличним трансакцијама" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Ниједна слична трансакција није нађена !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Проверите резултат унутрашњег преноса" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Нисам нашао недоследност !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Нашао сам недоследност: %d\n" "да ли желите да прегледате и поправите?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Сваки износ трансакције биће подељен са %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Претвори" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Нема измењених трансакција" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "измењених трансакција: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Резултат аутоматске доделе" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Додај..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Наследи..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Уреди..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ништа" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Очишћено" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Измирено" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Стање" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Ништа" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Вишес_труко уређивање..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Прикажи _поделу" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Копирај сирови износ" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Направи шаблон..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Направи доделу..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Обриши..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Горе" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Доле" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Извези КуИФ..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Извези ЦСВ..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Штампај..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Отвори веб сајт" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Налог" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Умножи" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Убаци" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Убаци (данас)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Уреди" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Направи дупликат..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Проверите унутрашњи пренос" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Самододељивања" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Претвори у евро..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Алати" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Преместите трансакцију горе" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Преместите трансакцију доле" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Додајте нову трансакцију" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Додај" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Пренесите из активне трансакције" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Пренеси" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Уредите активну трансакцију" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Уреди" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Промените приказ очишћеног за изабрану трансакцију(е)" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Промените приказ измиреног за изабрану трансакцију(е)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Уредите вишеструку трансакцију" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Обришите изабрану трансакцију(е)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Измирене промене су" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(затворене)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s – Кућна Банка" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Прикажи" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Освежи" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "_Јаз датума:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Промени стање приказа %d дана унапред" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Уредите филтер" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Освежите резултате" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Евро _споредна" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Измирене:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Очишћене:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Данас:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Будуће:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Да повратим несачуване измене у датотеку „%s“?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "— Измене учињене у датотеци биће трајно изгубљене\n" "— Датотека ће бити поново учитана из последњег чувања (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Поврати" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Да ли сигурно желите да анонимизирате датотеку?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Ако наставите тада ће се анонимизирати сав текст, \n" "нпр. „налог ш“, „поверилац ђ“, „белешке ч“ ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Анонимизирај" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Добро дошли у Кућну Банку" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Затвори" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Да отворите _последњу отворену датотеку" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Да _направите нову датотеку" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "Да отворите _постојећу датотеку" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Да отворите датотеку _примера" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Да прочитате _упутство за Кућну Банку" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Да подесите _поставке" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Прикажи овај прозор следећи пут" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Отворићете датотеку резерве „%s“.\n" "\n" "Да ли сигурно желите да урадите то?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Да отворим датотеку резерве?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Отвори резерву" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Не могу да отворим „%s“, датотека не постоји.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Непозната грешка" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "У/И грешка за датотеку „%s“." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Датотека „%s“ није исправна датотека Кућне Банке." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Датотека „%s“ је сачувана новијим издањем Кућне Банке\n" "и не може бити учитана текућим издањем." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Грешка датотеке" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Датотека је измењена након читања." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Ако је сачувате, све спољне измене могу бити изгубљене. Да је ипак сачувам?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Ип_ак сачувај" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Очисти" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Датотека" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Ново" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Отвори..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Отвори ско_рашње" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Сачувај" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Сачувај _као..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Увези..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Извези као КуИФ..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Врати" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Врати резерву" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Својства..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Изађи" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Поставке..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Преглед" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "Трака _алата" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "_Општи графикон" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Временск_и графикон" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Доњи спискови" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Евро споредни" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "У_прављање" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Новчаник…" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Налози..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Повериoци..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "_Категорије..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Ознаке..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Заказано/Шаблон..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Додељивања..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Валуте..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Буџет..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Буџет (табела)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Трансакције" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Додај..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Прикажи..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Подеси заказивача..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Објави заказано" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Извештаји" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Статистика..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Временско очекивање..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Биланс..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "_Буџет..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Издатак возила..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Прикажи прозорче добродошлице..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Статистика датотеке..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Анонимизирај..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "По_моћ" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Садржај" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Нађите помоћ на мрежи..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Потражи ажурирања..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Белешке о издању" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Пријавите проблем..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Преведите овај програм..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_О програму" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Ново" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Направите нову датотеку" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Отвори" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Отворите датотеку" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Отворите недавно коришћену датотеку" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Сачувај" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Сачувајте текућу датотеку" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Налог" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Управљајте налозима" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Поверилац" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Управљајте повериоцима" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Категорија" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Управљајте категоријама" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Заказано/Шаблон" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Управљајте трансакцијама заказаног/шаблона" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Буџет" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Управљајте буџетом" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Додељивање" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Управљајте аутоматским додељивањима" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Прикажите трансакције изабраног налога" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Додајте трансакције" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Статистика" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Отворите статистички извештај" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Временско очекивање" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Отворите извештај временског очекивања" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Биланс" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Отворите извештај биланса" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Отворите извештај буџета" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Издатак возила" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Отворите извештај трошкова возила" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Помоћ" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Донирајте" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Донирајте пројекту Кућне Банке" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Заказано" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Будуће" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Подсећање" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Данас" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(без напомена)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(копија)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(без категорије)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "неисправан ЦСВ формат" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Врста" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Стање" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Ознака" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Плаћање" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Износ" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Текст" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Непознато" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(нема поверилаца)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(нема групе)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(без ознаке)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-кв.%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ДАТОТЕКА]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Грешка разгледача." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Не могу да прикажем адресу „%s“" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(нема институције)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Ваши налози" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Копирај у оставу" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Групиши по" #: ../src/hub-account.c:595 msgid "type" msgstr "врста" #: ../src/hub-account.c:596 msgid "group" msgstr "група" #: ../src/hub-account.c:597 msgid "institution" msgstr "институција" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Прикажи све" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Раширите све" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Скупите све" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "збир: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Нема трансакције за додавање" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "додата трансакција: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Резултат провере заказаних трансакција" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Укљ." #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Искљ." #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "крајњи датум слања је" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Укупно" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Прескочи" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Уреди и _објави" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Објави" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Највећих %d расхода / категорија" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Највећих %d расхода / платилац" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Највећих %d расхода / налог" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Стање на рачуну" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Друго" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Графикон укупног" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Расход" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Приход" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Опште стање" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Временски графикон" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "увезени налог" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Целокупни износ" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "последње измирење" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Налози" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Измирено" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Очишћено" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Данас" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "— подели —" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "– ово треба категорију –" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Датум" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Белешке" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Ознаке" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Поклопи" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Резултат" #: ../src/list-report.c:957 msgid "Average" msgstr "Просек" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Касни" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Још увек" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Следећи датум" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Стање по %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d испод %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Списак" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Прикажите резултате у облику списка" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Траке" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Прикажите резултате у тракама" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Детаљи" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Промените приказ детаља" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Освежи" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Штампај" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Извештај биланса" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Приказ" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Интер_вал:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Прикажи празну линију" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "Х _увећање:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Филтер" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Опсег:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Од:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_До:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Изабери:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Све" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Окрени" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Потрошња" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Месец" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Буџет по категорији" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Буџет по месецу" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " преко" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " преостало" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " испод" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Спремник" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Прикажите резултате као на хрпи" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Резултат у оставу" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Резултат у ЦСВ" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "Поје_диности у оставу" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "Поје_диности у ЦСВ" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Ниједан налог није дефинисан да би био део буџета." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Можете да укључите неке налоге из прозорчета налога." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Извештај о буџету" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Режим:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Врста:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Само ван буџета" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Резултат:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Буџет:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Потрошња:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s по %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Превише колона за приказивање" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Изаберите дужи период и / или скупите опсег датума" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Колона" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Прикажите резултате у облику усправних трака" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Крофна" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Прикажите резултате у облику кружног графикона" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Прикажи резултате као стек" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "100% стек" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Прикажи резултате као 100% стек" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Легенда" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Промените приказ легенде" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Камата" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Промените приказ камате" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Статистички извештај" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "За _преглед:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "Режим с_тања" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "Проце_на" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Поређај према _износу" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Упореди расход и приход" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Укупно:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Приход:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Расход:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Просечно: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Извештај временског очекивања" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Збирно" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Исечак времена" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Мерач" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Гориво" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Цена" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Растојање" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Извези" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Извези као ЦСВ" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Извештај трошкова возила" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Категорија:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Мерач:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Потрошња:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Утрошак горива:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Остали трошкови:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Укупан трошак:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ништа)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Видљива" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Назив налога" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Грешка" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Не могу да додам налог „%s“,\n" "налог са овим називом већ постоји." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Не могу да обришем налог „%s“" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Да ли сигурно желите трајно да обришете „%s“?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Ако обришете овај налог, биће трајно изгубљен." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не могу да преименујем овај налог,\n" "са „%s“ у „%s“,\n" "овај назив већ постоји." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Управљајте налозима" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Обриши" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Преименуј" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Помери горе" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Помери доле" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Опште" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Група:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Институција:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Б_рој:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Почетни _биланс:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Валута:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "овај налог је _затворен" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Веб страница:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Напомене:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Понашање" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Аутоматизација" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Подразумевани ша_блон:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Пријави изузеће" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "искључи из _сажетка налога" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "искључи из _буџета" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "искључи из било ког _извештаја" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Разно" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Тренутни број чека" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Чековна књижица _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Чековна књижица _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Ограничења биланса" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Препиши са:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Нај_више:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Ако обришете заказано/шаблон, биће трајно изгубљено." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Следећи _датум:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Сва_ког:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Још опција" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Викенд:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "Зау_стави након:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "чланака" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Управљајте трансакцијама заказаног/шаблона" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Шаблон" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Удвостручи" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Закажи" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Тражи" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Напомене" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Откажи" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "У _реду" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Услов" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Тражи:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_У:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Разликуј величину _слова" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Из_нос:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Додељивања" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Поверилац:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Препиши" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "П_лаћање:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Ознаке:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(правило %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Ако обришете додељивање, биће трајно изгубљено." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Помери у..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Помери правило" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Помери" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Управљајте додељивањем" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Овај помоћник ће вам помоћи да поставите најмање довољно подешавање\n" "за нову датотеку Кућне Банке." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Све елементе које овде поставите можете касније да измените ако је потребно." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Никакве измене се неће учинити све док не кликнете „Примени“\n" "на крају овог помоћника." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "Кућна Банка ће приказати наслов за главни прозор,\n" "може бити произвољан натпис или ваше име." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Наслов:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "Кућна Банка подржава више валута. Основна валута је\n" "подразумевана за нове налоге и извештаје." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Основа:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Поставите додатне валуте" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Додај" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Нисам нашао" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "Кућна Банка може унапред да попуни категорије за ваш језик\n" "ако је ЦСВ датотека доступна и обезбеђује је заједница." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Постави категорије за мој језик" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Датотека претподешавања:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "Кућна Банка омогућава увоз ваших налога из преузетих датотека\n" "финансијских институција, или можете ручно да направите ваш налог." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Направи мој први налог" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Назив:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Ово је страница за потврђивање,\n" "\n" "притисните „Примени“ да примените измене" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Покрени поставке датотеке" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Опције датотеке" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Изаберите валуте" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Изаберите категорије" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Направите налог" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Заврши поставке датотеке" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<Нови налог (општи)>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<Нови налог>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "<Прескочи овај налог>" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Исправно" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Назив" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Отвори" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Познате датотеке" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "КуИФ датотеке" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "ОФИкс/КуФИкс датотеке" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "ЦСВ датотеке" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Све датотеке" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "нови општи налог" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "нови налог" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "прескочено" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d од %d трансакција" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "трансакција – %d, сличних – %d, постојећих – %d, изабраних – %d" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "трансакција – %d, изабраних – %d" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Неки ддатуми не могу бити претворени. Покушајте да измените редослед датума " "да бисте наставили." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Увези %s _у:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "ову датотеку" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "овај налог" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Назив: %s\n" "Број: %s\n" "Датотека: %s\n" "Кодни распоред: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Увези трансакције из банке или са кредитне картице" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Овај помоћник ће вас водити кроз поступак увоза једног или неколико\n" "преузетих стања из ваше банке или са кредитне картице, у следећим форматима:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Препоручени: .OFX или .QFX\n" "(Понекад их називају Money™ или Quicken™)\n" "Подржани: .QIF\n" "(Општа Quicken™ датотека)\n" "Само за напредне кориснике: .CSV\n" "(формат је специфичан за Кућну Банку, видите документацију)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Никакве измене се неће учинити све док не кликнете „Примени“ на крају овог " "помоћника." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Не приказуј ово поново" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Превуците и убаците једну или неколико датотека за увоз.\n" "Можете такође да користите дугме додај/обриши са списка." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Има превише налога у датотекама које сте изабрали,\n" "користите дугме „Назад“ да изаберете мање датотека." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Препознавање циљног налога по називу или броју није успело." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Запис датума:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Увези белешке" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Размени белешке са повериоцима" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "ОФИкс _назив:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "ОФИкс _белешка:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Величина _слова слога белешка/поверилац" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Окини износ" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Слична трансакција у циљном налогу (могући дупликат)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "дана" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Поређење је извршено следећим редом: налог, износ и датум.\n" "Толеранција датума од 0 дана значи тачно поређење" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Покрени аутоматизацију" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Обогати са основношћу _повериоца" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Покрени аутоматска правила _додељивања" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Кликните „Примени“ да освежите ваше налоге." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Добро дошли" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Изабери датотеку" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Увези" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Потврђивање" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Грешка формата датотеке" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "ЦСВ датотека мора да садржи тачан број колона, које су\n" "раздвојене запетачком, погледајте помоћ за више о томе." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Да ли сигурно желите да очистите улаз?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Ако наставите, сваки износ биће постављен на 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Очисти" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Буџет за %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Управљајте буџетом" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Биланс:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "је исти сваког месеца" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Очисти унос" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "је другачији по месецу" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Опције" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Присили праћење ове категорије" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Јан" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Феб" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Мар" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Апр" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Мај" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Јун" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Јул" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Авг" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Сеп" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Окт" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Нов" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Дец" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Сажетак" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Укупно" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Годишње\n" "Укупно" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Месечно\n" "Просек" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Месечно" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Додајте категорију" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Примени" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Полазна категорија" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Назив категорије" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Ова категорија је у употреби.\n" "Свака трансакција унутар ове категорије биће постављена на (без категорије)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Споји категорије" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Трансакције додељене категорији „%s“, биће премештене у доле изабрану " "категорију." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Циљна категорија" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "О_бриши категорију „%s“" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Да ли сигурно желите да очистите уносе за „%s“?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Додај категорију" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Уклони категорију" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Споји" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Очисти унос" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# трс" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# под" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Обришите некоришћене категорије" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Да ли сигурно желите трајно да обришете\n" "категорије које се не користе?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Уреди категорију" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Промени врсту" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Приход" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Примени на де_цу" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не могу да преименујем ову категорију,\n" "из „%s“ у „%s“,\n" "овај назив већ постоји." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Споји категорију „%s“" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Трансакције додељене овој категорији\n" "биће померене у категорију изабрану испод." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Обухвати _подкатегорије" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Управљајте категоријама" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Прикажи сакривено" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Прикажи употребу" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Премести/Споји" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Прикажи или сакриј" #: ../src/ui-category.c:2552 msgid "new category" msgstr "нова категорија" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "нова подкатегорија" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Основна валута" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Симбол" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Однос размене" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Последња измена" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Уредите валуту" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Валута" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Формат" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Прилагоди" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Симбол:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Јесте пре_фикс" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Знак _децимала:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Број децимала:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Знак _груписања:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Изаберите валуту основе" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Изаберите валуту" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ИСО кȏд" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Додај произвољну ва_луту" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ИСО:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Грешка мрежног освежавања" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Ако обришете валуту, биће трајно изгубљена." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Измените валуту основе" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Ако наставите, односи других валута биће\n" "постављени на 0, не заборавите да освежите" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Валуте" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Освежите на мрежи" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Поставите као основу" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Статистика датотеке" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Трансакција" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Надогради" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Изаберите валуту основе" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Покрећем в5.1, Кућна Банка може управљати са неколико\n" "валута. Ако валута испод није тачна, измените је:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Валута:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Извези као КуИФ" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Увези из ЦСВ-а" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Отворите датотеку Кућне Банке" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Отворите датотеку резерве Кућне Банке" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Сачувајте датотеку Кућне Банке као" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Датотеке Кућне Банке" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Датотека резерве" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Све резерве" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Да сачувам измене у датотеку пре затварања?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Ако не сачувате, измене ће бити трајно изгубљене.\n" "Број измена: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Затвори _без чувања" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Извези као _ЦСВ" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Фасцикла:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Изабери фасциклу" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Назив датотеке:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Додај колону стања" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Детаљне линије поделе" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Датотека неће бити сачувана у CSV формату Кућне банке, јер сте извезли\n" "из дела „Све трансакције“, или сте одабрали опцију." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Извези као ПДФ" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Извези као _ПДФ" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Уз Кућну Банку, штампање је оријентисано ка еколошки одговорном\n" "односу према најраспрострањенијем дигиталном формату: ПДФ формат. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Направи _нов" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "И_скористи одабрано" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Изворишни пренос" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "Кућна Банка је пронашла неке трансакције које би могле бити придружене " "трансакције за унутрашњи пренос." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Белешкe:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Поврати" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Употреби" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Износ/текст" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Увек показуј" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Поништено" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Додато" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Измењено" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Крајњи рок" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Ново плаћање" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Унапред" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Својства датотеке" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Заказане трансакције" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "месец" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Обриши некоришћеног повериоца" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Да ли сигурно желите трајно да обришете\n" "повериоце који се не користе?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Измени платиоца" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "_Плаћање:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не могу да преименујем овог повериоца,\n" "из „%s“ у „%s“,\n" "ово име већ постоји." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Споји повериоца „%s“" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Трансакције додељене овом повериоцу\n" "биће померене на повериоца изабраног испод." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "О_бриши повериоца „%s“" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Овај поверилац је у употреби. Свака трансакција која\n" "користи овог повериоца биће подешена на (нема поверилаца)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Управљајте повериоцима" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "нови поверилац" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Сучеље" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Језик" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Трансакције" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Пренос" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Увоз/извоз" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Извештај" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Процена" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Резерва" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Фасцикле" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Језик система" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Изаберите основну фасциклу са датотекама Кућне Банке" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Изаберите основну фасциклу са датотекама резерве Кућне Банке" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Изаберите основну фасциклу за увоз" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Изаберите основну фасциклу за извоз" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Опште опције" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "ОФИкс/КуФИкс опције" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "КуИФ опције" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "ЦСВ опције" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(само увоз трансакције)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Раздвојник:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Главни прозор извештава" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Највише _ставки:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Почетни филтер" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Опције статистике" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Прикажи према _износу" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Прикажи колону _односа" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Прикажи _детаље" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Опције буџета" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Број месеца:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Омогући" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Претподешавање:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Корисничко сучеље" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Језик:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Формат:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a – назив дана у седмици.\n" "%A – пун назив дана у седмици. \n" "%b – скраћени назив месеца. \n" "%B – пун назив месеца. \n" "%c – за језик одговарајуће представљање датума и времена. \n" "%C – број века (година се дели са 100 и скраћује на цео број) као двоцифрени " "број [00-99]. \n" "%d – дан у месецу као двоцифрени број [01,31]. \n" "%D – исто као %m/%d/%y. \n" "%e – дан у месецу као цео број [1,31]; испред једноцифреног броја не иде " "нула. \n" "%j – дан у години као цео број [001,366]. \n" "%m – месец као цео број [01,12]. \n" "%p – за језик одговарајуће представљање датума. \n" "%y – година без века као двоцифрени број [00,99]. \n" "%Y – година са веком као цео број." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Фискална година" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_Почиње:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Мерне јединице" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Користи _миље за даљину" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Користи _галоне за гориво" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Увек прикажи подсетник" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Увек прикажи поништено" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Закључај промене измиреног" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Прикажи будуће:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "дана унапред" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Сакриј измирене" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Прозорче трансакције" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Укључи самодовршавање _белешки са" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "променљиви дани" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Прикажи текст потврде додавања за 5 сек." #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Гтк поставке" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Линија мреже:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Опције графикона" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Мања _слова легенде" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Трака _алата:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Укључи самостално прављење резерве" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Број резерви за чување:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Учесталост прављења резерве је један дан" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Новчаници:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Резерве:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Датотеке размене" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Увоз:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Извоз:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Покретање програма" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Прикажи уводни екран" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Учитај последњу отворену датотеку" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Објави заказане трансакције на чекању" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Освежи валуте на мрежи" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Поврати све поставке" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Да ли желите да вратите\n" "све поставке на основен\n" "вредности?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Поставке" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Подаци" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Морате поново да покренете Кућну Банку\n" "да би промена језика ступила на снагу." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Директоријум резерве је измењен,\n" "требало би да умножите „.bak“ датотеку на ово ново место." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Уреди ознаку" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не могу да преименујем ову ознаку,\n" "из „%s“ у „%s“,\n" "овај назив већ постоји." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Споји ознаку „%s“" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Трансакције додељене овој ознаци\n" "биће премештене на повериоца изабраног испод." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "О_бриши ознаку „%s“" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Ова ознака се користи.\n" "Та ознака ће бити обрисана из свих трансакција које је користе." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Управљајте ознакама" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "нова ознака" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Трансакција „%s“ је направљена." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Да ли желите да прекинете унутрашњи пренос?\n" "\n" "Ако наставите обрисаће се циљна трансакција." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Прекини" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Прикажи _заказано" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Прикажи _све налоге" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Користи шаблон" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Додај и _задржи" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Додајте трансакцију" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Додајте шаблон" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Пренесите трансакцију" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Пренесите шаблон" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Уредите трансакцију" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Уредите шаблон" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Датум:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "– упишите: д, д/м, м/д потпун датум\n" "– користите тастер стрелице + ктрл или промени\n" "– празно за данас" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "Д_о:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Поделите трансакције" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Налог:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Књига _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "– упишите неко слово за самодовршавање\n" "– упишите нови текст да направите унос" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Кате_горија:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Стање:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Белешке:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Упозорење: знак износа и категорије нису исти" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Вишеструко уређивање трансакција" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Упиши као\n" "пренос" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Обриши све" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Примени" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Откажи" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Износ трансакције:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Недодељено:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Збир подела:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Упозорење: збир подела и врсте трансакције се не поклапа" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Упозорење: збир подела и износа трансакције се не поклапа" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(нема врсте)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Банка" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Готовина" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Добро" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Кредитна картица" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Одговорност" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Провере" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Чувања" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Дан" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Могуће" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Пре" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "После" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Прескочи" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Време" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Година" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Недеља" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Две недеље" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Тромесечје" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Полугодишње" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Укључи" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Искључи" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Јуче" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Сутра" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Прошле недеље" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Ове недеље" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Следеће недеље" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Прошле две недеље" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Ове две недеље" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Наредне две недеље" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Прошлог месеца" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Овог месеца" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Следећег месеца" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Претходног квартала" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Овог квартала" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Следећег квартала" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Прошле године" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Ове године" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Следеће године" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Последњих 90 дана" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Последњих 60 дана" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Последњих 30 дана" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Последњих 12 месеци" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 дана унаоколо" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Сви датуми" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Овог месеца" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Следећег месеца" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Следећих 30 дана" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Следећих 60 дана" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Следећих 90 дана" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Расход и приход" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Било које врсте" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Било које стање" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Неочишћено" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Неизмирено" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Неразврстано" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Основности система" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Само иконице" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Само текст" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Текст испод иконица" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Текст поред иконица" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Водоравно" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Усправно" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Оба" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "м.д.г." #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "д.м.г." #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "г.м.д." #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Занемари" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Додај на белешке" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Додај на повериоца" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Језичак" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Запета" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Запетачка" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Размак" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Јануар" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Фебруар" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Март" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Април" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Јун" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Јул" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Август" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Септембар" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Октобар" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Новембар" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Децембар" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Сеп" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Тражи..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Чек" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Банковни пренос" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Картица задуживања" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Трајна наруџбина" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Електронско плаћање" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Улог" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "ФИ накнада" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Директно задуживање" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/pt_BR.po0000644000175000017500000036033014775767775011024 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-04-02 13:24+0000\n" "Last-Translator: Marcel Pinheiro \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finanças pessoais" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Contabilidade pessoal fácil e gratuita para todos" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finanças;contabilidade;orçamento;pessoal;dinheiro;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank é um software livre (como em \"liberdade de expressão\" e também em " "\"cerveja gratuita\") que auxiliará você a gerenciar suas finanças pessoais." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Ele foi projetado para ser fácil de usar e ser capaz de analisar suas " "finanças pessoais em detalhe usando poderosas ferramentas de filtragem e " "belos gráficos." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Se você está procurando uma maneira totalmente gratuita e fácil de gerenciar " "suas finanças pessoais, então o HomeBank deve ser o software escolhido." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "%d requer aprovação" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transações" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transações, %d selecionadas, média: %s, soma: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Bloqueado. Clique para desbloquear" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Desbloqueado. Clique para bloquear" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Energia Vital" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Ganhe por hora' não está definido na Carteira atual." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" "Tem certeza de que deseja excluir a(s) %d transação(ões) selecionada(s)?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Se você excluir uma transação, ela será apagada permanentemente." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Excluir" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Você tem certeza de que deseja alterar o status para Nenhum?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Alguma transação em sua seleção já foi Reconciliada." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Alterar" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Você quer mesmo alterar o status para Liberado?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" "Você tem certeza de que deseja alternar a condição para Reconciliada?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Alternar" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Você tem certeza de que deseja criar um modelo a partir da(s) %d " "transação(ões) selecionada(s)?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Criar" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Criar Modelo" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d criado com um ícone pré-preenchido" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Você tem certeza de que deseja criar uma atribuição automática a partir " "da(s) %d transação(ões) selecionada(s)?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Criar Atribuição Automática" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Todas as transações" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Existem %d grupos de transações similares" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Nenhuma transação similar foi encontrada!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Verificar o resultado da transferência interna" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Nenhuma inconsistência foi encontrada !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Foram encontradas inconsistências: %d\n" "você deseja revisar e corrigir?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Cada valor da transação será dividido por %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Você tem certeza de que deseja converter esta conta para Euro como moeda " "principal?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Converter" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Nenhuma transação foi alterada" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "a transação foi alterada: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Resultado da atribuição automática" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Adicionar..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Herdar..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Editar..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Nenhum" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Limpo" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Reconciliado" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Estado" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Nenhum(a)" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Vermelho" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Laranja" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Amarelo" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Verde" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Azul" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Roxo" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Bandeira" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "Aprovar" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "Rejeitar (Excluir)" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Editar Vários..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Vista_Dividida" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copiar o valor bruto" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Criar modelo..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Criar atribuição automática" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Excluir..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "A_cima" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "A_baixo" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exportar QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportar CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Imprimir…" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Navegar no Site" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Fechar" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Conta" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copiar" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Colar" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Colar (hoje)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Copiar área de transferência" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Localizar" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Editar" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marcar duplicado..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Verificar transferência interna" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Atribuições automáticas" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Converter para Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Ferramentas" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Mover transação para cima" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Mover transação para baixo" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Adicionar uma nova transação" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Adicionar" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Herdar da transação ativa" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Herdar" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Editar a transação ativa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Editar" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Alternar para liquidada(s) a(s) transação(ões) selecionada(s)" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Alternar para reconciliada a(s) transação(ões) selecionada(s)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Editar várias transações" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Excluir a(s) transação(ções) selecionada(s)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Reconciliadas Alteradas" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(fechado)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Exibir" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Atualizar" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Intervalo de data" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Alternar a exibição %d dias à frente" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Editar filtro" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Limpar filtro" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Atualizar resultados" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Alternar Energia Vital" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro secundário" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Reconciliado:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Liberado" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hoje:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futuro:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Reverter as alterações não salvas no arquivo '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- As alterações feitas no arquivo serão perdidas permanentemente\n" "- O arquivo será recarregado a partir do último arquivo salvo (.xhb ~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Reverter" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Você tem certeza que deseja tornar o arquivo anônimo?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Ao continuar, você irá tornar anônimo qualquer texto, \n" "como 'conta x', 'favorecido y', 'observações z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "Tornar _anônimo" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Bem vindo ao HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Fechar" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Abrir o último arquivo aberto" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Criar um _novo arquivo" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Abrir um arquivo existente" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Abrir o arquivo de _exemplo" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Leia o manual do HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configurar as_preferências" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Mostrar esta janela da próxima vez" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Você está prestes a abrir o arquivo de backup '%s'.\n" "\n" "Você tem certeza que deseja fazer isso?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Abrir arquivo de backup?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Abrir o backup" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Não foi possível abrir '%s', o arquivo não existe.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Erro desconhecido" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Erro de E/S para o arquivo '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "O arquivo '%s' não é um arquivo válido do HomeBank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "O arquivo '%s' foi salvo com uma versão mais atual do HomeBank\n" "e não pode ser carregado pela versão atual." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Erro no arquivo" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "O arquivo foi alterado desde a sua última leitura" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Se você salvá-lo, todas as alterações externas serão perdidas. Salvá-lo " "mesmo assim?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Salvar mesmo _assim" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Limpar" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Arquivo" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Novo(a)" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Abrir..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Abrir _Recente" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Salvar" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Salvar _Como..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importar..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exportar como QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Reverter" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaurar backup" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propriedades..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Sair" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferências..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Exibir" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Barra de Ferramentas" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Gráfico T_otal" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Gráfico de T_empo" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Listas Inferiores" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro secundário" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gerenciar" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Carteira..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "C_ontas..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Favorecidos..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorias..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Marcadores..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Agendado/Modelo..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Atribuições..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Moedas..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Orçamento..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Orçamento (visualização de tabela)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transações" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Adicionar…" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Exibir..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Exibir Tudo..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Definir agendamento..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Agendada" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Relatórios" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Estatísticas..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendência..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Saldo..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "O_rçamento..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Custo de veículos..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Exibir diálogo de boas vindas..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Estatísticas do Arquivo..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Tornar Anônimo" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Ajuda" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Conteúdo" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obter Ajuda Online..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Verificar atualizações..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Notas da Versão" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Reportar um Problema..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduzir este Aplicativo..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Sobre" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Novo(a)" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Criar um novo arquivo" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Abrir" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Abrir um arquivo" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Abrir um arquivo recentemente utilizado" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Salvar" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Salvar o arquivo atual" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Conta" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gerenciar contas" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Favorecido" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gerenciar os favorecidos" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categoria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gerenciar as categorias" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Agendado/Modelo" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gerenciar transações agendadas/modelos" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Orçamento" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gerenciar o orçamento" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Atribuição automática" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Gerenciar as tarefas automáticas" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Mostrar transações da conta selecionada" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Adicionar transações" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Estatísticas" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Abrir o relatório de Estatísticas" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Tempo de tendência" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Abrir relatório de tendência" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Abrir o relatório de Saldos" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Abrir o relatório de Orçamento" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Custo do veículo" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Abrir o relatório de custo de veículos" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Ajuda" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Faça uma doação" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Fazer uma doação para o projeto HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Agendada" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futuro" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Lembrete" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Hoje" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(sem memo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copiar)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(sem categoria)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "formato CSV inválido" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Período inválido!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tipo" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-exp" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-inc" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-exp" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-inc" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Estado" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "Nenhum" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "limpo" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "reconciliado" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Marcador" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Pagamento" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Valor" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Texto" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Desconhecido" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(nenhum favorecido)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(sem grupo)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "Sem Etiqueta" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-Sem %d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Exibir a versão do aplicativo" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ARQUIVO]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Erro do navegador." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Não foi possível exibir a URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "sem instituição" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Suas contas" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copiar para a área de transferência" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Agrupar por" #: ../src/hub-account.c:595 msgid "type" msgstr "tipo" #: ../src/hub-account.c:596 msgid "group" msgstr "grupo" #: ../src/hub-account.c:597 msgid "institution" msgstr "instituição" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Mostrar tudo" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expandir tudo" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Recolher tudo" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "Somatório: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Nenhuma transação para adicionar" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transação adicionada: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Verificar o resultado das transações agendadas" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Postar quando o programa iniciar" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Ligado" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Desligado" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "data limite de publicação" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Ignorar" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Editar e Postar" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Publicar" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "As %d principais Despesas / Categoria" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Principais %d Despesas/Categoria" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "As %d principais Despesas / Favorecido" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Principais %d Despesas/Beneficiários" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "As %d principais Despesas / Conta" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Principais %d Despesas/Conta" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Saldo da conta" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Saldo do Grupo de Contas" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Outros" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Gráfico total" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Organizar por" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Quantidade bruta" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Grupo de contas" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Gastos" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Despesa" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Receita" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Receita" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Gastos e Receitas" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Despesas e Receitas" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Saldo global" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Gráfico temporal" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Global" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "conta importada" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total geral" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "Última reconciliação" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "até o cheque especial" #: ../src/list-account.c:753 msgid "before maximum" msgstr "antes do máximo" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Contas" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Reconciliada" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Liquidada" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hoje" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- dividir -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- isso precisa de uma categoria -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Número" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Observações" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Marcadores" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Pagamento/Número" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "Importado" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "Data anterior" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Bandeira" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Correspondência" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "St." #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultado" #: ../src/list-report.c:957 msgid "Average" msgstr "Média" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Atrasada" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Restam" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Próxima data" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Saldo em %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d sobre %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lista" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Ver resultados como uma lista" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linha" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Ver resultador como linhas" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalhes" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Fechar detalhes" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Atualizar" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Imprimir" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Relatório de balanço" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Exibir" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Intervalo" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Mostrar linha vazia" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "Ampliar X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtro" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Ativo:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Período:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_De:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Até:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Selecionar:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Tudo" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inverter" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Incluir _transferência" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Gasto" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Realizado" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mês" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Orçamento por categoria" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Orçamento por mês" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " acima" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " restando" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " abaixo" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(não orçado)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Pilha" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Ver resultados como barras empilhadas" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Resultado para área de transferência" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Resultado para CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detalhes para a área de transferência" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detalhes para CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Nenhuma conta está definida como parte do orçamento." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Você deve incluir algumas contas na caixa de dialógo contas." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Relatório de orçamento" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modo:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipo:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Somente fora das despesas" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "Até hoje" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultado:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Orçamento:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Gasto:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s por %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Colunas demais para exibir" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Selecione um intervalo mais amplo e / ou um período mais restrito" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Coluna" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Ver resultados como coluna" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Anel" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Ver resultados num gráfico de rosca" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Ver resultados como pilha" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Pilha 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Ver resultados como pilha 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Fechar legenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Taxa" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Inverter taxa" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Relatório de Estatísticas" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "E_xibir por:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Modo de Balanço" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Previsão" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Ordenar por valor" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Comparar Despesas & Receitas" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Receita" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Despesa:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Média: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Relatório de tendências" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Acumulado" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Item" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_Por:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Intervalo de Tempo" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Medida" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Combustível" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Preço" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exportar" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportar como CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Relatório de custo do veículo" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categoria:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Metro" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumo:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Custo de combustível:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Outros custos:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Custo total:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nenhum)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visível" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nome da conta" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Erro" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Não foi possível adicionar a conta '%s', \n" "esse nome já existe." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Não é possível excluir a conta '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Tem transação" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "É alvo da transação xfer" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Tem agendamento/modelo" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "É o alvo do xfer agendado/modelo" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Tem certeza de que deseja excluir permanentemente '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Se você excluir uma conta, esta vai ser permanentemente perdida." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não pode renomear esta Conta\n" "de '%s' para '%s'\n" "este nome já esta sendo usado" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gerenciar Contas" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Excluir" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Renomear" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Mover acima" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Move para baixo" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Geral" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grupo:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Instituição:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_úmero" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Saldo inicial" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Moeda:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "esta conta foi _fechada" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Site" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notas:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportamento" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automação" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Template padrão" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Informar exclusões" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "Excluir do resumo da conta" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "Resumo de Saída de Caixa" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "Excluir do _orçamentos" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "Excluir de qualquer relatório" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Diversos" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Número do cheque atual" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Talão de cheques _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Talão de cheques _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limites de saldo" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Saldo negativo em:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Máx_imo:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Excluir o modelo" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "Este modelo é usado como um modelo de conta e não pode ser excluído." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Se você excluir um(a) transação agendada/modelo, ela será eliminada " "permanentemente." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Próxima _data:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "Padrão de recorrência" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "A ca_da:" #: ../src/ui-archive.c:918 msgid "The" msgstr "O(a)" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Mais opções" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Final de semana:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "Parar depoi_s de:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "publicações" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Gerenciar transações agendadas/modelo" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Modelo" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplicar" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Agendar" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Pesquisar" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Observações" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "Pag." #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "A pesquisa não pode ficar em branco" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Este texto de pesquisa já existe na posição %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Cancelar" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condição" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Busca" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Entrada:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Diferencia maiúscula e minúsculas" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "Expressão _regular" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Valor" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_E" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Atribuições" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Favorecido" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Sobrescrever" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Foma de pa_gamento:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "Marcadores" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Não é possível duplicar esta tarefa,\n" "'%s' já existe." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regra %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" "Se você excluir uma atribuição automática, ela será apagada permanentemente." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Mover para..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Mover regra" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Mover" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Gerenciar Designações" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Este assistente ajudará você a criar uma configuração mínima\n" "para um novo arquivo do HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Todos os elementos configurados aqui podem ser alterados posteriormente, se " "necessário." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Nenhuma mudança será feita até que você\n" "clique em \"Aplicar\" no final deste assistente." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "O HomeBank exibirá um título na janela principal,\n" "que pode ser o seu nome ou um texto de sua escolha." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Título:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "O HomeBank suporta múltiplas moedas. O moeda base\n" "é a padrão para novas contas e novos relatórios." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Configurar moedas adicionais" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Adicionar" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Não localizado" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "O HomeBank pode preencher as categorias no seu idioma\n" "se um arquivo CSV estiver disponível e fornecido pela comunidade." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configurar categorias para o meu idioma" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Arquivo predefinido:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "O HomeBank possibilita a importação de contas a partir de arquivos\n" "baixados de instituições financeiras, ou você pode criar sua conta " "manualmente." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Criar minha primeira conta" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nome:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Esta é uma página de confirmação.\n" "\n" "Clique \"Aplicar\" para salvar as mudanças." #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Configuração de Arquivo Inicial" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Opções de Arquivo" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Escolha de Moedas" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Escolha de Categorias" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Criar Conta" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Terminar Configuração de Arquivo" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Válido" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nome" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Abrir" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Arquivos conhecidos" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Arquivos QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Arquivos OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Arquivos CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Todos os arquivos" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nova conta global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nova conta" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "ignorado" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d de %d transações" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" "%d transação(ões), %d similar(es), %d existente(s), %d selecionado(s)" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transação(ões), %d selecionado(s)" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Alguma data não pôde ser convertida. Por favor, tente alterar o formato da " "data para continuar." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importar %s in_to:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "este arquivo" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "esta conta" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nome: %s\n" "Número: %s\n" "Arquivo: %s\n" "Codificação: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importar transações do banco ou cartão de crédito" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Com este assistente você será guiado pelo processo de importação de um ou " "vários \n" "extratos baixados do seu banco ou cartão de crédito, nos seguintes formatos:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recomendado: .OFX ou .QFX\n" "(Às vezes chamado Money™ ou Quicken™)\n" "Suportado: .QIF\n" "(Arquivo comum do Quicken™)\n" "Somente usuários avançados: .CSV\n" "(O formato é específico do HomeBank, veja a documentação)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Nenhuma alteração será feita até que você clique em \"Aplicar\" no final " "deste assistente." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Não mostrar isto novamente" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Arraste e solte um ou mais arquivos para importar.\n" "Você também pode usar os botões +/- no final da lista." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Há muitas entradas nos arquivos que você escolheu,\n" "por favor use o botão de voltar e selecione menos arquivos." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "A identificação da conta de destino por nome ou número falhou." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Classificação de datas:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importar observações" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Trocar observações entre favorecidos" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX_Nome:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX_Observação:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Frase _case observação / beneficiário" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Alternar valor" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Transação semelhante na conta de destino (possível duplicação)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dias" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "A correspondência é feita na ordem de: por conta, valor e data.\n" "Uma tolerância de 0 dia(s) na data significa uma correspondência exata" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "Opção" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "Importar como pendente" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Executar automação" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "Enriquecer com favorecido padrão" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "Executar designações automáticas" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Clique em \"Aplicar\" para atualizar suas contas." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Bem-vindo(a)" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Selecionar arquivo(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importar" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmação" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Erro no formato de arquivo" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "O arquivo CSV deve conter o número exato de colunas,\n" "separadas por ponto-e-vírgula. Por favor, veja a ajuda para mais detalhes." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Tem certeza que deseja apagar a entrada?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Se continuar, todos os valores serão configurados para 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Limpar" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Orçamento para %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gerenciar orçamento" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importar CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "E_xportar CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "é o mesmo todo mês" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Limpar entrada" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "é diferente a cada mês" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Preferências" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forçar monitoramento desta categoria" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Fev" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Abr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maio" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ago" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Set" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Out" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dez" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Resumo" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totais" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "Total Anual" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "Média Mensal" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mensal" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Adicionar uma categoria" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Aplicar" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Categoria pai" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nome da categoria" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Essa categoria está sendo utilizada. Todas transação que estiver\n" "utilizando essa categoria será configurada para (sem categoria)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Unir categorias" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transações atribuídas à categoria '%s', serão movidas para a categoria " "selecionada abaixo." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Categoria alvo" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "E_xcluir a categoria '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Tem certeza de que quer limpar as entradas para '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "Limpar todo o Orçamento" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" "Tem certeza que você quer limpar o \n" "orçamento permanentemente?" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "Limpar Tudo..." #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Adicionar categoria" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Remover categoria" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Mesclar" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Limpar entrada" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "Transação" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "configurações" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Excluir categorias não utilizadas" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Tem certeza que deseja apagar permanentemente\n" "as categorias não utilizadas?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Nome de categoria duplicado. Tente outro nome." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Editar Categoria" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Mudar o Tipo" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "Receita" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propagar para_subcategoria" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossível renomear esta Categoria,\n" "de '%s' para '%s',\n" "este nome já existe." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Mesclar categoria '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "As transações atribuídas para essa categoria\n" "serão movidas para a categoria selecionada abaixo." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Incluir _subcategorias" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "Excluir a categoria '%s' (e qualquer orçamento)" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Gerenciar Categorias" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Mostrar Ocultos" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Mostrar uso" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Excluir não utilizado..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Mover/Unir" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Mostrar/ocultar" #: ../src/ui-category.c:2552 msgid "new category" msgstr "Nova Categoria" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "Nova Subcategoria" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Moeda base" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Símbolo" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Taxa de câmbio" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Última modificação" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Editar moeda" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moeda" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formatar" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalizar" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Símbolo:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "É pre_fixo" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Caractere decimal:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Número de dígitos fracionários:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Caractere de _grupo:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Selecione moeda base" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Selecionar moeda" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Código ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Adicionar uma moeda_customizada" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Erro na atualização online" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Se apagar a moeda, será permanentemente perdida." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Altera a moeda base" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "se você continuar, as taxas de outras moedas serão ajustadas para 0, não " "esqueça de atualizr." #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Moedas correntes" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Atualização Online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Registro de chamadas" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Usar como base" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Estatísticas do Arquivo" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transação" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Atualizar" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Selecione a moeda corrente" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Iniciando na versão 5.1, Homebank pode gerenciar várias moedas\n" "se a moeda abaixo não está correta, mude-a por favor:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Moeda:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportar como QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importar do CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Abrir arquivo HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Abrir arquivo de backup do HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Salvar arquivo HomeBank como" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Arquivos HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Backup de arquivo" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Todos backups" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Salvar alterações no arquivo antes de fechar?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Se você não salvar, as alterações serão perdidas permanentemente.\n" "Número de alterações: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Fechar _sem salvar" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exportar com _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Pasta:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Escolha uma pasta" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nome do arquivo:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Adicionar coluna de status" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detalhe das linhas divididas" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "O arquivo não estará no formato CSV do HomeBank, porque você exporta\n" "de 'Todas as transações' ou você selecionou uma opção." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exportar como PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportar como _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Para o HomeBank, a impressão é orientada a uma atitude amiga\n" "do meio ambiente ao usar o formato digital mais comum: o PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Selecione a ação para o alvo criado" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Criar _novo" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Usar_Seleção" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Transferir Recursos" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Associação de destino sugerida" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank encontrou algumas transações que podem estar associadas a esta " "transferência interna." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Nenhuma correspondência de transação." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Insira de -30 a -15 para filtrar por despesa" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Observações:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Número:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Transferência de Despesas" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Transferência de Renda" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Restaurar" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Salvar e Usar" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Usar" #: ../src/ui-filter.c:1370 msgid "default" msgstr "padrão" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Valor/Texto" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Sempre exibir" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Nula" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Incluído" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Editado" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(padrão)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Renomear o filtro" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Novo filtro %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Nome do filtro" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Salvar como..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Renomear…" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Data de vencimento" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Próximo Pagamento" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "adiantado" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propriedades do arquivo" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Transações agendadas" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "de cada" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mês" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Ganho por hora:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Excluir favorecido não utilizado" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Tem certeza que deseja excluir\n" "permanentemente o favorecido não utilizado?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "O nome do beneficiário está duplicado. Tente outro nome." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Editar Recebedor/pagador" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Preenchimento Padrão" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Forma de pagamento" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não foi possível renomear este Favorecido,\n" "de '%s' para '%s',\n" "este nome já existe." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Mesclar favorecido '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "As transações atribuídas para este favorecido\n" "serão movidas para o favorecido selecionado abaixo." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "E_xcluir o favorecido '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Este favorecido está sendo utilizado. Todas transação que estiver\n" "utilizando este favorecido será configurada para (sem favorecido)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gerenciar Favorecidos" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "novo favorecido" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "Tematização" #: ../src/ui-pref.c:92 msgid "Color" msgstr "Cor" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Localização" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transações" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "Caixa de Diálogo" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transferência" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importar/Exportar" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Relatório" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Previsão" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Backup" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Pastas" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Avançado" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Idioma do Sistema" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Escolha o diretório padrão do HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Escolha uma pasta padrão para os backups do HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Escolha o diretório padrão de importação" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Escolha um diretório padrão de exportação" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "O pagamento exibe e escolhe" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Use arrastar e soltar para reordenar" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "API de moedas" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Chave:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Opções gerais" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opções de arquivos OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Opções QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Opções CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(apenas para importação de transações)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separador:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Janela principal de relatórios" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Máx. _items:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Filtro inicial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opções das estatísticas" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Exibir por _quantidade" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Exibir coluna de _taxa" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Exibir _detalhes" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opções dos orçamentos" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Habilitar _previsão" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Número do mês:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Ativar" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Pré-definido:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Configuração" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interface do usuário" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Idioma" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "Visualizador de data" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "P_ersonalizar" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formato:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a dia da semana local abreviado.\n" "%A dia da semana local completo.\n" "%b mês local abreviado.\n" "%B mês local completo.\n" "%c representação local apropriada de hora e data.\n" "%C número do século (o ano divido por 100 e truncado para um número inteiro) " "em número decimal [00-99].\n" "%d dia do mês em número decimal [01,31].\n" "%D o mesmo que %m/%d/%y. \n" "%e dia do mês em número decimal [1,31]; um dígito único é precedido por um " "espaço.\n" "%j dia do ano em número decimal [001,366]. \n" "%m mês em número decimal [01,12]. \n" "%p representação local apropriada de data. \n" "%y ano sem século em número decimal [00,99]. \n" "%Y ano com século em número decimal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Ano fiscal" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Inicia _em:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unidades de medida" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Usar _milhas ao invés de metros" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Usar _galões como medida de combustível" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Sempre exibir lembretes" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Sempre exibir nulas" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Incluir lembrete no saldo e relatório" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Reconciliação bloqueada para Alterações" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "Janela do livro-razão" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Mostrar:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dias adiante" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Esconder conciliadas" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Janela transação" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "_Manter a última data quando vários adicionarem ou herdarem" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Habilitar _memo autocompletar com" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "dias corridos" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Mostrar adicionar texto de confirmação para 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Exibir a lista de modelos ao editar" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "Comportamento" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "Ao adicionar, sempre mostrar a _ação de seleção para o diálogo alvo" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "Intervalo de data para encontrar um alvo:" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "Sincronizar" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "_Data" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "Tema" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "Modo escuro:" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "O sistema não possui preferência" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "O sistema prefere escuro" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "O sistema prefere claro" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "Use o mo_do escuro se disponível" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "Ícones" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "_Tema do Ícone:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "Use ícones _simbólicos se disponíveis" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Configurações gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "Passar por cima" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "Tamanho da _fonte" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "Gráfico" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "_Paleta:" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "Outros" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "_Usar cores da paleta de gráficos" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "_Despesa" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "_Aviso" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "Colorizar os _valores" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "Colorizar o _fundo das transações futuras" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Linhas de grade:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Opções dos gráficos" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Fonte de legenda menor" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Barra de Ferramentas" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Ativar backups automáticos" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Número de backups para manter:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "A frequência de backup é uma vez por dia" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Carteiras:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Backups" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Arquivos do Exchange" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importar:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exportar:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Iniciar programa" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Exibir tela de abertura" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Carregar último arquivo aberto" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Transações pendentes agendadas" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Atualizar moedas online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Redefinir Todas as Preferências" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Você realmente quer redefinir\n" "todas as preferências para os valores\n" "padrões?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferências" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informação" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Você terá que reinicializar o HomeBank\n" "para alteração de idioma ter efeito." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "O diretório de backup mudou, você talvez\n" "precise copiar o arquivo '.bak' para o novo local." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Excluir a etiqueta não utilizada" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Você quer mesmo excluir \n" "permanentemente a tag não utilizada?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "O nome da etiqueta foi duplicado. Tente outro nome." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Editar etiqueta" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não é possível renomear esse Marcador,\n" "de '%s' para '%s',\n" "esse nome já existe." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Unir as etiquetas '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transações atribuídas a essa etiqueta, serão\n" "movidas para a etiqueta selecionada abaixo." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Excluir a etiqueta '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Essa etiqueta já foi usada.\n" "Aquela etiqueta sera excluída de quaisquer transações que a utilize." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gerenciar Marcadores" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "novo marcador" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transação de %s criada." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Você gostaria de quebrar a transferência interna?\n" "Ao continuar, a transação alvo será excluída." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Quebrar" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Exibir agendamento" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Exibir todas as contas" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Usar um modelo" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Adicionar & Continuar" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Adicionar transação" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Adicionar modelo" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Herdar transação" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Herdar modelo" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editar transação" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editar modelo" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- digite: d, d/m, m/d, uma data completa\n" "- use tecla de seta + ctrl ou shift\n" "- vazio para hoje" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "Para" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Divisões da transação" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Sem preenchimento automático de taxas" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Conta" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Livro _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- digite alguma letra para preenchimento automático\n" "- digite um novo texto para criar uma entrada" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Categoria" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Situação:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Observações" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Aviso: quantia e categoria parecem não bater" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Editar várias transações" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Digitar como\n" "transferência" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Você quer excluir todas as linhas divididas" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Excluir tudo" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Prefixar com -/+ para forçar o sinal" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Aplicar" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Cancelar" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Valor da transação:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Não atribuídas:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Total das divisões:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "O limite de número de divisões foi atingido" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Atenção: a soma das divisões e o tipo da transação não conferem" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Atenção: a soma das divisões e o montante da transação não conferem" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(sem tipo)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "No Banco" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Dinheiro" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Ativo" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Cartão de crédito" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Passivo" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Corrente" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Poupança" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "Diariamente" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "Semanalmente" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "Anualmente" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "dia(s)" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "semana(s)" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "Mês(Meses)" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "Ano(s)" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "Primeiro" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "Segundo" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "Terceiro" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "Quarto" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "Última" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dia" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "Segunda-feira" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "Terça-feira" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "Quarta-feira" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "Quinta feira" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "Sexta-feira" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "Sábado" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "Domingo" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possível" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Antes" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Depois" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Ignorar" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Tempo" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Grupo de Contas" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Ano" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Semana" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Quinzena" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestre" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "incluir" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Excluir" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Ontem" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Amanhã" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Semana passada" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Esta Semana" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Próxima Semana" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "última quinzena" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Quinzena Atual" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Próxima quinzena" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Mês passado" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Este mês" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Próximo Mês" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Trimestre passado" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Trimestre atual" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Próximo Trimestre" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Ano passado" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Este Ano" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Próximo Ano" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Últimos 90 Dias" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Últimos 60 Dias" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Últimos 30 Dias" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Últimos 12 Meses" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Por volta de 30 dias" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Todas as Datas." #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Personalizado" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Este mês" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Próximo mês" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Próximos 30 dias" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Próximos 60 dias" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Próximos 90 dias" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Data Máxima de Postagem" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Despesas & Receitas" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Qualquer tipo" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Qualquer Situação" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Não liquidada" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Não reconciliada" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Sem categoria" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "Não Aprovado" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Padrões do sistema" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Apenas ícones" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Somente texto" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Texto abaixo dos ícones" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Texto ao lado dos ícones" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Ambos" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorar" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Anexar ao Número" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Anexar nas Observações" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Anexar aos Favorecidos" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Aba" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Vírgula" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Ponto e vírgula" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Espaço" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Janeiro" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Fevereiro" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Março" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Abril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Junho" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Julho" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agosto" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Setembro" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Outubro" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembro" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Dezembro" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Set" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Pesquisar..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Qualquer Bandeira" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Transferência Bancária" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Cartão de débito" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Ordem permanente" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pagamento eletrônico" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depósito" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Taxa da Instituição Financeira" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Débito Direto" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Celular" homebank-5.9.1/po/eu.po0000644000175000017500000034424014775770066010414 # Basque translation for homebank # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2022-01-10 18:21+0000\n" "Last-Translator: aranberri \n" "Language-Team: Basque \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finantza pertsonalak" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Kontabilitate pertsonala doan eta erraz edonorentzat" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finantzak;kontabilitatea;aurrekontua;pertsonala;dirua;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank zure kontabilitate pertsonala kudeatzen lagunduko dizun software " "libre eta doakoa da." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Erraz erabili eta finantza pertsonalak iragazketa tresna indartsuen eta " "grafiko txukunen bidez xeheki aztertzeko diseinatuta dago." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Zure kontabilitate pertsonala kudeatzeko era erabat libre eta erraz baten " "bila bazabiltza, Homebank da zure aukerako softwarea." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transakzio" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transakzio, %d hautatuta, batezbestekoa: %s, batura: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Ezabatu" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Ziur egoera 'Bat ere ez'era aldatu nahi duzula?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Hautatutako transakzioren bat ja berdinkatua dago." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Aldatu" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Ziur egoera berdinkatura aldatu nahi duzula?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Aldatu" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Sortu" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Transakzio guztiak" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Antzeko %d transakzio-talde daude" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Ez da antzeko transakziorik aurkitu!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Egiaztatu barne-transferentziaren emaitza" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Ez da inkoherentziarik aurkitu!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Inkoherentziak aurkitu dira: %d\n" "berrikusi eta konpondu nahi dituzu?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Transakzio guztien zenbatekoa zati %.6f egingo da." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Bihurtu" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Ez da transakziorik aldatu" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transakzio aldatua: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Esleipen automatikoaren emaitza" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Gehitu..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Jarauntsi..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Editatu..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Bat ere ez" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Konpentsatua" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Berdinkatua" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Egoera" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Bat ere ez" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Editatu _zenbait..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Ikusi _zatiak" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Sortu txantiloia..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Sortu esleipena..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Ezabatu..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Igo" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Jaitsi" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Esportatu QIFera..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Esportatu CSVra..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Inprimatu..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Kontua" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopiatu" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Itsatsi" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Itsatsi (gaur)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Editatu" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Markatu bikoiztuak..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Egiaztatu barne-transferentziak" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Esleipen automatikoak" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Bihurtu eurotara..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Tresnak" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Mugitu transakzioa gora" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Mugitu transakzioa behera" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Gehitu transakzio berri bat" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Gehitu" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Jarauntsi transakzio aktibotik" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Jarauntsi" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Editatu transakzio aktiboa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Editatu" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Aldatu egoera konpentsatura hautatutako transakzio(et)an" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Aldatu egoera berdinkatura hautatutako transakzio(et)an" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Editatu zenbait transakzio" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Ezabatu hautatutako transakzioa(k)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(itxia)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Erakutsi" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Freskatu" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Data _bitartea:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Editatu iragazkia" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Freskatu emaitzak" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro _ehunena" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Berdinkatua:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Konpentsatua:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Gaur:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Etorkizuna:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Desegin %s fitxategian gorde gabeko aldaketak?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Fitxategiari egindako aldaketak behin betiko galduko dira.\n" "- Azkena gordetako fitxategia kargatuko da (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Desegin" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Ziur fitxategia anonimizatu nahi duzula?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Jarraituz gero edozein testu anonimizatuko da, \n" "adibidez: 'x kontua', 'y onuraduna', 'z memoa', etab." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimizatu" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Ongi etorri HomeBankera" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Itxi" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Ireki _azkena irekitako fitxategia" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "_Sortu fitxategi berri bat" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Ireki badagoen fitxategi bat" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Ireki _adibide-fitxategia" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Irakurri HomeBanken _eskuliburua" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Konfiguratu _hobespenak" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Erakutsi leiho hau hurrengo aldian" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "'%s' babeskopia fitxategia irekitzera zoaz.\n" "\n" "Ziur hau egin nahi duzula?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Ireki babeskopia fitxategia?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Ireki babeskopia" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Ezin da '%s' ireki. Fitxategia ez da existitzen.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Errore ezezaguna" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "S/I errorea '%s' fitxategiarentzat." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "'%s' fitxategia ez da baliozko HomeBank fitxategi bat." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "'%s' fitxategia HomeBank bertsio berriago batekin gorde zen\n" "eta ezin da uneko bertsioarekin kargatu." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Fitxategi-errorea" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Fitxategia aldatua izan da irakurri denetik." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Gordetzen baduzu, kanpoko aldaketa guztiak gal litezke. Gorde hala ere?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Gorde halere" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Garbitu" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fitxategia" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Berria" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Ireki..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Ireki _azkenetakoa" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Gorde" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Gorde _honela..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Inportatu..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Esportatu QIF gisa..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Desegin" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Itzuli babeskopiara" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propietateak..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Irten" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Hobespenak..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "I_kusi" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Tresna-barra" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Beheko zerrendak" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro ehunena" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Kudeatu" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Kon_tuak..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Onuradunak..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategoriak..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etiketak..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Programatua/Txantiloia..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Esleipenak..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Monetak..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Aurrekontua..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Aurrekontua (taula ikuspegia)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transakzioak" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Gehitu..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Erakutsi..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Ezarri programagailua..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Idatzi programatutakoa" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Txostenak" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Estatistikak..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Joera denboran..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Saldoa..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "A_urrekontua..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Ibilgailu-kostua..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Erakutsi ongi etorri elkarrizketa..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Fitxategi-estatistikak..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimizatu..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Laguntza" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Aurkibidea" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Lortu laguntza online..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Egiaztatu eguneraketarik baden..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Bertsio-oharrak" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Eman arazo baten berri..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Itzuli aplikazio hau..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "Honi _buruz" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Berria" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Sortu fitxategi berri bat" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Ireki" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Ireki fitxategi bat" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Ireki berriki erabilitako fitxategi bat" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Gorde" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Gorde uneko fitxategia" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Kontua" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Kudeatu kontuak" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Onuraduna" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Kudeatu onuradunak" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategoria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Kudeatu kategoriak" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Programatua/Txantiloia" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Kudeatu programatua/txantiloia transakzioak" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Aurrekontua" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Kudeatu aurrekontua" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Esleipena" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Kudeatu esleipen-automatikoak" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Erakutsi hautatutako kontuaren transakzioak" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Gehitu transakzioak" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Estatistikak" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Ireki estatistika-txostena" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Joera denboran" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Ireki joera denboran txostena" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldoa" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Ireki saldo-txostena" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Ireki aurrekontu-txostena" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Ibilgailu-kostua" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Ireki ibilgailu-kostu txostena" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Laguntza" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Egin dohaintza" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Egin dohaintza HomeBank proiektuari" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Programatua" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Etorkizuna" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Gogoratu" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Gaur" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(memorik ez)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(kategoriarik ez)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "CSV formatu baliogabea" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Egoerak" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etiketa" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Zenbatekoa" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Ezezaguna" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f L" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(onuradunik ez)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(talderik ez)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-%dH" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FITXATEGIA]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Arakatzaile-errorea." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Ezin izan da bistaratu `%s' URLa" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(erakunderik ez)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Zure kontuak" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Erakutsi guztiak" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Zabaldu guztiak" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Tolestu guztiak" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Transakziorik ez gehitzeko" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "gehitutako transakzioak: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Egiaztatu programatutako transakzioen emaitzak" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "gehienezko idazte data" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Guztira" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "Saltatu" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Editatu eta _idatzi" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Idatzi" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Besteak" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Gastua" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Irabazia" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "kontu inportatua" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Guztizkoa" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "azken berdinkatzea" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "zorpetze arte" #: ../src/list-account.c:753 msgid "before maximum" msgstr "maximo aurretik" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Kontuak" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Berdinkatua" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Konpentsatua" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Gaur" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- zatitua -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- honek kategoria bat behar du -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memoria" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etiketak" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Bat etorri" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Emaitza" #: ../src/list-report.c:957 msgid "Average" msgstr "Batazbestekoa" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Berandu" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Oraindik" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Hurrengo data" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d %s azpitik" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Zerrenda" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Ikusi emaitzak zerrendan" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Lerroa" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Ikusi emaitzak lerro gisa" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Xehetasunak" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Erakutsi xehetasunak" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Freskatu" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Inprimatu" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Saldo-txostena" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Bistaratu" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "_Bitartea:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Erakutsi lerro hutsak" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zooma Xn:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Iragazkia" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "Data-_tartea:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "Non_dik:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "No_ra:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Hautatu:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Guztiak" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Alderantzikatu" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Gastatua" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Hil" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " gainean" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " ezkerrean" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " azpitik" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Pilatu" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Ikusi emaitzak barra-pilatu gisa" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Emaitza arbelera" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Emaitza CSVra" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Xehetasunak arbelera" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Xehetasunak CSVra" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Ez dago aurrekontuaren zati izateko konturik definituta." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Kontuaren elkarrizketatik kontu batzuk sartu behar dituzu." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Aurrekontu-txostena" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modua:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Mota:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Aurrekontuz kanpokoak soilik" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Emaitza:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Aurrekontua:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Gastatua:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s %s-(e)ko" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Zutabe gehiegi bistaratzeko" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Hautatu bitarte zabalago bat eta/edo data-tarte estuago bat" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Zutabea" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Ikusi emaitzak zubate gisa" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Eraztuna" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Ikusi emaitzak eraztun gisa" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Ikusi emaitzak pila gisa" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Pila % 100" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Ikusi emaitzak pila % 100 gisa" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Txandakatu legenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Tasa" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Erakutsi tasa" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Estatistika-txostena" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Ikusi:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Sailkatu _zenbatekoz" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Alderatu gastuak eta irabaziak" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Guztira:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Irabazia:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Gastua:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Batezbestekoa: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Joera denboran txostena" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Metatu" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Denbora-zatia" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Kilometro-kontagailua" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Erregaia" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Salneurria" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "DIstantzia" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Esportatu" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Esportatu CSV gisa" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Ibilgailu-kostu txostena" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategoria:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Kilometro-kontagailua" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Kontsumoa:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Erregai-kostua:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Beste kostuak:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Kostua guztira:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(bat ere ez)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Ikusgai" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Kontuaren izena" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Errorea" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Ezin da '%s' kontua gehitu,\n" "izen hau ja badago." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Ezin da '%s' kontua ezabatu" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Ziur '%s' behin betiko ezabatu nahi duzula?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Kontu bat ezabatzen baduzu, behin betiko galduko da." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kontu honi ezin izena aldatu\n" "'%s'(e)tik '%s'(e)ra,\n" "izen hau ja badago." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Kudeatu kontuak" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Ezabatu" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Aldatu izena" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Orokorra" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Taldea:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Erakundea:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Z_enbakia:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Hasierako _saldoa:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Moneta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "kontu hau _itxi egin zen" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Oharrak:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Jokabidea" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatizazioa" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Txantiloi lehenetsia:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Txostenetatik baztertzeak" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "baztertu _emaitza-kontutik" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "baztertu _aurrekontutik" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "baztertu edozein _txostenetik" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Hainbat" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Uneko txeke-zenbakia" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "_1. txeketegia:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "_2. txeketegia:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Saldo mugak" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Zorpetzea:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "_Maximoa:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Programatua/txantiloia ezabatzen baduzu, behin betiko galduko da." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Hurrengo _data:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Zenbatean _behin:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Aukera gehiago" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Asteburua:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Gelditu ondoren:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "idazte" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Kudeatu progamatua/txantiloia transakzioak" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Txantiloia" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Programatu" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Bilatu" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Oharrak" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Bilaketa testu hau ja existitzen da %d posizioan" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Utzi" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Ados" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Baldintza" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Bilatu:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Non:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Bereizi _maiuskula/minuskula" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "_Zenbatekoa:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Esleipenak" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Onuraduna:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Gainidatzi" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "O_rdainketa:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Etiketak:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(%d araua)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Esleipena ezabatzen baduzu, behin betiko galduko da." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Kudeatu esleipenak" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Laguntzaile honek HomeBank fitxategi berri batentzat\n" "gutxieneko konfigurazioa sortzen lagunduko dizu." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Hemen konfiguratutako elementu guztiak beranduago ere aldatu daitezke." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Laguntzaile honen amaieran \"Aplikatu\"n klik egin arte\n" "ez da aldaketarik egingo." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBankek izenburu bat bistaratuko du leiho nagusian,\n" "edozein etiketa edo zure izena izan daiteke." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Izenburua:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBankek hainbat moneta onartzen ditu. Oinarrizko moneta\n" "kontu eta txosten berrietarako lehenetsia da." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Oinarrizkoa:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Konfiguratu moneta gehigarriak" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Gehitu" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Ez da aurkitu" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBankek automatikoki osatzen ditu zure hizkuntzarako kategoriak\n" "komunitateak hornitutako CVS fitxategi bat eskuragarri badago." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Konfiguratu kategoriak nire hizkuntzarako" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Fitxategi aurrezarria:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBankek zure kontuak finantza-erakundeen fitxategietatik\n" "inportatzea ahalbidetzen du, edo kontua eskuz sortu dezakezu." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Sotu nire lehen kontua" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Izena:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Hau berrespen orri bat da,\n" "\n" "sakatu 'Aplikatu' aldaketak aplikatzeko" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Hasi fitxategi-konfigurazioa" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Fitxategi-aukerak" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Aukeratu Monetak" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Aukeratu Kategoriak" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Sortu Kontua" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Bukatu fitxategi-konfigurazioa" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Baliozkoa" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Izena" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Ireki" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Fitxategi ezagunak" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF fitxategiak" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX fitxategiak" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV fitxategiak" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Fitxategi guztiak" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "kontu global berria" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "kontu berria" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "saltatua" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d-(e)tik %d transakzio" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transakzio, %d antzeko, %d badaude, %d hautatu" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transakzio, %d hautatu" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Dataren bat ezin da bihurtu. Jarraitzeko saiatu dataren formatua aldatzen." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Inportatu %s _hona:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "fitxategi hau" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "kontu hau" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Izena: %s\n" "Zenbakia: %s\n" "Fitxategia: %s\n" "Kodeketa: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Inportatu transakzioak bankutik edo kreditu-txarteletik" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Laguntzaile honek banku edo kreditu-txartel bat edo batzuen mugimendu\n" "deskargatuak inportatzeko prozesuan gidatuko zaitu, ondorengo formatuetan:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Gomendatua: .OFX edo .QFX\n" "(Batzuetan Money™ edo Quicken™ izendatua)\n" "Onartua: .QIF\n" "(Quicken™ fitxategi komuna)\n" "Erabiltzaile aurreratuak soilik: .CSV\n" "(formatua HomeBankena da espresuki, ikusi dokumentazioa)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Laguntzaile honen amaieran \"Aplikatu\"n klik egin arte ez da aldaketarik " "egingo." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Ez erakutsi hau berriro" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Arrastatu eta jaregin fitxategi bat edo batzuk inportatzeko.\n" "Zerrendako gehitu/ezabatu botoiak ere erabili ditzakezu." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Kontu gehiegi daude aukeratu dituzun fitxategietan,\n" "erabili Atzera botoia fitxategi gutxiago hautatzeko." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" "Helburuko kontuaren izen edo zenbaki bidezko identifikazioak huts egin du." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Data-ordena:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Inportatu memoriak" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Trukatu memoriak onuradunekin" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _izena:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _memoria:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "_Maiuskulaz hasi memoria/onuraduna" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Aldatu zenbatekoa" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Antzeko transakzioa helburuko kontuan (beharbada bikoiztua)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "egun" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Bat etortzea ordena honetan egiten da: kontuz, zenbatekoz eta dataz.\n" "0 eguneko data-tolerantziak bat etortzea zehatza dela esan nahi du" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Exekutatu automatikoki" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Bete lehenetsitako _onuradunarekin" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Exekutau _esleipen-automatikoen arauak" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Egin klik 'Aplikatu'n kontuak eguneratzeko." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Ongi etorri" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Hautatu fitxategia(k)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Inportatu" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Berrespena" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Fitxategi-formatu errorea" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV fitxategiak zutabe kopuru zehatza eduki behar du,\n" "puntu eta komarekin bereizita, ikusi laguntza xehetasun gehiagorako." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Ziur idatzitakoa garbitu nahi duzula?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Jarraituz gero, zenbateko guztiak 0ra ezarriko dira." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Garbitu" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Aurrekontua %s-(r)entzat" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Kudeatu aurrekontua" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldoa:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "berdina da hil guztietan" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Garbitu idatzitakoa" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "desberdina da hil bakoitzean" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Aukerak" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Behartu kategoria hau monitorizatzera" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Urtarrila" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Otsaila" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Martxoa" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apirila" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maiatza" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Ekaina" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Uztaila" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Abuztua" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Iraila" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Urria" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Azaroa" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Abendua" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Laburpena" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Guztizkoak" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Hilero" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Gehitu kategoria bat" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Aplikatu" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Kategoria nagusia" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Kategoria izena" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Kategoria honek erabilera du.\n" "Kategoria hau darabilten transakzio guztiei (kategoriarik ez) ezarriko zaie" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Konbinatu kategoriak" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "'%s' kategoriara esleitutako transakzioan behean hautatutako kategoriara " "mugituko dira." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Helburuko kategoria" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Ezabatu '%s' kategoria" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Ziur '%s'(e)rako idatzitakoak garbitu nahi dituzula?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Gehitu kategoria" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Kendu kategoria" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Konbinatu" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Garbitu idatzitakoa" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# trn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# kfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Ezabatu erabili gabeko kategoriak" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Ziur erabili gabeko kategoriak \n" "behin betiko ezabatu nahi dituzula?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Irabazia" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kategoria honi ezin izena aldatu\n" "'%s'(e)tik '%s'(e)ra,\n" "izen hau ja badago." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Konbinatu '%s' kategoria" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Kategoria honi esleitutako transakzioak\n" "behean hautatutako kategoriara mugituko dira." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Sartu _azpikategoriak" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Kudeatu kategoriak" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Mugitu/Konbinatu" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "kategoria berria" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "azpikategoria berria" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Oinarrizko moneta" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Ikurra" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Truke-tasa" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Azken aldaketa" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Editatu moneta" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moneta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formateatu" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Pertsonalizatu" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Ikurra:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "_Aurretik doa" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Dezimal-bereizlea:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Dezimal kopurua:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Milako-bereizlea:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Hautatu oinarrizko moneta" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Hautatu moneta" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO Kodea" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Gehitu _moneta pertsonalizatu bat" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Online eguneratze errorea" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Moneta bat ezabatzen baduzu, behin betiko galdiko da." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Aldatu oinarri moneta" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Jarraituz gero, beste moneten tasak\n" "0ra ezarriko dira, ez ahaztu eguneratzea" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Monetak" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Eguneratu online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Ezarri oinarrizko gisa" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Fitxategi-estatistikak" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transakzioa" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Bertsio-berritu" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Hautatu oinarri moneta" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "v5.1 hasten, HomeBankek hainbat moneta kudeatu ditzake\n" "azpiko moneta ez bada zuzena, aldatu ezazu:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Moneta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Esportatu QIF gisa" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Inportatu CSVtik" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Ireki HomeBank fitxategia" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Ireki HomeBanken babeskopia fitxategia" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Gorde HomeBank fitxategia honela" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank fitxategiak" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Fitxategien babeskopia" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Babeskopia guztiak" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Gorde aldaketak fitxategian itxi baino lehen?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Ez badituzu gordetzen, aldaketak behin betiko galduko dira.\n" "Aldaketa kopurua: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Itxi _gorde gabe" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Esportatu _CSV gisa" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Karpeta:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Aukeratu karpeta bat" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Fitxategi-izena:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Gehitu Egoera zutabea" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Zehaztu zatitutako lerroak" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Fitxategia ez da HomeBank CSV formatuan egongo, aukera bat hautatu " "duzulako,\n" "edo 'Transakzio guztiak'etik esportatu duzu eta." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Esportatu PDF gisa" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Esportatu _PDF gisa" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "HomeBanken inprimatzea jarrera ekologiko batera dago orientatua\n" "formatu digital zabalduenarekin: PDF formatua. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBankek barne-transferentziari erlazionatuta egon daitekeen transakzio " "bat aurkitu du." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memoria:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Berrezarri" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Hutsa" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Fitxategi propietateak" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Programatutako transakzioak" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Ezabatu erabili gabeko onuradunak" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Ziur erabili gabeko onuradunak\n" "behin betiko ezabatu nahi dituzula?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "_Ordainketa:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Onuradun honi ezin izena aldatu\n" " '%s'(e)tik '%s'(e)ra,\n" "izen hau ja badago." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Konbinatu '%s' onuraduna" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Onuradun honi esleitutako transakzioak,\n" "behean hautatutako onuradunera mugituko dira." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Ezabatu '%s' onuraduna" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Onuradun honek erabilera du.\n" "Onuradun hau darabilten transakzio guztiei (onuradunik ez) ezarriko zaie" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Kudeatu onuradunak" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "onuradun berria" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interfazea" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Tokikoa" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transakzioak" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transferentzia" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Inportatu/Esportatu" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Txostena" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Babeskopia" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Karpetak" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Sistemaren hizkuntza" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Aukeratu HomeBank fitxategientzat karpeta lehenetsi bat" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Aukeratu HomeBank babeskopia fitxategientzat kapeta lehenetsi bat" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Aukeratu inportatzeko karpeta lehenetsi bat" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Aukeratu esportatzeko karpeta lehenetsi bat" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Aukera orokorrak" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX aukerak" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF aukerak" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV aukerak" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(transakzio inportatua soilik)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Bereizlea:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Leiho nagusiko txostenak" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "_Elementu maximoak:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Hasierako iragazkia" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Estatistika-aukerak" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Erakutsi _zenbatekoz" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Erakutsi _tasa-zutabea" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Erakutsi _xehetasunak" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Aurrekontu-aukerak" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Gaitu" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Aurrezarria:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Erabiltzaile-interfazea" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Hizkuntza:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formatua:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a tokiko asteko egunen izen laburtua.\n" "%A tokiko asteko egunen izen osoa. \n" "%b tokiko hil izen laburtua. \n" "%B tokiko hil izen osoa. \n" "%c tokiko dataren eta orduaren adierazpen egokia. \n" "%C mende zenbakia (urtea zati 100 eta osokora moztua) zenbaki dezimal gisa " "[00-99]. \n" "%d hileko eguna zenbaki dezimal gisa [01,31]. \n" "%D %m/%d/%y-ren baliokidea. \n" "%e hileko eguna zenbaki dezimal gisa [1,31]; digitu bakarra aurretik zuriune " "batekin. \n" "%j urteko eguna zenbaki dezimal gisa [001,366]. \n" "%m hila zenbaki dezimal gisa [01,12]. \n" "%p tokiko dataren adierazpen egokia. \n" "%y urtea menderik gabe zenbaki dezimal gisa [00,99]. \n" "%Y urtea mendearekin zenbaki dezimal gisa." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Zerga-urtea" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_Hasiera:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Neurketa unitateak" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Erabili _miliak distantzietarako" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Erabili _galoiak erregairako" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Erakutsi beti gogoratuak" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Erakutsi beti hutsak" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Erakutsi etorkizuna:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "egun lehenago" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Ezkutatu berdinkatuak" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Transakzio elkarrizketa" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Gaitu _memoria automatikoki osatzea honekin" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "egun segidan" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Erakutsi gehitzean berrespen-testua 5 s-z" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "GTK ezarpenak" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Sareta-marra:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Diagrama-aukerak" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Leganda letra-tamaina txikiagoa" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Tresna-barra:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Gaitu babeskopia automatikoak" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "Mantendu beharreko babeskopia _kopurua:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Babeskopia egunean behin egiten da" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Zorroak:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Babeskopiak:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Partekatu fitxategiak" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Inportatu:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Esportatu:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Programa-hasiera" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Erakutsi harrera-pantaila" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Kargatu azkena irekitako fitxategia" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Idatzi berandututako transakzio programatuak" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Eguneratu monetak online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Berrezarri hobespen guztiak" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Hobespen guztiak\n" "lehenetsitako balioetara\n" "berrezarri nahi dituzu?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Hobespenak" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informazioa" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "HomeBank berrabiarazi beharko duzu\n" "hizkuntza aldaketak eragina izan dezan." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Babeskopiaren direktorioa aldatu egin da,\n" "kokaleku berrira '.bak' fitxategia kopiatu beharko zenuke." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Etiketa honi ezin izena aldatu\n" " '%s'(e)tik '%s'(e)ra,\n" "izen hau ja badago." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Konbinatu '%s' etiketa" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Etiketa honi esleitutako transakzioak,\n" "behean hautatutako etiketara mugituko dira." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Ezabatu '%s' etiketa" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Etiketa erabilita dago.\n" "Etiketa hori erabiltzen duten transakzioetatik ezabatuko da." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Kudeatu etiketak" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "etiketa berria" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "%s-(e)ko transakzioa sortua." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Barne-transferentzia hautsi nahi duzu?\n" "\n" "Jarraituz gero helburu transakzioa ezabatuko da." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Hautsi" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Erakutsi _programatuak" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Erakutsi kontu _guztiak" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Erabili txantiloi bat" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Gehitu eta _mantendu" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Gehitu transakzioa" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Gehitu txantiloia" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Jarauntsi transakzioa" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Jarauntsi txantiloia" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editatu transakzioa" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editatu txantiloia" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- idatzi: d, d/m, m/d data oso bat\n" "- erabili gezi teklak + KTRL edo MAIUS\n" "- hustu gaurko" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "Nor_i:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Transakzio-zatiak" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "Kontu_a:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "_2 liburua" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- idatzi letraren bat automatikoko osatzeko\n" "- idatzi testu berria sarrera sortzeko" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "_Kategoria:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Egoera:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Memoria" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Abisua: zenbatekoaren eta kategoriaren zeinua ez datoz bat" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Editatu zenbait transakzio" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Mota aldatu\n" "transferentziara" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Ezabatu guztiak" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Aplikatu" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Utzi" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Transakzioen zenbatekoa:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Esleitu gabe:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Zatien batura:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Abisua: zatien batura eta transakzio mota ez datoz bat" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Abisua: zatien batura eta transakzioaren zenbatekoa ez datoz bat" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(motarik ez)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banku-kontua" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Eskudirua" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Aktiboa" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditu-txartela" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Pasiboa" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Kontu korrontea" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Aurrezki-kontua" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Eguna" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Posible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Lehenago" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Ondoren" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Denboran" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Urte" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Astea" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Hiruhilekoa" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Urte erdia" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Sartu" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Baztertu" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Hil hau" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Hurrengo hila" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Hurrengo 30 egunak" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Hurrengo 60 egunak" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Hurrengo 90 egunak" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Gas. eta Ira." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Edozein mota" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Edozein egoera" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Konpentsatu gabea" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Berdinkatu gabea" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Kategoriarik gabea" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Sistemaren lehenetsiak" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Ikonoak soilik" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Testua soilik" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Testua ikonoen azpian" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Testua ikonoen ondoan" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontala" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Bertikala" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Biak" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "h-e-u" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "e-h-u" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "u-h-e" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ez ikusi egin" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Erantsi memoriara" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Erantsi onuradunera" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulazioa" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Koma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Puntu eta koma" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Zuriunea" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Urtarrila" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Otsaila" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Martxoa" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Apirila" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Ekaina" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Uztaila" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Abuztua" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Iraila" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Urria" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Azaroa" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Abendua" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Iraila" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Bilatu..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Txekea" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Banku-transferentzia" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Zordunketa-txartela" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Agindu iraunkorra" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Ordainketa elektronikoa" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Abonua" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Finantza-erakundearen komisioa" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Zuzeneko zordunketa" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/bg.po0000644000175000017500000033215214775770037010370 # Bulgarian translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-02-11 16:11+0000\n" "Last-Translator: Georgi121270 \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: bg_BG\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Лични финанси" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d операции" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d операции, %d избрани, средно: %s, сума: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Изтриване" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Промени" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "Превключване" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Създаване" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Всички операции" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Не бяха намерени подобни транзакции !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Не бяха открити несъответствия !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Сумата на всяка транзакция ще бъде разделена на %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Конвертирай" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Няма променена операция" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "Транзакцията беше променена: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Добавяне..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Наследяване..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Редактиране..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Без" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Изчистено" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "Потвърдена" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Състояние" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Без" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Създай шаблон..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Изтриване…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Запиши като QIF" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Запиши като CSV" #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Копирай" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Постави" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Постави (днес)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Редактиране" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Преобразувай в Евро" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Инструменти" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Премесети операцията нагоре" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Премести операцията надолу" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Добавяне на нова операция" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Добавяне" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Наследяване от текущата операция" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Наследяване" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Редактиране на текущата операция" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Редактиране" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Изтриване на избраните операции" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(затворен)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Покажи" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Обновяване" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Редактиране на филтър" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Обновяване на резултатите" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Днес:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Бъдеще:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Отхвърляне на незапазените промени по файл '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Върни" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Добре дошли в HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Затваряне" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Отваряне на _последно отворения файл" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Създаване на _нов файл" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Отваряне на съществуващ файл" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Отваряне на _примерния файл" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Прочетете _ръководството на HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Конфигуриране на _настройките" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Показване на прозореца всеки път" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Грешка при отваряне на \"%s\", файлът не съществува.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Непозната грешка" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Грешка при четене или записване на файла '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Файлът '%s' не е във валиден формат за HomeBank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Файлът '%s' е бил запазен с по-нова версия на HomeBank\n" "и не може да бъде зареден с текущата версия." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Грешка във файл" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Файлът е бил променен след като беше отворен." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Ако го запазите, всички външни промени може да се загубят. Запазване въпреки " "това?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Запазване въпреки това" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Изчисти" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Файл" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Нов" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Отваряне..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Запазване" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Съхраняване като..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Импортиране..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Връщане" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Свойства..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Спиране на програмата" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Настройки..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Изглед" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Лента с инструменти" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Второстепенна валута" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Управление" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Сметки..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Получатели..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Категории..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Етикети..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "График/Шаблон..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Назначения" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Валути..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Бюджет..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Бюджет (табличен вид)" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Операции" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Добавяне...." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Показване..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Настройка на графика..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Отчети" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Статистики..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "Отчет _тенденции" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Баланс..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "_Бюджет..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Разходи за автомобил..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Показване на инициализиращия екран" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Анонимен документ..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Помощ" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Ръководство" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Докладване за проблем..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Превеждане на програмата..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Относно" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Нов" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Създаване на нов файл" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Отвoри" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Отваряне на файл" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Отваряне на скоро използван файл" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Запис" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Запазване на текущия файл" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Сметка" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Управление на сметките" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Получател" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Управление на получатели" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Категория" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Управление на категории" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Управление на операции по график и шаблони" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Бюджет" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Управление на бюджета" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Назначение" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Управление на назначенията" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Показва операциите на избраната сметка" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Добавяне на транзакция" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Статистики" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Зареждане доклада със статистики" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Отваряне Отчет тенденции" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Баланс" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Отваряне на балансов отчет" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Зареждане доклада за бюджета" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Разходи за автомобил" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Отваряне на отчет за разходи за автомобил" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Помощ" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Дарение" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Планирано" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Бъдеще" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Напомняне" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Днес" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(без категория)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Състояние" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Етикет" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Сума" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Неизвестно" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(без получател)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ФАЙЛ]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Грешка в браузъра" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Грешка при показване на адреса \"%s\"" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Вашите сметки" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Покажи всички" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Разширяване на всички" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Свиване на всички" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Няма операции за добавяне" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "операцията е добавена: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Проверка на резултат от операции по график" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Общо" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Пропусни" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Друго" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Разход" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Приход" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Обща сума" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Сметки" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Приета" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Осчетоводени" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Днес" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- разделяне -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Дата" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Записка" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Етикети" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Съвпадение" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Резултат" #: ../src/list-report.c:957 msgid "Average" msgstr "Усреднен" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Следваща дата" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d под %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Списък" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Преглед на резултатите като списък" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Линия" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Преглед на резултатите като линии" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Подробно" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Включване на подробности" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Обновяване" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Печат" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Доклад на баланса" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Показване" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Мащабиране X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Филтър" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Обхват:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_От:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_До:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Избор:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Всичко" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Обръщане" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Изразходвано" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Месец" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Няма дефинирани сметки в бюджета" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" "Трябва да включите поне една сметка от диалоговия прозорец за сметки." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Доклад за бюджета" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Режим:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Тип:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Резултат:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Бюджет:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Изразходвано:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s от %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Колона" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Легенда" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Включване на легенда" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Валутен курс" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Включване на процент" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Статистика" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "Преглед по:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Общо:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Приход:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Разход:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Отчет тенденции" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Натрупване" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Времеви отрязък" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Километраж" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Гориво" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Цена" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Разстояние" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Експортиране" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Изнасяне като CSV-файл" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Отчет за разходи за автомобил" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Категория:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Километраж:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Разход:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Цена на гориво:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Друг разход:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Обща цена:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(без)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Видимо" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Име на сметката" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Грешка" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Не може да се добави сметка '%s',\n" "името вече съществува." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Тази сметка не може да бъде преименувана\n" "от '%s' на '%s',\n" "Това име вече съществува." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Управление на сметките" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Изтриване" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Преименуване" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Общи" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Група:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_Номер:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Начално салдо:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Валути" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "тази сметка е _затворена" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Бележки:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Действия" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Автоматизация" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "изключване от _отчет на сметките" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "изключване от _бюджета" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "изключване от _всички отчети" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Разни" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Номер на текущия чек" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Чекова книжка _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Чекова книжка _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Балансови лимити" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Следваща _дата:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "На _всеки:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Край на седмицата:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Спиране след:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Управление на операции по график и шаблони" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Шаблон" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Разписание" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Търсене" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Бележки" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Отказ" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Добре" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Условие" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Търсене:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Различаване на главни и малки" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Получател:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Припокриване" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Плащане:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Етикети:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Управление на назначенията" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "HomeBank поддържа различни валути" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Настройка на допълнителни валути" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Добави" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Не е открит" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Файл с шаблон:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Име:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Настройки на файла" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Избери валути" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Създаване на сметка" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Валиден" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Име" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Отваряне" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Познати файлове" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF файлове" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX файлове" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV-файлове" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Всички файлове" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "нова сметка" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "пропуснато" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Без повторно показване" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Подредба по дата:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "дни" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Съвпадането се прави в следния ред: по сметка, сума и дата.\n" "Толерантност на датата 0 означава точно съвпадение" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Добре дошли" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Импортиране" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Потвърждение" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Грешка във формата на файла" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Управление на бюджета" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Баланс:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "Изчистване" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Настройки" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "Наблюдение на тази категория на_сила" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Яну" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Фев" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Мар" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Апр" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Май" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Юни" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Юли" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Авг" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Окт" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Ноем" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Дек" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Приход" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Тази категория не може да се преименува,\n" "от '%s' на '%s',\n" "името вече съществува." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Управление на категориите" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Десетични позиции:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Ако продължите, валутните курсове ще бъдат нулирани. Не забравяйте да ги " "обновите" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Валути" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Изнасяне като QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Внасяне от CSV-файл" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Файлове на HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank откри някои операции, които може да са асоциирани с вътрешния " "трансфер." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Записка:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Изчистване" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Атрибути на файл" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Операции по график" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Плащане:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Този получател не може да се преименува\n" "от '%s' на '%s'.\n" "Името вече съществува." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Управление на получатели" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Интерфейс" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Операции" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Трансфер" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Внасяне/Изнасяне" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Отчет" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Системен език" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Изберете стандартна папка за файлове на HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Изберете стандартна папка за внасяне" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Изберете стандартна папка за изнасяне" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Настройки на OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Начален филтър" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Настройки на статистиката" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Показване по _количество:" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Показване на колоната про_цент" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Показване на _подробности" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Настройки на бюджета" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Включване" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Шаблон" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Език:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Фискална година" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Започва на:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Мерни единици" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Използване на _мили за километража" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Винаги показвай напомнянията" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Настройки на графиките" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Лента с _инструменти:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Внасяне:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Изнасяне:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Стартиране на програмата" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Показване на начален екран" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Зареждане на последно отваряния файл" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Обнови валутните курсове онлайн" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Настройки" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Данни" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "За да влезе промяната на езики в сила\n" "трябва да рестартирате HomeBank." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Добави и остани" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Добавяне на операция" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Наследяване на операция" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Дата:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Сметка:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Състояние:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Записка:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Сума по операцията:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Без назначение:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Брой разбивки:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(без тип)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Банка" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "В брой" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Притежание" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Кредитна карта" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Задължение" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Спестявания" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Ден" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Преди" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "След" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Време" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Година" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Седмица" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Тримесечие" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Полугодие" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Включване" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Изключване" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Този месец" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Следващия месец" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Следващите 30 дни" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Следващите 60 дни" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Следващите 90 дни" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Разход и приход" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Който и да е тип" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Какъвто и да е статус" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Непотвърден" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Без категория" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "По подразбиране за системата" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Само икони" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Само текст" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Текст под иконите" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Текст край иконите" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "м-д-г" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "д-м-г" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "г-м.д" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Пренебрегване" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Добавяне към записка" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Януари" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Февруари" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Март" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Април" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Юни" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Юли" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Август" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Септември" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Октомври" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Ноември" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Декември" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Септ" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Търсене..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Чек" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Банков превод" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Дебитна карта" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Постоянно плащане" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Електронно разплащане" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Депозит" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI такса" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Директен дебит" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ar.po0000644000175000017500000034321414775770056010404 # Arabic translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-01-15 13:24+0000\n" "Last-Translator: Maxime DOYEN \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "مصرف البيت" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "حساباتي" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "مجاني وسهل الاستخدام لجميع الناس" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "مالي;محاسبة;ميزانية;شخصي;نقدي;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "برنامج هوم بانك هو برنامج مجاني ويستطيع ان يساعدك في ادارة حساباتك الشخصية " "والمالية" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "تم تصميم البرنامج لكي يكون سهل الاستخدام وخصوصا في انشاء التقراير والاتطلاع " "على الاحصاءات المالية وذلك عن طريق استخدام اقوى ادوات الفلترة وايضا الشاشات " "الرسومية الجذابة." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "إن كنت تريد برنامجًا مجانيًا وسهلًا لإدارة الحسابات الشخصية \"مصرف البيت\" " "هو ضالتك." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transactions" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Locked. Click to unlock" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Unlocked. Click to lock" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "ح_ذف" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "أمتأكد من تغير حاله لـ\"خالي\"؟" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "بعض التحويلات المحددة تم تسويتها." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_غيّر" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Are you sure you want to toggle the Reconciled status?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_بدّل" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "إ_نشيء" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "All transactions" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "There is %d group of similar transactions" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "لم يتم العثور على حوالات مشابهة" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "تحقق من التحويلات الداخلية" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "ليس هناك تضارب!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "هناك تضارب في: %d\n" "هل تريد إصلاحه؟" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "جميع مبالغ الحوالات سيتم قسمتها على %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_تحويل" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "لم تعدَل أي معاملة (عملية)" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "العاملات المعدلة: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "نتيجة المهام التلقائية" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "أ_ضِف…" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_توريث..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_عدّل..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_لا شيء" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "تن_ظيف" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_سُويت" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "ال_حالة" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "لا شيء" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Edit _Multiple..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "عرض الت_قسيم" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copy raw amount" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "أنشئ قالب" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "إنشاء مهمة..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "اح_ذف..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "ف_وق" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_تحت" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "صدر لملف QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "صدر إلى ملف CSV ..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "طباعة..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_حساب" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "نسخ" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "لصق" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "لصق (اليوم)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_تحرير" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "علامة مكرر..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "التحقق من التحويل الداخلي" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Auto. assignments" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "التحويل لليورو..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_أدوات" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Move transaction up" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Move transaction down" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "أضف معاملة جديدة" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "اضافة" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "توريث من المعاملة النشطة" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "وراثة" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "عدّل المعاملة النشطة" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "تحرير" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Toggle cleared for selected transaction(s)" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Toggle reconciled for selected transaction(s)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Edit multiple transactions" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Delete selected transaction(s)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Reconciled changes is" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(closed)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Show" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Refresh" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Date _gap:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Edit filter" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "تحديث النتائج" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro as _minor" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Reconciled:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Cleared:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "اليوم:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "المستقبل:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Revert unsaved changes to file '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Revert" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Are you sure you want to anonymise the file?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Proceeding will anonymise any text, \n" "like 'account x', 'payee y', 'memo z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymise" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Welcome to HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_إغلاق" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Open _last opened file" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Create a _new file" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Open an existing file" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Open the _example file" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Read HomeBank's _Manual" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configure _preferences" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Show this window next time" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Open the backup file?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Open backup" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "غير قادر على فتح '%s' , لان الملف غير موجود\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Unknown error" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O error for file '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "The file '%s' is not a valid HomeBank file." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "ملف الخطأ" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "The file has been modified since reading it." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "If you save it, all the external changes could be lost. Save it anyway?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "S_ave Anyway" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Clear" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_ملف" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_جديد" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_فتح..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Open _Recent" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_حفظ" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Save _As..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Import..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Export as QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "استعادة" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restore backup" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Properties..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_خروج" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "الخيارات.." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_اعرض" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Toolbar" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Bottom Lists" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro minor" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "نظم ..." #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "ال_حسابات.." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_المستفيدين..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "التصانيف.." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Tags..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Scheduled/Template..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Assignments..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Currencies..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "الميزانية.." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (table view)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_عمليات" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "اضافة.." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "عرض.." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Set scheduler..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Post scheduled" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_تقارير" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "ا_حصائيات.." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trend Time..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balance..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "ال_ميزانية.." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Vehicle cost..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Show Welcome Dialogue..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "File statistics..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymise..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_مساعدة" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "ال_محتويات" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Get Help Online..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Check for updates..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Release Notes" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "تقرير عن مشكلة.." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "ترجمة هذا البرنامج.." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "عن" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "New" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Create a new file" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Open" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Open a file" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Open a recently used file" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Save" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Save the current file" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "الحساب" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Manage the accounts" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "المستفيد" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Manage the payees" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "التصنيف" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Manage the categories" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Scheduled/Template" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Manage the scheduled/template transactions" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "الميزانية" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Manage the budget" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Assignment" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Manage the automatic assignments" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "عرض عمليات الحساب المحدد" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Add transactions" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistics" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "فتح تقرير احصائي" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trend time" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Open the Trend Time report" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Open the Balance report" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "فتح تقرير الميزانية" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Vehicle cost" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Open the vehicle cost report" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Help" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donate" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Donate to HomeBank project" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Scheduled" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "المستقبل" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Remind" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Today" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(no memo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(no category)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "invalid CSV format" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "الوسم" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "الكمية" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Unknown" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(no payee)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(no group)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ملف]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Browser error." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "لا يمكن عرض الرابط '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(no institution)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Your accounts" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Show all" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expand all" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Collapse all" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "No transaction to add" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transactions added: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Check scheduled transactions result" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "maximum post date" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "الاجمالي" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Skip" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Edit & P_ost" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Post" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Other" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Expense" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "الدخل" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "imported account" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Grand total" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "last reconciled" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "until overdraft" #: ../src/list-account.c:753 msgid "before maximum" msgstr "before maximum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Accounts" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Reconciled" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "تم المسح" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "اليوم" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- split -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- this needs a category -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "التاريخ" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "الوسوم" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Match" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "النتيجة:" #: ../src/list-report.c:957 msgid "Average" msgstr "Average" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Late" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Still" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Next date" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d تحت %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "القائمة" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "عرض النتائج كقائمة" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "خط" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "عرض النتائج كاسطر" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "التفاصيل" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Toggle detail" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "تحديث" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Print" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Balance report" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Display" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Show empty line" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filter" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_المدى:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "من:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "إلى:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Select:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "الكل" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "عكس" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "الانفاق" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "الشهر" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " over" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " left" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " under" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stack" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "View results as stack bars" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Result to clipboard" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Result to CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detail to clipboard" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detail to CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "No account is defined to be part of the budget." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "You should include some accounts from the account dialogue." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "تقرير الميزانية" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Mode:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "ال_نوع:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Only out of budget" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Result:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "الميزانية:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "الانفاق:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s by %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Too many columns to display" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Please select a wider interval and / or a narrower date range" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Column" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "View results as column" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Donut" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "View results as doughnut" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "View results as stack" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stack 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "View results as stack 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legend" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Toggle legend" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Rate" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Toggle rate" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "تقرير احصائي" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_View by:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Sort by _amount" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Compare Exp. & Inc." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "الدخل:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "النفقة:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Average: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trend Time Report" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Cumulate" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Time slice" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "متر" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "الوقود" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "السعر" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Export" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "تصدير كملف CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Vehicle cost report" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "تصنيف:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "متر:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "الاستهلاك:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "تكاليف الوقود:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "تاليف اخرى:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "التكاليف الاجمالية:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(لا شيء)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "مرئي" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Account name" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "خطأ" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Cannot add an account '%s',\n" "this name already exists." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Cannot delete account '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Are you sure you want to permanently delete '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "If you delete an account, it will be permanently lost." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "إدارة الحسابات" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Delete" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Rename" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "عام" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Group:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institution:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umber:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Start _balance:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Currency:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "this account was _closed" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notes:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Behaviour" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automation" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Default _Template:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Report exclusion" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "exclude from account _summary" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "exclude from the _budget" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "exclude from any _reports" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Misc." #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Current cheque number" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Chequebook _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Chequebook _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Balance limits" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Overdraft at:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "If you delete a scheduled/template, it will be permanently lost." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Next _date:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "كل:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "More options" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Week end:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Stop after:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "posts" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Manage scheduled/template transactions" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Template" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Schedule" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Search" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notes" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "This search text already exists at position %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Cancel" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condition" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Search:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_In:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Case _sensitive" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Amou_nt:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Assignments" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_المستفيد:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Overwrite" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "مدفوعات:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Tags:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(rule %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "If you delete an assignment, it will be permanently lost." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Manage Assignments" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "All the elements you setup here can be changed later if required." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Title:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Setup additional currencies" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Add" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Not found" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Setup categories for my language" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Preset file:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Create my first account" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "الاسم" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Start File Setup" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "File Options" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Choose Currencies" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Choose Categories" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Create Account" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Finish File Setup" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Valid" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Name" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Open" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Known files" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "ملفات QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "ملفات OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "ملفات CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "كل الملفات" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "new global account" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "new account" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "skipped" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d of %d transactions" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transaction(s), %d similar, %d existing, %d selected" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transaction(s), %d selected" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Some date cannot be converted. Please try to change the date order to " "continue." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Import %s in_to:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "this file" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "this account" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Import transactions from bank or credit card" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Don't show this again" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "There is too much account in the files you choose,\n" "please use the back button to select less files." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Target account identification by name or number failed." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Date order:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Import memos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Swap memos with payees" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Name:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Memo:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Sentence _case memo/payee" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Toggle amount" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Similar transaction in target account (possible duplicate)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "الايام" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Run automation" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Enrich with _payee default" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Run automatic _assigment rules" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Click \"Apply\" to update your accounts." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Welcome" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Select file(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Import" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmation" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "خطأ في نسق الملف" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "The CSV file must contains the exact numbers of columns,\n" "separated by a semi-colon, please see the help for more details." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Are you sure you want to clear input?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "If you proceed, every amount will be set to 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Clear" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget for %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "إدارة الميزانية" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balance:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "is the same each month" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Clear input" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "is different per month" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Options" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Force monitoring this category" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "مايو" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Summary" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totals" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Monthly" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Add a category" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Apply" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Parent category" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Category name" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "This category is used.\n" "Any transaction using that category will be set to (no category)." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Merge categories" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transactions assigned to category '%s', will be moved to the category " "selected below." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Target category" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Delete the category '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Are you sure you want to clear inputs for '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Add category" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Remove category" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Merge" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Clear input" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Delete unused categories" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Are you sure you want to permanently\n" "delete unused categories?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "ال_دخل" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "لا يمكن اعادة تسمية هذا التصنيف من '%s' الى '%s' لان هذا الاسم موجود اصلاً" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Merge category '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transactions assigned to this category,\n" "will be moved to the category selected below." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Include _subcategories" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "ادارة التصانيف" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Move/Merge" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "new category" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "new subcategory" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Base currency" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Exchange rate" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Last modified" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Edit currency" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Currency" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Customise" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Is pre_fix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Decimal char:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Frac digits:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Grouping char:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Select base currency" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Select currency" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO Code" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Add a custom _currency" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Update online error" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "If you delete a currency, it will be permanently lost." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Change the base currency" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Currencies" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Update online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Set as base" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "File statistics" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transaction" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Upgrade" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Select a base currency" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Starting with v5.1, HomeBank can manage several currencies.\n" "If the currency below is not correct, please change it:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Currency:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "تصدير كملف QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "استيراد ملف CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Open HomeBank file" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Open HomeBank backup file" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Save HomeBank file as" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "الملفات" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "File backup" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "All backups" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Save changes to the file before closing?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Close _without saving" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Export as _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Folder:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Pick a Folder" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Filename:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Add Status column" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detail split lines" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "The file will not be in HomeBank CSV format, because you exported\n" "from 'All transaction', or you selected an option." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Export as PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Export as _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Select action for target creation" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Create _New" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Use _Selection" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Source transfer" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Target association suggested" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memo:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Reset" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Void" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "File properties" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Scheduled transactions" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Delete unused payee" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Are you sure you want to\n" "permanently delete unused payee?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_yment:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "لا يمكن اعادة تسمية هذا المستفيد من '%s' الى '%s' , لان هذا الاسم موجود " "بالفعل" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Merge payee '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Delete the payee '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "ادارة المستفيدين" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "new payee" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "الواجهة" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Locale" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transactions" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transfer" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Import/Export" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Report" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Backup" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Folders" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "System Language" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Choose a default HomeBank files folder" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Choose a default HomeBank backup files folder" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Choose a default import folder" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Choose a default export folder" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "General options" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX options" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF options" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV options" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(transaction import only)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separator:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Main window reports" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max _items:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Initial filter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistics options" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "عرض حسب _الكمية" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "عرض عمود المعدل" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "عرض _التفاصيل" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Budget options" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Enable" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Preset:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "User interface" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Language:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Fiscal year" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Starts _on:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Measurement units" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Use _miles for metres" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Use _gallon for fuel" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Always show remind" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Always show void" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Lock reconciled for any changes" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Show future:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "days ahead" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Hide reconciled" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Transaction dialogue" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Enable _memo autocomplete with" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "rolling days" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Show add confirmation text for 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk settings" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Grid line:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Charts options" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Smaller legend _font" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_شريط الادوات:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Enable automatic backups" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Number of backups to keep:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Backup frequency is once a day" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Wallets:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Backups:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Exchange files" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_استيراد:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_تصدير:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Program start" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Show splash screen" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "تحميل الملف المفتوح سابقاً" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Post pending scheduled transactions" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Update currencies online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Reset All Preferences" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Do you really want to reset\n" "all preferences to default\n" "values?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "الخيارات" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "المعلومات" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "You will have to restart HomeBank\n" "for the language change to take effect." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Merge tag '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Delete the tag '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "This tag is used.\n" "That tag will be deleted from any transaction using it." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Manage Tags" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "new tag" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transaction of %s created." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Break" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Show _scheduled" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Show _all accounts" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Use a template" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Add & _Keep" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "اضف عملية" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Add template" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "وراثة عملية" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Inherit template" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Edit transaction" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Edit template" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_التاريخ:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "T_o:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Transaction splits" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "حساب:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Book _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- type some letter for autocompletion\n" "- type new text to create entry" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_gory:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_الحالة:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Warning: amount and category sign don't match" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Edit multiple transactions" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Type as\n" "transfer" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Delete all" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Apply" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Cancel" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Transaction amount:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Unassigned:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Sum of splits:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Warning: sum of splits and transaction type don't match" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Warning: sum of splits and transaction amount don't match" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(no type)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "البنك" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "نقدي" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Asset" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "بطاقة اتمانية" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Liability" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Checking" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Savings" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "اليوم" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Before" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "After" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Time" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "السنة" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "الأسبوع" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Quarter" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Half Year" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "تضمين" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "استثناء" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "This month" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Next month" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Next 30 days" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Next 60 days" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Next 90 days" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Exp. & Inc." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Any Type" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Any Status" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Uncleared" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Unreconciled" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Uncategorised" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "افتراضيات النظام" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "ايقونات فقط" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "نص فقط" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "نص تحت الايقونات" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "نص بجانب الايقونات" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Both" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-y" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-y" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "y-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignore" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Append to Memo" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Append to Payee" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tab" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Comma" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Semicolon" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Space" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "يناير" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "فبراير" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "مارس" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "ابريل" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "يونيو" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "يوليو" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "اغسطس" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "سبتمبر" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "اكتوبر" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "نوفمبر" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "ديسمبر" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Search..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Bank Transfer" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debit card" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Standing order" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Electronic payment" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI fee" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Direct Debit" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/uk.po0000644000175000017500000040206414775770045010416 # Ukrainian translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-08-14 18:11+0000\n" "Last-Translator: v_2e \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Особисті фінанси" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Безкоштовна, проста бухгалтерія для кожного" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "фінанси;облік;бюджет;особисте;гроші" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank безкоштовне програмне забезпечення яке допоможе вести домашню " "бухгалтерію" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Вона створена щоб бути легкою у використанні та мати можливість детально " "аналізувати власні фінанси вмкористовючи різні фільтри і чудові графіки." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Якщо ви шукаєте цілковито безкоштовний і простий спосіб управління домашньою " "бухгалтерією, тоді HomeBank це саме те що вам потрібно." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d операцій" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d операцій, %d обраних, середнє: %s, сума: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Заблоковано. Натисніть для розблокування" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Вилучити" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Ви впевнені, що хочете змінити статус на \"Нема статусу\"?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Якась із обраних операцій вже має статус \"Врегульована\"" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Змінити" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Ви впевнені, що хочете змінити статус на \"Врегульована\"?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Змінити" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Створити" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Створити шаблон" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Усі операції" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Група %d для подібних транзакцій вже існує" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Подібних транзакцій не знайдено!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Перевірте результат внутрішнього переказу" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Невідповідности не знайдено!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Знайдено невідповідність: %d\n" "хочете переглянути та виправити?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Сума кожної операції буде розділена на %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Конвертувати" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Операцію не змінено" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "операція %d змінена" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Результат автоматичного призначення" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Додати..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Успадкувати" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "З_міни…" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Жоден" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Очистити" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Врегульовано" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Стан" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Відсутнє" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Масово змінити..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Вигляд _Розділити" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Створити шаблон..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Створити призначення" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "В_илучити…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "В_гору" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "У_низ" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Експортувати в QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Експортувати в CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Друкувати..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Рахунок" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Копіювати" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Вставити" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Вставити (сьогодні)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Зміни" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Позначити як дублікат..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Перевірка внутрішнього переказу" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Автопризначення" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Конвертувати у Евро..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Знадоби..." #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Перемістити операцію вгору" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Перемістити операцію вниз" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Додати нову транзакцію" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Додати" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Успадкувати з активної транзакції" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Успадкувати" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Редагувати транзакцію" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Редагувати" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Змінити статус на \"Очищено\" для вибраних опарацій" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Змінити статус на \"Узгоджено\" для вибраних операцій" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Редагувати транзакції" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Вилучити вибрані транзакції" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(зачинено)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Показати" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Оновити" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Дата _пропуску:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Змінити фільтр" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Оновити результати" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Евро _мінор" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Узгоджено:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Очищено" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Сьогодні:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Майбутнє:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Відновити операції з останнього збереженого '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Зміни які було зроблено у файлі буде втрачено\n" "- Буде завантажено останній збережений файл (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Відновити" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Ви впевнені, що хочете анонімізувати файл?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Процедура анонімізує будь який текст,\n" "наприклад: рахунок, отримувач платежу, коментарі" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Анонімізувати" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Ласкаво просимо в HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Закрити" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Відкрити _останній відкритий файл" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Створити файл" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Відкрити файл" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Відкрити файл з прикладом" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Читати посібник Bank _Manual" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Налаштування _параметрів" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Показувати це вікно наступного разу" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Ви збираєтеся відкрити файл резервної копії '%s'.\n" "Ви впевнені що хочете це зробити?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Відкрити файл відновлення?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Відкрити резервну копію" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Не вдається відкрити «%s», файлу не існує.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Невідома помилка" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Помилка вводу/виводу для файлу '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Неприпустимий файл '%s' для HomeBank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Файл '%s' було збережено новішою версією HomeBank\n" "і не може бути завантажено поточною версією." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Помилка файлу" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "З моменту відкриття файл було змінено" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "Якщо Ви збережете його, всі зовнішні зміни буде втрачено. Зберегти?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "З_берегти попри все" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Очистити" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Файл" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Новий" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Відкрити..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Відкрити _нещодавнє" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Зберегти" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Зберегти _як..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Імпорт..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Експортувати у QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Скасувати" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Відновити з резервної копії" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Властивості…" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Вихід" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Налаштування..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Перегляд" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Панель знарядь" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Показати заплановані/майбутні/нагадування" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Евро мінор" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Управління" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Гаманець" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Ра_хунки..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Отримувачі" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Категорії..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Теґи..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Заплановані/Шаблони" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Призначення" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Валюти..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Кошторис..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Кошторис (таблиця)" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Транзакції" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Додати..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Показати..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Налаштувати планувальник" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Опублікувати всі заплановані" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Звіти" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Статистика" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Часова Тенденція..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Баланс..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Ко_шторис" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Вартість авто..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Показувати діалог привітання..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Статистика файлу..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Анонімні..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Довідка" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Зміст" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Отримати довідку в Інтернеті..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Перевірити оновлення..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Нотатки щодо випуску" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Звітувати про проблему..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Перекласти цю програму" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Про програму" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Створити" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Створити новий файл" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Відкрити" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Відкрити файл" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Відкрити нещодавній файл" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Зберегти" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Зберегти поточний файл" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Рахунок" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Керування рахунками" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Отримувач" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Керування отримувачами" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Категорія" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Керування категоріями" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Заплановано/Шаблони" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Керування запланованними/шаблоннми тразакціями" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Кошторис" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Керування кошторисом" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Призначення" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Керування автоматичними підстановками" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Показати транзакції по рахункам" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Додати операцію" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Статистика" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Відкрити звіт статистики" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Часова Тенденція" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Відкрити звіт Часової Тенденції" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Баланс" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Відкрити звіт Балансу" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Відкрити звіт кошторису" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Вартість авто" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Відкрити звіт вартости авто" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Довідка" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Пожертва" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Пожертвувати проєкту HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Заплановані" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Майбутні" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Нагадати" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Сьогодні" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(немає пам'ятки)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(без категорії)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "неправильний формат CSV" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Тип" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Статус" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Теґ" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Платіж" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Сума" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Текст" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Невідомий" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f л" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "км/л" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "миль/л" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(нема отримувача)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(без групи)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(без позначки)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-К%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ФАЙЛ]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Помилка перегляду." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Неможливо показати URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(без установи)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Ваші рахунки" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Показати все" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Розгорнути все" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Згорнути все" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Нема транзакції щоб додати" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "транзакція додана: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Перевірте заплановані транзакції" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "поточна дата" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Усього" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "Пр_опустити" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Змінити та В_икласти" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Надіслати" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Інше" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Витрати" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Прибуток" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "Імпортовані рахунки" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Загальний підсумок" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "останній звірений" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "до овердрафту" #: ../src/list-account.c:753 msgid "before maximum" msgstr "до максимуму" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Рахунки" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Узгоджено" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Сплачено" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Сьогодні" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- розбити -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- вкажіть категорію -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Дата" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Коментар" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Теґи" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Відповідність" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Результат" #: ../src/list-report.c:957 msgid "Average" msgstr "Середнє" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Пізніше" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Нерухомо" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Наступна дата" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d за %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Перелік" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Переглянути у вигляді переліку" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Лінійна" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Переглянути у вигляді рядка" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Деталі" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Показати докладніше" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Оновити" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Друк" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Балансовий звіт" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Показати" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Інтер_вал:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Показувати порожні рядки" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Збільшення X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Фільтр" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Діапазон:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Від:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Кому:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Обрати:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Усе" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Спротилежнити" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Витрачено" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Місяць" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " над" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " залишилося" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " під" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Стовпчики" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Переглянути у вигляді стекової діаграми" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Результат у буфер обміну" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Результат у CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Деталі у буфер обміну" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Деталі у CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Жоден рахунок не описано як частину кошторису." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Вам потрібно включити рахунки у Діалозі рахунків." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Звіт по кошторису" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Режим:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Тип:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Тільки які не входять у кошторис" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Результат:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Кошторис:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Витрачено:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s у виконанні %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Забагато стовпців для показу" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Оберіть ширший інтервал та / чи більш вузький діапазон дат" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Стовпчик" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Переглянути результати у стовпчиковій діаграмі" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Кругова діаграма" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Переглянути результати у круговій діаграмі" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Перегляд результатів у вигляді стеку" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Стек 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Перегляд результатів у вигляді стеку 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Умовні позначення" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Увімкнути пояснення" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Оцінка" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Показати у відсотках" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Статистичний Звіт" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Перегляд за" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "Режим _Балансу" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Ґатункувати за _сумою" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Порівняти витрати і надходження" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Усього:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Прибуток:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Витрата:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Середнє: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Часова Тенденція" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Накопичуваний" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Часовий зріз" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Лічильник" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Пальне" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Ціна" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Відст." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Експорт" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Експортувати як CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Звіт видатків на авто" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Категорія:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Лічильник:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Споживання:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Вартість палива:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Інші видатки:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Загальна вартість:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(нема ім'я)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Видимий" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Назва рахунку" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Помилка" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Неможливо додати рахунок '%s',\n" "така назва вже зайнята." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Неможливо вилучити рахунок '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Ви впевнені, що хочете остаточно вилучити '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Якщо ви вилучите рахунок, його буде назавжди втрачено." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не можу перейменувати цей Рахунок,\n" "з '%s' на '%s',\n" "ця назва вже використовується." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Керування рахунками" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Вилучити" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Змінити назву" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Перемістити вгору" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Перемістити вниз" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Основне" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Група:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Установа:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_Число:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Початковий _баланс:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Валюта:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "рахунок _закрито" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Нотатки:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Поведінка" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Автоматизація" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Типовий шаблон:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Виключити зі звіту" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "виключити зі звіту по рахунку" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "залишок в підсумок" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "виключити з _кошторису" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "виключити з усіх _звітів" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Різне" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Поточний номер чека" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Чекова книжка_1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Чекова книжка_2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Обмеження балансу" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "Овердрафт:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Щонай_більше:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Якщо ви вилучите заплановане/шаблон, він буде втрачений безповоротно." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Наступна _дата:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Періодичність:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Додаткові параметри" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Вихідні:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Зупинити після" #: ../src/ui-archive.c:972 msgid "posts" msgstr "записи" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Управління розкладом/шаблоном операцій" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Шаблон" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Розклад" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Пошук" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Нотатки" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Цей пошуковий рядок вже існує на %d позиції" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Скасувати" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Так" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Умова" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Шукати:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_В:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "З урахуванням _регістру" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Су_ма:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_ТА" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Призначення" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Отримувач:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Замінити" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Пла_тіж:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Теґи:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(правило %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Якщо ви вилучите завдання, його буде назавжди втрачено." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Перемістити до..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Правило переміщення" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Переміщення" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Керування підтвердженнями" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Асистент допоможе зробити базове налаштування нового\n" "файлу HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Усі елементи, які ви тут налаштували, можуть бути змінені пізніше, якщо " "знадобиться." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Зміни не буде застосовано, доки ви не\n" "натиснете кнопку \"Застосувати\" на завершальному кроці." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank буде показувати у заголовку головного вікна\n" "Ваше ім'я чи будь-який довільний текст." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Заголовок:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank підтримує облік у декількох валютах. Базова валюта\n" "є типовою валютою для рахунків і звітів." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Основна:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Налаштувати додаткові валюти" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Додати" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Не знайдено" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank може створити перелік категорій для вашої мови\n" "якщо існує файл CSV, створений спільнотою." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Налаштувати категорії для моєї мови" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Файл налаштувань:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank дозволяє імпортувати ваші рахунки із завантажених\n" "фінансових файлів або ви можете створити рахунки вручну." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Створити рахунок" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Назва:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Це сторінка підтвердження,\n" "\n" "Натисніть \"Застосувати\", щоб зберегти зміни." #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Почати налаштування файлу" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Параметри файлу" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Обрати валюти" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Обрати категорії" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Створити рахунок" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Закінчити налаштування файлу" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<Новий рахунок (основний)>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<Новий рахунок>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "<Пропустити цей рахунок>" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Дійсний" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Назва" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Відкрити" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Відомі файли" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Файли QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX файли" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV файли" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Усі файли" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "новий основний рахунок" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "новий рахунок" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "пропустити" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d з %d операцій" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d операцій, %d схожих, %d наявних, %d обраних" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d операцій, %d обраних" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Дата не може бути сконвертована. Будь ласка змініть дату для продовження." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Імпортувати %s в:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "цей файл" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "цей рахунок" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Назва: %s\n" "Номер: %s\n" "Файл: %s\n" "Кодування: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Імпортувати операції з банку чи кредитової картки" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "За допомогою цього помічника, ви будете проходити процес імпорту однієї чи " "декількох\n" "завантажених виписок з вашого банку або кредитової картки. У таких форматах:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Рекомендовані: .OFX чи .QFX\n" "(можуть мати назви Money™ чи Quicken™)\n" "Підтримується: .QIF\n" "(застаріла версія Quicken™)\n" "Для джедаїв: .CSV\n" "(рідний формат збереження HomeBank, для подробиць дивіться " "документацію)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Жодних змін не буде здійснено, поки ви не натиснете \"Застосувати\" на " "останньому кроці." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Не показувати це знову" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Перетягніть один або декілька файлів для імпорту.\n" "Ви також можете використовувати кнопки додати/вилучити." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Забагато рахунків у вибраних вами файлах,\n" "використовуйте кнопку Назад, щоб обрати меншу кількість файлів." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Помилка ідентифікації рахунку за іменем чи номером." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Порядок дати:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Імпортувати коментарі" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Зіставити коментарі з отримувачами платежів" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Ім'я:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Коментар:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Призначити _коментар/отримувач платежу" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Перемикнути суму" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Аналогічна операція у цільовому рахунку (можливий дублікат)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "дні" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Зіставлення відбувається: за рахунком, сумою та датою.\n" "Різниця у датах 0 днів означає точний збіг" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Запуск автоматичних операцій" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Заповнити _типовим отримувачем" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Запустити автоматичні правила" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Натисніть \"Застосувати\", щоб оновити свої рахунки." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Вітаємо" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Оберіть файл(и)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Імпорт:" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Схвалення" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Помилка формату файлу" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Файл CSV повинен містити точну кількість стовпців,\n" "відокремлених через \";\" докладніше читайте у документації" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Ви впевнені, що волієте очистити введені дані?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Якщо ви продовжите, то кожна наступна сума буде 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Очистити" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Кошторис для %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Управління кошторисом" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Баланс:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "є однаковим кожного місяця" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Очистити" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "різні, кожного місяця" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Параметри" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Примусово стежити за цією категорією" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "січ" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "лют" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "бер" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "кві" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "тра" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "чер" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "лип" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "сер" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "вер" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "жов" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "лис" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "гру" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Підсумок" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Усього" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Щомісячно" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Додати категорію" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Застосувати" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Батьківська категорія" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Назва категорії" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Ця категорія вже використовується.\n" "Будь-яка операція, що використовує цю категорію, буде змінена на (без " "категорії)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Об'єднання категорій" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Операції, привласнені категорії \"% s\", будуть переміщені до категорії, " "вибраної далі." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Цільова категорія" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Вилучити категорію '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Ви впевнені, що волієте очистити введені дані для '% s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Додати категорію" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Вилучити категорію" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Об'єднати" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Спорожнити поле вводу" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# транз" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# конф" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Вилучити невикористані категорії" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Ви впевнені, що волієте назавжди\n" "вилучити невикористовувані категорії?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Редагувати категорію" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Змінити тип" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Прибуток" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Неможливо перейменувати цю Категорію,\n" "з '%s' до '%s',\n" "вказане ім'я уже існує." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Поєднати категорію '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Операції, що відносяться до цієї категорії,\n" "буде переміщено у категорію, вибрану нижче." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Включаючи підкатегорії" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Керування категоріями." #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Показувати приховані" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Показувати вживані" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Перемістити/Поєднати" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Показати/приховати" #: ../src/ui-category.c:2552 msgid "new category" msgstr "нова категорія" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "Нова підкатегорія" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Основна валюта" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Символ" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Курс обміну" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Востаннє змінено" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Змінити валюту" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Валюта" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Формат" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Налаштувати" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "С_имвол:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Префікс" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Десятковий символ:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Цифр після коми:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Символ розділеня на групи:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Обрати основну валюту" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Обрати валюту" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Код ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Додати свою _валюту" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Помилка оновлення через Інтернет" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Вилучення валюти призведе до її втрати назавжди" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Змінити основну валюту" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Якщо ви продовжите, курси інших валют\n" "стануть рівними 0, не забудьте оновити їх" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Валюти" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Оновити через мережу" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Встановити як основну" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Статистика файлів" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Транзакція" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Оновити" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Обрати основну валюту" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Запуск v5.1, HomeBank може працювати з різними валютами.\n" "Якщо вказана нижче валюта невірна, виберіть іншу." #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Валюта:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Експортувати у файл QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Імпортувати з CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Відкрити файл HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Відкрити резервну копію HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Зберегти файл HomeBank як" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Файли HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Резервне копіювання файлів" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Усі резервні копії" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Зберегти зміну у файл перед завершенням?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Якщо ви не збережете зміни, їх буде втрачено.\n" "Кількість змін: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Закрити _без збереження" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Експорт _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Тека:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Оберіть теку" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Ім'я файлу:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Додати колонку статусу" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Лінії роподілу деталей" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Файл не буде в форматі HomeBank CSV, тому що ви експортуєте\n" "із 'Всі транзакції', або ви обрали опцію." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Експорт до PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Експортувати як_PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Homebank орієнтований на ековідповідальну поведінку, \n" "тому для друку використовується найрозповсюдженіший цифровий формат: PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Оберіть дію для цільового створення" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "С_творити" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank виявив операції, які, можливо, призначені для внутрішніх переказів." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Пам'ятка" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "С_кинути" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Застосувати" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Сума прописом" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Завжди показувати" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Скасувати" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Додано" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Відредаговано" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Встановлений термін" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Наступний платіж" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Властивості файлу" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Заплановані транзакції" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "з кожного" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "місяць" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Вилучити невикористовуваних платників" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Ви впевнені, що волієте назавжди \n" "вилучити невикористовуваних платників" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Пл_атіж:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Неможливо перейменувати цього Отримувача,\n" "з '%s' до '%s',\n" "вказане ім'я вже існує." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Здійснити злиття отримувача сплати '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Транзакції, що відносяться до цього отримувача,\n" "буде переміщено отримувачу, вибраному нижче." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "Вилучити отримувача сплат '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Цей отримувач вже використовується. Усі операції, \n" "що відносяться до цього отримувача, буде скасовано як \"без отримувача\"." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Керування Отримувачами" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "новий отримувач сплат" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Зовнішній вигляд" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Регіональні налаштування" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Транзакції" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Переказ" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Імпорт/Експорт" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Звіт" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Резервування" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Теки" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Мова системи" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Обрати основну теку для файлів HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Оберіть типову теку для збереження резервних копій" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Обрати типову теку для імпорту" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Обрати типову теку для експорту" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Загальні параметри" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Налаштування OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Налаштування QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Налаштування CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(лише для імпорту транзакцій)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Розділювач:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Звіт у головному вікні" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Щонайбільше _елементів:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Початковий фільтр" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Параметри статистики" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Показати за _сумою" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Показувати стовпчик _курсу" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Показати докладно" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Налаштування кошторису" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Увімкнути" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Шаблон:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Користувацький інтерфейс" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Мова:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Формат:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a - скорочена назва дня тижня;\n" "%A - повна назва дня тижня;\n" "%b - скорочена назва місяця;\n" "%B - повна назва місяця;\n" "%c - докладне подання дати та часу;\n" "%C - рік, розділений на 100 й усічений до цілого числа, як десяткове число " "[00-99];\n" "%d - день місяця у вигляді десяткового числа [01,31];\n" "%D - те ж, що %m/%d/%y;\n" "%e - день місяця як десяткове число [1,31], одна цифра через пробіл;\n" "%j - день року у вигляді десяткового числа [001,366];\n" "%m - місяць як десяткове число [01,12];\n" "%P - подання відповідної дати;\n" "%y - рік без сторіччя, як десяткове число [00,99];\n" "%Y - рік із сторіччям у якості десяткового числа [2000,2099];" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Фіскальний рік" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Починаєть _ся:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Одиниці виміру" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Використовувати _милі замість метрів" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Об'єм палива в _галонах" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Завжди показувати нагадування" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Завжди показувати скасовані" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Заблокувати звірку для будь-яких змін" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Показувати майбутні на:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "днів наперед" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Приховати узгоджені" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Діалог транзакцій" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Увімкнути автозаповнення _заміток за допомогою" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "ковзні дні" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Показувати текст схвалення додавання впродовж 5 сек." #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Налаштування Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "Лінія _сітки" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Налаштування діаграм" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Менший шрифт легенди" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Панель знарядь" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "Дозволити автоматичне резервне копіювання" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Кількість створюваних копій:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Резервна копія створюється один раз на день" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Гаманці:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Резервні копії:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Обмін файлами" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Імпорт:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Експорт:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Старт програми" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Показувати екран заставки" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Завантажити файл, який відкривався останнім" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Записати очікувані заплановані транзакції" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Оновити курси валют" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Скинути всі параметри" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Ви справді волієте скинути\n" "всі налаштування до початкових\n" "значень?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Налаштування" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Відомості" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Вам доведеться перезавантажити HomeBank\n" "щоб зміна мови набула чинности." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Теку для резервних копій змінено,\n" "Вам може знадобитися скопіювати файли '.bak' у нову теку." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Змінити позначку..." #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не вдалося перейменувати позначку\n" "з \"%s \" на \"%s\",\n" "оскільки це ім'я вже існує." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Поєднати позначки '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Транзакції з цією позначкою будуть прив'язані\n" "до позначки, вибраної нижче." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Вилучити позначку '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "Позначка використовується. Її буде вилучено з усіх транзакцій." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Керування позначками" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "нова позначка" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Транзакцію %s створено." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Ви бажаєте перервати передавання даних?\n" "\n" "Це скасує отримувану транзакцію." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Розірвання" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Показати _заплановані" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Показати _всі рахунки" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Використовувати шаблон" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Додати та _Залишити" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Додати транзакцію" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Додати шаблон" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Успадкувати транзакцію" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Скопіювати шаблон" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Змінити транзакцію" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Редагувати шаблон" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Дата:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- Напишіть: д, д/м, м/д або повну дату\n" "- Клавішами стрілок+ ctrl або shift\n" "- Залишити порожнім для поточної дати" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "П_о:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Розбиття транзакції" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Нема тарифу для автоматичного заповнення" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Рахунок:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Книга _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- Почніть набирати літери для автозаповнення\n" "- Уведіть новий текст для створення запису" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "_Категорія:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Стан:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "За_мітка:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Увага: кількість і знак категорії не відповідають" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Редагування декількох операцій" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Тип\n" "Переказ" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Вилучити всі" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Застосувати" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Скасувати" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Кількість транзакцій:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Непризначений:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Сума розділених:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Попередження: сума розбиття на категорії та тип транзакції не збігаються" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Попередження: сума розбиття на категорії та сума транзакції не збігаються" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(без типу)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Банк" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Готівка" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Активи" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Кредитова картка" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Заборгованість" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Перевірка" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Збереження" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "День" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Можливо" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "До" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Після" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Час" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Рік" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Тиждень" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Два тижні" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Квартал" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Пів року" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Увімк." #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Виключити" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Вчора" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Завтра" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Минулого тижня" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Цього тижня" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Наступний тиждень" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Минулі два тижні" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Ці два тижні" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Наступні два тижні" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Минулий місяць" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Цей місяць" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Наступний місяць" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Минулий квартал" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Цей квартал" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Наступний квартал" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Минулий рік" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Цей рік" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Наступний рік" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Останні 90 днів" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Останні 60 днів" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Останні 30 днів" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Минулі 12 місяців" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Увесь час" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Поточний місяць" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Наступний місяць" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Наступні 30 днів" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Наступні 60 днів" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Наступні 90 днів" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Витрати та Прибутки" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Будь-який тип" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Будь-який стан" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Не сплачено:" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Незвірені" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Без категорії" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Усталені системні налаштування" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Лише піктограми" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Лише текст" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Текст під піктограмами" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Текст поруч із піктограмами" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "По горизонталі" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "По вертикалі" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Обидва" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "м-д-р" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "д-м-р" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "р-м-д" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Нехтувати" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Додати в закладки" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Додати до отримувача сплати" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Табуляція" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Кома" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Крапка з комою" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Пробіл" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Січень" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Лютий" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Березень" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Квітень" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Червень" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Липень" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Серпень" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Вересень" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Жовтень" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Листопад" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Грудень" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Вер" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Шукати…" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Чек" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Банківський переказ" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Дебетова картка" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Регулярний платіж" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Електронний платіж" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Депозит" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "FI гонорар" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Прямий дебет" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ta.po0000644000175000017500000046336314775770054010414 # Tamil translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-04-24 10:05+0000\n" "Last-Translator: Palaniappan M \n" "Language-Team: Tamil \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "இல்லவங்கி" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "தனிநபர் நிதி" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "அனைவருக்கும் இலவச, எளிதான, தனிப்பட்ட கணக்கு" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "நிதி; கணக்கியல்; வரவு செலவு திட்டம்; தனிப்பட்ட; பணம்" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "இல்லவங்கி என்பது ஒரு இலவச மென்பொருளாகும் (\"இலவச பேச்சு\" மற்றும் \"இலவச " "பீர்\" போன்றது) இது உங்கள் தனிப்பட்ட கணக்கை நிர்வகிக்க உதவும்." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "இது பயன்படுத்த எளிதானது மற்றும் சக்திவாய்ந்த வடிகட்டுதல் கருவிகள் மற்றும் " "அழகான வரைபடங்களைப் பயன்படுத்தி உங்கள் தனிப்பட்ட நிதியை விரிவாக பகுப்பாய்வு " "செய்ய வடிவமைக்கப்பட்டுள்ளது." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "உங்கள் தனிப்பட்ட கணக்கியலை நிர்வகிக்க முற்றிலும் இலவச மற்றும் எளிதான வழியை " "நீங்கள் தேடுகிறீர்கள் என்றால், இல்லவங்கி விருப்பமான மென்பொருளாக இருக்க " "வேண்டும்." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d பரிவர்த்தனைகள்" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" "%d பரிவர்த்தனைகள், %d தேர்வுகள், சராசரி: %s, கூட்டுத்தொகை: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "பூட்டப்பட்டது. திறக்க சொடுக்கவும்" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "திறக்கப்பட்டது. மூட சொடுக்கவும்" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_நீக்கு" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "இல்லை என நிலையை மாற்ற நிச்சயமாக விரும்புகிறீர்களா?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "உங்கள் தேர்வில் சில பரிவர்த்தனைகள் ஏற்கனவே இணக்கம் செய்யப்பட்டுள்ளன." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_மாற்று" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" "கணக்கிணக்க நிலையில் மாற்றம் செய்ய நீங்கள் நிச்சயமாக விரும்புகிறீர்களா?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_மாற்று" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_உருவாக்கு" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "வார்ப்புருவை உருவாக்கு" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "ஒதுக்கீட்டை உருவாக்கு" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "அனைத்து பரிவர்த்தனைகள்" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "%d குழு போன்ற ஒரே மாதிரியான பரிவர்த்தனைகள் உள்ளது" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "ஒத்த பரிவர்த்தனை எதுவும் இல்லை!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "உள் பரிமாற்ற முடிவை சரிபார்க்கவும்" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "முரண்பாடு எதுவும் காணப்படவில்லை!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "முரண்பாடுகள் கண்டறியப்பட்டன: %d\n" "நீங்கள் மதிப்பாய்வு செய்து சரிசெய்ய விரும்புகிறீர்களா?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "ஒவ்வொரு பரிவர்த்தனைத் தொகையும் %.6f ஆல் வகுக்கப்படும்." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_மாற்று" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "பரிவர்த்தனை எதுவும் மாற்றப்படவில்லை" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "பரிவர்த்தனை மாற்றப்பட்டது: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "தானியங்கி ஒதுக்கீடு முடிவு" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "சேர் (_A)..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_மரபுவழிபெறு..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_திருத்து..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_ஒன்றுமில்லை" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_அழிக்கப்பட்டது" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_கணக்கிணக்கம் செய்யப்பட்டது." #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_நிலை" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "ஒன்றுமில்லை" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_பல திருத்தங்கள் ..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "காண் _பிரி" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "மூல தொகையை நகலெடுக்கவும்" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "வார்ப்புரு உருவாக்கு..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "ஒதுக்கீட்டை உருவாக்கு..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_நீக்கு..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_மேலே" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_கீழே" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "QIF பதிவேற்று..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "CSV பதிவேற்று..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "அச்சிடு..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "கணக்கு (_c)" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "நகலெடு" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "ஒட்டு" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "ஒட்டு (இன்றைய தேதி)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_திருத்து" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "நகலைக் குறிக்கவும்..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "உள் பரிமாற்றத்தை சரிபார்க்கவும்" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "தானியங்கு பணிகள்" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "யூரோவுக்கு மாற்று..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_கருவிகள்" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "பரிவர்த்தனைகளை மேலே கொண்டு செல்" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "பரிவர்த்தனைகளை கீழே கொண்டு செல்" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "புதிய பரிவர்த்தனையை சேர்" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "சேர்" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "செயலில் உள்ள பரிவர்த்தனையிலிருந்து மரபுவழி பெறு" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "மரபுவழி பெறு" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "செயலில் உள்ள பரிவர்த்தனையைத் திருத்தவும்" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "திருத்து" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "தேர்ந்தெடுக்கப்பட்ட நீக்கப்பட்ட பரிவர்த்தனைகளை மாற்று" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "தேர்ந்தெடுக்கப்பட்ட கணக்கிணக்கம் செய்யப்பட்ட பரிவர்த்தனைகளை மாற்று" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "பல பரிவர்த்தனைகளைத் திருத்தவும்" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "தேர்ந்தெடுக்கப்பட்ட பரிவர்த்தனைகளை நீக்கு" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "கணக்கிணக்கம் மாற்றங்கள் என்பது" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(மூடப்பட்டது)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - இல்லவங்கி" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "காட்டு" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_புதுப்பி" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "நாள் _இடைவெளி:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "%d எதிர்வரும் நாட்கள் காண்பிப்பதை மாற்று" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "வடிப்பியை திருத்துக" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "முடிவுகளை புதுப்பி" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "யூரோ _சிற்றளவு" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "கணக்கிணக்கம் செய்யப்பட்டது:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "தீர்க்கப்பட்டவை:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "இன்று:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "எதிர்காலம்:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "சேமிக்கப்படாத மாற்றங்களை '%s' கோப்புக்கு திருப்பி விடலாமா?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- கோப்பில் செய்யப்பட்ட மாற்றங்கள் நிரந்தரமாக இழக்கப்படும்\n" "- கடைசி சேமிப்பிலிருந்து கோப்பு மீண்டும் ஏற்றப்படும் (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_முந்திய நிலைக்கு மாற்று" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "கோப்பை அநாமதேயமாக்க நீங்கள் நிச்சயமாக விரும்புகிறீர்களா?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "முன்னெடுப்பது எந்த உரையையும் அநாமதேயமாக்கும், \n" "'கணக்கு x', 'பணம் பெறுவோர் y', 'குறிப்பாணை z',... போல" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_அநாமதேயமாக்கு" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "இல்லவங்கிக்கு உங்களை வரவேற்கிறோம்" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_மூடு" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "திற _கடைசியாக திறக்கப்பட்ட கோப்பு" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "புதிய கோப்பினை உருவாக்கு" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_ஏற்கனவே உள்ள கோப்பைத் திறக்கவும்" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "எடுத்துக்காட்டு கோப்பைத் திறக்கவும்" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "இல்லவங்கி _கையேடு படி" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "_விருப்பங்களை உள்ளமைக்கவும்" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "அடுத்த முறை இந்த சாளரத்தைக் காட்டு" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "நீங்கள் காப்புப்பிரதி '%s' கோப்பைத் திறக்கப் போகிறீர்கள்.\n" "\n" "இதைச் செய்ய நிச்சயமாக விரும்புகிறீர்களா?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "காப்புப்பிரதி கோப்பை திறக்க வேண்டுமா?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_காப்புப்பிரதி திறக்கவும்" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "திறக்க முடியவில்லை '%s', கோப்பு இல்லை.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "அறியப்படாத பிழை" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "கோப்பு உள்ளீடு/வெளியீடு பிழை '%s'" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "'%s' கோப்பு ஓர் இல்லவங்கி கோப்பல்ல." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "கோப்பு '%s' இல்லவங்கியின் உயர் பதிப்பில் சேமிக்கப்பட்டது\n" "மற்றும் தற்போதைய பதிப்பால் ஏற்ற முடியாது" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "கோப்புப் பிழை" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "கோப்பு படித்ததில் இருந்து மாற்றப்பட்டுள்ளது." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "நீங்கள் அதை சேமித்தால், அனைத்து வெளிப்புற மாற்றங்களையும் இழக்க நேரிடும். " "எப்படியும் சேமிக்கலாமா?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "எப்படியாவது சேமி" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "தெளிவாக்கு" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_கோப்பு" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_புதிய" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_திற..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "சமீபத்தியவற்றை திற (_R)" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "சேமி (_S)" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "_வேறு பெயரில் சேமி..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "பதிவிறக்கு..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "QIF ஆக பதிவேற்று" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "மீட்டமை" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "காப்புப்பிரதியை மீட்டெடுக்கவும்" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "பண்புகள்..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_வெளியேறு" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "விருப்பத்தேர்வுகள்..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_நோக்கு" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_கருவிப்பட்டை" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_கீழ் பட்டியல்கள்" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "யூரோ சிற்றளவு" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_நிர்வகி" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "பணப்பை..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "கண_க்குகள்..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_பணம் பெறுவோர்" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "பகுப்புகள்..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "குறிச்சொற்கள்..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "அட்டவணை/முன்மாதிரி..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "பணிகள்..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "செலாவணிகள்..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "வரவு செலவுத்திட்டம்..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "வரவு செலவுத்திட்டம் (அட்டவணை காட்சி)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_பரிவர்த்தனைகள்" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "சேர்..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "காட்டு..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "திட்டமிடுபவரை சரி செய்..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "திட்டமிட்ட நேரத்திற்குப் பின்" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_அறிக்கைகள்" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_புள்ளித்தொகுப்பியல்..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_போக்கு நேரம்..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_மீதி..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "வரவு_செலவு திட்டம்..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_வாகன விலை..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "வரவேற்பு உரையாடலைக் காட்டுக..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "கோப்பு புள்ளிவிவரங்கள்..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "அநாமதேயப்படுத்து..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_உதவி" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_உள்ளடக்கம்" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "இணையத்தில் உதவி பெறவும்..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "புதுப்பிப்புகளை தேடவும்..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "வெளியீட்டு குறிப்புகள்" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "பிரச்சினையை முறையிடு..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "இந்த செயலியினை மொழிபெயர்க்கவும்..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "__பற்றி" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "புதிய" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "புதிய கோப்பினை உருவாக்கவும்" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "திற" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "ஓர் கோப்பைத் திறக்கவும்" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "சமீபத்தில் பயன்படுத்திய கோப்பைத் திறக்கவும்" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "சேமி" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "தற்போதைய கோப்பை சேமி" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "கணக்கு" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "கணக்குகளை நிர்வகிக்கவும்" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "பணம் வாங்கிக் கொள்பவர்" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "பணம் வாங்கிக் கொள்பவர்களை நிர்வகிக்கவும்" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "வகை" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "வகைகளை நிர்வகிக்கவும்" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "அட்டவணைப்படுத்தப்பட்டது/முன்மாதிரி" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "அட்டவணைப்படுத்தப்பட்ட/முன்மாதிரி பரிவர்த்தனைகளை நிர்வகிக்கவும்" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "வரவு செலவு திட்டம்" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "வரவு செலவு திட்டத்தை நிர்வகிக்கவும்" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "வகுப்பீடு" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "தானியங்கி வகுப்பீடுகளை நிர்வகிக்கவும்" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "தேர்ந்தெடுக்கப்பட்ட கணக்கு பரிவர்த்தனைகளை காட்டு" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "பரிவர்த்தனைகளை சேர்" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "புள்ளிவிவரங்கள்" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "புள்ளி விவர அறிக்கையை திற" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "போக்கு நேரம்" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "போக்கு நேர அறிக்கையை திற" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "நிலுவை" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "இருப்பு அறிக்கையை திற" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "வரவு செலவு திட்ட அறிக்கையை திற" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "வாகன செலவுகள்" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "வாகன செலவுகள் அறிக்கையை திற" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "உதவி" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "நன்கொடையளி" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "இல்லவங்கி திட்டத்திற்கு நன்கொடையளிக்கவும்" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "அட்டவணைப்படுத்தப்பட்டது" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "எதிர்காலம்" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "ஞாபகப்படுத்து" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_இன்று" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(குறிப்பாணை இல்லை)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(வகையினம் இல்லை)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "தவறான CSV வடிவமைப்பு" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "வகை" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "நிலை" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "குறிச்சொல்" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "பணம் கொடுத்தல்" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "தொகை" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "உரை" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "அறியப்படவில்லை" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(பணம் பெறுவோர் யாருமில்லை)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(குழு எதுவுமில்லை)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(குறி இல்லை)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[கோப்பு]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "உலாவி பிழை." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "'%s' சுட்டியை காட்ட இயலவில்லை" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(நிறுவனம் எதுவுமில்லை)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "உங்கள் கணக்குகள்" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "எல்லாவற்றையும் காட்டு" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "எல்லாவற்றையும் விரி" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "எல்லாவற்றையும் மூடு" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "கூட்டுத்தொகை: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "சேர்ப்பதற்கு பரிவர்த்தனை ஏதுமில்லை" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "பரிவர்த்தனை சேர்க்கப்பட்டது: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "அட்டவணைப்படுத்தப்பட்ட பரிவர்த்தனையின் முடிவினை சரிபார்" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "இடுகை நாளிலிருந்து அதிகபட்சம்" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "மொத்தம்" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_தவிர்" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "திருத்தம் & இ_டுகை" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_இடுகை" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "மற்றவை" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "செலவு" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "வருமானம்" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "உள்ளீடு செய்யப்பட்ட கணக்கு" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "ஆக மொத்தம்" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "கடைசியாக கணக்கிணக்கம் செய்யப்பட்டது" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "அதிகப்பற்று வரை" #: ../src/list-account.c:753 msgid "before maximum" msgstr "அதிகபட்சத்திற்கு முன்" #: ../src/list-account.c:856 msgid "Accounts" msgstr "கணக்குகள்" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "கணக்கிணக்கம் செய்யப்பட்டது" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "நீக்கப்பட்டுவிட்டன" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "இன்று" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "-பிரி-" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "-இதற்கு ஒரு வகை தேவை-" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "தேதி" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "குறிப்பாணை" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "குறிச்சொற்கள்" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "பொருத்தம்" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "முடிவு" #: ../src/list-report.c:957 msgid "Average" msgstr "சராசரி" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "காலதாமதம்" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "இன்னும்" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "அடுத்த நாள்" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d கீழ் %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "பட்டியல்" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "முடிவுகளை பட்டியலாகப் பார்க்கவும்" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "வரி" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "முடிவுகளை வரிகளாகப் பார்க்கவும்" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "விவரம்" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "விவரத்தை மாற்று" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "புதுப்பி" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "அச்சிடு" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "இருப்பு அறிக்கை" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "காண்பி" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "இடை_மதிப்பு:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "வெற்று வரியைக் காட்டு" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_பெரிதாக்கு X" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "வடிகட்டி" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_வரிசை" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_இங்கிருந்து:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_பெறுநர்:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "தேர்வு செய்:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "அனைத்தும்" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "தலைகீழாக்கம்" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "_பரிமாற்றத்தை சேர்க்கவும்" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "செலவு" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "மாதம்" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " மேலுள்ள" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " இடதுபக்கம்" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " கீழே" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "கூம்பாக குவி" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "முடிவுகளை உருளை வடிவ பட்டிகளாகப் பார்" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_முடிவுகளை பிடிப்புப் பலகைக்கு அனுப்பு" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_CSVயாக முடிவு" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_பிடிப்புப் பலகைக்கு விவரம்" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_CSVயாக விவரம்" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" "எந்தக் கணக்கும் வரவு செலவு திட்டத்தின் ஓர் அங்கமாக நிர்ணயிக்கப்படவில்லை." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "கணக்கு உரையாடலில் இருந்து சில கணக்குகளை நீங்கள் சேர்க்க வேண்டும்." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "வரவு செலவு திட்ட அறிக்கை" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "முறைமை:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_வகை:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "வரவு செலவு திட்டத்தில் இருந்து மட்டுமே" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "முடிவு:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "வரவு செலவு திட்டம்:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "செலவு:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s மூலம் %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "காண்பிக்க அதிக நெடுவரிசைகள்" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "ஒரு பரந்த இடைவெளி மற்றும் / அல்லது குறுகிய தேதி வரம்பைத் தேர்ந்தெடுக்கவும்" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "நெடுவரிசை" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "முடிவுகளை நெடுவரிசையாகக் காணவும்" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "மோதிர வடிவிலான கேக் வகை" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "மோதிர வடிவிலான கேக் போன்று முடிவுகளைப் பார்க்கவும்" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "முடிவுகளை உருளை வடிவ பட்டிகளாகப் பார்க்கவும்" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "கூம்புக் குவியல் 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "முடிவுகளை கூம்புக் குவியல் 100% ஆகப் பார்க்கவும்" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "குறி விளக்கம்" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "குறி விளக்கத்தை மாற்று" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "விகிதம்" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "விகிதத்தை மாற்று" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "புள்ளி விவர அறிக்கை" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_பார்வைப்படி:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_இருப்பு முறைமை" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "தொகைப்படி வகைப்படுத்து" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "வரவையும் செலவையும் ஒப்பிடு" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "கூட்டுத் தொகை" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "வரவு:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "செலவு:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "சராசரி: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "போக்கு நேர அறிக்கை" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "ஒட்டுமொத்த" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "நேர துண்டு" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "அளவு கருவி" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "எரிபொருள்" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "விலை" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "தூரம்" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "ஏற்றுமதி செய்" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "CSV ஆக ஏற்றுமதி செய்யவும்" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "வாகன செலவு அறிக்கை" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_வகை:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "அளவு கருவி:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "நுகர்வு:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "எரிபொருள் செலவு:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "மற்ற செலவு:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "மொத்த செலவு:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ஒன்றுமில்லை)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "பார்வையில் உள்ள" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "கணக்கின் பெயர்" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "பிழை" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "கணக்கைச் சேர்க்க முடியாது '%s',\n" "இந்த பெயர் ஏற்கனவே உள்ளது." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "'%s' கணக்கை நீக்க முடியாது" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "'%s' ஐ நிரந்தரமாக நீக்க விரும்புகிறீர்களா?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "நீங்கள் ஒரு கணக்கை நீக்கினால், அது நிரந்தரமாக இழக்கப்படும்." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "கணக்கின் பெயரை '%s' லிருத்து '%s' ஆக\n" "மாற்ற முடியவில்லை,\n" "இந்த பெயர் ஏற்கனவே உள்ளது." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "கணக்குகளை நிர்வகி" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "நீக்கு" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "மறுபெயரிடு" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "மேலே நகற்று" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "கீழே நகற்று" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "பொதுவான" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_குழு:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_நிறுவனம்:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "எ_ண்:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "தொடக்க_இருப்பு:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_செலாவணி:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "இந்த கணக்கு _மூடப்பட்டுவிட்டது" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "குறிப்புகள்:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "நடத்தை" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "தானியக்கம்" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "இயல்புநிலை_முன்மாதிரி" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "அறிக்கை விலக்கு" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "கணக்கு _சுருக்கத்திலிருந்து விலக்கு" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "சுருக்கத்தில் சேர்" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "_வரவு செலவு திட்டத்திலிருந்து விலக்கு" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "எந்த _அறிக்கையிலிருந்தும் விலக்கு" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "மற்றவை" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "தற்பொழுதைய காசோலை எண்" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "காசோலை புத்தகம்_1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "காசோலை புத்தகம்_2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "இருப்பு வரம்புகள்" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_அதிகப்பற்றில்:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "அதிக_பட்சம்:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "திட்டமிடப்பட்ட/முன்மாதிரியை நீக்கினால், அது நிரந்தரமாக இழக்கப்படும்." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "அடுத்த _நாள்:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "எல்_லா:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "அதிக விருப்பத்தேர்வுகள்" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "வார இறுதி:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_பிறகு நிறுத்து:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "கணக்கிலேற்று" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "திட்டமிடப்பட்ட/முன்மாதிரி பரிவர்த்தனைகளை நிர்வகி" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "முன்மாதிரி" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_அட்டவணை" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "தேடு" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "குறிப்புகள்" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "இந்த தேடல் உரை ஏற்கனவே %d நிலையில் உள்ளது" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_ரத்து செய்" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_சரி" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "நிபந்தனை" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_தேடு" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_ல்:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "பெரிய சிறிய எழுத்துக்களை மாற்றி அறியக்கூடிய" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "தொ_கை:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_மற்றும்" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "பணிகள்" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_பணம் பெறுபவர்:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "மேலெழுதுக" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "பண_பட்டுவாடா:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_குறிச்சொற்கள்:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(விதி %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "நீங்கள் ஒரு வேலையை நீக்கினால், அது நிரந்தரமாக இழக்கப்படும்." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "இதற்கு அனுப்பு..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "விதியை நகர்த்தவும்" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "நகர்த்து" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "பணிகளை நிர்வகிக்கவும்" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "இந்த உதவியாளர் உங்களுக்கு இல்லவங்கியில் ஓர் புதிய கோப்பின் \n" "குறைந்தபட்ச உள்ளமைவை அமைக்க உதவுவார்" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "நீங்கள் இங்கு அமைக்கும் அனைத்து கூறுகளும் தேவைப்பட்டால் பின்னர் " "மாற்றப்படலாம்." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "இந்த உதவியமைப்பின் முடிவில், நீங்கள் \"விண்ணப்பி\" என்பதைக் கிளிக் செய்யும் " "வரை \n" "எந்த மாற்றமும் செய்யப்படாது" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "பிரதான சாளரத்திற்கான தலைப்பை இல்லவங்கி காண்பிக்கும்,\n" "அது ஒரு இலவச விவரத்துணுக்கு அல்லது உங்கள் பெயராக இருக்கலாம்." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_தலைப்பு:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "இல்லவங்கி பல செலாவணி நாணயங்களை ஆதரிக்கிறது. அடிப்படை செலாவணி நாணயம்\n" "புதிய கணக்குகள் மற்றும் அறிக்கைகளுக்கான இயல்புநிலை." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "அடிப்படை:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "கூடுதல் செலாவணி நாணயங்களை அமைக்கவும்" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_சேர்" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "காண முடியவில்லை" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "ஒரு CSV கோப்பு இருந்து, சமூகத்தால் வழங்கப்பட்டால்,\n" "இல்லவங்கியால் உங்கள் மொழிக்கான வகைகளை முன் நிரப்ப முடியும்" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "எனது மொழிக்கான வகைகளை அமைக்கவும்" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "கோப்பினை முன்னமை:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "பதிவிறக்கம் செய்யப்பட்ட நிதி நிறுவன கோப்புகளிலிருந்து உங்கள் கணக்குகளை " "இறக்குமதி செய்ய \n" "இல்லவங்கி உதவுகிறது அல்லது உங்கள் கணக்கை கைமுறையாக உருவாக்கலாம்." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "எனது முதல் கணக்கை உருவாக்கு" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_பெயர்" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "இது ஒரு உறுதிப்படுத்தல் பக்கம்,\n" "\n" "விண்ணப்பங்களை செயல்படுத்த 'விண்ணப்பி'யை அழுத்தவும்" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "கோப்பு அமைத்தலை ஆரம்பிக்கவும்" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "கோப்பு விருப்பத் தேர்வுகள்" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "செலாவணி நாணயங்களைத் தேர்ந்தெடுக்கவும்" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "வகைகளைத் தேர்ந்தெடுக்கவும்" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "கணக்கினை உருவாக்கவும்" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "கோப்பு அமைத்தலை முடிக்கவும்" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<புதிய (உலகளாவிய) கணக்கு>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<புதிய கணக்கு>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "<இந்த கணக்கினைத் தவிர்க்கவும்>" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "முறையான" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "பெயர்" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_திற" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "தெரிந்த கோப்புகள்" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF கோப்புகள்" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX கோப்புகள்" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV கோப்புகள்" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "எல்லா கோப்புகளும்" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "புதிய உலகளாவிய கணக்கு" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "புதிய கணக்கு" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "தவிர்க்கப்பட்டவை" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d of %d பரிவர்த்தனைகள்" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" "%d பரிவர்த்தனை(கள்), %d போன்றவை, %d இருக்கும், %d தேர்ந்தெடுக்கப்பட்டவை" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d பரிவர்த்தனை(கள்), %d தேர்ந்தெடுக்கப்பட்டவை" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "சில தேதிகள் மாற்ற முடியாதவை. மேலும் தொடர, தயவுசெய்து நாள் வரிசையை மாற்றவும்." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "%s உள்ளீடு செய்:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "இந்த கோப்பு" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "இந்த கணக்கு" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "பெயர்: %s\n" "எண்: %s\n" "கோப்பு: %s\n" "குறியாக்கம்: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" "வங்கியிலிருந்து அல்லது கடன் அட்டையிலிருந்து பரிவர்த்தனைகளை உள்ளீடு செய்" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "இந்த உதவியமைப்பின் மூலம், பின்வரும் வடிவங்களில் உங்கள் வங்கி அல்லது கடன் " "அட்டையில் இருந்து பதிவிறக்கம் செய்யப்பட்ட அறிக்கைகளை, ஒன்று அல்லது பலவற்றை " "உள்ளீடு செய்யும் செயல்முறை மூலம் நீங்கள் வழிநடத்தப்படுவீர்கள் :" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "பரிந்துரைக்கப்பட்டது: .OFX or .QFX\n" "(சில நேரங்களில் பணம்™ or குயிக்கென்™ எனப்படும்)\n" "ஆதரிக்கப்பட்டது: .QIF\n" "(பொதுவான குயிக்கென்™ கோப்பு)\n" "மேம்பட்ட பயனர்கள் மட்டும்: .CSV\n" "(இல்லவங்கிக்கு மட்டும் உரித்தான வடிவம், ஆவணத்தைப் பார்க்கவும்)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "இந்த உதவியமைப்பின் முடிவில் உள்ள \"விண்ணப்பி\"யை சொடுக்கும் வரை எந்த " "மாற்றமும் செய்யப்படாது." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "இதை மீண்டும் காட்டாதே" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "இறக்குமதி செய்ய ஒன்று அல்லது பல கோப்புகளை இழுத்துவிடவும்.\n" "பட்டியலின் சேர் / நீக்கு பொத்தான்களையும் நீங்கள் பயன்படுத்தலாம்." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "நீங்கள் தேர்வு செய்யும் கோப்புகளில் அதிக கணக்கு உள்ளது,\n" "குறைந்த கோப்புகளைத் தேர்ந்தெடுக்க பின்செல் பொத்தானைப் பயன்படுத்தவும்." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" "பெயர் அல்லது எண் மூலம் இலக்கு கணக்கினை அடையாளம் காண்பது தோல்வியுற்றது." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "நாள் வரிசை:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_குறிப்பாணைகளை இறக்குமதி செய்" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_குறிப்பாணைகளை பணம் பெறுவோருடன் இடமாற்று" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _பெயர்:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _குறிப்பாணை:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "வாக்கிய வழக்கு குறிப்பாணை / பணம் பெறுபவர்" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "தொகையினை _இறுக்கிப்பிடி" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "இலக்கு கணக்கில் இதே போன்ற பரிவர்த்தனை (சாத்தியமான நகல்)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "நாட்கள்" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "கணக்கு, தொகை மற்றும் தேதி வரிசைப்படி பொருத்தம் செய்யப்படுகிறது.\n" "தேதி சகிப்புத்தன்மை 0 நாள் என்பது ஒரு சரியான பொருத்தத்தைக் குறிக்கிறது" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "தானியக்கத்தை இயக்கவும்" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) _இயல்பு பணம் பெறுபவர் மூலம் வளப்படுத்து" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "தானியங்கு _பணி நியமன விதிகளை இயக்கு" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "உங்கள் கணக்குகளைப் புதுப்பிக்க \"விண்ணப்பி\"யை சொடுக்கவும்." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "நல்வரவு" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "தேர்ந்தெடுக்கப்பட்ட கோப்பு(கள்)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "இறக்குமதி செய்" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "உறுதிப்படுத்தல்" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "கோப்பு வடிவப் பிழை" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV கோப்பில் அரைப்புள்ளியால் பிரிக்கப்பட்ட நெடுவரிசையின் சரியான எண்கள் " "இருக்க வேண்டும்,\n" "மேலும் விவரங்களுக்கு உதவியினைப் பார்க்கவும்." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "உள்ளீட்டை நீக்க நீங்கள் நிச்சயம் விரும்புகின்றீர்களா?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "நீங்கள் தொடர்ந்தால், எல்ல தொகைகளும் 0 வாக அமைக்கப்படும்." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_துப்புரவாக்கு" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%s ற்கான வரவு செலவு திட்டம்" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "வரவு செலவு திட்டத்தை நிர்வகி" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "மீதி:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "ஒவ்வொரு மாதமும் ஒரே மாதிரியாக இருக்கிறது" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "உள்ளீட்டை _நீக்கு" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "ஒவ்வொரு மாதமும் வேறாக இருக்கிறது" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "விருப்பத்தேர்வுகள்" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "இந்த வகையை _கட்டாயமாக கண்காணிக்கவும்" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "ஜனவரி" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "பிப்ரவரி" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "மார்ச்" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "ஏப்ரல்" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "மே" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "ஜூன்" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "ஜூலை" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "ஆகஸ்ட்" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "செப்" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "அக்டோபர்" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "நவம்பர்" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "டிசம்பர்" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "சுருக்கம்" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "கூட்டுத்தொகை" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "ஆண்டு\n" "மொத்தம்" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "மாத\n" "சராசரி" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "மாதாந்திர" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "வகையினைச் சேர்" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_செயல்படுத்து" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "பெற்றோர் வகை" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "வகைப் பெயர்" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "இந்த வகை பயன்படுத்தப்பட்டுள்ளது.\n" "அந்த வகையைப் பயன்படுத்தும் எந்தவொரு பரிவர்த்தனையும் (வகை இல்லை) என " "அமைக்கப்படும்" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "வகைகளை ஒன்றாக்கவும்" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "'%s' வகைக்கு ஒதுக்கப்பட்ட பரிவர்த்தனைகள், கீழே தேர்ந்தெடுக்கப்பட்ட வகைக்கு " "நகர்த்தப்படும்." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "இலக்கு வகை" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "'%s'வகையை _நீக்கு" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "'%s'க்கான உள்ளீடுகளை நிச்சயமாக அழிக்க விரும்புகிறீர்களா?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "வகையைச் சேர்" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "வகையினை நீக்கு" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "ஒன்றாக்கு" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "தெளிவான உள்ளீடு" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# பரிவர்த்தனை" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# கட்டமைப்பு" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "உபயோகப்படுத்தப்படாத வகைகளை நீக்கு" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "நிச்சயாமாக நீங்கள் உபயோகப்படுத்தாத வகைகளை நிரந்தரமாக நீக்க " "விரும்புகின்றீர்களா?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "வகையை திருத்து" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "வகையை மாற்று" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_வரவு" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "சிரார்களுக்கு பரப்பு" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "இந்த வகையை '%s' லிருந்து '%s' க்கு, பெயர் மாற்றம் செய்ய முடியவில்லை,\n" "இந்த பெயர் ஏற்கனவே உள்ளது." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "'%s' வகையை ஒன்றாக்கு" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "இந்த வகைக்கு பணிக்கப்பட்ட பரிவர்த்தனைகள்,\n" "கீழே தேர்ந்தெடுக்கப்பட்டுள்ள வகைக்கு நகர்த்தப்படும்." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "_துனை வகைகளை சேர்க்கவும்" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "வகைகளை நிர்வகிக்கவும்" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "மறைந்திருப்பதை காண்பிக்கவும்" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "உபயோகத்தைக் காட்டு" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "நகர்த்து/ஒன்றாக்கு" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "காட்டு/மறை" #: ../src/ui-category.c:2552 msgid "new category" msgstr "புதிய வகை" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "புதிய துணை வகை" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "அடிப்படை நாணயம்" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "குறியீடு" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "செலாவணி மாற்று விகிதம்" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "கடைசியாக மாற்றப்பட்டது" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "நாணயத்தைத் திருத்தவும்" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "நாணயம்" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "படிவம்" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "தனிப்பயனாக்கு (_C)" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_குறியீடு" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "முன்னொட்டு ஆகும்" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_தசம எழுத்து" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_பின்ன இலக்கங்கள்:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_வகைப்படுத்தும் எழுத்து:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "அடிப்படை நாணயத்தைத் தேர்ந்தெடுக்கவும்" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "நாணயத்தைத் தேர்ந்தெடுக்கவும்" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO குறியீடு" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "தனிப்பயன் _நாணயத்தைச் சேர்க்கவும்" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "இணையப் பிழையைப் புதுப்பி" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "நீங்கள் ஒரு நாணயத்தை நீக்கினால், அது நிரந்தரமாக இழக்கப்படும்." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "அடிப்படை நாணயத்தைத் மாற்றவும்" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "நீங்கள் தொடர்ந்தால், பிற நாணயங்களின் விகிதங்கள்\n" "0 வாக அமைக்கப்படும், அதை புதுப்பிக்க மறக்க வேண்டாம்" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "நாணயங்கள்" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "இணையம் மூலம் புதுப்பிக்கவும்" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "அடித்தளமாக அமைக்கவும்" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "கோப்பு புள்ளிவிவரங்கள்" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "பரிவர்த்தனை" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "மேம்படுத்து" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "அடிப்படை செலாவணி நாணயத்தைத் தேர்ந்தெடுக்கவும்" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "பதிப்பு 5.1 தொடங்கி, இல்லவங்கியால் பல செலாவணி நாணயங்களை நிர்வகிக்க முடியும்\n" "கீழே உள்ள செலாவணி நாணயம் சரியாக இல்லை என்றால், தயவுசெய்து அதை மாற்றவும்:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "நாணயம்:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "QIF ஆக ஏற்றுமதி செய்" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "CSV யிலிருந்து இறக்குமதி செய்" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "இல்லவங்கி கோப்பைத் திற" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "இல்லவங்கி காப்புப்பிரதி கோப்பைத் திற" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "இல்லவங்கி கோப்பை இப்படி சேமி" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "இல்லவங்கி கோப்புகள்" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "கோப்பு காப்புபிரதி எடுத்தல்" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "எல்லா காப்புபிரதிகள்" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "கோப்பை மூடுவதற்கு முன் சேமிக்கட்டுமா?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "நீங்கள் சேமிக்கவில்லை என்றால், மாற்றங்கள் நிரந்தரமாக இழக்கப்படும்.\n" "மாற்றங்கள் எண்ணிக்கையில்: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "சேமிக்காமல் _மூடு" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "_CSVஆக ஏற்றுமதி செய்" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "கோப்புறை:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "ஓரு கோப்புறையை தேர்ந்தெடுக்கவும்" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "கோப்புப் பெயர்:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "நிலை நெடுவரிசையைச் சேர்க்கவும்" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "விரிவான பிளவு கோடுகள்" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "'அனைத்து பரிவர்த்தனைக'ளிலிருந்து நீங்கள் ஏற்றுமதி செயவதால் அல்லது நீங்கள் " "ஒரு விருப்பத்தைத் தேர்ந்தெடுத்துள்ளதால், இந்த கோப்பு இல்லவங்கி CSV " "வடிவத்தில் இருக்காது." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "PDF ஆக ஏற்றுமதி செய்" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "_PDF ஆக ஏற்றுமதி செய்" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "இல்லவங்கியில் அச்சிடுதல் ஒரு சூழல் பொறுப்பை நோக்கியதாக உள்ளது\n" "மிகவும் பரவலான டிஜிட்டல் வடிவத்தை நோக்கிய அணுகுமுறை: PDF வடிவம். " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "இலக்கை உருவாக்குவதற்கான செயலைத் தேர்ந்தெடுக்கவும்" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "_புதிதாக உருவாக்கு" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "_தேர்வை உபயோகப்படுத்து" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "மூல பரிமாற்றம்" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "இலக்கு சங்கமம் பரிந்துரைக்கப்பட்டது" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "இல்லவங்கி சில பரிவர்த்தனைகளைக் கண்டறிந்துள்ளது, இது உள் பரிமாற்றம் " "தொடர்புடைய பரிவர்த்தனையாக இருக்கலாம்." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_குறிப்பாணை" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_மீட்டமை" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_உபயோகி" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "தொகை/உரை" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "எப்போதும் காட்டு" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "செல்லாதது" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "சேர்க்கப்பட்டது" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "திருத்தப்பட்டது" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "முடியும் தேதி" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "அடுத்த பணம் செலுத்துதல்" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "முன்னதாக" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "கோப்பு பண்புகள்" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "திட்டமிடப்பட்ட பரிவர்த்தனை" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "ஒவ்வொன்றிலிருந்தும்" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "மாதம்" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "உபயோகிக்கப்படாத பணம் பெறுபவரை நீக்கு" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "நிச்சயம் நீங்கள், உபயோகிக்கப்படாத பணம் பெறுபவரை நீக்க விரும்புகிறீர்களா?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "பணம் பெறுபவரை திருத்து" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "இயல்புநிலை நிரப்பு" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "பணம் _கொடுத்தல்" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "'%s' லிருந்து '%s' ஆக இந்த பணம் பெறுபவரை மாற்ற முடியவில்லை,\n" "இந்தப் பெயர் ஏற்கனவே உள்ளது." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "'%s' பணம் பெறுபவரை சேர்க்கவும்" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "இந்தப் பணம் பெறுபவருக்கு ஒதுக்கப்பட்ட பரிவர்த்தனைகள்,\n" "கீழே தேர்ந்தெடுக்கப்பட்ட பணம் பெறுபவருக்கு நகர்த்தப்படும்." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "'%s' பணம் பெறுபவரை _நீக்கு" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "இந்த பணம் பெறுபவர் பயன்படுத்தப்படுகிறார்.\n" "அந்த பணம் பெறுபவரை எந்தப் பரிவர்த்தனையிலும் பயன்படுத்தினால் (பணம் பெறுபவர் " "இல்லை) என அமைக்கப்படும்" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "பணம் பெறுபவர்களை நிர்வகி" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "புதிய பணம் பெறுபவர்" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "இடைமுகப்பு" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "உள்ளூர்" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "பரிவர்த்தனைகள்" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "பரிமாற்றம்" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "ஏற்றுமதி / இறக்குமதி" #: ../src/ui-pref.c:99 msgid "Report" msgstr "அறிக்கை" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "காப்பு நகல்" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "கோப்புறைகள்" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "கணினி மொழி" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "இயல்புநிலை இல்லவங்கி கோப்புகள் கோப்புறையைத் தேர்வுசெய்க" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "இயல்புநிலை இல்லவங்கி காப்பு கோப்புகள் கோப்புறையைத் தேர்வு செய்யவும்" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "இயல்புநிலை இறக்குமதி கோப்புறையைத் தேர்ந்தெடுக்கவும்" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "இயல்புநிலை ஏற்றுமதி கோப்புறையைத் தேர்ந்தெடுக்கவும்" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "பொதுவான விருப்பங்கள்" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX விருப்பங்கள்" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF விருப்பங்கள்" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV விருப்பங்கள்" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(பரிவர்த்தனை இறக்குமதி மட்டும்)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "பிரிப்பான்:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "முக்கிய சாளர அறிக்கைகள்" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "அதிகபட்ச _பொருட்கள்:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "ஆரம்ப வடிகட்டி" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "புள்ளிவிவர விருப்பங்கள்" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "_தொகை வாரியாகக் காட்டு" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "_விலை நெடுவரிசையைக் காட்டு" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "_விவரங்களைக் காட்டு" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "வரவு செலவு திட்ட விருப்பங்கள்" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_செயல்படுத்து" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_முன்னமை" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "பயனர் இடைமுகம்" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_மொழி:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_வடிவம்:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a இடத்தின் சுருக்கமான வார நாள் பெயர்.\n" "%A இடத்தின் முழு வார நாள் பெயர்.\n" "%b இடத்தின் சுருக்கமான மாதப் பெயர்.\n" "%B இடத்தின் முழு மாதப் பெயர்.\n" "%c இடத்தின் பொருத்தமான தேதி மற்றும் நேர பிரதிநிதித்துவம்.\n" "%C நூற்றாண்டு எண் (ஆண்டு 100 ஆல் வகுக்கப்பட்டு ஒரு முழு எண்ணாக " "துண்டிக்கப்பட்டது) ஒரு தசம எண்ணாக [00-99].\n" "%d மாதத்தின் நாள் தசம எண்ணாக [01,31]. \n" "%D அதுவே %மாதம்/%நாள்/%வருடம் ஆக. \n" "%e மாதத்தின் நாள் தசம எண்ணாக [1,31]; ஒரு இலக்கத்திற்கு முன்னால் ஒரு இடைவெளி " "இருக்கும். \n" "%j தசம எண்ணாக ஆண்டின் நாள் [001,366]. \n" "%m மாதம் ஒரு தசம எண்ணாக [01,12]. \n" "%p இடத்தின் பொருத்தமான தேதி பிரதிநிதித்துவம். \n" "%y தசம எண்ணாக நூற்றாண்டு இல்லாத ஆண்டு [00,99]. \n" "%Y நூற்றாண்டை தசம எண்ணாக கொண்ட ஆண்டு." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "நிதியாண்டு" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_ல் தொடங்குகிறது:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "அள்வீடு அலகுகள்:" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "மீட்டருக்கு _மைல்களைப் பயன்படுத்தவும்" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "எரிபொருளுக்கு _கேலன் பயன்படுத்தவும்" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "எப்பொழுதும் மீதமுள்ளவற்றை காட்டு" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "எப்போதும் வெற்றிடத்தைக் காட்டு" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" "மாற்றங்கள் எதுவும் செய்ய இயலாதவாறு கணக்கிணக்கம் செய்யப்பட்டவற்றை பூட்டு" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_எதிர்காலத்தைக் காட்டு" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "முன்னால் உள்ள நாட்கள்" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "கணக்கிணக்கம் செய்யப்பட்டவற்றை மறை" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "பரிவர்த்தனை உரையாடல்" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "_குறிப்பாணை உடன் தானாக நிறைவு செய்தலை இயக்கு" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "சுழற்சி நாட்கள்" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "5s க்கு உறுதிப்படுத்தல் உரையைச் சேர் என்பதைக் காட்டு" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk அமைவுகள்:" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_கட்ட வரி:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "விளக்கப்பட விருப்பங்கள்" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "சிறிய உருவக விளக்க _ எழுத்துரு" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_கருவிப்பட்டி:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_தானியங்கு காப்புப்பிரதிகளை இயக்கு" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_வைத்திருக்க வேண்டிய காப்புப்பிரதிகளின் எண்ணிக்கை:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "காப்புப்பிரதி ஒரு நாளைக்கு ஒரு முறை எடுக்கவும்" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_பணப்பைகள்:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_காப்பு பிரதிகள்:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "கோப்புகள் பரிமாற்றம்" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_இறக்குமதி:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_ஏற்றுமதி:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "நிரல் ஆரம்பம்" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "திரையை தெறிப்பது போல் காட்டு" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "கடைசியாக திறக்கப்பட்ட கோப்பை ஏற்றவும்" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "நிலுவையில் உள்ள திட்டமிடப்பட்ட பரிவர்த்தனைகளை பதிவேற்று" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "செலாவணி நாணயங்களை இணையத்தில் புதுப்பி" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "அனைத்து விருப்பங்களையும் மீட்டமைக்கவும்" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "அனைத்து விருப்ப மதிப்புகளை \n" "இயல்புநிலை மதிப்புகளால், \n" "நீங்கள் உண்மையில் மீட்டமைக்க விரும்புகிறீர்களா?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "விருப்பத்தேர்வுகள்" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "விவரம்" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "மொழி மாற்றம் நடைமுறைக்கு வர\n" "நீங்கள் இல்லவங்கியை மறுதொடக்கம் செய்ய வேண்டும்." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "காப்பு கோப்பகம் மாறிவிட்டது,\n" "இந்தப் புதிய இடத்தில் நீங்கள் '.bak' கோப்பை சேமிக்கலாம்." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "குறியைத் திருத்து" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "ஏற்கனவே இந்த பெயர் உள்ளதால்,\n" "'%s' லிருந்து '%s' ஆக\n" "இந்தக் குறியை பெயர் மாற்றம் செய்ய இயலவில்லை" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "குறி '%s' ஐ ஒன்றாகச் சேர்" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "இந்தக் குறிச்சொல்லுக்கு ஒதுக்கப்பட்ட பரிவர்த்தனைகள்,\n" "கீழே தேர்ந்தெடுக்கப்பட்ட குறிச்சொல்லுக்கு நகர்த்தப்படும்." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "'%s' குறியை _நீக்கு" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "இந்த குறிச்சொல் பயன்படுத்தப்பட்டுள்ளது.\n" "அந்தக் குறிச்சொல்லைப் பயன்படுத்தும் எந்தப் பரிமாற்றத்திலிருந்தும் அது " "நீக்கப்படும்." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "குறிச்சொல்லை நிர்வகி" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "புதிய குறிச்சொல்" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "%s பரிவர்த்தனை உருவாக்கப்பட்டது." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "உள் பரிமாற்றத்தை உடைக்க விரும்புகிறீர்களா?\n" "\n" "தொடர்வது இலக்கு பரிவர்த்தனையை நீக்கும்." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_உடை" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "திட்டமிடப்பட்டவற்றைக் _காட்டு" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "_எல்லா கணக்குகளையும் காட்டு" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "ஒரு முன்மாதிரியை உபயோகப்படுத்து" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "சேர் & _வை" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "பரிவர்த்தனையைச் சேர்" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "முன்மாதிரியைச் சேர்" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "பரிவர்த்தனையை மரபுவழி பெறவும்" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "முன்மாதிரியை மரபுவழி பெறவும்" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "பரிவர்த்தனையை திருத்து" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "முன்மாதிரியைத் திருத்து" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_தேதி:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- வகை: d, d/m, m/d ஒரு முழுமையான தேதி\n" "- அம்புக்குறி + ctrl அல்லது shift ஐப் பயன்படுத்தவும்\n" "- இன்றைய நாளுக்கு காலியாக விடவும்" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "பெறுனர்:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "பரிவர்த்தனை பிளவுகள்" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "தானாக நிரப்புவதற்கு நிர்ணயிக்கப்பட்ட விலை எதுவும் இல்லை" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "க_ணக்கு:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "புத்தகம்_2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- தானாக முடிப்பதற்கு ஏதாவது எழுத்தினை தட்டச்சு செய்யவும்\n" "- பதிவினை உருவாக்க புதிய உரையைத் தட்டச்சு செய்யவும்" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "வ_கை:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_நிலை:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "குறிப்_பாணை:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "எச்சரிக்கை: தொகை மற்றும் வகை அடையாளம் பொருந்தவில்லை" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "பல திருத்த பரிவர்த்தனை" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "பரிமாற்றம் என \n" "தட்டச்சு செய்யவும்" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "அனைத்தையும் அழி" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "விண்ணப்பிக்கவும்" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "ரத்து செய்" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "பரிவர்த்தனை தொகை:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "ஒதுக்கபடாத:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "பிளவுகளின் கூட்டுத்தொகை:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "எச்சரிக்கை: பிரிப்புகளின் தொகையும் பரிவர்த்தனை வகையும் பொருந்தவில்லை" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "எச்சரிக்கை: பிரிப்புகளின் தொகையும் பரிவர்த்தனை தொகையும் பொருந்தவில்லை" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(வகை இல்லை)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "வங்கி" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "பணம்" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "சொத்து" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "கடன் அட்டை" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "பொறுப்பு" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "சரிபார்த்தல்" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "சேமிப்பு" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "நாள்" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "சாத்தியமானது" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "முன்பு" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "பின்பு" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "தவிர்" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "நேரம்" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "வருடம்" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "வாரம்" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "பதினைந்து நாட்கள்" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "காலாண்டு" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "அரையாண்டு" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "சேர்" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "விலக்கு" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "நேற்று" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "நாளை" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "கடந்த வாரம்" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "இந்த வாரம்" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "அடுத்த வாரம்" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "சென்ற பதினைந்து நாட்கள்" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "இந்த பதினைந்து நாட்கள்" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "அடுத்த பதினைந்து நாட்கள்" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "கடந்த மாதம்" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "இந்த மாதம்" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "அடுத்த மாதம்" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "சென்ற காலாண்டு" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "இந்த காலாண்டு" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "அடுத்த காலாண்டு" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "கடந்த வருடம்" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "இந்த வருடம்" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "அடுத்த வருடம்" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "கடந்த 90 நாட்கள்" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "கடந்த 60 நாட்கள்" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "கடந்த 30 நாட்கள்" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "கடந்த 12 மாதங்கள்" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "சுமார் 30 நாட்கள்" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "அனைத்து தேதி" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "இந்த மாதம்" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "அடுத்த மாதம்" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "அடுத்த 30 நாட்கள்" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "அடுத்த 60 நாட்கள்" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "அடுத்த 90 நாட்கள்" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "செலவுகள் & வருமாணம்" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "எந்த வகை" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "எந்த நிலை" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "அகற்றப்படாத" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "கணக்கிணக்கம் செய்யப்படாத" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "வகைப்படுத்தாதது" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "கணினி இயல்புநிலைகள்" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "சின்னங்கள் மட்டும்." #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "உரை மட்டும்" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "சின்னங்களின் கீழ் உரை" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "சின்னங்கள் பக்கத்தில் உரை" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "கிடைமட்டம்" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "செங்குத்து" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "இரண்டும்" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "மாதம்-நாள்-வருடம்" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "நாள்-மாதம்-வருடம்" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "வருடம்-மாதம்-நாள்" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "தவிர்" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "குறிப்பாணையுடன் இணைக்கவும்" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "பணம் பெறுபவருடன் இணைக்கவும்" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "கீற்று" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "காற்புள்ளி" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "அரைப்புள்ளி" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "இடைவெளி" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "ஜனவரி" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "பிப்ரவரி" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "மார்ச்" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "ஏப்ரல்" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "ஜுன்" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "ஜுலை" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "ஆகஸ்ட்" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "செப்டம்பர்" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "அக்டோபர்" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "நவம்பர்" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "டிசம்பர்" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "செப்" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "தேடு..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "சரிபார்" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "வங்கி பரிமாற்றம்" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "பற்று அட்டை" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "நிலையான உத்தரவு" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "மின்னணு பரிமாற்றம்" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "வைப்பு" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "நிதி நிறுவனக் கட்டணம்" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "நேரடி பற்று" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ckb.po0000644000175000017500000031314214775770113010530 # Kurdish (Sorani) translation for homebank # Copyright (c) 2017 Rosetta Contributors and Canonical Ltd 2017 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2017. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2022-04-21 02:19+0000\n" "Last-Translator: Ahmad Hameed \n" "Language-Team: Kurdish (Sorani) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "ماڵەبانک" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "دارایی تاکەکەسی" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "خۆڕایی، ئاسان ، ژمێریاری تاکەکەسی بۆ هەمووان" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "دارایی;ژمێریاری;موچە;کەسایەتی;پارە;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "ماڵەبانک نەرماڵەیەکی خۆڕاییە (کە وەکو \"free speech\" و \"free beer\" ) " "یارمەتیت دەدا بۆ بەڕێوەبردنی کاروباریە ژمێریاری و داراییەکانت." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "بە ئاسانی دیزاین کراوە بۆ بەکارهێنان و توانای شیکردنەوەی دارایی تایبەتی خۆت " "بە وردی بە بەکارهێنانی ئامرازەکانی پاڵێوکردنی بەهێز و هێڵکاری جوان." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "ئەگەر تۆ بە دوای ڕێگایەکی تەواو ئازاد و ئاساندا دەگەڕێیت بۆ بەڕێوەبردنی " "ژمێریاری تایبەتی خۆت ئەوا ماڵەبانک دەبێت بەرنامەی هەڵبژاردن بێت." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_سڕینەوە" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_گۆڕین" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "%d گروپی مامەڵە هاوشێوەکان هەیە" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "هیچ مامەڵەیەکی هاوشێوە نەدۆزرایەوە!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "ئەنجامی گواستنەوەی ناوەکی بپشکنە" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "+گۆڕین" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "ئەنجامی ئەرک بە ئۆتۆماتیکی" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_زیادکردن..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_ڕێکخستن" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_هیچ" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_پاککرایەوە" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_ڕەوش" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "هیچ" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "دروستکردنی ڕووکار..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_سڕینەوە..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "هەناردەکردنی CSV" #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "هەژمار" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_ڕێکخستن" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "گۆڕین بۆ یۆرۆ..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_ئامرازەکان" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "زیادکردن" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "ڕێکخستن" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_نوێکردنەوە" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "نوێکردنەوەی دەرئەنجامەکان" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "ئەمڕۆ:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "داهاتوو:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_گێڕانەوە" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "دڵنیای لەوەی دەتەوێ پەڕگەکە بێ ناسنامە بکەیت؟" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "بەخێرهاتی بۆ ماڵەبانک" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_داخستن" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "دروستکردنی پەڕگەی _نوێ" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "پەڕگە هەڵەیە" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_پەڕگە" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_نوێ" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_کردنەوە..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_هەڵگرتن" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "هەڵگرتن_وەک..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "گێراندنەوە" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "ڕێکخستنەکان..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_دەرچوون" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "ڕێکخستنەکان..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_بینین" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_ئامراز" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_بەڕێوەبردن" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "هەژمارەکان" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "هاوپۆلەکان..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "دراوەکان..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_مامەڵەکان" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "زیادکردن" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "نیشاندان..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_ڕاپۆرتەکان" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_ئامارەکان..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "تێچووی ئۆتۆمبێل" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "نیشاندانی پەنجەرەی پێشوازی" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "پەڕگەی ئامارەکان..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_یارمەتی" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_ناوەڕۆک" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "ڕاپۆرت بدە هەڵەیەک هەیە..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "وەرگێڕانی ئەم نەرماڵەیە..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_دەربارە" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "دروستکردنی پەڕگەی نوێ" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "کردنەوەی پەڕگە" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "هەڵگرتنی پەڕگەی بەردەست" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "هەژمار" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "هاوپۆل" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "نیشاندانی هەژماری مامەڵەی هەڵبژێردراو" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "زیادکردنی مامەڵە" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "کردنەوەی ڕاپۆرتی ئامارەکان" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "تێچووی ئۆتۆمبێل" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "کردنەوەی ڕاپۆرتی تێچووی ئۆتۆمبێل" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "داهاتوو" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "بیرهێنەرەوە" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "ڕەوش" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "نیشان" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "بڕ" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "نەزانراو" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "کیلۆمەتر\\لتر" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "میل\\لتر" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "" #: ../src/homebank.c:338 msgid "Browser error." msgstr "هەڵەی وێبگەڕ" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "هەژمارەکانی تۆ" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "نیشاندانی هەموو" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "هیچ مامەڵەیەک نیە بۆ زیادکردن" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "مامەڵەکە زیادکرا : %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "سەرجەم" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "ئەوانی تر" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "دەستکەوت" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "پاککرایەوە" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "ئەمڕۆ" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "بەروار" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "نیشانکردن" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "دەرئەنجام" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "بەرواری داهاتوو" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "لیست" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "دەرئەنجامەکان بەشێوەی لیست نیشان بدە" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "هێڵ" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "دەرئەنجامەکان بەشیوەی هێڵ نیشان بدە" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "زانیاری تەواو" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "نوێکردنەوە" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "نیشاندان" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_لە:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_بۆ:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "هەموو" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "بەکارهێنراو" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "مانگ" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_جۆر:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "دەرئەنجام:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "بەکارهاتوو:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s له‌ لایەن %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "نیشاندانی دەرئەنجام بەشێوەی ستوون" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_نیشاندان بەپێی:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "دەستهاتوو:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "بەکارهاتوو:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "بەنزین" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "نرخ" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "دووری" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "هەناردەکردن بەشێوەی CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "ڕاپۆرتی تێچووی ئۆتۆمبێل" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_هاوپۆل:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "تێچووی بەنزین:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "تیچووی شتی تر:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "تێچووی گشتی:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(هیچ)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "دیار" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "ناوی هەژمار" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "هەڵە" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "بەرێوەبردنی هەژمارەکان" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "گشتی" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_دراو:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "تێبینییەکان:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "ڕووکار" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_پاشگەزبونەوە" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_باشە" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "مەرج" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_زیادکردن" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "فایلی پێشوەختە:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_ناو:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "ناو" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_کردنەوە" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "پەڕگە ناسراوەکان" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "پەڕگەی QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "هەموو پەڕگەکان" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "ڕۆژ" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "بەخێرهاتی" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "هاوردەکردن" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_پاککردنەوە" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "هەڵبژاردەکان" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "ئایار" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "یەکخستن" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "سڕینەوەی هاوپۆلە بەکارنەهاتووەکان" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_دەستهاتوو" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "بەڕێوەبردنی هاوپۆلەکان" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "هاوپۆلی نوێ" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "هاوپۆلی لاوەکی نوێ" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "دراوی بنەڕەتی" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "هێما" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "دەستکاری دراو" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "دراو" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "شێواز" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_هێما:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "دراوێک هەڵبژێرە" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "نوێکردنەوە" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "دراوی بنەڕەتی هەڵبژێرە" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "دراو:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "داخستن_بەبێ هەڵگرتن" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_نوێکردنەوە" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "ڕێکخستنەکانی پەڕگە" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "مامەڵە" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "گواستنەوە" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "ڕێکخستنەکانی ئامار" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "نیشاندان بەپێی _بڕ" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_چالاککردن" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_زمان:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "زانیاری" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "زیادکردنی مامەڵە" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_بەروار:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_ڕەوش" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "بڕی مامەڵە" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(هیچ جۆرێک)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "ڕۆژ" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "بەرلەوە" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "دواتر" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "ساڵ" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "هەفتە" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "ئەم مانگە" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "هەر ڕەوشێک" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "وادانراوەکانی سیستەم" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "تەنها وێنۆچکە" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "تەنها دەق" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "دەق لەژێر وێنۆچکە" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "دەق لەتەنیشت وێنۆچکە" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "ئاسۆیی" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "ستوونی" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "هەردووک" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "کانونی دووەم" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "شوبات" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "ئازار" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "نیسان" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "حوزه‌یران" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "ته‌مموز" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "ئاب" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "ئه‌یلول" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "تشرینی یه‌كه‌م" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "تشرینی دووه‌م" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "كانونی یه‌كه‌م" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "گەڕان..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "پشکنین" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/lv.po0000644000175000017500000030656214775770052010424 # Latvian translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # # FIRST AUTHOR , 2008. # Rudolfs , 2011. # Anita Reitere , 2011. msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2014-03-04 14:33+0000\n" "Last-Translator: Gatis Kalnins \n" "Language-Team: gnome-gimp.doc.lv.2010-12-13 \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Neviena transakcija nav mainīta" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Pievienot..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Mantot..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "R_ediģēt..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "Saskaņots" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Nekas" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Izveidot šablonu..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Eksportēt CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "R_ediģēt" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Rīki" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Pievienot jaunu transakciju" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Pievienot" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Mantot no aktīvās transakcijas" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Mantot" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Rediģēt aktīvo transakciju" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Rediģēt" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Atsvaidzināt rezultātus" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Šodien:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Nākotnē:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Laipni lūdzam HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Aizvērt" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Atvērt pi_emēra failu" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Nevar atvērt \"%s\", fails neeksistē.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Faila kļūda" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fails" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "Jau_ns" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Atvērt..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Saglabāt" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Atgriezties" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Iziet" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Iestatījumi..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Skats" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Rīkjosla" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Pārvaldīt" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Konti..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Darījumu partneri..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategorijas..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Uzdevumi..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budžets..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transakcijas" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Pievienot..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Rādīt..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Atskaites" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistika..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendences..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udžets..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Rādīt sveiciena dialogu..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Palīdzība" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Saturs" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Ziņot par problēmu..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Tulkot šo lietotni..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "P_ar" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Atvērt failu" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Atvērt nesen lietotu failu" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Konti" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Partneri" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategorijas" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budžets" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Rāda atlasītā konta transakcijas" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Atvērt statistikas atskaiti" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Atvērt tendenču atskaiti" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Bilance" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Atvērt bilances atskaiti" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Atvērt budžeta atskati" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Nākotnē" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Birka" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Summa" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FAILS]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Neizdevās attēlot URL \"%s\"" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Kopā" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Izdevumi" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Ienākumi" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Šodien" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datums" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Birkas" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Rezultāts" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d zem %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Saraksts" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Skatīt rezultātus kā sarakstu" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Līnija" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Skatīt rezultātus kā līnijas" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detaļas" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Pārslēgt detaļas" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Atsvaidzināt" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Bilances atskaite" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Mērogs:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "Perio_ds" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_No:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Līdz:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Viss" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invertēt" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Tērētais" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "mēneši" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budžeta atskaite" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Veids:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budžets:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Tērēts:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Pārslēgt leģendu" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Pārslēgt procentus" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistikas atskaite" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Skats:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Ienākumi:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Izdevumi:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Tendenču atskaite" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Kumulāta" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Laika posms" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Nobraukums" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Degviela" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Cena" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Attālums" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Eksportēt kā CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Auto izmaksu atskaite" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategorija:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Nobraukums:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Patēriņš:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Degvielas cena:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Citi izdevumi:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Kopējie izdevumi:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nekas)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Redzams" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Kļūda" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nevar pārsaukt šo kontu\n" "no \"%s\" uz \"%s\",\n" "jo šis nosaukums jau eksistē." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Pārvaldīt kontus" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Vispārēji" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umurs:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Ar per_iodu:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Reģistrjūtīg_s" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "D_arījuma partneris:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Maksājums:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Pārvaldīt uzdevumus" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nav atrasts" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Iestatījumu fails:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nosaukums:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF fails" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX faili" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV fails" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Visi faili" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dienas" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Sakritību meklē secībā: konts, summa, datums.\n" "Datuma tolerance \"0 dienas\" nozīmē precīzu sakritību" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Apstiprinājums" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Faila formatēšanas kļūda" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Pārvaldīt budžetu" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Bilance:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Monitorēt šo kategoriju" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maijs" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jūn" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jūl" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Ienākumi" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nevar pārsaukt kategoriju\n" "no \"%s\" uz \"%s\",\n" "jo šis nosaukums jau eksistē." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Pārvaldīt kategorijas" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Cipari _aiz komata:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Eksportēt kā QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importēt no CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank faili" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Nevar pārsaukt šo darījumu partneri\n" "no \"%s\" uz \"%s\",\n" "jo tāds nosaukums jau eksistē." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Pārvaldīt darījumu partnerus" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Saskarne" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Pārskaitījums" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Kārtot pēc _summas" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Rādīt p_rocentu kolonnu" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Rādīt _detaļas" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "I_eslēgt" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Komplekts:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Rīkjosla:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importēt:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Eksportēt:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Ielādēt pēdējo atvērto failu" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Iestatījumi" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informācija" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Pievienot transakciju" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Mantot transakciju" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datums:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Konts:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bankā" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Skaidra nauda" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Aktīvi" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kredītkarte" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Pasīvi" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "dienas" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "gadi" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "nedēļas" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Ceturksnis" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Iekļaut" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Izslēgt" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Izdevumi un ienākumi" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Sistēmas noklusētie" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Tikai ikonas" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Tikai teksts" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Teksts zem ikonām" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Teksts blakus ikonām" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorēt" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Janvāris" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februāris" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Marts" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Aprīlis" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Jūnijs" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Jūlijs" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Augusts" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Septembris" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktobris" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembris" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Decembris" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Čeks" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debetkarte" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Regulārais maksājums" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektroniskais maksājums" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depozīts" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Komisijas maksa" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ko.po0000644000175000017500000031667414775770045010423 # Korean translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-03-28 15:50+0000\n" "Last-Translator: Yeonguk Choo \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "홈 뱅크" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "개인 금융" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "모두를 위한 쉬운 무료 개인 회계" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "금융;회계;예산;개인;돈;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "홈뱅크는 귀하의 개인 회계를 관리하는 데 도움이되는 무료 소프트웨어( \"무료 언론\"이나 \"무료 맥주\"와 같은)입니다 ." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "강력한 필터링 도구와 아름다운 그래프를 사용하여 사용하기 쉽고 개인 재무를 자세하게 분석 할 수 있습니다." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "개인 회계를 관리 할 수있는 완전히 무료이고 쉬운 방법을 찾고 있다면 홈뱅크를 선택 하셔야 합니다." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d 거래" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d 트랜잭션, %d 선택됨, 평균: %s, 합계: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "잠겨 있습니다. 잠금을 해제하려면 클릭" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "트랜잭션을 삭제하면 영구적으로 손실됩니다." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "삭제(_D)" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "상태를 없음으로 변경 하시겠습니까?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "선택한 항목의 일부 거래가 이미 조정되었습니다." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "바꾸기(_C)" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "조정됨 상태를 토글 하시겠습니까?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "토글(_T)" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "선택한 %d 트랜잭션에서 템플릿을 생성하시겠습니까?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "만들기(_C)" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "템플릿 만들기" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "선택한 %d 트랜잭션에서 과제를 생성하시겠습니까?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "과제 생성" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "모든 거래" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "유사한 거래 그룹이 %d 개 있습니다." #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "유사한 거래가 발견되지 않았습니다!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "내부 이체 결과 확인" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "일치하지 않는 항목이 없습니다!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "모든 거래 금액은 %.6f 로 나뉩니다." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "변환(_C)" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "변경된 거래 없음" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "변경된 거래: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "자동으로 할당된 결과" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "추가(_A)..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "상속(_I)..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "편집(_E)..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "소속 없음(_N)" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "비우기(_C)" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "조정(_R)" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "상태 (_S)" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "없음" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "다중 편집(_M)..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "템플릿 만들기..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "삭제(_D)..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "위(_U)" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "아래(_D)" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "QIF 내보내기..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "CSV 내보내기..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "인쇄..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "계좌(_C)" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "복사" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "붙여넣기" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "편집(_E)" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "중복 표시..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "자동. 할당" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "유로화로 변경..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "도구(_T)" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "새로운 거래 추가" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "추가" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "활성 거래에서 상속" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "상속" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "활성 거래 편집" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "편집" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "선택된 거래 비우기 토글" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "선택된 거래 조정됨 토글" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "다중 거래 편집" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "선택된 거래 삭제" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(닫힘)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - 홈뱅크" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "보기" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "새로 고침(_R)" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "필터 편집" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "결과 새로 고침" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "유로 마이너(_M)" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "오늘:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "미래:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "저장되지 않은 변경사항을 파일 '%s'로 되돌리시겠습니까?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- 파일에 대한 변경 사항은 영구적으로 손실됩니다.\n" "- 파일은 마지막으로 저장된 (.xhb ~)에서 다시로드됩니다." #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "되돌리기(_R)" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "파일을 익명화 하시겠습니까?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "익명화를 진행하게 되면 모든 텍스트가 \n" "'계정 x', '수취인 y', '메모 z'와 같이 변경됩니다." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "익명화(_A)" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "홈뱅크에 오신것을 환경합니다." #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "닫기(_C)" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "새 파일 만들기(_N)" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "기존 파일 열기(_O)" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "예제 파일 열기(_E)" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "홈뱅크 메뉴얼 읽기(_M)" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "활경 설정(_P)" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "백업 열기(_O)" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "'%s' 파일을 열 수 없습니다. 파일이 없습니다.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "알 수 없는 오류" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "'%s'파일의 입출력 에러" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "'%s'파일은 유효한 홈뱅크 파일이 아닙니다." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "'%s'파일은 더 높은 버전의 홈뱅크에서 저장되어\n" "이 버전의 홈뱅크에서 불러 올 수 없습니다." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "파일 오류" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "파일이 읽혀진 후 수정되었습니다." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "저장하면, 외부에서 바꾼 것을 잃어버리게 됩니다. 저장하겠습니까?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "어쨋든 저장(_A)" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "파일(_F)" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "새로 만들기(_N)" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "열기(_O)..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "최근 문서 열기(_R)" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "저장(_S)" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "다른 이름으로 저장(_A)..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "가져오기..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "QIF로 내보내기..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "복원" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "백업 복원" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "설정..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "끝내기(_Q)" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "기본 설정..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "보기(_V)" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "도구모음(_T)" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "마이너 유로" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "관리(_M)" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "계정(_O)..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "수취인(_P)..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "범주..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "태그..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "스케쥴/템플릿..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "할당..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "통화..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "예산..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "거래(_T)" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "추가..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "보기..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "스케쥴러 설정..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "예정된 게시" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "보고서(_R)" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "통계(_S)..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "경향 시간(_T)..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "예산(_U)..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "차량 비용(_V)..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "환영 창 보기..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "파일 통계..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "익명화..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "도움말(_H)" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "목차(_C)" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "온라인에서 도움받기..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "업데이트 확인..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "릴리즈 정보" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "문제점 보고..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "이 응용 프로그램 번역..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "정보(_A)" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "새 파일 만들기" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "열기" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "파일 열기" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "최근에 열었던 파일을 엽니다" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "저장" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "현재 파일 저장" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "계정" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "수취인" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "범주" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "예산" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "선택한 계정 거래 보기" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "거래 추가" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "통계 보고서 열기" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "경향 시간 보고서 열기" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "잔고" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "잔액 보고서 열기" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "예산 보고서 열기" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "차량 비용" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "차량 비용 보고서 열기" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "도움말" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "기부하기" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "미래" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(분류 없음)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "잘못된 CSV 형식" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "상태" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "태그" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "금액" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "알 수 없음" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(수취인 없음)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(그룹 없음)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-%d분기" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[파일]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "브라우저 오류." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "'%s' URL을 표시할 수 없습니다" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(기관 없음)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "내 계좌" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "모두 보기" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "모두 펴기" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "모두 접기" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "추가 할 거래 없음" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "%d 거래가 추가되었습니다." #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "예정된 거래 결과를 확인" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "최대 게시일" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "합계" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "건너뛰기(_S)" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "게시(_P)" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "기타" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "지출" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "수입" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "가져오기 된 계좌" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "총 합계" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "계좌" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "오늘" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- 분할 -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "날짜" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "메모" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "태그" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "일치" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "결과" #: ../src/list-report.c:957 msgid "Average" msgstr "평균" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "최신" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "다음 날짜" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "목록" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "목록으로 결과 보기" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "선" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "선 그래프로 결과 보기" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "상세 정보" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "세부사항 토글" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "새로 고침" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "인쇄" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "잔액 보고서" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "표시" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "필터" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "범위(_R):" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "시작" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "종료" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "선택:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "모두" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "반전" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "지출" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "월" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " 초과" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " 남음" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " 미만" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "결과를 스택 막대로 보기" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "결과를 클립보드로(_R)" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "결과를 CSV로(_R)" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "세부사항을 클립보드로(_D)" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "세부사항을 CSV(_D)" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "예산의 일부로 계좌가 정의되지 않았습니다." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "계좌 다이얼로그 화면으로 어떠한 계좌라도 포함시켜야합니다." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "예산 보고서" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "모드:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "종류(_T):" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "예산 초과만" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "결과:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "예산:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "지출:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "열" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "결과를 열로 보기" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "결과를 도넛으로 보기" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "범례 토글" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "비율" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "평가 토글" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "통계 보고서" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "보기(_V):" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "합계:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "수입:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "지출:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "평균: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "경향 시간 보고서" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "누적(_C)" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "미터" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "연료" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "가격" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "거리." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "내보내기" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "CSV로 내보내기" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "차량 비용 보고서" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "범주" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "미터:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "소비량:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "연료 비용:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "기타 비용:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "비용 합계:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(없음)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "보임" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "계좌 이름" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "오류" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "'%s' 계좌를 추가할 수 없습니다.\n" "이 이름은 이미 사용중입니다." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "'%s' 계좌를 지울 수 없습니다." #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "계좌를 해지하면 다시는 복구할 수 없습니다." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "계정 관리" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "삭제" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "이름 바꾸기" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "일반" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "그룹(_G):" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "통화(_C) :" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "메모:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "자동화" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "기타." #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "간격(_y):" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "추가 옵션" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "게시글" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "서식" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "검색" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "노트" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "취소(_C)" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "확인(_O)" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "조건" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "검색(_S):" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "지불대상" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "덮어쓰기" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "지불수단" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "제목(_T):" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "추가(_A)" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "찾지 못함" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "이름(_N):" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "파일 옵션" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "통화 선택" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "카테고리 선택" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "계정 생성" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "유효함" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "이름" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "열기(_O)" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF 파일" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX 파일" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV 파일" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "모든 파일" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "건너뜀" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "이 메시지를 다시 표시하지 않음" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "일" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "환영합니다" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "가져오기" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "확인" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "문제가 있는 파일" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "지우기(_C)" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%s의 예산" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "예산 관리" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "잔액:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "선택 사항" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "1월" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "2월" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "3월" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "4월" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "5월" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "6월" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "7월" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "8월" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "10월" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "11월" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "12월" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "요약" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "전체" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "매달" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "카테고리 추가" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "적용(_A)" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "카테고리 이름" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "카테고리 제거" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "병합하기" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "입력 지우기" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "수입(_I)" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "범주 관리" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "기호" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "마지막 변경" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "통화" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "포맷" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "사용자 지정(_C)" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "기호(_S):" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "소수점 아래 자릿수(_F):" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO 코드" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "화폐 단위" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "트랜잭션" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "업그레이드" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "통화:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "QIF로 내보내기" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "CSV에서 들여오기" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "홈뱅크 파일" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "파일 백업" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "저장하지 않고 닫기(_W)" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "폴더:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "PDF로 내보내기" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "재설정(_R)" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "예약된 거래" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "수취인 관리" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "인터페이스" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "금액으로 보기(_A)" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "상세 정보 보기(_D)" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk 설정" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "안내선" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "도구 막대(_T):" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "들여오기(_I):" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "내보내기(_E):" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "최근 연 파일 불러오기" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "게시 대기중인 예정 거래 스케쥴" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "기본 설정" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "정보" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "거래 추가" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "상속 거래" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "날짜(_D):" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "계좌" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "상태(_S):" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(유형 없음)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "은행" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "현금" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "자산" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "신용 카드" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "부채" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "일" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "년" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "주" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "분기" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "포함" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "제외" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "수입과 지출" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "시스템 기본값" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "아이콘만" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "텍스트만" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "아이콘 아래 텍스트" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "아이콘 옆에 텍스트" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "무시" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "1월" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "2월" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "3월" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "4월" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "6월" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "7월" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "8월" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "9월" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "10월" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "11월" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "12월" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "9월" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/pt_PT.po0000644000175000017500000035156614775770057011042 # Portuguese translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-01-01 12:59+0000\n" "Last-Translator: JCB \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: pt\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finanças Pessoais" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Contabilidade pessoal gratuita e fácil para todos" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finanças;contabilidade;orçamento;pessoal;dinheiro;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank é um software gratuito que irá ajudá-lo a gerir as suas finanças " "pessoais." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Foi desenhado para ser fácil de utilizar e para lhe permitir analisar as " "suas finanças pessoais em detalhe através de poderosas ferramentas de " "filtragem e de gráficos elegantes." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Se está à procura de um programa totalmente gratuito e fácil para gerir as " "suas finanças pessoais o HomeBank é a sua melhor escolha." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transações" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transações, %d selecionadas, média: %s, soma: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Bloqueado. Clique para desbloquear" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Desbloqueado. Clique para bloquear" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Vencimento hora' não está aplicado na actual carteira" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Deseja eliminar %d a transação selecionada?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Se eliminar uma transação, ela será perdida permanentemente." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Remover" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Tem a certeza que quer alterar o estado para Nenhum?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Algumas transações da sua seleção já foram reconciliadas." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Alterar" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Tem a certeza de que deseja alterar o estado para Efectuado?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Mudar" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Pretende criar um novo modelo a partir da %d transação selecionada?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Criar" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Criar Modelo" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d criado com um icon pré-preenchido" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Tem a certeza que deseja criar uma atribuição a partir da %d transação " "selecionada?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Criar Tarefa" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Todas as transações" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Há %d grupo(s) de transação(ões) semelhante(s)" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Nenhuma transação semelhante foi encontrada!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Verifique o resultado da transferência interna" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Sem inconsistências !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Inconsistência encontrada: %d\n" "Quer rever e corrigir?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Todos os valores das transacções serão divididos por %6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Converter" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Nenhuma transação alterada" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transacção alterada: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Resultados da atribuição automática" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Adicionar..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Herdar..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Editar..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Nada" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Limpo" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Reconciliado" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Estado" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Nenhum(a)" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Edição Múltipla..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Ver _Dividir" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copiar quantia bruta" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Criar modelo..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Criar tarefa ..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "Apa_gar.." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Para Cima" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_ Para Baixo" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exportar QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportar CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Imprimir..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Conta" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copiar" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Colar" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Colar (hoje)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Editar" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marcar duplicado..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Verifique a transferência interna" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Tarefas Automáticas" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Converter para Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Ferramentas" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Mover a transação para cima" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Mover a transação para baixo" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Adicionar nova transação" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Adicionar" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Herdar da transação ativa" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Herdar" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Editar transação ativa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Editar" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Mudar para descontado as transacções seleccionadas" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Mudar transacções seleccionadas para reconciliado" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Editar múltiplas transações" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Apagar transações selecionadas" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Troco reconciliado é" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "Encerrada" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Mostrar" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Actualizar" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Data _Intervalo:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Mostrar %d dias à frente" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Editar filtro" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Atualizar resultados" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro_menor" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Reconciliado:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Confirmado:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hoje:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futuro:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Reverter alterações não gravadas para o ficheiro '%s?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- As modificações feitas ao ficheiro serão apagadas definitivamente\n" "- O ficheiro será carregado a partir da última gravação (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Reverter" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Tem a certeza que pretende tornar o arquivo anônimo?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Avançar irá anonimizar qualquer texto, \n" "como p.ex. 'conta x', 'empregado y', 'memorando z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "Tornar _anônimo" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Bem-vindo ao HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Fechar" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Abrir _último ficheiro aberto" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Criar _novo arquivo" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Abrir um arquivo existente" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Abrir o arquivo _exemplo" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Consultar Manual _do HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configurar _preferências" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Mostrar esta janela na próxima vez" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Está a abrir um ficheiro de backup '%s'.\n" "\n" "Tem certeza de que quer fazer isso?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Abrir o arquivo de backup?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Abrir cópia de segurança" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Não foi possível abrir \"%s\", o arquivo não existe.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Erro desconhecido" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O Erro de leitura do arquivo %s." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "O arquivo '%s' não é um arquivo HomeBank válido." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "O arquivo '%s' foi salvo com uma versão mais recente do HomeBank\n" "e não pode ser aberto com a versão atual." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Erro de arquivo" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "O ficheiro foi modificado desde que foi lido." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Se o Salvar, todas as alterações externas serão perdidas. Deseja Salvar?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "S_ave na mesma" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Limpar" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Arquivo" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Novo" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Abrir..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Abrir _Recente" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Salvar" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Salvar Como" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importar" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exportar como QIF" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Reverter" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaurar cópia de segurança" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propriedades" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Sair" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferências..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Visualizar" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Barra de ferramentas" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Gráfico Despesas ( Categorias )" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Gráfico Despesas ( Mensal )" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Final da lista" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Submúltiplo de Euro" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gerir" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Carteira" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "C_ontas..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "Beneficiários" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorias..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etiquetas..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Agendada/Modelo..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Atribuições..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Moedas..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Orçamento..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Orçamento (visualização de tabela)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transações" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Adicionar" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Mostrar" #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Mostrar Todos" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Definir agendamento" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Lançamento agendado" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Relatórios" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Estatísticas" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendência ao longo do tempo" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balanço" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "O_rçamento" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Custo do Veículo" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Mostrar diálogo de boas vindas" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Estatísticas do arquivo" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Tornar anónimo" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Ajuda" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Conteúdo" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obter Ajuda Online" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Verificar se existem actualizações" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Notas de Lançamento" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Reportar um problema" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduzir esta aplicação" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Sobre" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nova" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Criar um novo arquivo" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Abrir" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Abrir arquivo" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Abrir um arquivo usado recentemente" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Salvar" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Salvar o arquivo atual" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Conta" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gerir contas" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Favorecido" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gerir os beneficiários" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categoria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gerir categorias" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Programado / Modelo" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gerir transações programadas/modelo" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Orçamento" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gerir orçamento" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Atribuição" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Gerir as atribuições automáticas" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Mostra as transações da conta selecionada" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Adicionar transações" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Estatísticas" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Abrir relatório de estatísticas" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Tendência" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Abrir relatório da tendência ao longo do tempo" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Abrir relatório do Saldo" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Abrir relatório do orçamento" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Custo do veículo" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Abrir relatório de custos do veículo" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Ajuda" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donativo" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Doe para o projeto HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Agendada" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futuro" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Lembrar" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Hoje" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(sem nota)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(sem categoria)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "formato CSV inválido" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tipo" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Estado" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etiqueta" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Pagamento" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Valor" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Texto" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Desconhecido" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f L" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/L" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./L" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(sem sacador)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(sem grupo)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(sem etiqueta)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FICHEIRO]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Erro de navegador." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "O URL %s não pode ser mostrado." #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(sem instituição)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Suas contas" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Mostrar tudo" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expandir tudo" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Recolher tudo" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "somar: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Sem transações para adicionar" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transação adicionada: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Verificar resultado das transações agendadas" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "data máxima de lançamento" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Ignorar" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Editar & Publicar" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "E_nviar" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Gastos / Categoria" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Top %d Despesas / Categoria" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Top %d Gastos / Beneficiário" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Gastos / Conta" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Top %d Despesas / Conta" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Balanço da Conta" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Outro" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Gráfico Despesas ( Categorias )" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Total Bruto" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Conta Grupo" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Despesas" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Receitas" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Gráfico Despesas ( Mensal )" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "conta importada" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total Geral" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "última reconciliação" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "até ao saque a descoberto" #: ../src/list-account.c:753 msgid "before maximum" msgstr "antes do máximo" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Contas" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Reconciliado" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Limpo" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hoje" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- separar -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- sem uma categoria -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memorando" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etiquetas" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Comparar" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultados" #: ../src/list-report.c:957 msgid "Average" msgstr "Médio" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Atrasado" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Estático" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Próxima data" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d sob %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lista" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Ver resultados em lista" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Gráfico de linhas" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Ver resultados como linhas" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalhe" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Mudar detalhes" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Atualizar" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Imprimir" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Relatório do saldo" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Visualização" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Intervalo:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Mostrar linha vazia" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtro" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Intervalo:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_De:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Até:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Selecionar:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Todos(as)" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inverter selecção" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Incluir _transferência" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Despesa" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mês" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " sobre" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " esquerda" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " sob" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(não orçamentado)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Pilha" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Ver resultados em barras empilhadas" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Result para o clipboard" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Result para CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detail para o clipboard" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detail para CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Nenhuma conta foi definida para fazer parte do orçamento." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Deverá incluir algumas contas do diálogo de contas." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Relatório de orçamento" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modo:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipo:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Só fora do orçamento" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultado:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Orçamento:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Despesa:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s por %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Muitas colunas para mostrar" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "Selecione um intervalo mais amplo e / ou um intervalo de datas mais restrito" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Coluna" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Ver resultados em colunas" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Circular" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Ver resultados em anel" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Ver resultados como conjunto" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Conjunto 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Ver resultados como conjunto 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Mudar legenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Taxa" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Mudar taxa" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Relatório da estatística" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Ver por:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Modo de Balanço" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Previsão" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Classificar por _montante" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Compare Exp. & Inc." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Receita:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Despesa:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Média: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Relatório da tendência ao longo do tempo" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Acumulado" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Divisão de tempo" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Indicador" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Combustível" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Preço" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exportar" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportar como CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Relatório de custos da viatura" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categoria:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Indicador:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumo:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Custos com combustível:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Outros custos:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Custos totais:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nada)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visível" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nome da conta" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Erro" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Não foi possível adicionar a conta '%s',\n" "este nome já existe." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Não foi possível apagar a conta '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Já possui transação" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Já possui agendamento/modelo" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Tem a certeza que pretende apagar definitivamente '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Se apagar uma conta, esta será definitivamente apagada." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não foi possível mudar o nome\n" "desta Conta \"%s\" para \"%s\",\n" "este nome já existe." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gerir contas" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Eliminar" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Mudar o nome" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Mover para cima" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Mover para baixo" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Geral" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grupo:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Instituição:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_úmero:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "_Saldo inicial:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Moeda:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "esta conta foi _encerrada" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notas:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportamento" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatização" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Modelo _Padrão:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Reportar exclusão" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "excluir do resumo da _conta" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "expandir para sumário" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "excluir do _orçamento" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "excluir de qualquer _relatório" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Diversas." #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Número de cheque actual" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Livro de cheques _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Livro de cheques _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limites balanço" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Overdraft em:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Máximo:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Se apagar um agendamento/modelo, este será definitivamente apagado." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Próxima _data:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Cad_a:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Mais opções" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Fim da semana:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Parar após:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "lançamentos" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Gerir transacções agendadas/modelo" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Template" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Agendar" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Procurar" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notas" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Este texto de pesquisa já existe na posição %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Cancelar" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condição" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Pesquisar:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Entrada:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Sensível a maiúsculas e minúsculas" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Quan_tia:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_E" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Tarefas" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Sacador:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Substituir" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Pag_amento:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "Etique_tas:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regra %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Se apagar uma atribuição, esta será definitivamente apagada." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Mover para..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Mover regra" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Movimentar" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Gerir Atribuições" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Este assistente irá ajudá-lo a definir uma configuração mínima\n" "para um novo arquivo HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Todos os elementos configurados aqui podem ser alterados posteriormente, se " "necessário." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Nenhuma alteração será feita até clicar em \"Aplicar\"\n" "no final deste assistente." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "O HomeBank exibirá um título para a janela principal,\n" "pode ser um rótulo ou seu nome." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Título:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "O HomeBank oferece suporte a várias moedas. A moeda base é\n" "padrão para novas contas e relatórios." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Configurar moedas adicionais" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Adicionar" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Não encontrado" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "O HomeBank pode preencher previamente as categorias para o seu idioma\n" "se um arquivo CSV estiver disponível e fornecido pela comunidade." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configurar categorias para meu idioma" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Ficheiro da predefinição:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank permite importar as suas contas de transferências\n" "de arquivos de instituições financeiras, ou pode criar a sua conta " "manualmente." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Criar a minha primeira conta" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nome:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Esta é uma página de confirmação,\n" "\n" "pressione 'Aplicar' para aplicar as alterações" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Iniciar configuração de arquivo" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Opções do Ficheiro" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Escolha a moeda" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Escolha as categorias" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Criar conta" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Concluir configuração de arquivo" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Válido" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nome" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Abrir" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Ficheiros aceites" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Ficheiros QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Ficheiros OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Ficheiros CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Todos os ficheiros" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nova conta global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nova conta" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "ignorado" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "%d de %d transações" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transação(ões), %d semelhante, %d existente, %d selecionado" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transação(ões), %d selecionadas" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Algumas datas não podem ser convertidas. Por favor, tente mudar a ordem das " "datas para continuar." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importe %s para:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "este arquivo" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "esta conta" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nome: %s\n" "Número: %s\n" "Arquivo: %s\n" "Codificação: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importar transações do banco ou cartão de crédito" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Com este assistente, será guiado pelo processo de importação de um ou " "vários\n" "extratos transferidos do seu banco ou cartão de crédito, nos seguintes " "formatos:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recomendado: .OFX ou .QFX\n" "(às vezes chamado de Money™ ou Quicken™)\n" "Suportado: .QIF\n" "(arquivo Quicken™ comum)\n" "Somente utilizadores avançados: .CSV\n" "(o formato é específico do HomeBank, consulte a documentação)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Nenhuma alteração será feita até que clique em \"Aplicar\" no final deste " "assistente." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Não voltar a mostrar" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Arraste e solte um ou vários arquivos para importar.\n" "Também pode usar os botões adicionar / excluir da lista." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Há muita conta nos arquivos que escolheu,\n" "use o botão voltar para selecionar menos arquivos." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "A identificação da conta de destino por nome ou número falhou." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Data da operação:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importar memorandos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Trocar memorandos com beneficiários" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Nome:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Memo:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Frase _caso memorando / beneficiário" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Alternar quantidade" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Transação semelhante na conta de destino (possível duplicação)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dia(s)" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "A correspondência é feita pela seguinte sequência: por conta, valor e data.\n" "Uma tolerância de 0 dias significa uma combinação exacta" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Executar automação" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Enriquecer com _padrão do beneficiário" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Executar regras de atribuição _automáticas" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Clique em \"Aplicar\" para atualizar suas contas." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Bem-vindo" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Selecionar arquivo(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importar" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmação" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Erro no formato do ficheiro" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "O ficheiro CSV deve conter exatamente o mesmo número de colunas,\n" "separadas por um ponto e vírgula. Por favor, consulte a ajuda para mais " "detalhes." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Tem certeza de que deseja limpar a entrada?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Se continuar, todas os valores serão definidos para 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Limpar" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Orçamento para %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gerir Orçamento" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balanço:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "todos os meses é igual" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Limpar entrada" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "é diferente todos os meses" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Opções" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forçar monitorização desta categoria" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Fev" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Abr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ago" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Set" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Out" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dez" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Resumo" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totais" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Total\n" "Anual" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Média\n" "Mensal" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mensalmente" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Adicionar uma categoria" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Aplicar" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Categoria Parental" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nome da categoria" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Esta categoria já está a ser utilizada.\n" "Qualquer transacção com esta categoria será definida como (sem categoria)." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Juntar categorias" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "As transações atribuídas à categoria '%s' serão movidas para a categoria " "selecionada abaixo." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Categoria alvo" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Apagar categoria '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Tem certeza de que deseja limpar as entradas de '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Adicionar categoria" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Remover categoria" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Unir" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Limpar o texto introduzido" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Apagar categorias não usadas" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Tem a certeza que quer apagar permanentemente\n" "as categorias não usadas?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Editar Categoria" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Mudar Tipo" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Receita" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propagar para _filhos" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não foi possível mudar o nome\n" "desta Categoria '%s' para '%s',\n" "este nome já existe." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Combinar categoria '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "As transações atribuídas a esta categoria,\n" "serão alteradas para a categoria selecionada." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Incluir _subcategorias" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Gerir categorias" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Mostrar Ocultos" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Mostrar Uso" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Mover/Combinar" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Mostrar/Ocultar" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nova categoria" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nova subcategoria" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Moeda padrão" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Símbolo" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Taxa de câmbio" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Última modificação" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Editar moeda" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moeda" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formatar" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalizar" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Símbolo:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "É pre_fix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Decimal _caractere:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Dígitos da fração:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Caractere de agrupamento:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Selecione moeda padrão" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Seleccione moeda" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Código ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Adicionar uma moeda _personalizada" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Erro na actualização online" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Se apagar uma moeda, ela será perdida permanentemente." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Alterar a moeda padrão" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Se continuar, as taxas de outras moedas\n" "serão definidas como 0, não se esqueça de atualizar" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Moedas" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Actualização online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Definir como padrão" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Estatística do ficheiro" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transação" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Atualizar" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Seleccione a moeda padrão" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "A partir da v5.1, o HomeBank pode gerir várias moedas.\n" "Se a moeda abaixo não for a correcta, por favor, altere-a:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Moeda:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportar como QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importar de CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Abrir ficheiro HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Abra o arquivo de cópia de segurança do HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Salvar ficheiro HomeBank como" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Ficheiros HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Cópia de segurança" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Todas as cópias de segurança" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Gravar as alterações antes de fechar?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Se não gravar, as suas alterações serão definitivamente apagadas.\n" "Número de alterações: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Fechar _sem Salvar" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exportar como _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Pasta:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Escolha uma pasta" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nome do ficheiro:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Adicionar coluna de Estado" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detalhe as linhas de divisão" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "O ficheiro não estará no formato HomeBank CSV, porque exportou\n" "de \"Todas as transações\", ou selecionou a opção." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exportar como PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportar como _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Com o HomeBank, a impressão é orientada para a eco responsabilidade\n" "em relação ao formato digital mais difundido: o formato PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Selecione acção para criação alvo" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Criar _Novo" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Usar _Seleção" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Transferir fonte" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Associação alvo sugerida" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "O HomeBank encontrou alguma transacção que pode estar associada a uma " "transferência interna." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Nenhuma transação coincidente." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memorando:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Repor" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Usar" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Quantidade/Texto" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Mostrar sempre" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Nula" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Adicionado" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Editado" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Data de Vencimento" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Próximo Pagamento" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Em Avanço" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propriedades do ficheiro" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Transações agendadas" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "de cada" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mês" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Vencimento hora:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Excluir beneficiário não utilizado" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Tem a certeza que quer apagar\n" "permanentemente as entidades não usadas?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Editar Pagador" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Preenchimento por defeito" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_gamento:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não é possível renomear\n" "este beneficiário, de '%s' para '%s',\n" "este nome já existe." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Combinar beneficiários '%s" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "As transações atribuídas a este beneficiário,\n" "serão alteradas para o beneficiário selecionado." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Apagar beneficiário '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Este beneficiário já existe.\n" "Qualquer transação com este beneficiário será definida como (sem " "beneficiário)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gerir Beneficiários" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "novo beneficiário" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Configuração regional" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transações" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transferência" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importar/Exportar" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Denunciar" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Cópia de Segurança" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Pastas" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Idioma do sistema" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Escolha a pasta padrão para os ficheiros do HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" "Escolha a pasta padrão para arquivos de cópia de segurança do HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Escolha a pasta padrão para importação" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Escolha a pasta padrão para exportação" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Opções gerais" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opções OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Opções QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Opções CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(apenas importação de transação)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separador:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Relatórios da janela principal" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "_Itens máx .:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Fitro inicial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opções da estatística" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Mostrar por _montante" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Mostrar _coluna da taxa" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Mostrar _detalhes" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opções de orçamento" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Ativar" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Predefinição:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interface de utilizador" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Idioma:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formato:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%o nome abreviado do dia da semana da região.\n" "%Nome completo do dia da semana da região. \n" "%b Nome abreviado do mês da região. \n" "%B Nome completo do mês da região. \n" "%c representação de data e hora apropriada da região. \n" "%C Número do século (o ano dividido por 100 e abreviado para um número " "inteiro) como um número decimal [00-99]. \n" "%d dia do mês como um número decimal [01,31]. \n" "%D igual a %m/%d/%y. \n" "%e dia do mês como um número decimal [1,31]; um único dígito é precedido por " "um espaço. \n" "%j dia do ano como um número decimal [001,366]. \n" "%m mês como um número decimal [01,12]. \n" "%p representação de data apropriada da região. \n" "%y ano sem século como um número decimal [00,99]. \n" "%Y ano com século como um número decimal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Ano fiscal" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Começa _em:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unidades de medida" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Utilizar _milhas para distância" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Utilizar _galões para o combustivel" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Mostrar sempre lembrete" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Mostrar sempre o intervalo" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Fechar reconciliado a qualquer mudança" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Mostrar futuro:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dias à frente" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Esconder reconciliado" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Diálogo de transação" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Ativar _completar automático de memorando com" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "dias seguidos" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Mostrar texto de confirmação de adição por 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Configurações Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "Linha _Grid:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Opções dos gráficos" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "_tamanho de letra menor" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Barra de ferramentas:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Ativar cópias de segurança automáticas" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Numero de cópias de segurança a manter:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "A frequência de cópias de segurança é uma vez por dia" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Carteiras:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Cópia de segurança:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Arquivos de troca" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importar:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exportar:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Arranque do programa" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Mostrar ecrã inicial" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Carregar o último ficheiro aberto" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Lançar transações agendadas pendentes" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Atualizar moedas online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Redefinir todas as preferências" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Deseja realmente redefinir\n" "todas as preferências para os valores\n" "padrão?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferências" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informações" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Terá que reiniciar o HomeBank\n" "para que as alterações tenham efeito." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "A pasta das cópias de segurança mudou,\n" "precisa copiar o arquivo '.bak' para este novo local." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Editar Etiqueta" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não é possível renomear esta etiqueta,\n" "de '%s' para '%s',\n" "este nome já existe." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Fundir etiquetas '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transações atribuídas a esta etiqueta,\n" "serão movidos para a etiqueta selecionada abaixo." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Apagar a etiqueta '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Esta etiqueta já existe.\n" "A etiqueta será removida de qualquer transação que a utilize." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gerir etiquetas" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nova etiquetas" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transação de %s criada." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Quer interromper a transferência interna?\n" "\n" "Prosseguir irá excluir a transação de destino." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Parar" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Mostrar _agendado" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Mostrar _todas as contas" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Use um modelo" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Adicionar e _Manter" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Adicionar transacção" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Adicionar modelo" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Herdar transacção" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Herdar modelo" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editar transação" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editar modelo" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- digite: d, d/m, m/d para completar a data\n" "- use as teclas de seta + ctrl ou shift\n" "- sem data para hoje" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "P_ara:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Divisão da transacção" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Sem taxa disponível para preencher automaticamente" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Conta:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Livro _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- digite qualquer letra para preenchimento automático\n" "- digite o novo texto para criar a entrada" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_goria:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Estado:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emorando:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Aviso: sinal da quantia e categoria não correspondem" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Edição de múltiplas transacções" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Digite como\n" "transferir" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Eliminar tudo" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Aplicar" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Cancelar" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Valor da transacção:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Não atríbuida:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Soma das partes:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Aviso: a soma das divisões e o tipo de transação não correspondem" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Aviso: a soma das divisões e o valor da transação não correspondem" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(sem tipo)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banco" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Dinheiro" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Activo" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Cartão de crédito" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Passivo" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "A procurar" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Poupanças" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dia" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possível" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Antes" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Depois" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Ignorar" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Horas" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Ano" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Semana" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Quinzena" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestre" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Incluir" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Excluir" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Ontem" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Amanhã" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Última semana" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Esta semana" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Semana Seguinte" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Última Quinzena" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Esta Quinzena" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Próxima Quinzena" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Mês Passado" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Este mês" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Mês Seguinte" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Último Trimestre" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Este Trimestre" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Próximo Trimestre" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Ano Anterior" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Este Ano" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Ano Seguinte" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Últimos 90 Dias" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Últimos 60 Dias" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Últimos 30 dias" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Últimos 12 meses" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Últimos 30 Dias" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Todas as Datas" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Este mês" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Próximo mês" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Próximos 30 dias" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Próximos 60 dias" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Próximos 90 dias" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Despesas e Rendimentos." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Qualquer tipo" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Qualquer estado" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Não descontado" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Não reconciliado" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Sem categoria" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Predefinições" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Apenas ícones" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Apenas texto" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Texto por baixo dos ícones" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Texto ao lado dos ícones" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Ambos" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorar" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Juntar ao Memorando" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Anexar ao beneficiário" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulação" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Vírgula" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Ponto e vírgula" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Espaço" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Janeiro" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Fevereiro" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Março" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Abril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Junho" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Julho" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agosto" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Setembro" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Outubro" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembro" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Dezembro" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Set" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Procurar..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Transferência Bancária" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Cartão de débito" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Ordem permanente" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pagamento eletrónico" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depósito" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Taxa Financeira" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Débito Directo" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/he.po0000644000175000017500000032702614775770014010373 # Hebrew translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2019-03-12 18:27+0000\n" "Last-Translator: rochai \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "X-Language: he\n" "X-Source-Language: en\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "מימון אישי" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "ראיית חשבונות אישית חופשית, קלה ופשוטה לכולם" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "מימון;פיננסים;חשבונאות;תקציב;אישי;כסף;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "זו תוכננה לשימוש קל ומסוגלת לנתח מימון אישי לפרטים באמצעות כלי סינון יעילים " "מאוד ותרשימים מרשימים." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "אם אתה מחפש דרך לנהל את החשבונות האישיים שלך בקלות וללא עלות, Homebank היא " "התכנה בשבילך." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d עסקאות" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_מחק" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "האם אתה בטח כי ברצונך לשנות את הסטטוס אל אין?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "חלק מהעסקאות שנבחרו כבר הושלמו." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_שינוי" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "האם לעדכן את סטטוס העסקא ל-'הושלם'?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_החלף" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "כל העסקאות" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "נמצאו %d קבוצות של עסקאות דומות" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "לא נמצאו עסקאות תואמות" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "לא נמצא חוסר עקביות" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "כל סכום עסקה יחולק ב %.6f" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "לא בוצעו שינויים בעסקאות" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "עסקה עודכנה: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "תוצאה של השמה אוטומטית" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "הוספה..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "הור_ש..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_ערוך..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_אין" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "הו_סדר" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "הו_שלם" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_סטטוס" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "אין" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_עריכה מרובה..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "צור תבנית..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_מחק..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "יצא QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "יצא CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "ע_ריכה" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "סמן ככפול" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "השמות אוטומטיות" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "המר ל-Euro" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_כלים" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "הוסף עסקה חדשה" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "הוסף" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "הורש מתוך העסקה הפעילה" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "הורש" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "ערוך עסקאות פעילות" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "ערוך" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "הגדר עסקאות נבחרות כמוסדרות" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "הגדר עסקאות נבחרות כמושלמות" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "ערוך מספר עסקאות" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "מחק עסקאות נבחרות" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(סגור)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_רענן" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "ערוך מסנן" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "רענן תוצאות" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "היום:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "עתיד:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "החזר שינויים לא שמורים לקובץ '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- שינויים אשר נעשו לקובץ יאובדו לעד\n" "- קובץ ייטען מחדש מתוך השמירה האחרונה (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_שחזר" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "האם אתה בטוח כי ברצונך להפוך את הקובץ לעלום?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "המשך יהפוך לעלום כל טקסט, \n" "כגון 'חשבון x', 'מוטב y', 'מזכר z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_עילום" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "ברוכים הבאים אל HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_סגור" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "ליצור קובץ _חדש" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_לפתוח קובץ קיים" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "לפתוח קובץ _דוגמא" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "לקרוא מדריך _HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "הגדר _העדפות" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "לא ניתן לפתוח '%s', הקובץ איננו קיים.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "שגיאת I/O לקובץ '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "הקובץ '%s' אינו קובץ HomeBank תקני." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "הקובץ '%s' נשמר בעזרת גרסא מתקדמת יותר של HomeBank\n" "ולא יכול להיטען על ידי הגרסא הנוכחית." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "שגיאת קובץ" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_קובץ" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_חדש" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_פתח..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_שמור" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "שמירה _בשם..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "ייבוא..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "שחזר" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "מאפיינים..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "י_ציאה" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "העדפות..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_תצוגה" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_סרגל כלים" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "יורו שולי" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_ניהול" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_חשבונות..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "מוט_בים..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "סיווגים..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "תזמון/תבנית..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "משימות..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "מטבעות..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "תקציב..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "ע_סקאות" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "הוסף..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "הצג..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "הגדר מתזמן..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "מתוכננות בדיעבד" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_דיווחים" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_סטטיסטיקה..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_מגמת זמן..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "תק_ציב..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_עלויות רכב..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "הצג דו שיח התחלה..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "סטטיסטיקת קובץ..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "עילום (אנונימיזציה)..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_עזרה" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_תכנים" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "דווח על בעיה..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "תרגם יישום זה..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_אודות" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "צור קובץ חדש" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "פתח קובץ" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "פתח קובץ שהיה בשימוש לאחרונה" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "שמור את הקובץ הנוכחי" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "חשבון" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "מוטב" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "סיווג" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "תקציב" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "משימה" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "הצג עסקאות חשבון נבחרות" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "הוסף עסקאות" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "פתח דו״ח סטטיסטיקה" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "פתח דו״ח מגמת זמן" # ןיתרה #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "מאז" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "פתח דו״ח מאזן" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "פתח דו״ח תקציב" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "עלויות רכב" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "פתח דו״ח עלויות רכב" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "מתוזמן" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "עתיד" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "הזכר" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(אין סיווג)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "פורמט CSV לא חוקי" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "סטטוס" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "תגית" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "סכום" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "לא מוכר" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f ל" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "ק״מ/ל" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "מייל/ל" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(אין מוטב)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[קובץ]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "שגיאת דפדפן." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "לא ניתן להציג את הכתובת: '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(אין מוסד)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "החשבון שלך" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "הצג הכל" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "הרחב הכל" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "צמצם הכל" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "אין עסקה להוספה" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "התווספה עסקה: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "תוצאת בדיקת עסקאות מתוכננות" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "מועד מימוש מרבי" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "סה״כ" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_ממש" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "אחר" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "הוצאה" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "הכנסה" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "סך כולל" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "חשבונות" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "הושלם" # נוקה #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "הוסדר" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "היום" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- פילוג -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "תאריך" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "מזכר" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "תגיות" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "תוצאה" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "איחור" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "מועד הבא" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d תחת %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "רשימה" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "הצג תוצאות בתור רשימה" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "עקומה" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "הצג תוצאות בתור עקומות" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "פירוט" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "פרטים" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "רענן" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "דו״ח מאזן" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "תצוגה" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_זום X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_טווח:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_מן:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_עד:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "בחר:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "הכל" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "הפוך" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "הוצאות" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "חודש" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " עודף" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " נותר" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " בחובה" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "הצג תוצאות בתור שורות מסודרות בערימה" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "אין חשבון אשר מוגדר כדי להוות חלק מן התקציב." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "עליך להגדיר אילו חשבונות מתוך דו שיח חשבון." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "דו״ח תקציב" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_טיפוס:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "תוצאה:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "תקציב:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "הוצאות:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s לפי %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "הצג תוצאות בתור עמודה" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "הצג תוצאות בתור עוגה" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "מקרא" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "שיעור" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "דו״ח סטטיסטי" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_הצג לפי:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "הכנסה:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "הוצאה:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "ממוצע: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "דו״ח מגמת זמן" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_צבור" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "חיתוך לפי זמן" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "מונה" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "דלק" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "מחיר" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "מרחק" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "יצוא כ-CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "דו״ח עלויות רכב" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "סיוו_ג:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "מונה:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "צריכה:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "עלות דלק:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "עלות אחרת:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "עלות כוללת:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(אין)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "מוצג" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "שם חשבון" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "שגיאה" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "לא מסוגל להוסיף חשבון '%s',\n" "שם זה כבר קיים." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "לא יכול למחוק חשבון '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "האם אתה בטוח כי ברצונך למחוק את '%s' לצמיתות?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "כאשר אתה מוחק חשבון, זה יאבד לעד." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "לא מסוגל לשנות את שם חשבון זה,\n" "מן '%s' אל '%s',\n" "שם זה כבר קיים." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "ניהול חשבונות" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "כללי" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_מספר:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "איזון ה_תחלה:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_מטבע:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "חשבון זה _נסגר" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "הערות:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" # מניעת דיווח #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "הוצאה מכלל דיווח" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "הוצא מתוך _סיכום חשבון" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "הוצא מתוך ה_תקציב" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "הוצא מתוך ה_דיווחים" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "מספר שיק נוכחי" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "פנקס שיקים _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "פנקס שיקים _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "כאשר אתה מוחק תזמון/תבנית, זו תאבד לעד." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "_מועד הבא:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_כל:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "סוף שבוע:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_הפסק כעבור:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "ממומשות" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "ניהול עסקאות מתוזמנות/תבנית" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "תבנית" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_ביטול" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_אישור" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "תנאי" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "תלוי _רישיות" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "מוט_ב:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "שכתוב" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "תש_לום:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "כאשר אתה מוחק משימה, זו תאבד לעד." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "ניהול משימות" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "הוס_ף" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "לא נמצא" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "קובץ מוגדר מראש:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_שם:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "שם" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_פתח" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "קבצים מוכרים" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "קבצי QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "קבצי OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "קבצי CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "כל הקבצים" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "סדר תאריך:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "ימים" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "התיאם נעשה לפי סדר: לפי חשבון, מועד וסכום.\n" "סבילות תאריך של 0 ימים משמעה תיאום מדויק" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "ברוכים הבאים" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "יבוא" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "אימות" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "שגיאת פורמט קובץ" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "קובץ ה-CSV חייב להכיל את כמות העמודות במדוייק,\n" "מופרדות ע\"י נקודה-פסיק, אנא ראה בעזרה לפרטים נוספים." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "האם אתה בטוח כי ברצונך לטהר קלט?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "אם תמשיך, כל סכום יוגדר אל 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_טהר" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "תקציב עבור %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "ניהול תקציב" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "מאזן:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_טהר קלט" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "אפשרויות" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_אכוף מעקב על סיווג זה" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "ינו׳" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "פבר׳" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "מרץ" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "אפר׳" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "מאי" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "יונ׳" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "יול׳" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "אוג׳" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "אוק׳" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "נוב׳" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "דצמ׳" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "סיווג זה הינו מצוי בשימוש.\n" "כל עסקה אשר משתמשת בסיווג זה תוגדר אל (אין סיווג)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_מחק את הקטגוריה '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "מזג" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "מחק סיווגים שאינם בשימוש" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "האם אתה בטוח שברצונך למחוק לצמיתות\n" "סיווגים שאינם בשימוש?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "ה_כנסה" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "לא מסוגל לשנות את שם סיווג זה,\n" "מן '%s' אל '%s',\n" "שם זה כבר קיים." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "מיזוג קטגוריה '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "עסקאות אשר מוקצות לסיווג זה,\n" "יועברו אל הסיווג אשר נבחר מטה." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "ניהול קטגוריות" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "סיווג חדש" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "סיווג משני חדש" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "מטבע בסיס" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "סמל" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "שער המרה" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "ערוך מטבע" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "מטבע" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "תבנית" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_התאמה אישית" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_סימן" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "ספרות _שבר:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_סימן קיבוץ (של אלפים וכד'):" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "בחר מטבע בסיס" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "בחר מטבע" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "אם אתה מוחק מטבע, הוא יאבד לצמיתות." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "שינוי מטבע הבסיס" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "אם אתה ממשיך, שערי מטבע אחרים\n" "ישתנו ל-0, אל תשכח לעדכן." #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "מטבעות" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "עדכן אונליין" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "בחר כבסיס" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "סטטיסטיקת קובץ" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "עסקה" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "שדרג" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "בחר מטבע בסיס" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "מטבע:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "ייצוא כ-QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "יבוא מתוך CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "פתח קובץ HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "שמור קובץ HomeBank בשם" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "קבצי HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "לשמור שינויים לקובץ לפני סגירה?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "אם לא תשמור, שינויים יאבדו לעד.\n" "מספר שינויים: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "_סגור מבלי לשמור" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "‏HomeBank מצאה איזו עסקה אשר אולי היא העסקה המשוייכת להעברה הפנימית." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "ת_זכיר:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "אפ_ס" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "מאפייני קובץ" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "עסקאות מתוכננות" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "מחק מוטב שאינו בשימוש" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "האם אתה בטוח שאתה רוצה\n" "למחוק לצמיתות מוטב שאינו בשימוש" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "ת_שלום:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "לא מסוגל לשנות את שם מוטב זה,\n" "מן '%s' אל '%s',\n" "שם זה כבר קיים." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "מזג מוטב '%s'" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "עסקאות אשר מוקצות למוטב זה,\n" "יועברו אל המוטב אשר נבחר מטה." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_מחק את המוטב '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "מוטב זה הינו מצוי בשימוש.\n" "כל עסקה אשר משתמשת במוטב זה תוגדר אל (אין מוטב)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "ניהול מוטבים" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "מוטב חדש" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "ממשק" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "עסקאות" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "העברה" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "יבוא/יצוא" #: ../src/ui-pref.c:99 msgid "Report" msgstr "דיווח" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "שפת מערכת" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "בחירת תיקיית קבצים HomeBank שגרתית" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "בחירת תיקיית יבוא שגרתית" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "בחירת תיקיית יצוא שגרתית" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "אפשרויות OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "אפשרויות QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "דיווחי חלון ראשי" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "מסנן התחלתי" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "אפשרויות סטטיסטיקה" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "הצג לפי _סכום" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "הצג טור _אחוזים" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "הצג _פרטים" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "אפשרויות תקציב" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_אפשר" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_קבועים מראש:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_שפה:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_פורמט:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "שנת כספים" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "מתחילה _ביום:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "יחידות מידה" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "השתמש ב_מיילים לצורך מונה" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "השתמש ב_גלונים לצורך דלק" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_קווי רשת:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "אפשרויות תרשים" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "סרגל _כלים:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "י_בוא:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "י_צוא:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "התחלת תוכנית" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "הצג מסך פתיחה" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "פתח קובץ אחרון" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "עסקאות מתוכננות תלויות ועומדות בדיעבד" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "הגדרות" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "מידע" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "עליך להתחיל מחדש את HomeBank\n" "על מנת שהשפה תיכנס לתוקף." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "הוספת עסקה" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "הורשת עסקה" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_תאריך:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "פילוגי עסקה" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "ח_שבון:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "ס_טטוס:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "ת_זכיר:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "עריכה מרובה של עסקאות" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "סכום עסקה:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "לא מוקצה:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "חישוב של פילוגים:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(אין טיפוס)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "בנק" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "מזומן" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "נכס" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "כרטיס אשראי" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "התחייבות" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "יום" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "אפשרי" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "לפני" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "אחרי" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "שנה" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "שבוע" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "רבעון" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "הכלל" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "הוצא" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "חודש נוכחי" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "הוצאות וגם הכנסות" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "כל טיפוס" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "כל סטטוס" # לא מנוקה #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "לא מוסדר" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "לא הושלם" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "לא מסווגת" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "ברירות מחדל מערכת" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "סמלים בלבד" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "טקסט בלבד" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "טקסט מתחת סמלים" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "טקסט לצד סמלים" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "אופקי" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "אנכי" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "גם וגם" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "חודש-יום-שנה" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "יום-חודש-שנה" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "שנה-חודש-יום" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "התעלם" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "הוסף למזכר" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "צרף למוטב" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "ינואר" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "פברואר" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "מרץ" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "אפריל" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "יוני" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "יולי" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "אוגוסט" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "ספטמבר" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "אוקטובר" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "נובמבר" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "דצמבר" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "ספט׳" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "שיק" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "כרטיס חיוב" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "הוראת קבע" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "תשלום אלקטרוני" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "הפקדה" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "אגרת FI (מוסד פיננסי)" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "הרשאה לחיוב" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ja.po0000644000175000017500000036060114775770016010367 # Japanese translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank-4.0.4\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2023-12-09 05:45+0000\n" "Last-Translator: Seiichi Saida \n" "Language-Team: Team Puppy Linux Japanese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "First-Translator: nyu \n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "家計簿" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "無料で使いやすい、みんなの家計簿" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "ファイナンス;会計;家計簿;予算;個人向け;お金" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "HomeBankは家計簿のフリーソフトウェア(フリーとは自由の意味)です。" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "強力なフィルタリングツールと美しいグラフにより、家計の管理と分析を簡単にできるように設計されています。" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "HomeBankは完全無料で、家計管理の最適なソフトです。" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d件の取引" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d件の取引、%d件選択され、平均:%s、合計:%s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "ロックされた。クリックしてを解除" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "ロックされていません。クリックしてロック" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "選択した %d つの取引を削除してもよろしいですか?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "取引を削除すると永久に失われます。" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "削除(_D)" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "状態を「なし」に変更してもよろしいですか?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "選択した取引の一部は既に照合済です。" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "変更(_C)" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "照合済の状態を切り替えてもよろしいですか?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "切り替え(_T)" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "選択した %d つの取引からテンプレートを作成してもよろしいですか?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "作成(_C)" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "テンプレートを作成" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "事前入力されたアイコンで %d つが作成されました。" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "選択した %d つの取引から割り当てを作成してもよろしいですか?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "割り当てを作成" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "全ての取引" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "似たような取引が%d件あります" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "似たような取引は見つかりませんでした。" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "振込の確認結果" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "矛盾した取引が見つかりませんでした。" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "矛盾した取引が%d件見つかりました。\n" "確認して修正しますか?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "すべての取引金額は%.6fで除算されます。" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "この口座を主要通貨としてユーロに変換してもよろしいですか?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "変換(_C)" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "取引の変更はありません" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "%d件の取引が変更されました" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "自動割り当て結果" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "追加(_A)..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "継続(_I)..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "編集(_E)..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "なし(_N)" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "清算済(_C)" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "照合済(_R)" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "状態(_S)" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "なし" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "複数の取引を編集(_M)…" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "分割取引を表示(_S)" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "元金額をコピー" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "テンプレートを作成..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "割り当てを作成…" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "削除(_D)…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "上へ(_U)" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "下へ(_D)" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "QIFでエクスポート…" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "CSVでエクスポート..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "印刷..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "ウェブサイトを閲覧" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "口座(_C)" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "コピー" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "貼り付け" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "貼り付け(本日の日付で)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "編集(_E)" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "重複としてマーク…" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "振込を確認" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "自動割り当て" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "ユーロに変換…" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "ツール(_T)" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "取引を上に移動" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "取引を下に移動" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "新しい取引を追加" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "追加" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "当取引から継続" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "継続" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "当取引を編集" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "編集" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "選択した取引の精算の状態を切り替えます" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "選択した取引の照合の状態を切り替えます" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "複数の取引を編集" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "選択した取引を削除" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "照合済の取引への変更は" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(閉鎖された)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "表示" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "更新(_R)" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "日付許容範囲(_G):" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "%d日前の表示を切り替え" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "フィルタを編集" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "結果を更新" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "ヨーロッパのマイナー通貨(_M)" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "照合済:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "清算済:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "本日:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "将来:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "ファイル「%s」に保存されていない変更を破棄しますか?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "・ファイルに加えられた変更は永久に失われます。\n" "・ファイルは最後の保存(.xhb~)から再読み込みされます。" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "変更を破棄(_R)" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "本当にファイルを匿名化しますか?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "進むと、「口座〇〇」「受取人〇〇」「摘要〇〇」\n" "などのような文字を匿名化します。" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "匿名化(_A)" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "HomeBank へようこそ" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "閉じる(_C)" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "最後に開いたファイルを開く(_L)" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "新しいファイルを作成(_N)" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "既存のファイルを開く(_O)" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "サンプルファイルを開く(_E)" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "HomeBankのマニュアルを読む(_M)" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "環境設定(_P)" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "次回はこのウィンドウを表示します" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "バックアップファイル「%s」を開こうとしています。\n" "\n" "これでよろしいですか?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "バックアップファイルを開きますか?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "バックアップを開く(_O)" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "ファイル「%s」を開けません(ファイルが存在しません)。\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "不明のエラー" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "ファイル「%s」の入出力エラーが発生しました。" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "ファイル「%s」は有効な HomeBank ファイルではありません。" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "ファイル「%s」は、HomeBank の上位バージョンで保存されましたので、\n" "現在のバージョンでは開けません。" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "ファイルエラー" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "読み取り後にファイルが変更されています。" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "このファイルを保存すると外部からの変更はすべて失われます。強制的に保存しますか?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "とにかく保存する(_A)" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "クリア" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "ファイル(_F)" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "新しい財布(_N)" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "開く(_O)..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "最近開いたファイル(_R)" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "保存(_S)" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "名前を付けて保存(_A)..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "インポート..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "QIFでエクスポート…" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "変更を破棄" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "バックアップを復元" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "プロパティ..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "終了(_Q)" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "環境設定..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "表示(_V)" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "ツールバー(_T)" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "合計グラフ(_O)" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "時間グラフ(_I)" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "画面下のリスト(_B)" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "ヨーロッパのマイナー通貨" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "管理(_M)" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "財布ファイル…" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "口座(_O)..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "受取人(_P)..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "カテゴリ…" #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "タグ…" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "予定取引とテンプレート…" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "割り当て…" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "通貨…" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "予算…" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "予算(テーブル表示)…" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "取引(_T)" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "追加..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "表示..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "予定取引の実行を設定…" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "予定取引を実行" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "報告(_R)" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "統計(_S)…" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "時間傾向(_T)…" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "差引残高(_B)…" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "予算(_U)..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "車の費用(_V)..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "ウェルカムダイアログを表示する…" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "ファイルの統計…" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "匿名化…" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "ヘルプ(_H)" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "内容(_C)" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "オンラインヘルプ…" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "更新を確認…" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "リリースノート" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "問題を報告..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "このアプリケーションを翻訳する" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "バージョン情報(_A)" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "新規" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "新しいファイルを作成" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "開く" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "ファイルを開く" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "最近使用したファイルを開く" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "保存" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "現在のファイルを保存" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "口座" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "口座を管理" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "受取人" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "受取人を管理" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "カテゴリ" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "カテゴリを管理" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "予定取引とテンプレート" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "予定取引とテンプレートを管理" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "予算" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "予算を管理" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "割り当て" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "自動割り当てを管理" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "選択された口座の取引を表示" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "取引を追加" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "統計" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "統計報告を開く" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "時間傾向" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "時間傾向報告を開く" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "差引残高" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "差引残高報告を開く" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "予算報告を開く" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "車の費用" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "車の費用報告を開く" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "ヘルプ" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "寄付" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "HomeBankプロジェクトへ寄付" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "予定取引" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "将来" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "備忘通知" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "本日(_T)" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(摘要なし)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(コピー)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(カテゴリなし)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "無効なCSV形式" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "種類" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "状態" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "タグ" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "支払" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "金額" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "文字" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "不明" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f L" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/L" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "マイル/L" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(受取人なし)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(グループなし)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(タグなし)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "%02d週目" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "第%d四半期" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d年-%02d週目" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-Q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d H%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[ファイル]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "ブラウザエラー。" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "URL '%s 'の表示ができません" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(金融機関なし)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "お使いの口座" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "クリップボードにコピー" #: ../src/hub-account.c:594 msgid "Group by" msgstr "グループ化" #: ../src/hub-account.c:595 msgid "type" msgstr "種類" #: ../src/hub-account.c:596 msgid "group" msgstr "グループ" #: ../src/hub-account.c:597 msgid "institution" msgstr "金融機関" #: ../src/hub-account.c:602 msgid "Show all" msgstr "全表示" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "全て展開する" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "全て折畳む" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "合計:%s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "追加する取引はありません" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "%d件の取引が追加されました" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "予定取引の実行結果を確認" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "プログラム開始時に実行" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "オン" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "オフ" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "次の実行日" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "合計" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "スキップ(_S)" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "編集して実行(_O)" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "実行(_P)" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "カテゴリ別支出トップ%d" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "受取人別支出トップ%d" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "口座別支出トップ%d" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "口座残高" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "その他" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "合計グラフ" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "支出" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "収入" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "全口座残高" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "時間グラフ" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "インポートされた口座" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "総計" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "最終照合" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "貸越可能額" #: ../src/list-account.c:753 msgid "before maximum" msgstr "貯蓄可能額" #: ../src/list-account.c:856 msgid "Accounts" msgstr "口座" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "照合済" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "清算済" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "本日" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "ー分割取引ー" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "ーカテゴリが必要ー" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "日付" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "摘要" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "タグ" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "一致項目" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "結果" #: ../src/list-report.c:957 msgid "Average" msgstr "平均" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "遅れ" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "残り" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "次の日付" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "%s別残高" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%2$d件中%1$d件が %3$s 以下" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "リスト" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "結果をリストで表示" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "行" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "結果を線グラフで表示" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "詳細" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "詳細を切り替え" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "更新" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "印刷" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "差引残高報告" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "表示" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "時間間隔(_V):" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "空行を表示" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "X軸のズーム(_Z):" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "フィルタ" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "範囲(_R):" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "から(_F):" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "へ(_T):" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "選択:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "全て" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "反転" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "振込取引を表示(_T)" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "支出" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "達成された" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "月" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "カテゴリ別予算" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "月別予算" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " 超過" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " 余剰" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " 不足" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "積み上げグラフ" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "結果を積み上げグラフで表示" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "結果をクリップボードに(_R)" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "結果をCSVに(_R)" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "詳細をクリップボードに(_D)" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "詳細をCSVに(_D)" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "予算の設定されている口座がありません。" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "口座ダイアログからいくつかの口座を含める必要があります。" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "予算報告" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "モード:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "種類(_T):" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "予算超過のみ" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "結果:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "予算:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "支出:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%2$sによる%1$s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "列が多すぎて表示できない" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "より広い時間間隔またはより狭い日付範囲を選択してください" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "列" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "結果を棒グラフで表示" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "ドーナツ" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "結果をドーナツグラフで表示" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "結果を積み上げグラフで表示" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "100%積み上げグラフ" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "結果を100%積み上げグラフで表示" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "凡例" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "凡例を切り替え" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "百分率" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "百分率の表示を切り替え" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "統計報告" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "表示(_V):" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "差引残高モード(_B)" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "予測(_F)" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "金額順で表示(_A)" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "支出と収入を比較" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "合計:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "収入:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "支出:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "平均:%s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "時間傾向報告" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "累積(_C)" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "割り当て時間" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "メータ" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "燃料" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "価格" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "距離" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "エクスポート" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "CSVでエクスポート" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "車の費用報告" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "カテゴリ(_C):" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "メータ:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "消費量:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "燃費:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "その他の経費:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "合計経費:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(なし)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "表示" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "口座" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "エラー" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "アカウント「%s」を追加できません。\n" "名前はすでに存在しています。" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "「%s」口座を削除できません。" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "取引があります" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "振込取引の対象です" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "予定取引またはテンプレートがあります" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "振込の予定取引またはテンプレートの対象です" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "本当に「%s」を永久に削除しますか?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "口座を削除すると永久に失われます。" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "この口座を\n" "「%s」から「%s」へリネームできません。\n" "この名前は既に存在します。" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "口座を管理" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "削除" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "名前を変更" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "上に移動" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "下に移動" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "一般" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "グループ(_G):" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "金融機関(_I):" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "口座番号(_U):" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "開始残高(_B):" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "通貨(_C):" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "この口座は閉鎖されました(_C)" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "ウェブサイト:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "注記:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "動作" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "自動化" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "デフォルトのテンプレート(_T)" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "報告から除外" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "口座一覧から除外する(_S)" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "一覧へ流出" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "予算から除外する(_E)" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "全ての報告から除外する(_R)" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "その他" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "現在の小切手番号" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "小切手帳_1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "小切手帳_2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "残高限度額" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "最低残高(_O):" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "最大残高(_I)" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "予定取引やテンプレートを削除すると、永久に失われます。" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "次の日付(_D)" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "毎(_Y):" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "詳細の設定" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "週末:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "繰り返し(_S):" #: ../src/ui-archive.c:972 msgid "posts" msgstr "回" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "予定取引とテンプレートの管理" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "テンプレート" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "複製" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "予定を編集(_S)" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "検索文" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "注記" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "検索文は空にできません" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "この検索文字は既に#%dに存在します" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "キャンセル(_C)" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "条件" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "検索(_S):" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "対象(_I):" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "大/小文字を区別する(_S)" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "金額(_N):" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "且つ(_A)" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "割り当て" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "受取人(_P):" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "上書き" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "支払(_M):" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "タグ(_T):" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "この割り当ては複製できません。\n" "「%s」はすでに存在しています。" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(ルール%d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "割り当てを削除すると永久に失われます。" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "移動…" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "ルールを移動" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "移動" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "割り当ての管理" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "このアシスタントは、新規HomeBankファイルの\n" "簡単な設定を手伝います。" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "ここで行ったすべての設定は、後で変更することができます。" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "このアシスタントの最後に「適用」ボタンを\n" "クリックするまで変更は保存されません。" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBankはメインウィンドウにタイトルを表示します。\n" "タイトルは自由文でもお名前でも構いません。" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "タイトル(_T):" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "ホームバンクは複数の通貨に対応しています。基準通貨は\n" "新規口座および報告のデフォルト通貨となります。" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "基準通貨:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "追加の通貨を設定" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "追加(_A)" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "見つかりません" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBankでは、コミュニティが提供するCSVファイルが利用可能\n" "であれば、あなたの言語でのカテゴリを事前記入できます。" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "私の言語でのカテゴリを設定する" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "事前設定ファイル" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBankでは、ダウンロードした金融機関のファイルから口座を\n" "インポートすることもできますし、新規口座を作成することもできます。" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "最初の口座を作成" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "名前(_N):" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "これは確認ページです\n" "\n" "「適用」をクリックして変更を適用してください" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "ファイルの設定を開始" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "ファイルの設定" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "通貨を選択" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "カテゴリを選択" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "口座を作成" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "ファイルの設定を完了" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<新規グローバル口座>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<新規口座>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "<この口座ををスキップ>" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "有効" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "通貨名" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "開く(_O)" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "既知のファイルの種類" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIFファイル" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX ファイル" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV ファイル" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "全てのファイル" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "新規グローバル口座" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "新規口座" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "スキップした" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "、%2$d件中%1$d件の取引" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d件の取引、%d件似たような取引、%d件の既存取引、%d件選択されてます" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d件の取引、%d件選択されてます" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "変換できない日付があります。日付の順番を変更して続けてみてください。" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "%sを次の口座にインポート(_T):" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "このファイル" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "この口座" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "名前:%s\n" "番号:%s\n" "ファイル:%s\n" "エンコード:%s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "銀行やクレジットカードの取引をインポート" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "このアシスタントでは、銀行やクレジットカードから\n" "ダウンロードした明細書を次の形式でインポートするのを案内します:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "推奨ファイル形式: .OFX または .QFX\n" "(Money™ または Quicken™ と名付けられることもあります。)\n" "対応ファイル形式: .QIF\n" "(一般的なQuicken™ファイル)\n" "上級者限定ファイル形式: .CSV\n" "(形式はHomeBankに固有です。ユーザーマニュアルを参照してください)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "このアシスタントの最後に「適用」ボタンをクリックするまで変更は保存されません。" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "今後このメッセージを表示しない" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "1つまたは複数のファイルをドラッグ&ドロップしてインポートできます。\n" "また、リストの追加/削除ボタンを使用することができます。" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "選択したファイルに口座が多すぎます。\n" "選択するファイルを減らすには、戻るボタンを使用してください。" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "名前または番号による対象口座の特定に失敗しました。" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "日付の順番:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "摘要をインポート(_I)" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "摘要と受取人を入れ替え(_S)" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFXの名前(_N):" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFXの摘要(_M):" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "摘要/受取人の先頭文字だけを大文字にする(_C)" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "金額を切り替え(_T)" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "当口座内の似たような取引(重複の可能性あり)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "日" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "以下の順で一致: 口座、金額そして日付。\n" "日付許容範囲の0は完全な一致を意味します。" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "自動処理" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) 受取人のデフォルト設定を適用(_P)" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) 割り当てルールを自動実行(_A)" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "「適用」をクリックして口座を更新します。" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "ようこそ" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "ファイルを選択" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "インポート" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "確認" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "ファイルフォーマットエラー" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSVファイルには、セミコロンで区切られた正確な列数が含まれている\n" "必要があります。詳細については、ヘルプを参照してください。" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "入力をクリアしてもいいですか?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "進むと、すべての金額が0になります。" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "クリア(_C)" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%sの予算" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "予算管理" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "差引残高:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "毎月同じ金額" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "入力をクリア(_C)" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "月ごとに異なる金額" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "設定" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "このカテゴリを常に表示(_F)" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "1月" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "2月" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "3月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "4月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "5月" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "6月" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "7月" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "8月" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "9月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "10月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "11月" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "12月" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "一覧" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "合計" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "年間合計" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "月平均" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "月間" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "カテゴリを追加" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "適用(_A)" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "親カテゴリ" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "カテゴリ名" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "このカテゴリが使用されています。\n" "このカテゴリを使用しているすべての取引は、(カテゴリなし)に設定されます。" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "カテゴリを結合" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "カテゴリ「%s」に割り当てられた取引は、以下で選択されたカテゴリに移動されます。" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "対象カテゴリ" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "カテゴリ「%s」を削除(_D)" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "「%s」の入力をクリアしてもいいですか?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "カテゴリを追加" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "カテゴリを削除" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "結合" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "入力をクリア" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "取引" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "設定" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "未使用のカテゴリを削除" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "未使用のカテゴリを\n" "永久に削除してもよろしいですか?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "カテゴリを編集" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "種類を変更" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "収入(_I)" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "サブカテゴリも変更" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "このカテゴリを\n" "「%s」から「%s」にリネームできません。\n" "この名前は既に存在します。" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "カテゴリ「%s」を結合" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "このカテゴリに割り当てられた取引は、\n" "以下で選択されたカテゴリに移動します。" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "サブカテゴリを含む(_S)" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "カテゴリを管理" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "非表示したのを表示" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "使用回数を表示" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "移動/結合" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "表示/非表示" #: ../src/ui-category.c:2552 msgid "new category" msgstr "新規カテゴリ" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "新規サブカテゴリ" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "基準通貨" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "記号" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "為替レート" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "最終更新日時" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "通貨を編集" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "通貨" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "書式" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "カスタマイズ (_C)" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "記号(_S):" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "数字の前につける(_F)" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "小数点記号(_D):" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "小数点以下の桁(_F):" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "桁区切り記号(_G):" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "基準通貨を選択" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "通貨を選択" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "通貨コード" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "カスタム通貨を追加(_C)" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "通貨コード(_I):" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "オンライン更新エラー" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "通貨を削除すると永久に失われます。" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "基準通貨を変更" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "進むと、他の通貨の為替レートが0に\n" "なってしまうので、更新を忘れずに" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "通貨" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "オンライン更新" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "基準通貨として設定" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "ファイルの統計" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "取引" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "アップグレード" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "基準通貨を選択" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "v5.1から、HomeBankでは複数の通貨を管理できるようになりました。\n" "以下の通貨が正しくない場合は、変更してください。" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "通貨:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "QIF でエクスポート" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "CSVからインポート" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "HomeBankファイルを開く" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "HomeBankのバックアップファイルを開く" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "HomeBankファイルの名前を付けて保存" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank ファイル" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "ファイルのバックアップ" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "すべてのバックアップ" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "閉じる前にファイルへの変更を保存しますか?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "保存しないと、変更は永久に失われます。\n" "%d件の変更あります。" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "保存せずに閉じる(_W)" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "_CSVでエクスポート" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "フォルダー:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "フォルダーを選択" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "ファイル名:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "状態の欄を追加" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "詳細の行を分割" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "「全ての取引」からエクスポートしたか、又はオプションを選択したため、\n" "このファイルは HomeBank CSV 形式ではありません。" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "PDFでエクスポート" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "_PDFでエクスポート" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "HomeBankでは、最も普及しているデジタル形式:\n" "PDF形式に向けて、環境に配慮した印刷を心がけています。 " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "対象を作成するための動作を選択" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "新規作成(_N)" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "選択したのを使用(_S)" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "元の振込" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "提案された対象の関連付け" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "振込に関連したと思われる取引が見つかりました。" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "摘要(_M):" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "元に戻す(_R)" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "使用(_U)" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "金額・文字" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "常に表示" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "無効" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "追加済み" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "編集済み" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "期日" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "次回の支払" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "事前" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "ファイルのプロパティ" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "予定取引" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "日、" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "ヶ月ごと" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "未使用の受取人を削除" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "本当に未使用の受取人を\n" "永久に削除しますか?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "受取人を編集" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "デフォルトの設定" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "支払(_Y):" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "この受取人を\n" "「%s」から「%s」にリネームできません。\n" "この名前は既に存在します。" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "受取人「%s」を結合" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "この受取人に割り当てられた取引は、\n" "以下で選択された受取人に移動されます。" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "受取人「%s」を削除(_D)" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "この受取人が使用されてます。\n" "この受取人を使用している取引はすべて(受取人なし)に設定されます。" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "受取人を管理" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "新規受取人" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "インターフェース" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "ロケール" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "取引" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "振込" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "インポート/エクスポート" #: ../src/ui-pref.c:99 msgid "Report" msgstr "報告" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "予測" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "バックアップ" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "フォルダー" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "システム言語" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "HomeBankファイルのデフォルトのフォルダーを選択します。" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "HomeBankのバックアップファイルのデフォルトのフォルダーを選択してください" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "デフォルトのインポートフォルダーを選択してください" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "デフォルトのエクスポートフォルダーを選択してください" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "一般設定" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX 設定" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF 設定" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV 設定" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(取引インポートのみ)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "区切り:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "メインウィンドウの報告" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "最大項目数(_I):" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "初期フィルタ" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "統計の設定" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "金額順で表示(_A)" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "百分率の欄を表示" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "詳細を表示(_D)" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "予算の設定" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "予測を有効にする(_F)" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "月数:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "有効にする(_E)" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "事前設定(_P):" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "ユーザーインターフェース" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "言語(_L):" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "書式(_F):" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a ロケール依存の省略された曜日名。\n" "%A ロケール依存の完全な曜日名。\n" "%b ロケール依存の省略された月の名前。\n" "%B ロケール依存の完全な月の名前。\n" "%c ロケール依存の適切な日時表現。\n" "%C 年の上二桁。\n" "%d 月の日にちを10進数(01から31)での表現。\n" "%D %m/%d/%y と同じです。\n" "%e 月の日にちを10進数(1から31)での表現。\n" "%j 年の日にちを10進数(001から366)での表現。\n" "%m 月を10進数(01から12)での表現。\n" "%p ロケール依存の適切な日付表現。\n" "%y 年の下二桁。\n" "%Y 年。" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "会計年度" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "開始日、月(_O):" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "測定単位" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "メーターにマイルで表示(_M)" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "ガソリンをガロンで表示(_G)" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "備忘通知を常に表示" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "無効の取引を常に表示" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "備忘通知を残高と報告に含める" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "照合済の取引を変更されないようにロック" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "将来の取引の表示(_S):" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "日先" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "照合済の取引を隠す" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "取引ダイアログ" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "複数の追加または継続時に最後の日付を保持(_K)" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "摘要の自動補完を有効にする(_M)。ただし" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "日以内の取引に限る" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "追加された取引の確認を5秒間表示" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk設定" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "グリッド線(_G):" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "グラフの設定" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "凡例のフォントを小さく" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "ツールバー(_T):" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "自動バックアップを有効にする(_E)" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "保存するバックアップの数(_N):" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "バックアップ頻度は1日1回です" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "財布ファイル(_W):" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "バックアップ(_B):" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "ファイル変換" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "インポート(_I):" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "エクスポート(_E):" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "プログラム開始時" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "スプラッシュ画面を表示" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "最後に開いたファイルを読み込み" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "保留中の予定取引を実行" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "通貨の為替レートをオンラインで更新" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "環境設定リセットの確認" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "本当にすべての環境設定を\n" "デフォルト値にリセットしますか?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "環境設定" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "情報" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "言語の変更を反映させるには、\n" "HomeBankを再起動する必要があります。" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "バックアップファイルのフォルダーが変更されたので、\n" "「.bak」ファイルをそこにコピーする必要があるかもしれません。" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "タグを編集" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "このタグを\n" "「%s」から「%s」にリネームできません。\n" "この名前は既に存在します。" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "タグ「%s」を結合" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "このタグに割り当てられた取引は、\n" "以下で選択されたタグに移動します。" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "タグ「%s」を削除(_D)" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "このタグが使用されています。\n" "このタグは、それを使用しているすべての取引から削除されます。" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "タグを管理" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "新規タグ" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "「%s」の取引が作成されました。" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "振込取引を分解しますか?\n" "\n" "進むと、対象の取引が削除されます。" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "分解(_B)" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "予定取引を表示(_S)" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "全ての口座を表示(_A)" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "テンプレートを使う" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "追加して保持(_K)" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "取引を追加" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "テンプレートを追加" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "取引を継続" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "テンプレートを継続" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "取引を編集" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "テンプレートを編集" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "日付(_D):" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "・入力:日にち、または完全な日付\n" "・矢印キー + CtrlまたはShiftで年または月を変更\n" "・空白なら本日の日付になります" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "宛先(_O):" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "取引の分割" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "自動入力に使用できるレートがありません" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "口座(_C):" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "小切手帳_2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "・文字を入力して自動補完できます\n" "・新しい文を入力して新規作成できます" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "カテゴリ(_G):" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "状態(_S):" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "摘要(_E):" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "警告:金額の符号とカテゴリが一致しない" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "複数の取引を編集" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "振込へ\n" "変更" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "全ての分割を削除しますか?" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "すべて削除" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "先頭に -/+ を付けて符号を強制できます" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "適用" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "キャンセル" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "取引金額:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "未割り当て:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "分割取引の合計金額:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "分割数の制限に達しました" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "警告:分割取引の合計金額と取引の種類が一致しない" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "警告:分割取引の合計金額と取引総額が一致しない" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(種類なし)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "銀行" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "現金" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "資産" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "クレジットカード" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "負債" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "当座預金" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "普通預金" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "日" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "可能" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "より前" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "より後" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "スキップ" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "時間" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "年" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "週" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "2週間" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "四半期" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "半年" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "含む" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "除く" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "昨日" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "明日" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "前週" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "今週" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "来週" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "過去2週間" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "この2週間" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "次の2週間" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "前月" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "今月" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "来月" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "前四半期" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "今四半期" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "次の四半期" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "昨年" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "今年" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "来年" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "過去90日間" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "過去60日間" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "過去30日間" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "過去12ヶ月間" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "向こう30日間" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "全ての日付" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "カスタム" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "今月" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "翌月" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "次の30日間" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "次の60日間" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "次の90日間" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "最大実行日" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "支出 & 収入" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "全ての種類" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "全ての状態" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "未精算" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "未照合" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "未分類" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "システムデフォルト" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "アイコンだけ" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "文字のみ" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "アイコンの下に文字" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "アイコンの横に文字" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "横" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "縦" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "両方" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "月-日-年" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "日-月-年" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "年-月-日" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "無視する" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "摘要に追加" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "受取人に追加" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "タブ" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "半角コンマ" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "半角セミコロン" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "空白記号" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "1月" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "2月" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "3月" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "4月" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "6月" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "7月" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "8月" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "9月" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "10月" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "11月" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "12月" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "9月" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "検索…" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "小切手" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "銀行振込" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "デビットカード" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "自動振替" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "電子決済" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "入金" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "金融機関手数料" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "口座自動引き落とし" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ru.po0000644000175000017500000041770314775767777010455 # RU translation of Homebank. # Copyright (C) 2006 THE HomeBank'S COPYRIGHT HOLDER # This file is distributed under the same license as the HomeBank package. # Alexander Telenga , 2007. # # SPDX-FileCopyrightText: 2024 Alevtina msgid "" msgstr "" "Project-Id-Version: HomeBank 3.2.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-09-18 10:36+0000\n" "Last-Translator: Alevtina Karashokova \n" "Language-Team: Basealt Translation Team\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: ru\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Личные финансы" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Бесплатный и удобный учёт личных финансов для всех" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" "finance;accounting;budget;personal;money;финансы;учет;бюджет;личное;деньги;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank — это свободное программное обеспечение, которое поможет вам " "управлять вашими личными финансами." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Прост в использовании и позволяет детально анализировать ваши личные финансы " "с помощью множества фильтров и красивых графиков." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Если вы ищете приложение для удобного и полноценного учёта своих финансов, " "то HomeBank — лучший выбор." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "Операций: %d" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "Операций: %d, выбрано: %d, среднее: %s, всего: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Заблокировано. Нажмите, чтобы разблокировать" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Разблокировано. Нажмите, чтобы заблокировать" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Трудозатраты" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "«Заработок за час» не установлен в текущем кошельке." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Удалить выбранные операции (%d)?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Если вы удалите операцию, она будет безвозвратно утеряна." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Удалить" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Вы уверены, что хотите сменить статус на «Не определено»?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Некоторые из выбранных операций уже согласованы." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Изменить" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Вы уверены, что хотите изменить статус на «Оплачено»?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Вы уверены, что хотите поставить статус «Проведено»?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "П_ереключить" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Вы уверены, что хотите создать шаблон из выбранных операций (%d)?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Создать" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Создать шаблон" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d создан с предварительно заполненным значком" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Вы уверены, что хотите создать назначение из выбранных операций (%d)?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Создать назначение" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Все операции" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Присутствует %d группа похожих операций" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Похожих операций не найдено." #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Проверьте результат внутреннего перевода" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Несоответствия не найдены." #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Было найдено несоответствий: %d\n" "хотите просмотреть и исправить?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Сумма каждой операции будет поделена на %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Вы уверены, что хотите перевести этот счёт в евро в качестве основной валюты?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Конвертировать" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Операция не была изменена" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "операция изменилась: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Результат автоматического присвоения" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Добавить..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Скопировать..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Редактировать..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ничего" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Оплачено" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Проведено" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Состояние" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Отсутствует" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Красный" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Оранжевый" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Жёлтый" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Зелёный" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Синий" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Фиолетовый" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Флаг" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Множественное редактирование..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "_Показать разделение операции" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Скопировать значение" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Создать шаблон..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Создать назначение..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Удалить…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Вверх" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Вниз" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Экспорт в QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Экспорт CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Печать..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Перейти на сайт" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Закрыть" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Счёт" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Копировать" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Вставить" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Вставить (сегодня)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Скопировать в буфер обмена" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Найти" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Правка" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Пометить дубликаты..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Проверить внутренние переводы" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Автоназначения" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Перевести в евро..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Инструменты" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Переместить операцию выше" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Переместить операцию ниже" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Добавить новую операцию" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Добавить" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Скопировать текущую операцию" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Скопировать" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Редактировать текущую операцию" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Изменить" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Переключить «Оплачено» для выбранных операций" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Переключить «Проведено» для выбранных операций" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Редактировать несколько операций" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Удалить выбранные операции" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Изменение проводок" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(закрыт)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s — HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Показать" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Обновить" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Разрыв _дат:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Переключить показ на %d дней вперёд" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Настроить отбор" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Очистить фильтр" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Обновить результаты" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Включить или отключить трудозатраты" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Перейти на/с евро" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Проведено:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Очищено:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Сегодня:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Будущее:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Откатить изменения к предыдущей версии файла «%s»?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Последние изменения будут потеряны\n" "- Будет загружена последняя резервная копия (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Восстановить" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Вы уверены, что хотите анонимизировать файл?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Продолжение сделает весь текст анонимным,\n" "к примеру, «счёт x», «получатель y», «запись z»" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Анонимизировать" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Добро пожаловать в HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Закрыть" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Открыть последний файл" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Создать _файл" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "Откр_ыть файл" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Открыть файл _примера" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Открыть инструкци_ю HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Настройки программы" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Показать это окно в следующий раз" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Вы собираетесь открыть файл резервной копии «%s».\n" "\n" "Вы уверены, что хотите это сделать?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Открыть файл резервной копии?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Открыть резервную копию" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Не удалось открыть «%s», файл не существует.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Неизвестная ошибка" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Ошибка ввода/вывода файла «%s»." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Файл «%s» не является файлом HomeBank." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Файл «%s» не может быть открыт, т.к. был сохранён\n" "более поздней версией HomeBank." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Ошибка файла" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "С момента открытия файл был изменён" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Если вы сохраните файл, все внешние изменения будут потеряны. Всё равно " "сохранить?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Всё равно со_хранить" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Очистить" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Файл" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Новый" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Открыть..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "_Недавние файлы" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Сохранить" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Сохранить _как..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Импорт..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Экспортировать как QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Откатить" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Восстановить из резервной копии" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Свойства..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Выйти" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Параметры..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Вид" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Панель инструментов" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "И_тоговый график" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "В_ременной график" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Нижние списки" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Переход на/с евро" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Управление" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Кошелек" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Счета..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Получатели..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Категории..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Метки..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Расписание/шаблоны..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Назначения..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Курсы валют..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Бюджет..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Бюджет (таблица)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Операции" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Добавить..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Показать..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Показать все…" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Настроить планировщик..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Записать запланированные операции" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Отчёты" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Статистика..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Временной тренд" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Баланс..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Б_юджет..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Расходы на автомобил_ь..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Открыть окно приветствия…" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Статистика файла..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Анонимизировать..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Справка" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Содержание..." #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Получить помощь онлайн..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Проверить обновления..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Примечания к выпуску" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Сообщить о проблеме..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Перевести это приложение..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "О программе" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Создать" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Создать новый файл" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Открыть" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Открыть файл" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Открыть недавно использованный файл" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Сохранить" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Сохранить текущий файл" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Счёт" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Управление счетами" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Получатель" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Управление получателями" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Категория" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Управление категориями" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Запланированные/шаблоны" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Управление запланированными операциями и шаблонами" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Бюджет" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Управление бюджетом" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Назначение" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Управление автоматическими подстановками" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Показать операции по счёту" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Добавить операции" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Статистика" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Открыть статистический отчёт" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Временной тренд" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Открыть отчёт по временному тренду" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Баланс" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Открыть балансовый отчёт" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Открыть отчёт по бюджету" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Расходы на автомобиль" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Открыть отчёт по расходам на автомобиль" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Помощь" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Помочь проекту" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Помочь проекту HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Запланировано" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Будущее" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Напомнить" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Сегодня" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(нет памятки)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(копия)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(без категории)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "повреждённый формат CSV" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Недопустимый диапазон дат." #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Шрифт" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "обычный расход" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "обычный доход" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "переводной расход" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "переводной доход" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Статус" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "нет" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "оплачено" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "проведено" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Метка" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Платёж" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Сумма" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Текст" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Неизвестно" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f л" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "км/л" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "миль/л" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(нет получателя)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(без группы)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(без метки)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "н%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "к%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "п%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-н%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-к%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-п%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Показать версию приложения" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[Файл]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Ошибка браузера." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Не удалось отобразить ссылку '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(без учреждения)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Ваши счета" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Скопировать" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Расположить по" #: ../src/hub-account.c:595 msgid "type" msgstr "Типу" #: ../src/hub-account.c:596 msgid "group" msgstr "Группам" #: ../src/hub-account.c:597 msgid "institution" msgstr "Огрганизациям" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Показать всё" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Развернуть все" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Свернуть все" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "сумма: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Нет операций для добавления" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "добавлена операция: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Проверить результат запланированных операций" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Сообщение при запуске приложения" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Вкл." #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Выкл." #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "Максимальная дата сообщения" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Итого" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Пропустить" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Изменить и В_ыложить" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Разместить" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Наибольшие затраты (%d)/категория" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Наибольший расход (%d)/категория" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Наибольшие затраты (%d)/получатель" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Наибольший расход (%d)/получатель" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Наибольшие затраты (%d)//счёт" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Наибольший расход (%d)/Счёт" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Баланс счёта" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Баланс группы счетов" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Прочее" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Общий график" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Расположить по" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Исходное количество" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Группа счетов" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Затраты" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Расход" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Прибыль" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Доход" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Затраты и прибыль" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Расход и доход" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Общий баланс" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Временной график" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Общие" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "импортированная учётная запись" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Общий итог" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "последнее согласованное" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "до овердрафта" #: ../src/list-account.c:753 msgid "before maximum" msgstr "до максимума" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Счета" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Проведено" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Расчитано" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Сегодня" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- разделённая операция -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- категория не выбрана -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Дата" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Номер" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Заметка" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Метки" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Номер платежа" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Флаг" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Соответствие" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Результат" #: ../src/list-report.c:957 msgid "Average" msgstr "Среднее" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Просрочено" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Осталось" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Следующая дата" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Баланс по %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d в рамках %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Список" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Смотреть результаты в виде списка" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "График" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Смотреть результаты в виде линейной диаграммы" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Детали" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Показать подробности" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Обновить" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Распечатать" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Балансовый отчёт" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Показать" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Интер_вал:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Показать пустые строки" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Увеличение X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Фильтр" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Включено:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Диапазон:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Со счёта" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_На счёт:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Выбрать:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Выбрать все" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Инвертировать" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Включать операции _перевода" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Потрачено" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Выполнено" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Месяц" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Бюджет по категориям" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Бюджет по месяцам" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " превышение" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " осталось" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " не получено" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(вне бюджета)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Столбцы" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Смотреть результаты в виде ленточной диаграммы" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Результат в буфер обмена" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Результат в CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Детали в буфер обмена" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Детали в CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Нет счетов для включения в бюджет." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Необходимо выбрать счета в окне счетов." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Отчёт по бюджету" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Режим:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "Тип:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Только выходящие из бюджета" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Результат:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Бюджет:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Потрачено:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s сгруппировано по графе «%s»" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Слишком много столбцов для отображения" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Выберите более широкий интервал и/или более узкий диапазон дат" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Столбец" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Смотреть результаты в виде столбчатой диаграммы" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Круговая диаграмма" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Смотреть результаты в виде круговой диаграммы" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Смотреть результаты в виде диаграммы с накоплением" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Стек 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Смотреть результаты в виде 100% диаграммы с накоплением" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Обозначения" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Показать легенду" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Курс" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Показывать проценты" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Отчёт по статистике" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Просмотр по:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Режим баланса" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Прогноз" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Упорядочить по _сумме" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Сравнить расх. и дох." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Итого:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Доход:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Расход:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "В среднем: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Временной тренд" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "Накопительный" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Элемент" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_По:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Временной срез" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Счётчик" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Топливо" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Стоимость" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Расст." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Экспорт" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Экспортировать как CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Отчёт по расходам на автомобиль" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Категория:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Счётчик:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Потребление:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Стоимость топлива:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Другие расходы:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Итоговая стоимость:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(нет)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Видимость" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Название счёта" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Ошибка" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Невозможно добавить счёт «%s»,\n" "такое имя уже занято." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Невозможно удалить счёт «%s»" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Содержит операцию" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Является объектом операции xfer" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Содержит расписание/шаблон" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Является объектом расписания/шаблона xfer" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Вы уверены, что хотите безвозвратно удалить «%s»?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Если вы удалите счёт, он будет безвозвратно утерян." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не удалось переименовать счёт\n" "из «%s» в «%s»,\n" "это имя уже используется." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Управление счетами" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Удалить" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Переименовать" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Переместить вверх" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Переместить вниз" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Общие" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Группа:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Банк:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Номер с_чёта:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Начальный _баланс:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Валюта:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "этот счёт _закрыт" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Веб-сайт:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Примечания:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Поведение" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Автоматизация" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Шаблон по умолчанию:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Исключить из отчётов" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "исключить из сводки по _счетам" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "отражать в сводке" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "исключить из _бюджета" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "исключить из всех _отчётов" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Разное" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Текущий номер чека" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Чековая книжка _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Чековая книжка _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Ограничения баланса" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Овердрафт:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Макс_имум" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Удаление шаблона" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Этот шаблон используется в качестве шаблона счёта и не может быть удалён." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Если вы удалите запланированное/шаблон, он будет безвозвратно утерян." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Следущая _дата:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Периодичность:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Больше параметров" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Выходные" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Прекратить после:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "записи" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Управление расписанием/шаблонами операций" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Шаблон" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Создать копию" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Расписание" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Поиск" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Примечания" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Поиск не может быть пустым" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Эта строка поиска уже есть в позиции %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Отмена" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_ОК" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Условие" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Содержит:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_В:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "С учётом _регистра" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Сумма:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_И" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Назначения" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Получатель:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Переписать" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Тип _платежа:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Метки:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Невозможно создать копию этого назначения,\n" "«%s» уже существует." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(правило %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Если вы удалите эту запись, она будет безвозвратно утеряна." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Переместить в..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Правило перемещения" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Переместить" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Управление назначениями" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Ассистент поможет сделать базовую настройку нового\n" "файла HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Все элементы, которые вы здесь настроили, могут быть изменены позже, если " "потребуется." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Изменения не будут применены, пока вы не\n" "нажмёте кнопку «Применить» на завершающем шаге." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank будет показывать в заголовке главного окна\n" "ваше имя или любой произвольный текст." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Заголовок:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank поддерживает учёт в нескольких валютах. Базовая валюта\n" "является валютой по умолчанию для счетов и отчётов." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Основание:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Настроить дополнительные валюты" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Добавить" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Не найдено" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank может создать список категорий для вашего языка,\n" "если существует файл CSV, созданный сообществом." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Настроить категории для моего языка" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Файл предустановки:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank позволяет импортировать ваши счета из скачанных\n" "финансовых файлов, или вы можете создать счета вручную." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Создать счёт" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Имя:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Это страница подтверждения,\n" "\n" "нажмите «Применить», чтобы сохранить изменения." #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Начать настройку файла" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Параметры файла" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Выбрать валюты" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Выбрать категории" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Создать счёт" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Завершить настройку файла" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<Новый счёт (основной)>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<Новый счёт>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "<Пропустить этот счёт>" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Корректный" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Имя" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Открыть" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Известные файлы" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Файлы QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX файлы" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Файлы CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Все файлы" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "новый основной счёт" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "новый счёт" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "пропущено" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d из %d опер." #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "Операций: %d, аналогичных: %d, существует: %d, выбрано: %d" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "Операций: %d, выбрано: %d" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Некоторые даты не могут быть преобразованы. Попробуйте изменить формат даты " "для продолжения." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Импортировать %s _в:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "этот файл" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "этот счёт" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Наименование: %s\n" "Номер: %s\n" "Файл: %s\n" "Кодировка: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Импорт операций из банка или кредитной карты" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "С помощью этого помощника вы сможете провести процесс импорта одного или " "нескольких\n" "загруженных отчётов из вашего банка или кредитной карты, в следующих " "форматах:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Рекомендованные: .OFX или .QFX\n" "(Иногда называются Money™ или Quicken™)\n" "Поддерживаемые: .QIF\n" "(Обычно файл Quicken™)\n" "Только для опытных пользователей: .CSV\n" "(формат специализирован для HomeBank, см. документацию)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Изменения не применены, пока вы не нажмёте кнопку «Применить» в конце " "процесса." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Больше не показывать это сообщение" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Перетащите один или несколько файлов для импорта.\n" "Вы также можете использовать кнопки «Добавить»/«Удалить»." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Слишком много счетов в выбранных вами файлах,\n" "используйте кнопку «Назад», чтобы выбрать меньшее количество файлов." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Не удалось идентифицировать указанный счёт по имени или номеру." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Формат даты:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Импортировать заметки" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Поменять заметки на получателя" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Имя:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Действие:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "_Только первое слово с прописной буквы в заметках и получателях" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Переключить сумму" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Похожие операции в указанном счёте (возможны повторения)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "дней" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Сопоставление производится в следующем порядке: по счёту, по сумме и по " "дате.\n" "Разница в датах 0 дней означает точное совпадение." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Запустить автоматизацию" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Дополнить _получателем по умолчанию" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Запустить правила автоматического назначения" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Нажмите «Применить», чтобы обновить ваши счета" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Добро пожаловать" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Выберите файл(ы)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Импортировать" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Подтверждение" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Ошибка формата файла" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV-файл должен содержать точно соответствующее количество колонок,\n" "разделённых точкой с запятой. За дополнительной информацией обратитесь к " "справке." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Вы уверены, что хотите очистить введённые данные?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Если вы продолжите, все суммы будут обнулены." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "О_чистить" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Бюджет на %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Управление бюджетом" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Импорт CSV…" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "Э_кспорт CSV…" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Баланс:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "одинаковый каждый месяц" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Очистить введённые данные" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "разный каждый месяц" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Параметры" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Принудительный мониторинг категории" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Янв" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Фев" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Мар" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Апр" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Май" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Июн" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Июл" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Авг" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Сен" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Окт" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Ноя" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Дек" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Итог" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Итоги" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Годовой\n" "итог" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Среднемесячный\n" "показатель" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Каждый месяц" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Добавить категорию" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Применить" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Родительская категория" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Наименование категории" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Эта категория уже используется.\n" "Все операции, относящиеся к этой категории, будут отмечены как «без " "категории»." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Объединить категории" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Операция с категорией «%s» будет перемещена в категорию, выбранную ниже." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Целевая категория" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Удалить категорию «%s»" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Вы уверены, что хотите очистить введённые данные для «%s»?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Добавить категорию" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Удалить категорию" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Объединить" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Очистить" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# транз" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# конф" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Удалить неиспользуемые категории" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Вы уверены, что хотите безвозвратно\n" "удалить неиспользуемые категории?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Дублирующееся название категории. Попробуйте другое название." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Изменить категорию" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Изменить тип" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Доходы" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Распространяется на _дочерние элементы" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Невозможно переименовать категорию\n" "из «%s» в «%s»,\n" "это имя уже используется." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Объединить категорию «%s»" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Операции, относящиеся к этой категории,\n" "будут перемещены в категорию, выбранную ниже." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Включая _подкатегории" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Управление категориями" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Показать скрытые" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Показать частоту использования" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Удалить неиспользуемое…" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Переместить/объединить" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Показать/скрыть" #: ../src/ui-category.c:2552 msgid "new category" msgstr "новая категория" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "новая подкатегория" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Основная валюта" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Символ" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Обменный курс" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Последние изменения" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Изменить валюту" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Валюта" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Формат" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Настроить" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Символ" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Префикс" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Десятичный символ:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Знаков после запятой:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Символ разделения на группы:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Выбрать основную валюту" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Выбрать валюту" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Код ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Добавить свою _валюту" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Ошибка обновления через Интернет" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Если вы удалите валюту, она будет навсегда потеряна." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Сменить основную валюту" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Если вы продолжите, курсы других валют\n" "станут равны 0, не забудьте обновить их" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Валюты" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Обновить по сети" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Журнал вызовов" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Установить в качестве базы" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Статистика файлов" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Операция" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Обновить" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Выбрать основную валюту" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Начиная с версии 5.1, HomeBank может работать с различными валютами.\n" "Если указанная ниже валюта неверна, выберите другую:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Валюта:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Экспортировать как QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Импорт из CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Открыть файл HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Открыть резервную копию HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Сохранить файл HomeBank как" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Файлы HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Резервное копирование" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Все резервные копии" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Сохранить изменения в файл перед завершением работы?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Если вы не сохраните изменения, они будут утеряны.\n" "Количество изменений: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Закрыть _без сохранения" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Экспорт _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Папка:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Выберите папку" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Имя файла:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Добавить столбец состояния" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Детализировать разделённые операции" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Файл не будет иметь формат HomeBank CSV, поскольку вы экспортируете\n" "из «Все операции» или выбрали какую-либо опцию." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Экспорт в PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Экспортировать как_PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Homebank ориентирован на экологически ответственное поведение,\n" "поэтому для печати выбран общепринятый цифровой формат: PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Выбор действия для создания цели" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "_Создать" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Использовать _выбранное" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Перенос источника" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Предлагаемая целевая ассоциация" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank обнаружил операции, которые, возможно, предназначены для внутренних " "переводов." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Нет совпадения операций." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Введите от -30 до -15 для фильтрации по расходу" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Заметка:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Номер:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Перевод расхода" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Перевод дохода" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Сброс" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Сохранить и использовать" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Использовать" #: ../src/ui-filter.c:1370 msgid "default" msgstr "по умолчанию" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Сумма/текст" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Показывать всегда" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Недействительно" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Добавлено" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Изменено" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(по умолчанию)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Переименование фильтра" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Новый фильтр %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Название фильтра" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Сохранить как…" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Переименовать…" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Срок оплаты" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Следующая оплата" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Предоплата" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Свойства файла" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Запланированные операции" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "раз(а) в" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "месяц" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Заработок за час:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Удалить неиспользуемых получателей" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Вы уверены, что хотите навсегда\n" "удалить неиспользуемых получателей?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Дублирующееся имя получателя. Попробуйте другое имя." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Изменить получателя" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Заполнение по умолчанию" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Пл_атёж:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Невозможно переименовать этого получателя\n" "из «%s» в «%s»,\n" "это имя уже используется." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Объединить получателя платежа «%s»" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Операции, относящиеся к этому получателю,\n" "будут перемещены получателю, выбранному ниже." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "Удалить получателя платежей «%s»" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Этот получатель уже используется. Все операции,\n" "относящиеся к этому получателю, будут отмечены как «без получателя»." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Управление получателями" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "новый получатель платежей" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Внешний вид" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Региональные настройки" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Операции" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Перевод" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Импорт/экспорт" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Отчёт" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Прогноз" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Резервное копирование" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Папки" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Дополнительно" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Как в системе" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Выбрать основную папку для файлов HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Выберите папку для сохранения резервных копий по умолчанию" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Выбрать основную папку для импорта" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Выбрать основную папку для экспорта" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "Отображение и выбор платежа" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Используйте перетаскивание для изменения порядка" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "API курсов валют" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "URL-адрес:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Ключ:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Общие параметры" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Параметры OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Параметры QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Параметры CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(только для импорта операций)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Разделитель:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Отчёт в главном окне" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Максимум _элементов:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Начальный фильтр" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Параметры статистики" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Показывать по _сумме" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Показывать столбец _курса" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Показывать подробности" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Параметры бюджета" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Включить _прогноз" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Номер месяца:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Включить" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Схема:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Настройка" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Внешний вид программы" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Язык:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Формат:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a — сокращённое название дня недели;\n" "%A — полное название дня недели;\n" "%b — сокращённое название месяца;\n" "%B — полное название месяца;\n" "%c — подробное представление даты и времени;\n" "%C — год, разделённый на 100 и усечённый до целого числа, как десятичное " "число [00-99];\n" "%d — день месяца в виде десятичного числа [01,31];\n" "%D — то же, что %m/%d/%y;\n" "%e — день месяца как десятичное число [1,31], одна цифра через пробел;\n" "%j — день года в виде десятичного числа [001,366];\n" "%m — месяц как десятичное число [01,12];\n" "%P — представление соответствующей даты;\n" "%y — год без века, как десятичное число [00,99];\n" "%Y — год с веком в качестве десятичного числа." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Отчётный год" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_Начинается:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Единицы измерений" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Использовать _мили вместо метров" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Объём топлива в _галлонах" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Всегда показывать напоминания" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Всегда показывать отменённые" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Включать напоминание в баланс и отчёт" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Блокировать согласованные от любых изменений" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Показывать будущие на:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "дней вперёд" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Скрывать согласованные" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Окно операций" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "_Оставлять последнюю дату при многократном добавлении/наследовании" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Включить _автозаполнение записей с:" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "скользящих дней" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Показывать уведомление о _добавленной операции в течение 5 сек." #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Показывать список шаблонов при редактировании" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "_Оформление значков:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Параметры GTK" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Вид линовки:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Параметры диаграмм" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Уменьшенный шрифт _легенды" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Панель инструментов:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Включить автоматическое резервное копирование" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Количество создаваемых копий:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Резервная копия создаётся один раз в день" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Кошельки:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Резервные копии:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Обмен файлами" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Импорт:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Экспорт:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Запуск программы" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Показывать экранную заставку" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Загружать последний открытый файл" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Записывать ожидающие запланированные операции" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Обновлять курсы валют онлайн" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Сбросить все параметры" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Вы действительно хотите сбросить\n" "все параметры к исходным\n" "значениям?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Параметры" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Сведения" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Вам необходимо перезагрузить HomeBank,\n" "чтобы изменение языка вступило в силу." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Папка для резервных копий изменена,\n" "вам может понадобиться скопировать файлы .bak в новую папку." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Удалить неиспользуемую метку" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Вы уверены, что хотите\n" "навсегда удалить неиспользуемую метку?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Дублирующееся имя метки. Попробуйте другое имя." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Изменить метку" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Не удалось переименовать метку\n" "из «%s» в «%s»,\n" "т.к. это имя уже существует." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Объединить метку «%s»" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Операции с этой меткой будут привязаны\n" "к метке, выбранной ниже." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Удалить метку «%s»" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Метка используется.\n" "Она будет удалена из всех операций." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Управление метками" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "новая метка" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Транзакция %s создана." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Прервать передачу данных?\n" "\n" "Это отменит получаемую операцию." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Прервать" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Показывать _запланированные" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Показывать _все счета" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Использовать шаблон" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Добавить и _сохранить" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Добавить операцию" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Добавить шаблон" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Скопировать операцию" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Скопировать шаблон" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Изменить операцию" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Редактировать шаблон" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Дата:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- Напишите: д, д/м, м/д или полную дату\n" "- Клавишами стрелок+ ctrl или shift\n" "- Оставить пустой для текущей даты" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "П_о:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Разделение операции" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Нет тарифа для автоматического заполнения" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Счёт:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Книга _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- Начните набирать буквы для автозаполнения\n" "- Введите новый текст для создания записи" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Кате_гория:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Статус:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "Зам_етка:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Внимание: количество и знак категории не соответствуют" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Редактирование нескольких операций" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Тип\n" "Перевод" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Удалить все разделённые операции" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Удалить все" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Добавьте префикс -/+ для принудительного знака" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Применить" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Отмена" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Сумма операции:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Не распределено:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Сумма частей:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Достигнуто максимальное количество частей" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Предупреждение: сумма частей и тип операции не совпадают" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Предупреждение: сумма частей и сумма операций не совпадают" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(нет типа)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Банк" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Наличные" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Активы" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Кредитная карта" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Задолженность" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Проверяется" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Сбережения" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "День" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Возможно" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "До" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "После" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Пропустить" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Время" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Группа счетов" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Год" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Неделя" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Две недели" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Квартал" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Полугодие" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Включить" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Исключить" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Вчера" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Завтра" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Прошлая неделя" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Текущая неделя" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Следующая неделя" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Последние две недели" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Текущие две недели" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Следующие две недели" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Прошлый месяц" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Текущий месяц" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Следующий месяц" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Последний квартал" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Текущий квартал" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Следующий квартал" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Прошлый год" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Текущий год" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Следующий год" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "За последние 90 дней" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "За последние 60 дней" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "За последние 30 дней" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "За последние 12 месяцев" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Около 30 дней" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Всё время" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Вручную" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Текущий месяц" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Следующий месяц" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Следующие 30 дней" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Следующие 60 дней" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Следующие 90 дней" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Максимальный срок размещения" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Расход и доход" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Любой тип" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Любой статус" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Не оплачено:" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Не сверенные" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Без категории" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "По умолчанию" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Только значки" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Только текст" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Текст под значками" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Текст рядом со значками" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "По горизонтали" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "По вертикали" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Оба варианта" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "м-д-г" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "д-м-г" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "г-м-д" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Игнорировать" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Добавить к номеру" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Добавить в заметки" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Добавить к получателю платежа" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Табуляция" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Запятая" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Точка с запятой" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Пробел" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Январь" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Февраль" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Март" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Апрель" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Июнь" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Июль" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Август" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Сентябрь" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Октябрь" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Ноябрь" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Декабрь" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Сен" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Найти…" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Любой флаг" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Чек" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Банковский перевод" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Дебетовая карта" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Регулярный платеж" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Электронный платеж" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Депозит" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Банковская комиссия" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Прямой дебет" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Мобильный телефон" homebank-5.9.1/po/hu.po0000644000175000017500000035537314775770033010422 # Hungarian translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # # Translators: # # FIRST AUTHOR , 2007. # Balázs Úr , 2019. # Balázs Meskó , 2019, 2023. msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-01-13 06:48+0000\n" "Last-Translator: Uvala Scott \n" "Language-Team: hu_HU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: hu\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Személyes pénzügyek" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Ingyenes, egyszerű, személyi pénzügyi program mindenkinek" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "pénzügy;könyvelés;költségvetés;személyes;pénz;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "A HomeBank szabad szoftver, amely segítséget nyújt a személyes pénzügyei " "kezelésében." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Úgy tervezték, hogy könnyen használható legyen, valamint részletes " "szűrőeszközökkel és szép grafikonokkal részletesen elemezhesse személyes " "pénzügyeit." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Ha teljesen ingyenes és egyszerű módszert keres a személyes könyvelése " "kezelésére, akkor a HomeBankot érdemes választani." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d tranzakció" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d tranzakció, %d kijelölt, átlag: %s, összes: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Zárolva. Kattintson a feloldáshoz." #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Feloldva. Kattintson a zároláshoz." #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Biztosan szeretné törölni a kiválasztott %d tranzakciót?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Ha töröl egy tranzakciót, az véglegesen elvész." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Törlés" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Biztos, hogy törli az állapotot?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "A kiválasztott tranzakciók közül néhány már Egyeztetett." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Módosítás" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Biztos, hogy bekapcsolja az Egyeztetett állapotot?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Átkapcsolás" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Biztosan szeretne sablont létrehozni a kiválasztott %d tranzakcióból?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Létrehozás" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Sablon létrehozása" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d előre kitöltött ikonnal létrehozva" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Biztosan szeretne hozzárendelést létrehozni a kiválasztott %d tranzakcióból?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Hozzárendelés létrehozása" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Összes tranzakció" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "%d hasonló csoport tranzakció található" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Nem találhatók hasonló tranzakciók!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Ellenőrizze a belső átvezetés eredményét" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Nem található következetlenség!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Következetlenséget talált: %d\n" "szeretné átnézni és kijavítani?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Minden tranzakció összege a következővel lesz elosztva: %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "Biztos, hogy ezt a számlát euróra akarja átváltani fő pénznemként?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "Át_váltás" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Tranzakció nem változott" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "tranzakció megváltozott: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Automatikus hozzárendelés eredménye" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Hozzáadás…" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "Ö_röklés…" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "Sz_erkesztés" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Nincs" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Elszámolt" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Egyeztetett" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Állapot" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Semmi" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Többszörös szerkesztés…" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "_Osztott nézet" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Nyers mennyiség másolása" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Sablon létrehozása…" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Hozzárendelés létrehozása..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Törlés…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Fel" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Le" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "QIF exportálása…" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportálás CSV-be…" #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Nyomtatás…" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Weboldal böngészése" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "Szám_la" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Másolás" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Beillesztés" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Beillesztés (ma)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Szerkesztés" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Megjelölés duplikátumként…" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Számlák közötti átvezetés vizsgálata" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Automatikus hozzárendelések" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Euróra váltás…" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Eszközök" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Tranzakció mozgatása felfelé" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Tranzakció mozgatása lefelé" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Új tranzakció hozzáadása" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Hozzáadás" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Öröklés az aktív tranzakcióból" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Öröklés" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Aktív tranzakció szerkesztése" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Szerkesztés" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Elszámoltság állapotának átváltása a kijelölt tranzakcióknál" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Egyeztetettség állapotának átváltása a kijelölt tranzakcióknál" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Több tranzakció szerkesztése" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Kijelölt tranzakció(k) törlése" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Az egyeztetett változások" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(zárolt)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s – HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Megjelenítés" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Frissítés" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Dátum_intervallum:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Következő %d nap megjelenítése be/ki" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Szűrő módosítása" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Eredmények frissítése" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euró _másod." #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Egyeztetett:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Elszámolt:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Ma:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Jövő:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Valóban visszavonható minden nem mentett változás a fájlban: „%s”?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- A fájlban történt változások végérvényesen elvesznek.\n" "- A fájl a legutóbbi mentésből lesz visszaállítva (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Visszaállítás" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Biztos, hogy anonimizálja a fájlt?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Folytatva minden szöveg anonimizálva lesz,\n" "mint pl. a „X számla”, „Y partner”, „Z feljegyzés”, …" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonimizálás" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Üdvözöljük a HomeBankban" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Bezárás" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "_Utoljára megnyitott fájl megnyitása" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Ú_j fájl létrehozása" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "Meglévő fájl _megnyitása" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "_Példafájl megnyitása" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "HomeBank _súgó olvasása" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Beállítások _konfigurálása" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Az ablak megjelenítése legközelebb is" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "A(z) „%s˝ biztonságimentés-fájl megnyitására készül.\n" "\n" "Valóban ezt akarja tenni?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Megnyitja a biztonságimentés-fájlt?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "Biztonsági mentés _megnyitása" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "A(z) „%s” nem nyitható meg, a fájl nem létezik.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Ismeretlen hiba" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Ki- vagy bemeneti hiba a(z) „%s” fájlban." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "A(z) „%s” fájl nem érvényes HomeBank fájl." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "A(z) „%s” fájl a HomeBankkal egy magasabb verziójával lett elmentve,\n" "ezért nem tölthető be ebben a verzióban." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Fájlhiba" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "A fájl megváltozott a betöltése óta." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Ha most mentésre kerülne ez a változat, akkor minden külső módosítás " "elveszne. Mindenképp elmenti?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Mentés mindenképp" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Törlés" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fájl" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Új" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Megnyitás…" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Leg_utóbbi megnyitása" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Mentés" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Mentés másként…" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importálás…" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exportálás QIF-be…" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Visszaállítás" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Biztonsági mentés visszaállítása" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Tulajdonságok…" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Kilépés" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Beállítások…" #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Nézet" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Eszköztár" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "T_eljes diagram" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "I_dődiagram" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "Al lista" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euró másodlagos pénznemként" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Kezelés" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Tárca…" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Számlák…" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Partnerek…" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategóriák…" #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Címkék…" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Ütemezés/Sablon…" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Besorolások…" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Pénznemek…" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Költségvetés…" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Költségvetés (táblázatos nézet)" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Tranzakciók" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Hozzáadás…" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Megjelenítés…" #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Ütemező beállítása…" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Ütemezések feladása" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Kimutatások" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statisztika…" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "T_rend…" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Egyenleg..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "Költség_vetés…" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Gépjárműköltség…" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Üdvözlő üzenet megjelenítése…" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Fájlstatisztika…" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonimizálás…" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Súgó" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Tartalom" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Online segítség…" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Frissítés keresése…" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Kiadási megjegyzések" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Hiba jelentése…" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Alkalmazás fordítása…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Névjegy" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Új" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Új fájl létrehozása" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Megnyitás" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Fájl megnyitása" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Nemrég használt fájlok megnyitása" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Mentés" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Az aktuális fájl mentése" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Számla" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "A számlaszámok kezelése" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Partner" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "A kedvezményezettek kezelése" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategória" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "A kategóriák kezelése" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Ütemezett/sablon" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Az ütemezett/sablon tranzakciók kezelése" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Költségvetés" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "A költségvetés kezelése" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Hozzárendelés" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Az automatikus hozzárendelések kezelése" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Kiválasztott számla tranzakcióinak megjelenítése" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Tranzakciók hozzáadása" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statisztikák" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Statisztikai kimutatás megnyitása" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trend idő" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Trendkimutatás megnyitása" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Egyenleg" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Egyenlegkimutatás megnyitása" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Költségvetési kimutatás megnyitása" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Gépjárműköltség" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Gépjárműköltség-kimutatás megnyitása" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Súgó" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Adományozás" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "A HomeBank project támogatása" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Ütemezett" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Jövőben" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Emlékeztető" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Ma" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(nincs jegyzet)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(másolás)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(kategorizálatlan)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "érvénytelen CSV formátum" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Típus" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Állapot" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Címke" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Fizetés" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Összeg" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Szöveg" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Ismeretlen" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mérföld/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(nincs partner)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(nincs csoport)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(nincs címke)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-h%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%dQ%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FÁJL]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Böngésző hiba." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Nem jeleníthető meg az URL: „%s”" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(nincs szervezet)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Számlák" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Másolás a vágólapra" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Csoportosítás" #: ../src/hub-account.c:595 msgid "type" msgstr "típus" #: ../src/hub-account.c:596 msgid "group" msgstr "csoport" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Összes megjelenítése" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Összes kibontása" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Összes összecsukása" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "összeg: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Nincs hozzáadható tranzakció" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "tranzakció hozzáadva: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Ütemezett tranzakciók eredményeinek ellenőrzése" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Közzététel a program indításakor" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Be" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Ki" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "maximális feladási dátum" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Összesen" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Kihagyás" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Szerkesztés és F_eladás" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Közzététel" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "%d legnagyobb kiadás / kategória" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "%d legnagyobb kiadás / Kedvezményezett" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "%d legnagyobb kiadás / Számla" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Számlaegyenleg" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Egyéb" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Teljes diagram" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Kiadás" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Bevétel" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Havi kiadások" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Idődiagram" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "importált számla" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Mindösszesen" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "utoljára egyeztetett" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "folyószámlahitelig" #: ../src/list-account.c:753 msgid "before maximum" msgstr "maximum előtt" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Számlák" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Egyeztetett" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Elszámolt" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Ma" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "– megosztás –" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- hiányzó kategória -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Dátum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Feljegyzés" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Címkék" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Találat" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Eredmény" #: ../src/list-report.c:957 msgid "Average" msgstr "Átlag" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Késő" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Hátralévő" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Következő dátum" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d %s alatt" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lista" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Eredmények megjelenítése listaként" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Vonal" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Eredmény megjelenítése vonalakkal" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Részletezés" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Részletek be/ki" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Frissítés" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Nyomtatás" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Egyenlegkimutatás" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Megjelenítés" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Idő_köz:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Üres sor megjelenítése" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Nagyítás:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Szűrő" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Tartomány:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Ettől:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "E_ddig:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Kijelölés:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Összes" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Megfordítás" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Á_tvezetés belevétele" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Kiadások" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Teljesült" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Hónap" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Költségvetés kategóriánként" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Költségvetés havonta" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " felett" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " maradt" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " alatt" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Halmozott" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Eredmények megjelenítése sávdiagramként" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Eredmények a vágólapra" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "E_redmények CSV-be" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Részletek a vágólapra" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Részletek CSV-be" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Egyetlen számla sem szerepel a költségvetésben." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "A számla párbeszédablakban néhány számlát hozzá kell adni." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Költségvetési kimutatás" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Mód:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Típus:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Csak a költségvetésen túliak" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Eredmény:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Tervezet:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Kiadás:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s, %s szerint" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Túl sok megjelenitendő oszlop" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Válasszon szélesebb intervallumot vagy szűkebb időközt" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Oszlop" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Eredmények megjelenítése oszlopban" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Fánk" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Eredmények megjelenítése fánkdiagramként" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Eredmények megjelenítése halmozott oszlopdiagramként" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "100%-ra halmozott oszlopdiagram" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Eredmények megjelenítése 100%-ra halmozott oszlopdiagramként" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Jelmagyarázat" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Jelmagyarázat be/ki" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Kamat" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Kamat be/ki" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statisztikai kimutatás" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Nézet:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Egyenleg módja" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Rendezés össze_g szerint" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Kiadás és bevétel összehasonlítása" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Összegzés:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Bevétel:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Kiadás:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Átlag: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trendkimutatás" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Egybevetés" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Időszelet" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Út" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Üzemanyag" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Ár" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Táv" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exportálás" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportálás CSV-be" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Gépjárműköltség-kimutatás" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategória:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Út:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Fogyasztás:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Üzemanyagköltség:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Egyéb költség:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Teljes költség:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nincs)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Látható" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Számlanév" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Hiba" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "A(z) „%s” számla nem adható hozzá,\n" "a név már létezik." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "A(z) „%s” számla nem törölhető" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Tranzakció tartozik hozzá" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Biztos, hogy véglegesen törli: „%s”?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Ha törli a számlát, akkor véglegesen elvész." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "A(z) „%s” számla átnevezése\n" "erre sikertelen: „%s”,\n" "ez a név már létezik." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Számlák kezelése" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Törlés" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Átnevezés" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Mozgatás fel" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Mozgatás le" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Általános" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Csoport:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "Sz_ervezet:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "S_zám:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Kezdő_egyenleg:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Pénznem:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "ez a számla _zárolt" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Weboldal:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Megjegyzések:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Működés" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatizálás" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Alapértelmezett _sablon:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Kimutatáskivétel" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "kihagyás a számlaössze_sítőből" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "kiadások az összesítőbe" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "kihagyás a _költségvetésből" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "kihagyás a ki_mutatásokból" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Egyéb" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Jelenlegi csekkszám" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "_1. csekkfüzet:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "_2. csekkfüzet:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Egyenleghatár" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "Hiteltúllépési korlát:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Ha törli az időzítést/sablont, akkor véglegesen elvész." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Következő _dátum" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Min_den:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "További beállítások" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Hét vége:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Leállítás ennyi után:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "feladás" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Ütemezett/sablon tranzakciók kezelése" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Sablon" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "Ü_temezés" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Keresés" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Jegyzetek" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Ez a keresési szöveg már létezik ennél a pozíciónál: %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Mégse" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Feltétel" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Keresés:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Ebben:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Kis- és _nagybetű" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Ö_sszeg:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "É_S" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Hozzárendelések" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Partner:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Felülírás" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Fizetési _mód:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Címkék:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(%d. szabály)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Ha törli a hozzárendelést, akkor véglegesen elvész." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Áthelyezés…" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Szabály áthelyezése" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Áthelyezés" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Hozzárendelések kezelése" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Az asszisztens segít beállítani az új HomeBank-fájlhoz\n" "szükséges minimális konfigurációt." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "Az itt beállított elemek később bármikor módosíthatóak." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Semmilyen változás nem lesz végrehajtva, amíg\n" "nem kattint az „Alkalmaz” gombra az asszisztens végén." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "A HomeBank megjeleníti a főablak címét,\n" "tetszőleges címke vagy az Ön neve lehet." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Cím:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "A HomeBank több pénznemet támogat. Az alap pénznem\n" "az alapértelmezett az új fiókok és jelentések esetén." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Alap:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "További pénznemek beállítása" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Hozzáadás" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nem található" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "A HomeBank előre ki tudja tölteni a kategóriákat az Ön\n" "nyelvén, ha elérhető egy CSV-fájl a közösség jóvoltából." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Kategóriák beállítása az én nyelvemen" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Összeállításfájl:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "A HomeBank lehetővé teszi a folyószámlák importálását a letöltött\n" "pénzügyi intézeti fájlokból, de kézileg is létrehozhatja a folyószámláját." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Az első folyószámlám létrehozása" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Név:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Egy egy megerősítő oldal,\n" "\n" "nyomja meg az „Alkalmaz” gombot a változások érvényesítéséhez" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Kezdőfájl beállítása" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Fájlbeállítások" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Válasszon pénznemeket" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Válasszon kategóriákat" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Folyószámla létrehozása" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Fájlbeállítás befejezése" #: ../src/ui-assist-import.c:490 msgid "" msgstr "<Új számla (globális)>" #: ../src/ui-assist-import.c:495 msgid "" msgstr "<Új számla>" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Érvényes" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Név" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Megnyitás" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Ismert fájlok" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF-fájlok" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX-fájlok" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV-fájlok" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Minden fájl" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "új globális számla" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "új számla" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "kihagyott" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d/%d tranzakció" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d tranzakció, %d hasonló, %d meglévő, %d kiválasztott" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d tranzakció, %d kiválasztott" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Néhány dátum nem alakítható át. A folytatáshoz próbálja meg módosítani a " "dátumsorrendet." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "%s _importálása:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "ebbe a fájlba" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "ebbe a számlába" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Név: %s\n" "Szám: %s\n" "Fájl: %s\n" "Kódolás: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Tranzakciók importálása bank- vagy hitelkártyáról" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Ez a segéd végigvezeti egy vagy több bank- vagy hitelkártya-kivonat " "importálásán,\n" "a következő formátumokból:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Javasolt: .OFX vagy .QFX\n" "(Néha Money™ vagy Quicken™ néven ismert)\n" "Támogatott: .QIF\n" "(Közös Quicken™ fájl)\n" "Csak haladó felhasználóknak: .CSV\n" "(A formátum HomeBank-specifikus, lásd a dokumentációt)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Addig nem történik változás, míg nem kattint az „Alkalmaz” gombra a segéd " "végén." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Ne jelenjen meg többé" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Importálás: fogd és vigyen fájlokat.\n" "A lista hozzáadása és törlés gombjait is használhatja." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Túl sok folyószámla van a kiválasztott fájlokban,\n" "használja a vissza gombot, és válasszon ki kevesebbet." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "A célszámla azonosítása név vagy szám alapján sikertelen." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Dátumsorrend:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Feljegyzések importálása" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "Feljegyzések és partnerek _felcserélése" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX-_név:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX-_feljegyzés:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Feljegyzés/partner _nagybetűsítése" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Mennyiség _be/ki" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Hasonló tranzakciók a célszámlán (kettőzések előfordulhatnak)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "nap" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Találatok keresése ebben a sorrendben: számla, összeg, dátum szerint.\n" "0 nap eltérés a dátumban pontos találatot jelent." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Automatizálás futtatása" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Kitöltés az alapértelmezett _partnerrel" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Automatikus _hozzárendelési szabályok futtatása" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Kattintson az „Alkalmaz” gombra a fiókjai frissítéséhez." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Üdvözlet" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Fájl(ok) kijelölése" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importálás" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Megerősítés" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Fájlformátum-hiba" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "A CSV-fájlnak meghatározott számú oszlopot kell tartalmaznia\n" "pontosvesszővel elválasztva. Lásd a súgót a további részletekért." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Biztos, hogy törli a bemenetet?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Ha folytatja, akkor minden összeg 0-ra lesz állítva." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Törlés" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "%s költségvetése" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Költségvetés kezelése" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Egyenleg:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "minden hónapban ugyanannyi" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "Bemenet _törlése" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "minden hónapban különböző" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Beállítások" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "Ezen kategória megfigyelésének _kényszerítése" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "jan." #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "febr." #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "márc." #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "ápr." #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "máj." #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "jún." #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "júl." #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "aug." #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "szept." #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "okt." #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "nov." #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "dec." #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Összefoglaló" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Összegzések" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "Éves összeg" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "Havi átlag" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Havi" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Kategória hozzáadása" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Alkalmaz" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Szülőkategória" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Kategórianév" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Ez a kategória használatban van.\n" "Minden ezen kategóriát használó tranzakció (nincs)-re lesz állítva." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Kategóriák összevonása" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "A(z) „%s” kategóriához rendelt tranzakciók a lenti kategóriába lesznek " "helyezve." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Célkategória" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "„%s” kategória _törlése" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Biztos, hogy törli a(z) „%s” bemeneteit?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Kategória hozzáadása" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Kategória eltávolítása" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Összevonás" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Bemenet törlése" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# tx" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# kfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Használaton kívüli kategóriák törlése" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Valóban véglegesen törölhetőek\n" "a használaton kívüli kategóriák?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Kategória szerkesztése" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Típusváltás" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Bevétel" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Kiterjesztés a gye_rmekekre" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "A(z) „%s” kategória átnevezése\n" "sikertelen, mert a(z) „%s”\n" "már létezik." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "„%s” kategória összevonása" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Az ehhez a kategóriához tartozó tranzakciók\n" "az alább kijelölt kategóriához lesznek hozzárendelve." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Tartalmazzon _alkategóriákat" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Kategóriák kezelése" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Rejtettek megjelenítése" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Használat megjelenítése" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Áthelyezés/egyesítés" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Megjelenítés/elrejtés" #: ../src/ui-category.c:2552 msgid "new category" msgstr "új kategória" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "új alkategória" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Alappénznem" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Jel" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Beváltási árfolyam" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Utoljára módosítva" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Pénznem szerkesztése" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Pénznem" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formátum" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Testreszabás" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Jel:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "_Előtag?" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Tizedesjel:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Tizedesjegyek:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Csoportosítójel:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Alappénznem kijelölése" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Pénznem kijelölése" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO-kód" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "_Egyéni pénznem hozzáadása" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Online frissítési hiba" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Ha törli a pénznemet, akkor véglegesen elvész." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Alappéznem módosítása" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Ha folytatja, akkor a többi pénznem átváltási aránya\n" "0-ra lesz állítva, így ne felejtse el frissíteni őket" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Pénznemek" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Online frissítés" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Beállítás alapként" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Fájlstatisztika" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Tranzakció" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Frissítés" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Alappénznem kijelölése" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "A HomeBank 5.1 verziójától kezdve több pénznem is kezelhető.\n" "Ha a pénznem nem helyes, alább módosítható:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Pénznem:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportálás QIF-be" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importálás CSV-ből" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "HomeBank-fájl megnyitása" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "HomeBank biztonságimentés-fájl visszaállítása" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "HomeBank fájl mentése másként" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank-fájlok" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Biztonságimentés-fájl" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Összes biztonsági mentés" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Menti a fájl változásait bezárás előtt?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Ha nem menti a változásokat, akkor azok véglegesen elvesznek.\n" "A változtatások száma: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Bezárás _mentés nélkül" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exportálás _CSV-be" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Mappa:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Válasszon egy mappát" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Fájlnév:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Állapot oszlop hozzáadása" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Osztott sorok részletezése" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "A fájl nem a HomeBank CSV formátumában lesz, mert az „Összes tranzakció”\n" "exportálását kérte, vagy kiválasztott egy beállítást." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exportálás PDF-be" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportálás _PDF-be" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "A HomeBank a nyomtatás legkörnyezettudatosabb változatát támogatja,\n" "a széleskörűen támogatott digitális PDF-formátumot. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Művelet kiválasztása a cél létrehozásához" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Ú_j létrehozása" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "_Kijelölés használata" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Forrás átvezetése" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Célkapcsolat javasolva" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "A HomeBank néhány olyan tranzakciót talált, amely belső átvezetéshez " "kapcsolódó tranzakció lehet." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Feljegyzés:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Visszaállítás" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Használat" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Mennyiség/szöveg" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Megjelenítés mindig" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Üres" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Hozzáadva" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Szerkesztve" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Esedékesség dátuma" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Következő kifizetés" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Előre" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Fájl tulajdonságai" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Ütemezett tranzakciók" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "minden" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "hónapban" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Használaton kívüli partner törlése" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Biztos, hogy véglegesen törli\n" "a használaton kívüli partnert?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Kedvezményezett szerkesztése" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Alapértelmezett kitöltés" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "_Kifizetések:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "A(z) „%s” partner átnevezése\n" "sikertelen, mert a(z) „%s”\n" "már létezik." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "„%s” partner összevonása" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Az ehhez a partnerhez tartozó tranzakciók\n" "az alább kijelölt partnerhez lesznek hozzárendelve." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "„%s” partner _törlése" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Ez a partner használatban van.\n" "Minden ezen partnert használó tranzakció (nincs partner)-re lesz állítva." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Partnerek kezelése" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "új partner" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Felület" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Területi beállítás" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Tranzakciók" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Átvezetés" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importálás/exportálás" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Kimutatás" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Előrejelzés" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Biztonsági mentés" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Mappák" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Haladó" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Rendszer nyelve" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Válassza ki a HomeBank alapértelmezett fájlmappáját" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Válassza ki a HomeBank alapértelmezett biztonsági mentési mappáját" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Válassza ki az alapértelmezett importálási mappát" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Válassza ki az alapértelmezett exportálási mappát" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "URL:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Általános beállítások" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX-beállítások" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF-beállítások" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV opciók" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "Csak import tranzakciók" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Elválasztó:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Kimutatások a főablakban" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max _elemek:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Kezdeti szűrő" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statisztikai beállítások" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Megjelenítés összeg szerint" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Mutassa az érték oszlopot" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "_Részletek megjelenítése" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Költségvetési lehetőségek" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Hónap száma:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Engedélyezés" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "Összeállí_tás:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Felhasználói felület" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Nyelv:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formátum:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "% a - a hét napjai rövidítve. \n" "% A - a hét napjai teljes hosszában. \n" "% b - a hónap neve rövidítve. \n" "% B - a hónap neve teljes hosszában. \n" "% c - a területi beállításnak megfelelő dátum- és időábrázolás. \n" "% C - az évszázad száma (az év osztva 100-zal, és egész számra csonkolva) " "decimális számmal [00-99]. \n" "% d - egy hónap napja decimális számmal [01,31]. \n" "% D - iazaz, menta egy% m /% d /% y-t. \n" "% e - a hónap napja decimális számmal, az a helyi értékű szám előtt szóköz " "van [1,31]. \n" "% j - az év konkrét napja decimális számmal [001,366]. \n" "% m - egy hónapos decimális számmal [01,12]. \n" "% p - a területi beállításnak megfelelő dátumábrázolás. \n" "% y - az év évszázad nélkül, decimális számmal [00,99].\n" "% Y - az év évszázaddal együtt, decimális számmal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Pénzügyi év" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_Kezdete:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Mértékegységek" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Mérföld használata" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "_Gallon használata az üzemanyaghoz" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Mindig jelenjen meg az emlékeztető" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Mindig jelenjen meg az üres" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Az egyeztetettek minden változásának zárolása" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Jövő megjelenítése:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "nappal előre" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Egyeztetettek elrejtése" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Tranzakciós párbeszédablak" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "_Feljegyzés automatikus kiegészítésének engedélyezése" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "görgetett nap" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "5 másodperces megerősítő szöveg megjelenítése" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk beállítások" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Rácsvonal:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Diagrambeállítások" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Kisebb jelmagyarázat _betűtípus" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Eszköztár:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "Automatikus _biztonsági mentések engedélyezése" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "Megőrzendő biztonsági mentések szá_ma:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Biztonsági mentés naponta egyszer" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Pénztárcák:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Biztonsági mentések:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Cserefájlok" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importálás:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exportálás:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Programindítás" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Mutassa a nyitó képernyőt" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Az utoljára megnyitott fájl betöltése" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Várakozó ütemezett tranzakciók feladása" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Pénznemek online frissítése" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Minden beállítás visszaállítása" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "Biztos benne, hogy minden beállítást alapértékre állít vissza?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Beállítások" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Megjegyzés" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "A nyelv megváltoztatáshoz újra kell indítania a programot." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "A biztonsági mentések könyvtára megváltozott.\n" "Lehet, hogy át kell másolni a „.bak” fájlt erre a helyre." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Címke szerkesztése" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "A címke nem nevezhető át,\n" "erről: „%s”, erre: „%s”,\n" "a név már létezik." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "A(z) „%s” címke beolvasztása" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Az ehhez a címkéhez rendelt tranzakciók\n" "a lent kiválasztott címkéhez lesznek áthelyezve." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "A(z) „%s” címke _törlése" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Ez a címke használatban van.\n" "A címke törölve lesz minden tranzakcióból, amely használja." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Címkék kezelése" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "új címke" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "A(z) %s tranzakciója létrehozva." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Megszakítja a belső átvezetést?\n" "\n" "A folytatással törli a céltranzakciót." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Megszakítás" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Ütemezés" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Összes számla megjelenítése" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Sablon használata" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Hozzáadás és _megtartás" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Tranzakció hozzáadása" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Sablon hozzáadása" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Tranzakció öröklése" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Sablon öröklése" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Tranzakció szerkesztése" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Sablon szerkesztése" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Dátum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- típus: d, d/m, m/d teljes dátum\n" "- nyilak + ctrl vagy shift használata\n" "- üres a mai naphoz" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_Ide:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Tranzakciók megosztása" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Nincs elérhető kamat az automatikus kitöltéshez" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Számla:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "_2. könyv" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- írjon be néhány betűt az automatikus kiegészítéshez\n" "- írjon be szöveget bejegyzés készítéséhez" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Kate_gória:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Állapot:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Feljegyzés:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Figyelem: az összeg és a kategóriajel nem egyezik" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Tranzakciók tömeges szerkesztése" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Típus mint\n" "átutalás" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Összes törlése" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Alkalmaz" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Mégse" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Tranzakció összege:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Hozzá nem rendelt:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Megosztások összege:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Figyelmeztetés: a felosztások összege és a tranzakciók típusa nem egyezik" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Figyelmeztetés: a felosztások összege és a tranzakciók összege nem egyezik" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(típus nélküli)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Készpénz" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Vagyon" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Hitelkártya" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Kötelezettség" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Egyeztetés" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Megtakarítás" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Nap" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Lehetséges" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Előtte" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Utána" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Kihagyás" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Idő" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Év" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Hét" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Két hét" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Negyedév" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Félév" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Belefoglaló feltétel" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Kizáró feltétel" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Tegnap" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Holnap" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Múlt héten" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Ezen a héten" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Jövő héten" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Előző két hétben" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Ebben a két hétben" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Következő két hétben" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Múlt hónapban" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Ebben a hónapban" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Jövő hónapban" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Előző negyedévben" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Ebben a negyedévben" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Következő negyedévben" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Tavaly" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Ebben az évben" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Jövőre" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Elmúlt 90 napban" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Elmúlt 60 napban" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Elmúlt 30 napban" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Elmúlt 12 hónapban" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 napos környezet" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Összes dátum" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Egyéni" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Ebben a hónapban" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Következő hónap" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Következő 30 nap" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Következő 60 nap" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Következő 90 nap" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Kiadás és bevétel" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Bármely típus" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Minden állapot" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Nem elszámolt" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Rendezetlen" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Kategorizálatlan" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Visszaállítás" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Csak ikonok" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Csak szöveg" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Szöveg az ikonok alatt" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Szöveg az ikonok mellett" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Vízszintesen" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Függőlegesen" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Mindkét irányban" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "h-n-é" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "n-h-é" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "é-h-n" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Mellőzés" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Hozzáfűzés a feljegyzéshez" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Hozzáfűzés a partnerhez" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulátor" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Vessző" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Pontosvessző" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Szóköz" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "január" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "február" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "március" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "április" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "június" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "július" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "augusztus" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "szeptember" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "október" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "november" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "december" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "szept." #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Keresés…" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Csekk" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Banki átutalás" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Betéti kártya" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Állandó megbízás" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronikus fizetés" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Letét" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Számlakezelési díj" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Direkt kifizetés" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/af.po0000644000175000017500000031075214775770107010366 # Afrikaans translation for homebank # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-09-30 10:41+0000\n" "Last-Translator: Andre \n" "Language-Team: Afrikaans \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Persoonlike finansies" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Gratis, maklike persoonlike finansiële paket vir almal" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finansies;rekenkundig;begroting;persoonlik" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank is 'n gratis sagteware paket (soos in \"vrye spraak\" en ook soos " "in \"gratis bier\") wat jou sal help om jou finansies beter te bestuur." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Dit is so ontwerp om maklik gebruik te kan word om jou persoonlike finansies " "in detail te kan ontleed met behulp van kragtige filterinstrumente en " "pragtige grafieke." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "As jy na 'n gratis en gebruikersvriendelike finansiële sagteware paket soek " "vir jou persoonlike finansies dan is HomeBank sagteware net vir jou." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transaksies" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transaksies, %d gekies, gem: %s, sum: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Gesluit. Klik om te ontsluit." #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Ontsluit. Klik om te sluit." #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Lewens Energie" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "\"Verdienst per uur\" is nie gestel vir die huidige rekening nie." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Is jy seker jy wil die %d geselekteerde transaksies uitvee?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "As jy 'n transaksie uitvee sal dit permanent verwyder word." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Verdyder" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Is jy seker jy wil die status na Geen verander?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Van die gekiesde transaksies is reeds gerekonsileer." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Verander" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Is jy seker jy wil die status verander na Verklaard?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Is jy seker jy wil die status verander na Rekonsilieerd?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Skakelaar" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Is jy seker jy wil 'n sjabloon skep vanaf die %d geselekteerde transaksies?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Skep" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Skep sjabloon" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Alle transaksies" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Geen soortgelyke transaksies gevind nie!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Gaan interne oordrag resultaat na" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Geen inkonsekwentheid gevind nie!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Is jy seker jy wil hierdie rekening omskakel na Euro as Hoofgeldeenheid?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "Omskakel" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Geen transakie verander" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transaksies gewysig: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Voeg by" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Erf..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Wysig..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Geen" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Verklaard" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Gerekonsilieerd" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Geen" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Veelvuldige Wysigings..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Skrap..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Op" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Af" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Uitvoer QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Uitvoer CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Druk..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Sluit" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Rekening" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopie" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Plak" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Soek" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Redigeer" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Merk duplikaat" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Wysig na Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Nutsgoed" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Skep 'n nuwe transaksie" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Byvoeg" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Erf vanaf die aktiewe transaksie" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Erf" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Wysig die aktiewe transaksie" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Wysig" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Wysig veelvuldige transaksies" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Verwyder gekiesde transaksie(s)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(gesluit)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Vertoon" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Verfris" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Wysig filter" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Vandag:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Toekoms:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "Herstel" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Welkom by HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Sluit" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Open die _voorbeeld lêer" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Onbekende fout" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Lêer fout" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Indien dit nou gestoor word, sal alle eksterne veranderinge verloor word. " "Stoor in elk geval?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "St_oor in elk geval" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Maak skoon" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Lêer" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nuwe" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Open..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Open _onlangs" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Stoor" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Stoor _As..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Invoer..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Terugval" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Eindig" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Voorkeure..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Kyk na" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Nutsbalk" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Beheer" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategoriee..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Geldeenhede..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Begroting..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Begroting (tabel formaat)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaksies" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Voeg by..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Wys..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Verslae" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistieke..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balans..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_egroting..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Voertuig koste..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Leër statistiek..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Hulp" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Inhoud" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Kry Hulp Aanlyn..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Vrystelling Notas" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Rapporteer 'n Probleem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Vertaal hierdie Program..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Aangaande" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nuut" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Maak Oop" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Maak 'n lêer oop" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Open 'n onlangs gebruikte lêer" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Stoor" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Stoor die huidige lêer" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Rekening" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Bestuur die rekeninge" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategorie" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Begroting" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Bestuur die begroting" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Wys geselekteerde rekening transaksies" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Voeg transaksies by" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistieke" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Open die Statistieke verslag" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balans" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Voertuig koste" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Vertoon die voertuig koste verslag" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Hulp" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Skenk" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Doen skenking aan HomeBank projek" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Geskeduleer" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Toekomstige" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Herinner" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Vandag" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Betaling" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Bedrag" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Onbekend" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(geen groep)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "h%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[LÊER]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "jou rekeninge" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "tipe" #: ../src/hub-account.c:596 msgid "group" msgstr "groep" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Vertoon alles" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "som: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Geen transaksie om by te voeg" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transaksie bygevoeg: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Posteer wanneer program begin" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Op" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Af" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Totaal" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Posteer" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Rekening Balans" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Ander" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Uitgawe" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Inkomste" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Algehele Balans" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Groot totaal" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Rekeninge" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Vandag" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- verdeel -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etikette" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Vergelyking" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultaat" #: ../src/list-report.c:957 msgid "Average" msgstr "Gemiddelde" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Laat" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Volgende datum" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d onder %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lys" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Lyn" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Wys resultate as lyne" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Besonderhede" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Verfris" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Druk" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Balans verslag" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Vertoon" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filter" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Van:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Tot:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Kies:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Alle" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Omkeer" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Spandeer" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Maand" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Begroting per kategorie" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Begroting per maand" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stapel" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Begroting verslag" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modus:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipe:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Buite begroting" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultaat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Begroting:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Gespandeer:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s per %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Kolom" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Stapel 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legende" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistieke Verslag" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Vooruitsig" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Inkomste:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Uitgawes:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Meter" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Brandstof" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Prys" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Motor koste verslag" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategorie" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Meter:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Verbruik:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Brandstof kos:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Ander kos:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Totale kos:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(geen)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Sigbaar" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Fout" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan nie hierdie rekening naam verander,\n" "van '%s' na '%s',\n" "naam bestaan alreeds." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Skrap" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Algemene" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nie gevind nie" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Naam:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF lêers" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX lêers" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV lêers" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Alle lêers" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dae" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Bevestiging" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Beheer Begroting" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balans:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mei" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Des" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Inkomste" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Voer uit as QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Voer in van CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank lêers" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Herstel" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Dra oor" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Aktiveer" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Invoer" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Uitvoer" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Voorkeure" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Inligting" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Kontant" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Bate" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Krediet Kaart" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dag" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Jaar" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Week" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Ikone alleenlik" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Teks alleenlik" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Teks onder ikone" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Teks langs ikone" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignoreer" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Januarie" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februarie" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Maart" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Junie" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Julie" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Augustus" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Desember" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debiet kaart" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektroniese paaiement" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposito" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Debiteer Direk" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/fr.po0000644000175000017500000036277014775767766010437 # GTK+ HomeBank # Copyright (C) 1995-2013 # This file is distributed under the same license as the HomeBank package. # Maxime Doyen, 2009. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2025-04-06 12:10+0000\n" "Last-Translator: Maxime DOYEN \n" "Language-Team: fr \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: fr\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finances personnelles" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Comptabilité personnelle, gratuite et facile pour tous" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finances;comptabilité;budget;personnel;argent ;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank est un logiciel libre et gratuit qui vous aidera à gérer votre " "comptabilité personnelle." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Il est conçu pour être facile à utiliser et pouvoir analyser en détail vos " "finances personnelles à l'aide de puissants outils de filtrage et de beaux " "graphiques." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Si vous recherchez un moyen totalement gratuit et facile de gérer votre " "comptabilité personnelle, alors HomeBank devrait être le logiciel qu’il vous " "faut." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "%d nécessite une approbation" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d opérations" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d opérations, %d sélectionnées, moyenne : %s, somme : %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Verrouillé. Cliquez pour déverrouiller" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Déverrouillé. Cliquez pour verrouiller" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Energie de vie" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Gain par heure' n'est pas définit pour le portefeuille courant." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Êtes-vous sûr de vouloir supprimer les %d opérations sélectionnées ?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Si vous supprimez une opération, elle est définitivement perdue." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Supprimer" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Voulez-vous vraiment changer l'état en « Aucun » ?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Certaines opérations dans votre sélection sont déjà rapprochées." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Modifier" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Etes-vous sûr de vouloir changer le statut en Pointée ?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Voulez-vous vraiment inverser l'état Rapprochée ?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Basculer" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" "Êtes-vous sûr de vouloir créer des modèles depuis les %d opérations " "sélectionnées ?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Créer" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Créer un modèle" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d créé avec une icône 'préremplie'" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Êtes-vous sûr de vouloir créer des affectations depuis les %d opérations " "sélectionnées ?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Créer une affectation" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Toutes les transactions" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "%d dont signe de catégorie ne correspond pas" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "Aucun signe de catégorie ne correspondant pas n'a été trouvé !" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Il existe %d groupe(s) d'opérations similiares" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Aucune opération similaire n'a été trouvée !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Vérifier le résultat du transfert interne" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Aucune incohérence trouvée !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Des incohérences ont été constatées : %d\n" "Voulez-vous revoir et corriger ?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Le montant de chaque opération sera divisé par %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Êtes-vous sûr de vouloir convertir ce compte à l'euro comme monnaie " "principale ?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Convertir" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Aucune opération n'a été modifiée" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "opérations modifiées : %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Résultat de l'affectation automatique" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Ajouter..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Hériter..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Modifier…" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Aucun" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Pointée" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Rapprochée" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_État" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Aucun" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Rouge" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Orange" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Jaune" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Vert" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Bleu" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Violet" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Drapeau" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "Approuver" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "Rejeter (Supprimer)..." #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "Modification m_ultiple..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Voir _Ventilation" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copier montant brut" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Créer un modèle..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Créer affectation..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Supprimer..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Monter" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Descendre" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exporter en QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exporter en CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Imprimer..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Visiter site web" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Fermer" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Compte" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copier" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Coller" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Coller (date du jour)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Copier presse-papier" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Trouver" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Édition" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marquer les doublons..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "Marquer le signe de catégorie..." #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Vérifier les virements internes" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Affectations Auto." #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Convertir en Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "Ou_tils" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Déplacer vers le haut" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Déplacer vers le bas" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Ajouter une nouvelle opération" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Ajouter" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Ajouter une opération héritant de celle sélectionnée" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Hériter" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Modifier l’opération sélectionnée" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Modifier" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Inverser l’état Pointée des opérations sélectionnées" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Inverser l’état Rapprochée des opérations sélectionnées" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Modifier plusieurs opérations" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Supprimer les opérations sélectionnées" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Changements rapprochées est" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(fermé)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Afficher" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Actualiser" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Ecart _date:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Basculer affichage %d jours d'avance" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Modifier le filtre" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Effacer les filtres" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Actualiser les résultats" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Basculer Energie de vie" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro _mineur" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Rapproché:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Pointé:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Aujourd’hui :" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futur :" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Rétablir les changement non enregistrés du fichier « %s » ?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Les modifications faites au fichier seront perdues\n" "- Le fichier sera restauré à sa dernière sauvegarde (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Rétablir" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Voulez-vous vraiment anonymiser le dossier ?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "La procédure rendra anonyme tout texte,\n" "comme \"compte x\", \"bénéficiaire y\", \"mémo z\", ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymiser" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Bienvenue dans HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Fermer" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Ouvrir _dernier fichier ouvert" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Créer un _nouveau fichier" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Ouvrir un fichier existant" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Ouvrir le fichier d’_exemple" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Lire le _manuel utilisateur" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configurer les _préférences" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Montrer cette fenêtre la prochaine fois" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Vous êtes sur le point d'ouvrir le fichier de sauvegarde '%s'\n" "\n" "Êtes-vous sûr de vouloir faire cela ?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Ouvrir le fichier de sauveguarde" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Ouvrir sauvegarde" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Impossible d'ouvrir « %s », le fichier n'existe pas.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Erreur inconnue" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Erreur d’E/S pour le fichier « %s »." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Le fichier « %s » n'est pas un fichier HomeBank valide." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Le fichier « %s » a été enregistré dans une version supérieure de HomeBank\n" "et ne peut être lu par cette version." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Erreur fichier" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Le fichier a été modifié depuis son ouverture." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Si vous l’enregistrez, toutes les modifications externes pourraient être " "perdues. Souhaitez-vous enregistrer quand même ?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "_Enregistrer quand même" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Effacer" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fichier" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Nouveau" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Ouvrir..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Ouvrir les _récents" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Enregistrer" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Enregistrer _sous..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importer..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exporter en QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Rétablir" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaurer la sauvegarde" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propriétés…" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Quitter" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Préférences..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Affichage" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Barre d’outils" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Graphique de T_otal" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Graphique de T_emps" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "Listes en _bas" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro mineur" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gérer" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Portefeuille..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "C_omptes…" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Tiers..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Catégories..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Étiquettes..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Planifiées/Modèles…" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Affectations…" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Devises..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget…" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (vue tableur)" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Opérations" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Ajouter…" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Montrer…" #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Tout montrer..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Définir le planificateur…" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Publier les opérations planifiées" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Rapports" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistiques…" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendance dans le temps…" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "So_lde..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget…" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "Coût _Voiture..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Afficher la fenêtre d’accueil…" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Statistiques du fichier…" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymiser…" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Aide" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Aide d’HomeBank" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obtenez de l'aide en ligne..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Vérifier les mises à jour" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Notes de Version" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Signalez un problème..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduire cette application…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_À propos" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nouveau" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Créer un nouveau fichier" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Ouvrir" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Ouvrir un fichier" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Ouvrir un fichier utilisé récemment" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Enregistrer" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Enregistrer le fichier actuel" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Compte" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gérer les comptes" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Tiers" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gérer les tiers" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Catégorie" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gérer les catégories" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Planifiées/Modèles" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gérer les opérations planifiées/modèles" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gérer le budget" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Affectation" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Gérer les affectations automatiques" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Afficher les opérations du compte sélectionné" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Ajouter des opérations" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistiques" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Ouvrir le rapport de statistiques" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Tendance dans le temps" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Ouvrir le rapport de tendance dans le temps" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Solde" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Ouvrir le rapport de solde" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Ouvrir le rapport de budget" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Coût véhicules" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Ouvrir le rapport de coût des véhicules" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Aide" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Faire un don" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Faire un don au projet HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Planifiée" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futur" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Rappel" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Aujourd'hui" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(pas de mémo)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(copie)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(sans catégorie)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "format CSV invalide" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Plage de dates invalide !" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Type" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-débit" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-crédit" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-débit" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-crédit" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "État" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "aucun" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "effacé" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "rapproché" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Étiquette" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Paiement" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Montant" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Texte" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Inconnu" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi/l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(sans tiers)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(sans groupe)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(sans étiquette)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "S%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "T%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "S%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-s%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-t%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d's%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Afficher la version de l’application" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FICHIER]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Erreur du navigateur." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Impossible d’afficher l’URL « %s »" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(sans institution)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Vos comptes" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copier vers le presse-papiers" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Grouper par" #: ../src/hub-account.c:595 msgid "type" msgstr "type" #: ../src/hub-account.c:596 msgid "group" msgstr "groupe" #: ../src/hub-account.c:597 msgid "institution" msgstr "Institution" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Voir tous" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Tout développer" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Tout réduire" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "somme: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Aucune opération à ajouter" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "opérations ajoutées : %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Résultat de l’ajout des opérations planifiées" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Publier quand le programme démarre" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "Actif" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Inactif" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "Date maximale de publication" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Passer" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Editer & P_oster" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Publier" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Top %d Dépense / Catégorie" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Top %d débit / catégorie" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Top %d Dépense / Tiers" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Top %d débit / tiers" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Top %d Dépense / Compte" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Top %d débit / compte" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Balance des comptes" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "Solde Groupe de comptes" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Autre" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Graph de Total" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "Top par" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "Montant bruts" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Groupe de comptes" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Dépenses" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Dépenses" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Recettes" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Recettes" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Dépenses & Recettes" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Débit & crédit" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Solde global" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Graph de Temps" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Global" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "compte importé" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total général" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "dernier rapprochement" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "avant découvert" #: ../src/list-account.c:753 msgid "before maximum" msgstr "avant maximum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Comptes" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Rapprochée" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Pointée" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Aujourd'hui" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- ventilé -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- catégorie requise -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Date" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Numéro" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Mémo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Étiquettes" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "Pay./Numéro" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "Importé" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "Date passée" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Drapeau" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Correspond" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "Et." #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Résultat" #: ../src/list-report.c:957 msgid "Average" msgstr "Moyenne" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "En retard" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Reste" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Prochaine date" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Solde par %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d en dessous de %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Liste" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Voir les résultats en liste" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Ligne" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Voir les résultats en lignes" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Détail" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Afficher le détail" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Actualiser" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Imprimer..." #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Rapport de solde" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Affichage" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_val:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Montrer les lignes vides" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X :" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtre" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Actif:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Plage :" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_De :" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_À :" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Sélection :" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Tous" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inverser" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Inclure _transferts" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Dépensé" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Réalisé" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mois" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budget par catégorie" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budget par mois" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " au-dessus" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " restant" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " en-dessous" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(non-budgeté)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Empilé" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Voir les résultats en barres empilées" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Résultat vers presse-papier" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Résultat vers CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Détail vers presse-papier" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Détail vers CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Aucun compte n’est défini pour être inclus dans le budget." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" "Vous devriez inclure des comptes dans la fenêtre de dialogue des comptes." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Rapport budget" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Mode :" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Type :" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Seulement les hors-budget" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "Jusqu'à aujourd'hui" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Résultat :" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget :" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Dépensé :" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s par %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Trop de colonnes à afficher" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "Sélectionnez un intervalle plus large et / ou une plage de date plus " "restreinte" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Colonne" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Voir les résultats en colonnes" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Beignet" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Voir les résultats en camenbert" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Voir résultat en pile" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Pile 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Voir résultat en pile 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Légende" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Afficher la légende" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Taux" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Inverser l'affichage du taux" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Rapport statistiques" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Voir par" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "Mode _solde" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Prévision" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Trier par _montant" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Comparer Déb. & Créd." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total :" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Recettes" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Dépenses :" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Moyenne : %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Rapport de tendance dans le temps" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Cumuler" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Élément" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_Par:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Part de temps" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Compteur" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Carburant" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Prix" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exporter" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exporter en CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Rapport de coût des véhicules" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Catégorie :" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Compteur :" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consommation :" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Coût carburant :" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Autres coûts :" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Coût total :" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(aucun)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nom du compte" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Erreur" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Impossible d’ajouter un compte « %s »\n" "ce nom existe déjà." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Impossible de supprimer le compte « %s »" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "Il a des opérations" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "Il est cible de transfert" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "Il a des opérations planifiées/modèles" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "Il est cible de transfert d'opérations planifiées/modèles" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Voulez-vous vraiment supprimer définitivement « %s » ?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Si vous supprimez un compte, il sera définitivement perdu." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossible de renommer ce compte,\n" "de « %s » vers « %s »,\n" "ce nom existe déjà." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gérer les comptes" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Supprimer" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Renommer" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Monter" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Descendre" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Général" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Groupe :" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institution:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_uméro :" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Solde _initial :" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Devises :" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "ce compte est clos" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Site internet:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notes :" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportement" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatisation" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "_Modèle par défaut:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Exclusion des rapports" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "exclure du ré_sumé des comptes" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "hors flux dans le résumé" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "exclure du _budget" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "exclure de tous les _rapports" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Divers" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Numéro de chèque en cours" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Carnet de chèque _1 :" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Carnet de chèque _2 :" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limites de solde" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Découvert à:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imum:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Effacer Modèle" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Ce modèle est utilisé en tant que modèle de compte\r\n" "et ne peut pas être supprimé" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Si vous supprimez une planification/modèle, elle sera définitivement perdue." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "La date de publication sera décalée en dehors du week-end" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Prochaine _date :" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "Modèle de récurrence" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "To_us les :" #: ../src/ui-archive.c:918 msgid "The" msgstr "Le" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Plus d’options" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Week-end :" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Arrêt après :" #: ../src/ui-archive.c:972 msgid "posts" msgstr "publications" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Gérer les opérations planifiées/modèles" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Modèle" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Dupliquer" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Programme" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Rechercher" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notes" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "Tier" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Recherche ne peut pas être vide" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Ce texte de recherche existe déja en position %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Annuler" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condition" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Rechercher:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Dans:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Sensible à la casse" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "Expression _régulière" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Monta_nt:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_ET" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Affectations" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Tiers :" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Remplacer" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Paie_ment :" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "É_tiquettes:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" "Impossible de dupliquer cette règle,\n" "'%s' existe déjà." #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(règle %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Si vous supprimez une affectation, elle sera définitivement perdue." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Déplacer vers…" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Déplacer règle" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Déplacer" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Gérer les affectations" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Cet assistant vous aidera à configurer une configuration minimale\n" "pour un nouveau fichier HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Tous les éléments que vous configurez ici peuvent être modifiés " "ultérieurement si nécessaire." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Aucune modification ne sera apportée tant que vous \n" "n'aurez pas cliqué sur «Appliquer» à la fin de cet assistant." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank affichera un titre pour la fenêtre principale,\n" "il peut s'agir d'un titre libre ou de votre nom." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Titre:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank prend en charge plusieurs devises. La devise de base est\n" "la valeur par défaut pour les nouveaux comptes et rapports." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Configurer des devises supplémentaires" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Ajouter" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Non trouvé" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "HomeBank peut pré-remplir les catégories pour votre langue\n" "si un fichier CSV est disponible et fourni par la communauté." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configurer les catégories pour ma langue" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Fichier prédéfini :" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank permet d'importer vos comptes depuis les sites téléchargés\n" "les fichiers des institutions financières ou vous pouvez créer votre compte " "manuellement." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Créer mon premier compte" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nom :" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Ceci est une page de confirmation,\n" "\n" "appuyez sur «Appliquer» pour appliquer les modifications" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Démarrer la configuration du fichier" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Options de fichier" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Choisissez les devises" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Choisissez des catégories" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Créer un compte" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Terminer la configuration du fichier" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Valide" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nom" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Ouvrir" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Fichiers connus" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Fichiers QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Fichiers OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Fichiers CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Tous les fichiers" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nouveau compte global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nouveau compte" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "sauté" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d de %d opérations" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d opération(s), %d similaire, %d existante, %d sélectionnée" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d opération(s), %d sélectionnée(s)" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Des dates ne peuvent être converties. Veuillez essayer de changer le format " "de date pour continuer" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importer %s _vers:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "ce fichier" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "ce compte" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nom: %s\n" "Numéro: %s\n" "Fichier: %s\n" "Codage %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importer l'opération depuis la banque ou la carte de crédit" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Avec cet assistant vous serez guidé durant l'import d'un ou plusieurs\n" "relevé téléchargé depuis votre banque ou carte de crédit, dans les formats " "suivants:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recommandé: .OFX ou .QFX\n" "(parfois nommé Money ™ ou Quicken ™)\n" "Pris en charge: .QIF\n" "(fichier Quicken ™)\n" "Utilisateurs avancés uniquement: .CSV\n" "(le format est spécifique à HomeBank, voir la documentation)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Aucun changement ne sera effectué jusqu'à ce que vous cliquiez sur " "\"Appliquer\" à la fin de cet assistant." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Ne pas montrer de nouveau" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Glisser & déposer un ou plusieurs fichiers a importer.\n" "Vous pouvez aussi utiliser les boutons ajouter/supprimer de la liste." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Il y a trop de compte dans les fichiers que vous avez choisis,\n" "veuillez utiliser le bouton Précédent pour sélectionner moins de fichiers." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "L'identification du compte cible par nom ou numéro a échoué." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Ordre des dates :" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importer memos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Inverser memos avec tiers" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "_Nom OFX:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "_Memo OFX:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Casse de phrase pour memo/tiers" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "Basculer mon_tant" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Opération similaire dans le compte cible (duplicata possible)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "jours" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "La concordance est faite dans l’ordre par : compte, montant et date.\n" "Une tolérance de date de 0 signifie un concordance exacte." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "Option" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "Importer en attente" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Jouer l'automatisation" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Enrichir avec le défaut des _tiers" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Lancer les règles d'affectation automatique" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Cliquer \"Appliquer\" pour mettre à jour vos comptes" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Bienvenue" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Sélectionner fichier(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importer" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmation" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Erreur de format du fichier" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "Le fichier au format CSV doit contenir le nombre exact de colonnes,\n" "séparées par un point-virgule, reportez-vous à l’aide pour plus de détails." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Voulez-vous vraiment effacer l'entrée ?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Si vous continuez, chaque montant sera réglé à 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Vider" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget pour %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gérer le budget" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importer CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "E_xporter CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Solde :" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "est le même chaque mois" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Vider les valeurs" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "est différent chaque mois" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Options" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forcer l’affichage de cette catégorie" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Fév" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Avr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jui" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Juil" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aoû" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Déc" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Synthèse" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totaux" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Total\n" "Annuel" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Moyenne\n" "Mensuelle" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mensuel" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Ajouter une catégorie" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "A_ppliquer" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Catégorie parente" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nom de la catégorie" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Cette catégorie est utilisée.\n" "Toute opération utilisant cette catégorie sera définie en (sans catégorie)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Fusionner les catégories" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Les opérations affectées à la catégorie '%s', vont être modifiées vers la " "catégorie sélectionnées ci-dessous." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Catégorie cible" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Supprimer la catégorie « %s »" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Êtes-vous sûr de vouloir éffacer les saisies pour '%s' ?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "Effacer l'intégralité du budget" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" "Etes-vous sûr de vouloir effacer\n" "définitivement le budget ?" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "Tout effa_cer..." #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Ajouter catégorie" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Supprimer catégorie" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Fusionner" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Effacer la saisie" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# opé" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Supprimer les catégories inutilisées" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Voulez-vous vraiment supprimer\n" "définitivement les catégories inutilisées ?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Nom de catégorie en double. Essayez un autre nom." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Modifier la catégorie" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Modifier le type" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Recettes" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propager aux _enfants" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossible de renommer cette catégorie,\n" "de « %s » vers « %s »,\n" "ce nom existe déjà." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Fusionner la catégorie « %s » ?" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Les opérations affectées a cette catégorie,\n" "seront déplacées vers la catégorie sélectionnée ci-dessous." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Inclure _sous catégorie" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "_Supprimer la catégorie '%s' (et le budget)" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Gérer les catégories" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Afficher cachés" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Afficher Utilisation" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "_Supprimer inutilisés...." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Bouger/Fusionner" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Afficher/Masquer" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nouvelle catégorie" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nouvelle sous-catégorie" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Devise de base" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbole" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Taux de change" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Dernière modification" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Éditer la Devise" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Devise" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personnaliser" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbole :" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "est pré_fixe" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Caractère _décimal:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Nombre de _décimales :" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "Car. de _groupement:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Choisir la devise de base" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Sélection de devise" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Code ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Ajouter une _devise personnalisée" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO :" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Erreur de mise à jour en ligne" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Si vous supprimez une devise, elle sera définitivement perdue." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Changer la devise de base" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Si vous continuez, le taux de change des autres devises\n" "sera remis a 0, n'oubliez pas de mettre à jour" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Devises" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Mise à jour en ligne" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "Log d'appel" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Définir comme base" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Statistiques du fichier" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Opération" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Mettre à niveau" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Choisir une devise de base" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "A partir de la v5.1, HomeBank peut gérer plusieurs devises\n" "si la devise ci dessous n'est pas correcte, merci de la changer:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Devise :" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exporter en QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importer depuis CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Ouvrir un fichier HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Ficher de sauveguarde HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Enregistrer le fichier HomeBank sous" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Fichiers HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Fichier sauvegarde" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Toutes les sauveguardes" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Enregistrer les modifications avant de fermer le fichier ?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Si vous n'enregistrez pas, les modifications seront définitivement perdues.\n" "Nombre de modifications : %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Fermer _sans enregistrer" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exporter en _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Dossier :" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Sélectionnez un dossier" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nom du fichier:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Ajout la colonne d'état" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Détailler les ventilations" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Le fichier ne sera pas dans le format CSV HomeBank, car vous exportez\n" "depuis 'Toutes les opérations' ou que vous avez coché une option." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exporter en PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exporter en _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Avec HomeBank, l'impression est orientée vers une attitude éco-responsable\n" "vers l'usage du format numérique le plus répandu: le format PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Sélectionnez l'action pour la création de cible" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Créer _Nouvelle" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Utiliser _Sélection" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Virement source" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Associations cible suggérées" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank a trouvé des opérations qui peuvent être les opérations cibles du " "virement interne." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Pas d'opération correpondante." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "Saisir de -30 a -15 pour filtrer sur des débits" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Mémo :" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Numéro:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Débit virement" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Crédit virement" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Réinitialiser" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Sauver & utiliser" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Utiliser" #: ../src/ui-filter.c:1370 msgid "default" msgstr "défaut" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Montant/Texte" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Toujours montrer" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Nul" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Ajouté" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Modifié" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(défaut)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Renommer filtre" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Nouveau filtre %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Nom filtre" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Enregistrer sous..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Renommer…" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Date d'échéance" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Prochaine Paie" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "En avance" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "La date de publication maximale est %s (incluse)" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propriétés du fichier" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Opérations planifiées" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "de chaque" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mois" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Gain par heure:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Supprimer les tiers inutilisés" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Voulez-vous vraiment supprimer\n" "définitivement les tiers inutilisés ?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Nom de tiers en double. Essayez un autre nom." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Modifier Tiers" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Remplissage par défaut" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_iement :" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossible de renommer ce tiers,\n" "de « %s » vers « %s », ce nom existe déjà." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Fusionner le tiers « %s » ?" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Les opérations affectées a ce tiers,\n" "seront déplacées vers le tiers sélectionnée ci-dessous." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Supprimer le tiers « %s »" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Ce tiers est utilisé.\n" "Toute opération utilisant ce tiers sera définie en (sans tiers)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gérer les tiers" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "nouveau tiers" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "Thème" #: ../src/ui-pref.c:92 msgid "Color" msgstr "Couleur" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Localisation" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Opérations" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "Boîte de dialogue" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Virement" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importer/Exporter" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Rapport" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Prévision" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Sauvegarde" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Dossiers" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Avancé" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Langue système" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Choisir le dossier par défaut des fichiers HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Choisissez un dossier de backup par défaut" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Choisir le dossier par défaut des imports" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Choisir le dossier par défaut des exports" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "Paiement affichés et choisis" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Utiliser le glisser & déposer pour ordonner" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "API de devise" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Url:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Clé :" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Options générales" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Options OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Options QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Options CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(import opération uniquement)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Séparateur :" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Rapports de l'accueil" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max. éléments" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Filtre initial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Options des statistiques" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Voir par _montant" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Montrer la _colonne des taux" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Montrer les _détails" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Options du budget" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "Exclure les sous-catégories de la ligne non budgétisée" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "Activer les _prévisions" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Nombre de mois:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "Activ_er" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Prédéfini :" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Réglages" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interface utilisateur" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Langue :" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "Affichage de la date :" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "_Personnaliser" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format :" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a abréviation du jour de la semaine.\n" "%A nom complet du jour de la semaine.\n" "%b abréviation du mois.\n" "%B nom complet du mois.\n" "%c affichage de l’heure et de la date.\n" "%C le siècle représenté par un nombre [00-99].\n" "%d le jour du mois représenté par un nombre [01,31].\n" "%D identique à %m/%d/%y.\n" "%e le jour du mois représenté par un nombre [1,31]; les chiffres seuls sont " "précédés par un espace.\n" "%j le jour de l’année représenté par un nombre [001,366].\n" "%m le mois représenté par un nombre [01,12].\n" "%p représentation appropriée de la date.\n" "%y l’année représentée par un nombre sans le siècle [00,99].\n" "%Y l’année représentée par un nombre incluant le siècle." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Année fiscale" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Début _le :" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unités de mesure" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Utiliser les _miles pour le compteur" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Utiliser les _gallons pour le carburant" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Toujours afficher les rappels" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Toujours afficher nul" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "Inclure les rappels dans les soldes et les rapports" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "Sécurité" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Verrouiller les rapprochées de tout changement" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "Approuver les ajouts avant le dernier rapprochement" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "Approuver les ajouts" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "jours avant la date d'aujourd'hui" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "Fenêtre du grand livre" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Voir futures:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "jours avant" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Cacher les rapprochées" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Fenêtre opération" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "Conserver la date lors d'ajouts multiples ou d'héritage" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Voir la complétion des mémo avec" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "jours glissants" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Voir confimation ajout de 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Montrer la liste des modèle en édition" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "Comportement" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" "Lors de l'ajout, toujours affichez la boîte de dialogue d'_action pour la " "cible" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "É_cart de date pour trouver une cible :" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "Synchroniser" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "_Date" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "Thème" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "Mode sombre :" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "Le système n'a aucune préférence" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "Le système préfère le sombre" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "Le système préfère le clair" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "Utiliser le mode _sombre si disponible" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "Icônes" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "Thème icônes:" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "Utiliser les icônes _symboliques si disponible" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Preference Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "Ecras_er" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "Taille de _police:" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "Graphique" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "_Palette:" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "Autres" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "Utiliser les couleurs de la palette de graphiques" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "_Dépense" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "_Avertissement" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "Fond des _futures" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "Colorer les mont_ants" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "Colorer le _fond des opératiosn futures" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "Lignes de _grille:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Options des graphiques" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Petite _police légende" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Barre d’outils :" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Activer les sauvegardes automatiques" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Nombre de sauvegardes à conserver:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "La fréquence des sauvegardes est une fois par jour" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Portefeuilles:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "Sauve_gardes:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Fichiers d'échanges" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importer :" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "E_xporter :" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Démarrage du programme" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Afficher la fenêtre de démarrage" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Charger le dernier fichier ouvert" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Publier les opérations planifiées en attente" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Mise à jour des devises en ligne" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Réinitialiser toutes les préférences" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Voulez-vous vraiment réinitialiser\n" "toutes les préférences à défaut\n" "valeurs?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Préférences" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Vous devez redémarrer HomeBank\n" "pour que la modification de langue soit effective." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Le dossier de sauvegarde a changé,\n" "vous pourriez copier les fichier '.bak' vers ce nouveau dossier." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Effacer les étiquettes inutilisées" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Êtes-vous sûr de vouloir\n" "effacer définitivement les étiquettes inutilisées ?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Nom d'étiquette en double. Essayez un autre nom." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Modifier l'étiquette" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Impossible de renommer cette étiquette,\n" "de « %s » vers « %s »,\n" "ce nom existe déjà." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Fusionner l'étiquette '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Les opérations affectées à cette étiquette seront,\n" "déplacées vers l'étiquette sélectionnée ci-dessous." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Supprimez l'étiquette '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Cette étiquette est utilisée.\n" "Cette étiquette sera supprimée de toute opération l'utilisant." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gérer les étiquettes" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nouvelle étiquette" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Opération de %s créée." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Voulez-vous supprimer le lien interne du virement ?\n" "\n" "Si oui, le virement lié sera supprimé." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Briser" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Montrer les _planifiées" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Voir _tous les comptes" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Utiliser un modèle" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Ajouter & Co_nserver" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Ajouter une opération" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Ajouter un modèle" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Hériter d’une opération" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Hériter le modèle" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editer l'opération" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editer le modèle" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Date :" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- tapez: j, j/m, m/j une date complète\n" "- utilisez les touches flèche + ctrl ou shift\n" "- vider pour aujourd'hui" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "_À :" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Opération ventilée" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Pas de taux disponible pour remplissage automatique" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Compte :" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Carnet _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- tapez des lettres pour l’auto-complétion\n" "- tapez un nouveau texte pour créer une entrée" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Catégorie:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_État :" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_émo :" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Attention: signe de montant et signe de catégorie ne concordent pas" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Édition d'opérations multiples" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Typer comme\n" "virement" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "Voulez-vous supprimer toutes les ventilations" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Tout supprimer" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Préfixez avec -/+ pour forcer le signe" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Appliquer" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Annuler" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Montant de l’opération :" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Non-affecté :" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Somme des ventilations :" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "Nombre maximum de ventilation atteint" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" "Attention: la somme des ventilations et le type d'opération ne concordent pas" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" "Avertissement: la somme des fractionnements et du montant de l'opération ne " "correspond pas" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(sans type)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banque" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Espèces" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Biens" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Carte de crédit" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Dettes" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Chèque" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Épargne" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "Quotidien" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "Hebdomadaire" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "Annuel" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "jour(s)" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "semaine(s)" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "mois" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "an(s)" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "Premier" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "Second" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "Troisième" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "Quatrième" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "Dernier" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Jour" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "Lundi" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "Mardi" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "Mercredi" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "Jeudi" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "Vendredi" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "Samedi" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "Dimanche" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Avant" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Après" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Passer" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Temps" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Groupe de comptes" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Année" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Semaine" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Quinzaine" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestriel" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Inclure" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Exclure" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Hier" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Demain" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Semaine dernière" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Cette semaine" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Semaine prochaine" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Quinzaine dernière" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Cette quinzaine" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Quinzaine prochaine" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Mois dernier" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Ce mois-ci" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Mois prochain" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Trimestre dernier" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Ce trimestre" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Trimestre prochain" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Année dernière" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Cette année" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Année prochaine" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "Année à ce jour" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "Mois à ce jour" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "Toutes les dates" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "90 derniers jours" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "60 derniers jours" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "30 derniers jours" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "12 derniers mois" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "30 jours environ" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Toutes dates" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Personnalisé" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Ce mois" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Mois prochain" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Prochains 30 jours" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Prochains 60 jours" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Prochains 90 jours" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "Date de publication maximale" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Débits et crédits" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Tous les types" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Tous les états" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Non pointée" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Non-rapprochée" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Sans catégorie" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "Non approuvé" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Défaut du système" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Icônes uniquement" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Texte uniquement" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Texte sous les icônes" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Texte à côté des icônes" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontale" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Verticale" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Les deux" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-j-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "j-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-j" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorer" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "Ajouter après numéro" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Ajouter à Mémo" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Ajouter au tiers" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tab" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Virgule" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Point-virgule" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Espace" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Janvier" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Février" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Mars" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Avril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juin" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juillet" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Août" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Septembre" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Octobre" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembre" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Décembre" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Rechercher..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "Tous drapeaux" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Chèque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Virement bancaire" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Carte de débit" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Virement permanent" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Paiement électronique" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Dépôt" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Frais bancaires" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Prélèvement direct" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Téléphone portable" homebank-5.9.1/po/oc.po0000644000175000017500000030620014775770050010367 # Occitan (post 1500) translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2016-10-14 09:59+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Suprimir" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "Al_ternar" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Convertir" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Apondre..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_ereitar..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Editar..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Pas cap" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "E_stat" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Pas cap" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Suprimir..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Salv" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Expòrt CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Compte" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Editar" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Aisinas" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Apondre una operacion novèla" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Apondre" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Eretar dempuèi l'operacion activa" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Ereitat" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Editar l'operacion activa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Editar" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "A_ctualizar" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Actualizar los resultats" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Uèi:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futur:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Restablir" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Tampar" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Impossible de dobrir '%s', lo fichièr existís pas.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Error de fichièr" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fichièr" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Novèl" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Dobrir..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Enregistrar" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Enregistrar _jos..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Restablir" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Proprietats..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Quitar" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferéncias..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Afichatge" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "Barra d'_aisinas" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gerir" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Comptes..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Terces..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorias..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Afectacions..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budgèt..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Operacions" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Apondre..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Veire..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Rapòrts" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Estatisticas..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udgèt..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Ajuda" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Contengut" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Senhalar una anomalia..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduire aquesta aplicacion" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_A prepaus" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Crear un fichièr novèl" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Dobrir un fichièr" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Dobrís un fichièr utilizat recentament" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Enregistrar lo fichièr actiu" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Compte" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Terç" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categoria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budgèt" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Afectacion" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Veire las operacions del compte seleccionat" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Dobrís lo rapòrt Estatisticas" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Sòld" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Dobrís lo rapòrt Budgèt" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Planificat" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futur" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Estatut" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etiqueta" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Montant" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Desconegut" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FICHIÈR]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Impossible d'afichar l'URL « %s »" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Mandar" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Autre" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Debit" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Credit" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total general" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Comptes" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Uèi" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memo" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etiquetas" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultat" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Mai tard" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Tièra" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Veire los resultats en tièra" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linha" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Veire los resultats en linhas" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalh" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Afichar detalh" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Actualizar" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Afichar" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X :" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Plaja:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_De :" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_A :" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Totes" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inversar" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Despensat" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mes" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Rapòrt Budget" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipe :" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultat :" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budgèt:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Despensat:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s per %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Afichar la legenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Afichar lo taus" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Rapòrt Estatisticas" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Credit:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Debit:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Part de temps" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Comptador" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Carburant" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Prètz" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist:" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportar cap a CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categoria :" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Comptador :" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consum :" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Còst carburant :" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Autres còstes :" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Còst total :" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(pas cap)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visible" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nom del compte" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Error" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gerir los comptes" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "General" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_umèro :" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Nòtas :" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Totes los:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Modèl" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "A_nullar" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_D'acòrdi" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condicion" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Sensible a la cassa" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Tèrç :" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Espotir" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Paga_ment:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Apondre" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Pas trobat" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nom :" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nom" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Dobrir" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Fichièrs QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "fichièrs OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Fichièrs CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Totes los fichièrs" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "jorns" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Benvenguda" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importar" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmacion" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Error del format de fichièr" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "Es_cafar" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gerir le Budgèt" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balança :" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Opcions" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Gen" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Abr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ago" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Oct" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Fusionar" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Credit" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Simbòl" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moneda" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalizada" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Simbòl :" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Nombre de _decimalas:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Còdi ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transaccion" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Metre a jorn" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Devisa :" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportar en QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importar dempuèi CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Fichièrs HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Tampar _sens enregistrar" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Reïnicializar" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Proprietats de fichièr" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interfàcia" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transaccions" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transferir" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Rapòrt" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Lenga del sistèma" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Veire per mont_ant" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Veire la colomna dels tauses" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Veire los _detalhs" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Activar" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Predefinit :" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Lenga :" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format :" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Exercici fiscal" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Barra d'aisinas :" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_importar" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "E_xportar :" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Afichar la fenèstra d'aviada" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferéncias" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Entresenha" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Apondre una operacion novèla" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Eretar l'operacion" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data :" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Compte:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "Es_tat :" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banca" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Argent franc" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Dequés" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "carta de credit" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Jorn" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possible" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Abans" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Aprèp" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Annada" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Setmana" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimèstre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Inclure" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Exclaure" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Aqueste mes" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Deb. & Cred." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Pas categorizat" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Defaut del sistèma" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Sonque las icònas" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Sonque lo tèxte" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Tèxte jos las icònas" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Tèxte al costat de las icònas" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Orizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Los dos" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "j-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-j" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorar" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Genièr" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Febrièr" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Març" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Abril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Junh" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Julhet" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agost" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Setembre" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Octobre" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembre" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Decembre" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Set" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Recercar..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Verificar" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depaus" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/pt.po0000644000175000017500000035275114775770031010424 # Portuguese translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-12-30 15:02+0000\n" "Last-Translator: JCB \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: pt\n" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Remover" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Algumas transações da sua seleção já foram reconciliadas." #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Finanças Pessoais" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Contabilidade pessoal gratuita e fácil para todos" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finanças;contabilidade;orçamento;pessoal;dinheiro;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank é um software gratuito que irá ajudá-lo a gerir as suas finanças " "pessoais." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Foi desenhado para ser fácil de utilizar e para lhe permitir analisar as " "suas finanças pessoais em detalhe através de poderosas ferramentas de " "filtragem e de gráficos elegantes." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Se está à procura de um programa totalmente gratuito e fácil para gerir as " "suas finanças pessoais o HomeBank é a sua melhor escolha." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transações" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transações, %d selecionadas, média: %s, soma: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Bloqueado. Clique para desbloquear" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Desbloqueado. Clique para bloquear" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Vencimento hora' não está aplicado na actual carteira" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Deseja eliminar %d a transação selecionada?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Se eliminar uma transação, ela será perdida permanentemente." #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Tem a certeza que quer alterar o estado para Nenhum?" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Alterar" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "Tem a certeza de que deseja alterar o estado para Efectuado?" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Mudar" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Criar" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Criar Modelo" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "%d criado com um icon pré-preenchido" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" "Tem a certeza que deseja criar uma atribuição a partir da %d transação " "selecionada?" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Criar Tarefa" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Todas as transações" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Há %d grupo(s) de transação(ões) semelhante(s)" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Nenhuma transação semelhante foi encontrada!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Verifique o resultado da transferência interna" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Sem inconsistências !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Inconsistência encontrada: %d\n" "Quer rever e corrigir?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Todos os valores das transacções serão divididos por %6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Deseja converter esta conta para Euros como sendo a moeda principal ?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Converter" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Nenhuma transação alterada" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transacção alterada: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Resultados da atribuição automática" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Adicionar..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Herdar..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Editar..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Nada" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Limpo" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Reconciliado" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Estado" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Nenhum(a)" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Vermelho" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Laranja" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Amarelo" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Verde" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Azul" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Púrpura" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Edição Múltipla..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Ver _Dividir" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "Copiar quantia bruta" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Criar modelo..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Criar tarefa ..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "Apa_gar.." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Para Cima" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_ Para Baixo" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exportar QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportar CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Imprimir..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Fechar" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Conta" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Copiar" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Colar" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Colar (hoje)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Procurar" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Editar" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Marcar duplicado..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Verifique a transferência interna" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Tarefas Automáticas" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Converter para Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Ferramentas" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Mover a transação para cima" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Mover a transação para baixo" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Adicionar nova transação" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Adicionar" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Herdar da transação ativa" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Herdar" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Editar transação ativa" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Editar" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Mudar para descontado as transacções seleccionadas" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Mudar transacções seleccionadas para reconciliado" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Editar múltiplas transações" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Apagar transações selecionadas" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "Troco reconciliado é" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "Encerrada" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Mostrar" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "_Actualizar" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Data _Intervalo:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "Mostrar %d dias à frente" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Editar filtro" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Limpar filtro" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Atualizar resultados" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro_menor" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Reconciliado:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "Confirmado:" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hoje:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Futuro:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Reverter alterações não gravadas para o ficheiro '%s?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- As modificações feitas ao ficheiro serão apagadas definitivamente\n" "- O ficheiro será carregado a partir da última gravação (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Reverter" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Tem a certeza que pretende tornar o arquivo anônimo?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Avançar irá anonimizar qualquer texto, \n" "como p.ex. 'conta x', 'empregado y', 'memorando z', ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "Tornar _anônimo" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Bem-vindo ao HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Fechar" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Abrir _último ficheiro aberto" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Criar _novo arquivo" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Abrir um arquivo existente" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Abrir o arquivo _exemplo" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Consultar Manual _do HomeBank" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Configurar _preferências" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Mostrar esta janela na próxima vez" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Está a abrir um ficheiro de backup '%s'.\n" "\n" "Tem certeza de que quer fazer isso?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Abrir o arquivo de backup?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Abrir cópia de segurança" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Não foi possível abrir \"%s\", o arquivo não existe.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Erro desconhecido" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O Erro de leitura do arquivo %s." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "O arquivo '%s' não é um arquivo HomeBank válido." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "O arquivo '%s' foi salvo com uma versão mais recente do HomeBank\n" "e não pode ser aberto com a versão atual." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Erro de arquivo" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "O ficheiro foi modificado desde que foi lido." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Se o guardar, todas as alterações externas serão perdidas. Deseja guardar?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "S_ave na mesma" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Limpar" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Arquivo" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Novo" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Abrir..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Abrir _Recente" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Salvar" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Salvar Como" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importar..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exportar como QIF" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Reverter" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Restaurar cópia de segurança" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Propriedades..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Sair" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Preferências..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Visualizar" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Barra de ferramentas" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "Gráfico Despesas ( Categorias )" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "Gráfico Despesas ( Mensal )" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Final da lista" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Submúltiplo de Euro" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Gerir" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Carteira..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "C_ontas..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "Beneficiários" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Categorias..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Etiquetas..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Agendada/Modelo..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Atribuições..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Moedas..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Orçamento..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Orçamento (visualização de tabela)..." #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transações" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Adicionar..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Mostrar..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Mostrar Todos..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Definir agendamento..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Lançamento agendado" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Relatórios" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Estatística..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendência ao longo do tempo..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Balanço..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "O_rçamento..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Custo do Veículo..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Mostrar diálogo de boas vindas..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Estatística do arquivo..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Tornar anônimo..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Ajuda" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Conteúdo" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Obter Ajuda Online..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Verificar se há actualizações..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Notas de Lançamento" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Reportar um problema..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Traduzir esta aplicação..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Sobre" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Nova" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Criar um novo arquivo" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Abrir" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Abrir arquivo" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Abrir um arquivo usado recentemente" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Guardar" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Salvar o arquivo atual" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Conta" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Gerir as contas" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Favorecido" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Gerir os beneficiários" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Categoria" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Gerir as categorias" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Programado / Modelo" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Gerir as transações programadas/modelo" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Orçamento" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Gerir o orçamento" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Atribuição" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Gerir as atribuições automáticas" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Mostra as transações da conta selecionada" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Adicionar transações" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Estatísticas" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Abrir relatório da estatística" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Tendência" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Abrir relatório da tendência ao longo do tempo" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Abrir relatório do Saldo" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Abrir relatório do orçamento" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Custo do veículo" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Abrir relatório de custos do veículo" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Ajuda" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donativo" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Doe para o projeto HomeBank" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Agendada" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Futuro" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Lembrar" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Hoje" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(sem nota)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(sem categoria)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "formato CSV inválido" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Intervalo de datas errado!" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Tipo" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Estado" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "nenhum" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "Reconciliado" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etiqueta" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Pagamento" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Valor" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Texto" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Desconhecido" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f L" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/L" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./L" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(sem sacador)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(sem grupo)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(sem etiqueta)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-h%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Mostrar a versão da aplicação" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FICHEIRO]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Erro de navegador." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "O URL %s não pode ser mostrado." #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(sem instituição)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Suas contas" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Copiar para a área de transferência" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Agrupar por" #: ../src/hub-account.c:595 msgid "type" msgstr "Tipo" #: ../src/hub-account.c:596 msgid "group" msgstr "grupo" #: ../src/hub-account.c:597 msgid "institution" msgstr "Instituição" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Mostrar tudo" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expandir tudo" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Recolher tudo" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "somar: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Sem transações para adicionar" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transação adicionada: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Verificar resultado das transações agendadas" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "Publicar quando o programa iniciar" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "data máxima de lançamento" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Total" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Ignorar" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Editar & Publicar" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "E_nviar" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Outro" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "Gráfico Despesas ( Categorias )" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Despesas" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Despesas" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Receita" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Receitas" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Despesas & Receitas" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "Balanço Total" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "Gráfico Despesas ( Mensal )" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "conta importada" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total Geral" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "última reconciliação" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "até ao saque a descoberto" #: ../src/list-account.c:753 msgid "before maximum" msgstr "antes do máximo" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Contas" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Reconciliado" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Limpo" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hoje" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- separar -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- sem uma categoria -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Número" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Memorando" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Etiquetas" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Comparar" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultados" #: ../src/list-report.c:957 msgid "Average" msgstr "Médio" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Atrasado" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Estático" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Próxima data" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "Balanço por %s" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d sob %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lista" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Ver resultados em lista" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Gráfico de linhas" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Ver resultados como linhas" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalhe" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Mudar detalhes" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Atualizar" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Imprimir" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Relatório do saldo" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Visualização" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Intervalo:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Mostrar linha vazia" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zoom X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtro" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Ativo:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Intervalo:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_De:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Até:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Selecionar:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Todos(as)" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inverter selecção" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Incluir _transferência" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Despesa" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "Preenchido" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mês" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Orçamento por Categoria" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Orçamento por Mês" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " sobre" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " esquerda" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " sob" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Pilha" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Ver resultados em barras empilhadas" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Result para o clipboard" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Result para CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detail para o clipboard" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detail para CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Nenhuma conta foi definida para fazer parte do orçamento." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Deverá incluir algumas contas do diálogo de contas." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Relatório de orçamento" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Modo:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipo:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Só fora do orçamento" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultado:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Orçamento:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Despesa:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s por %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "Muitas colunas para mostrar" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" "Selecione um intervalo mais amplo e / ou um intervalo de datas mais restrito" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Coluna" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Ver resultados em colunas" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Circular" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Ver resultados em anel" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Ver resultados como conjunto" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "Conjunto 100%" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "Ver resultados como conjunto 100%" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Legenda" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Mudar legenda" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Taxa" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Mudar taxa" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Relatório da estatística" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Ver por:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "_Modo de Balanço" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Classificar por _montante" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Compare Exp. & Inc." #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Total:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Receita:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Despesa:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Média: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Relatório da tendência ao longo do tempo" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Acumulado" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "_Por:" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Divisão de tempo" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Indicador" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Combustível" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Preço" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Dist." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exportar" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportar como CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Relatório de custos da viatura" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Categoria:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Indicador:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Consumo:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Custos com combustível:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Outros custos:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Custos totais:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nada)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Visível" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Nome da conta" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Erro" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Não foi possível adicionar a conta '%s',\n" "este nome já existe." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Não foi possível apagar a conta '%s'" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Tem a certeza que pretende apagar definitivamente '%s'?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Se apagar uma conta, esta será definitivamente apagada." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não foi possível mudar o nome\n" "desta Conta \"%s\" para \"%s\",\n" "este nome já existe." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Gerir contas" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Eliminar" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Mudar o nome" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Mover para cima" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Mover para baixo" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Geral" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grupo:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Instituição:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_úmero:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "_Saldo inicial:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Moeda:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "esta conta foi _encerrada" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Página web:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Notas:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Comportamento" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatização" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Modelo _Padrão:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Reportar exclusão" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "excluir do resumo da _conta" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "expandir para sumário" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "excluir do _orçamento" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "excluir de qualquer _relatório" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Diversas." #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Número de cheque actual" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Livro de cheques _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Livro de cheques _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Limites balanço" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Overdraft em:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Máximo:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Modelo Apagado" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" "Este modelo é usado como modelo de conta, como tal não pode ser eliminado." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Se apagar um agendamento/modelo, este será definitivamente apagado." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Próxima _data:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Cad_a:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Mais opções" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Fim da semana:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Parar após:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "lançamentos" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Gerir transacções agendadas/modelo" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Template" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Agendar" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Procurar" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Notas" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Procura não pode estar vazia" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Este texto de pesquisa já existe na posição %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Cancelar" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Condição" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Pesquisar:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_Entrada:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Sensível a maiúsculas e minúsculas" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Quan_tia:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "_E" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Tarefas" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Sacador:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Substituir" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Pag_amento:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "Etique_tas:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regra %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Se apagar uma atribuição, esta será definitivamente apagada." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Mover para..." #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Mover regra" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Movimentar" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Gerir Atribuições" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Este assistente irá ajudá-lo a definir uma configuração mínima\n" "para um novo arquivo HomeBank." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" "Todos os elementos configurados aqui podem ser alterados posteriormente, se " "necessário." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Nenhuma alteração será feita até clicar em \"Aplicar\"\n" "no final deste assistente." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "O HomeBank exibirá um título para a janela principal,\n" "pode ser um rótulo ou seu nome." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Título:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "O HomeBank oferece suporte a várias moedas. A moeda base é\n" "padrão para novas contas e relatórios." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Base:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Configurar moedas adicionais" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Adicionar" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Não encontrado" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "O HomeBank pode preencher previamente as categorias para o seu idioma\n" "se um arquivo CSV estiver disponível e fornecido pela comunidade." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Configurar categorias para meu idioma" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Ficheiro da predefinição:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank permite importar as suas contas de transferências\n" "de arquivos de instituições financeiras, ou pode criar a sua conta " "manualmente." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Criar a minha primeira conta" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nome:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Esta é uma página de confirmação,\n" "\n" "pressione 'Aplicar' para aplicar as alterações" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Iniciar configuração de arquivo" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Opções do Ficheiro" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Escolha a moeda" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Escolha as categorias" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Criar conta" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Concluir configuração de arquivo" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Válido" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Nome" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Abrir" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Ficheiros aceites" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Ficheiros QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Ficheiros OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Ficheiros CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Todos os ficheiros" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nova conta global" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nova conta" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "ignorado" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "%d de %d transações" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transação(ões), %d semelhante, %d existente, %d selecionado" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transação(ões), %d selecionadas" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Algumas datas não podem ser convertidas. Por favor, tente mudar a ordem das " "datas para continuar." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importe %s para:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "este arquivo" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "esta conta" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Nome: %s\n" "Número: %s\n" "Arquivo: %s\n" "Codificação: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importar transações do banco ou cartão de crédito" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Com este assistente, será guiado pelo processo de importação de um ou " "vários\n" "extratos transferidos do seu banco ou cartão de crédito, nos seguintes " "formatos:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Recomendado: .OFX ou .QFX\n" "(às vezes chamado de Money™ ou Quicken™)\n" "Suportado: .QIF\n" "(arquivo Quicken™ comum)\n" "Somente utilizadores avançados: .CSV\n" "(o formato é específico do HomeBank, consulte a documentação)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Nenhuma alteração será feita até que clique em \"Aplicar\" no final deste " "assistente." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Não voltar a mostrar" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Arraste e solte um ou vários arquivos para importar.\n" "Também pode usar os botões adicionar / excluir da lista." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Há muita conta nos arquivos que escolheu,\n" "use o botão voltar para selecionar menos arquivos." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "A identificação da conta de destino por nome ou número falhou." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Data da operação:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importar memorandos" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Trocar memorandos com beneficiários" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX _Nome:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX _Memo:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "Frase _caso memorando / beneficiário" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Alternar quantidade" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Transação semelhante na conta de destino (possível duplicação)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dia(s)" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "A correspondência é feita pela seguinte sequência: por conta, valor e data.\n" "Uma tolerância de 0 dias significa uma combinação exacta" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Executar automação" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Enriquecer com _padrão do beneficiário" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Executar regras de atribuição _automáticas" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Clique em \"Aplicar\" para atualizar suas contas." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Bem-vindo" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Selecionar arquivo(s)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importar" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Confirmação" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Erro no formato do ficheiro" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "O ficheiro CSV deve conter exatamente o mesmo número de colunas,\n" "separadas por um ponto e vírgula. Por favor, consulte a ajuda para mais " "detalhes." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Tem certeza de que deseja limpar a entrada?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Se continuar, todas os valores serão definidos para 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Limpar" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Orçamento para %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Gerir Orçamento" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importar CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "E_xportar CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balanço:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "todos os meses é igual" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Limpar entrada" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "é diferente todos os meses" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Opções" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Forçar monitorização desta categoria" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Fev" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Abr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ago" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Set" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Out" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dez" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Resumo" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totais" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Total\n" "Anual" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" "Média\n" "Mensal" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Mensalmente" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Adicionar uma categoria" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "_Aplicar" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Categoria Parental" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Nome da categoria" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Esta categoria já está a ser utilizada.\n" "Qualquer transacção com esta categoria será definida como (sem categoria)." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Juntar categorias" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "As transações atribuídas à categoria '%s' serão movidas para a categoria " "selecionada abaixo." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Categoria alvo" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Apagar categoria '%s'" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Tem certeza de que deseja limpar as entradas de '%s'?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Adicionar categoria" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Remover categoria" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Unir" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Limpar o texto introduzido" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "# txn" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "# cfg" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Apagar categorias não usadas" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Tem a certeza que quer apagar permanentemente\n" "as categorias não usadas?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Nome de categoria já existe. Tente outro nome." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Editar Categoria" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Mudar Tipo" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Receita" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "Propagar para _filhos" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não foi possível mudar o nome\n" "desta Categoria '%s' para '%s',\n" "este nome já existe." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Combinar categoria '%s'" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "As transações atribuídas a esta categoria,\n" "serão alteradas para a categoria selecionada." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Incluir _subcategorias" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "_Apagar a categoria '%s' (e qualquer orçamento)" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Gerir categorias" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Mostrar Ocultos" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "Mostrar Uso" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Mover/Combinar" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Mostrar/Ocultar" #: ../src/ui-category.c:2552 msgid "new category" msgstr "nova categoria" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nova subcategoria" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Moeda padrão" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Símbolo" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Taxa de câmbio" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Última modificação" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Editar moeda" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Moeda" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formatar" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Personalizar" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Símbolo:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "É pre_fix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Decimal _caractere:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Dígitos da fração:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Caractere de agrupamento:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Selecione moeda padrão" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Seleccione moeda" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "Código ISO" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Adicionar uma moeda _personalizada" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Erro na actualização online" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Se apagar uma moeda, ela será perdida permanentemente." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Alterar a moeda padrão" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Se continuar, as taxas de outras moedas\n" "serão definidas como 0, não se esqueça de atualizar" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Moedas" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Actualização online" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Definir como padrão" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Estatística do ficheiro" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transação" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Atualizar" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Seleccione a moeda padrão" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "A partir da v5.1, o HomeBank pode gerir várias moedas.\n" "Se a moeda abaixo não for a correcta, por favor, altere-a:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Moeda:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportar como QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importar de CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Abrir ficheiro HomeBank" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Abra o arquivo de cópia de segurança do HomeBank" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Guardar ficheiro HomeBank como" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Ficheiros HomeBank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Cópia de segurança" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Todas as cópias de segurança" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Gravar as alterações antes de fechar?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Se não gravar, as suas alterações serão definitivamente apagadas.\n" "Número de alterações: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Fechar _sem guardar" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exportar como _CVS" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Pasta:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Escolha uma Pasta" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Nome do ficheiro:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Adicionar coluna de Estado" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detalhe as linhas de divisão" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "O ficheiro não estará no formato HomeBank CSV, porque exportou\n" "de \"Todas as transações\", ou selecionou a opção." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exportar como PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportar como _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Com o HomeBank, a impressão é orientada para a eco responsabilidade\n" "em relação ao formato digital mais difundido: o formato PDF. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "Selecione acção para criação alvo" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Criar _Novo" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Usar _Seleção" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Transferir fonte" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "Associação alvo sugerida" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "O HomeBank encontrou alguma transacção que pode estar associada a uma " "transferência interna." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Memorando:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Transferência de Despesa" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Transferência de Receita" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Repor" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Guardar & Usar" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Usar" #: ../src/ui-filter.c:1370 msgid "default" msgstr "padrão" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Quantidade/Texto" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Mostrar sempre" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Nula" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Adicionado" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Editado" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(padrão)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Nome do filtro" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "Guardar como..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Data de Vencimento" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Próximo Pagamento" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "Em Avanço" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Propriedades do ficheiro" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Transações agendadas" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "de cada" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "mês" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Excluir beneficiário não utilizado" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Tem a certeza que quer apagar\n" "permanentemente as entidades não usadas?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Editar Pagador" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "Preenchimento por defeito" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Pa_gamento:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não é possível renomear\n" "este beneficiário, de '%s' para '%s',\n" "este nome já existe." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Combinar beneficiários '%s" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "As transações atribuídas a este beneficiário,\n" "serão alteradas para o beneficiário selecionado." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Apagar beneficiário '%s'" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Este beneficiário já existe.\n" "Qualquer transação com este beneficiário será definida como (sem " "beneficiário)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gerir Beneficiários" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "novo beneficiário" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Interface" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Configuração regional" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transações" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Transferência" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importar/Exportar" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Denunciar" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Previsão" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Cópia de Segurança" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Pastas" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Idioma do sistema" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Escolha a pasta padrão para os ficheiros do HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" "Escolha a pasta padrão para arquivos de cópia de segurança do HomeBank" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Escolha a pasta padrão para importação" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Escolha a pasta padrão para exportação" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Utilize selecionar/arrastar para reordenar" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "API da moeda" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "URL:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Chave:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Opções gerais" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "Opções OFX/QFX" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "Opções QIF" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "Opções CSV" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(apenas importação de transação)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Separador:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Relatórios da janela principal" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "_Itens máx .:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Fitro inicial" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Opções da estatística" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Mostrar por _montante" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Mostrar _coluna da taxa" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Mostrar _detalhes" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Opções de orçamento" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "Número mês:" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Ativar" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Predefinição:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "Configuração" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Interface de utilizador" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Idioma:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formato:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%o nome abreviado do dia da semana da região.\n" "%Nome completo do dia da semana da região. \n" "%b Nome abreviado do mês da região. \n" "%B Nome completo do mês da região. \n" "%c representação de data e hora apropriada da região. \n" "%C Número do século (o ano dividido por 100 e abreviado para um número " "inteiro) como um número decimal [00-99]. \n" "%d dia do mês como um número decimal [01,31]. \n" "%D igual a %m/%d/%y. \n" "%e dia do mês como um número decimal [1,31]; um único dígito é precedido por " "um espaço. \n" "%j dia do ano como um número decimal [001,366]. \n" "%m mês como um número decimal [01,12]. \n" "%p representação de data apropriada da região. \n" "%y ano sem século como um número decimal [00,99]. \n" "%Y ano com século como um número decimal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Ano fiscal" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Começa _em:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Unidades de medida" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Utilizar _milhas para distância" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Utilizar _galões para o combustivel" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Mostrar sempre lembrete" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Mostrar sempre o intervalo" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "Fechar reconciliado a qualquer mudança" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Mostrar futuro:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dias à frente" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Esconder reconciliado" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Diálogo de transação" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Ativar _completar automático de memorando com" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "dias seguidos" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Mostrar texto de confirmação de adição por 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Configurações Gtk" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "Linha _Grid:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Opções dos gráficos" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "_tamanho de letra menor" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Barra de ferramentas:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Ativar cópias de segurança automáticas" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_Numero de cópias de segurança a manter:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "A frequência de cópias de segurança é uma vez por dia" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Carteiras:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "_Cópia de segurança:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Arquivos de troca" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importar:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exportar:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Arranque do programa" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Mostrar ecrã inicial" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Carregar o último ficheiro aberto" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Lançar transações agendadas pendentes" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Atualizar moedas online" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Redefinir todas as preferências" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Deseja realmente redefinir\n" "todas as preferências para os valores\n" "padrão?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Preferências" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informações" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Terá que reiniciar o HomeBank\n" "para que as alterações tenham efeito." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "A pasta das cópias de segurança mudou,\n" "precisa copiar o arquivo '.bak' para este novo local." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Editar Etiqueta" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Não é possível renomear esta etiqueta,\n" "de '%s' para '%s',\n" "este nome já existe." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Fundir etiquetas '%s'" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transações atribuídas a esta etiqueta,\n" "serão movidos para a etiqueta selecionada abaixo." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Apagar a etiqueta '%s'" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Esta etiqueta já existe.\n" "A etiqueta será removida de qualquer transação que a utilize." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Gerir etiquetas" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "nova etiquetas" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transação de %s criada." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Quer interromper a transferência interna?\n" "\n" "Prosseguir irá excluir a transação de destino." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Parar" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Mostrar _agendado" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Mostrar _todas as contas" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Use um modelo" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Adicionar e _Manter" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Adicionar transacção" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Adicionar modelo" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Herdar transacção" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Herdar modelo" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Editar transação" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Editar modelo" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- digite: d, d/m, m/d para completar a data\n" "- use as teclas de seta + ctrl ou shift\n" "- sem data para hoje" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "P_ara:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Divisão da transacção" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "Sem taxa disponível para preencher automaticamente" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Conta:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Livro _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- digite qualquer letra para preenchimento automático\n" "- digite o novo texto para criar a entrada" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Cate_goria:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Estado:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emorando:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Aviso: sinal da quantia e categoria não correspondem" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Edição de múltiplas transacções" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Digite como\n" "transferir" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Eliminar tudo" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Aplicar" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Cancelar" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Valor da transacção:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Não atríbuida:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Soma das partes:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Aviso: a soma das divisões e o tipo de transação não correspondem" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Aviso: a soma das divisões e o valor da transação não correspondem" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(sem tipo)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Banco" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Dinheiro" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Activo" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Cartão de crédito" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Passivo" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "A procurar" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Poupanças" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dia" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Possível" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Antes" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Depois" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Ignorar" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Horas" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Ano" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Semana" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "Quinzena" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Trimestre" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Semestre" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Incluir" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Excluir" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Ontem" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Amanhã" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Última semana" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Esta semana" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Semana Seguinte" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "Última Quinzena" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "Esta Quinzena" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "Próxima Quinzena" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Mês Passado" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Este mês" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Mês Seguinte" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Último Trimestre" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Este Trimestre" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Próximo Trimestre" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Ano Anterior" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Este Ano" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Ano Seguinte" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Últimos 90 Dias" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Últimos 60 Dias" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Últimos 30 dias" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Últimos 12 meses" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "Últimos 30 Dias" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Todas as Datas" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Este mês" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Próximo mês" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Próximos 30 dias" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Próximos 60 dias" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Próximos 90 dias" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Despesas e Rendimentos." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Qualquer tipo" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Qualquer estado" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Não descontado" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Não reconciliado" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Sem categoria" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Predefinições" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Apenas ícones" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Apenas texto" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Texto por baixo dos ícones" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Texto ao lado dos ícones" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontal" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertical" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Ambos" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-a" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-a" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "a-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorar" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Juntar ao Memorando" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Anexar ao beneficiário" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Tabulação" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Vírgula" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Ponto e vírgula" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Espaço" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Janeiro" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Fevereiro" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Março" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Abril" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Junho" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Julho" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Agosto" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Setembro" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Outubro" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Novembro" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Dezembro" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Set" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Procurar..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cheque" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Transferência Bancária" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Cartão de débito" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Ordem permanente" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pagamento eletrónico" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depósito" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Taxa Financeira" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Débito Directo" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/ms.po0000644000175000017500000030623314775770061010415 # Malay translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2016-09-05 16:32+0000\n" "Last-Translator: abuyop \n" "Language-Team: Malay \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Kewangan peribadi" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Perakaunan peribadi untuk semua orang yang mudah dan percuma" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "kewangan;perakaunan;bajet;peribadi;wang;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "" #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Ubah" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Togol" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "T_ukar" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Tiada transaksi berubah" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "T_ambah..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Warisi..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Sunting..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Tiada" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Tiada" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Cipta templat..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Padam..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Eksport QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Eksport CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "A_kaun" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Sunting" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Tukar ke Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "A_lat" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Tambah transaksi baru" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Tambah" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Warisi dari transaksi aktif" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Warisi" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Sunting transaksi aktif" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Sunting" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Segar semula keputusan" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Hari Ini:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Masa Depan:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Selamat Datang ke HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Tutup" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Buka fail _contoh" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Tidak boleh membuka '%s', fail tidak wujud.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "" #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "" #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Ralat fail" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fail" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Baru" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Buka..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Simpan" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Simpan Seb_agai..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Kembali Semula" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Sifat..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Keluar" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Keutamaan..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Papar" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Palang Alat" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Urus" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Aka_un..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Penerima..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategori..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Pemindahan..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Matawang..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Bajet..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaksi" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Tambah..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Papar..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Laporan" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistik..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Arah Aliran Masa..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_ajet..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Papar dialog aluan..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Statistik fail..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Bantuan" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Kandungan" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Laporkan Masalah..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Terjemahkan Aplikasi Ini..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Perihal" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Cipta fail baharu" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Buka fail" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Buka fail kebelakangan diguna" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Simpan fail semasa" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Akaun" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Penerima" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategori" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Bajet" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Papar akaun transaksi pilihan" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Buka laporan Statistik" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Buka laporan Arah Aliran Masa" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Imbangan" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Buka laporan Imbangan" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Buka laporan Bajet" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Masa depan" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Tag" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Amaun" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FAIL]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "" #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Tidak dapat papar URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Jumlah" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Perbelanjaan" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Pendapatan" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Hari ini" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Tarikh" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Tag" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Keputusan" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d dibawah %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Senarai" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Papar keputusan dalam senarai" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Baris" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Papar keputusan dalam baris" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Terperinci" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Togol perincian" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Segar Semula" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Laporan imbangan" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zum X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Julat:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Dari:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Hingga:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Semua" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Songsang" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Digunakan" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Bulan" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr "" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "" #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "" #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Laporan bajet" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Jenis:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Bajet:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Digunakan:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Togol petunjuk" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Togol kadar" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Laporan Statistik" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Papar berdasarkan:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Pendapatan:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Perbelanjaan:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Laporkan Arah Aliran Masa" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Kumpul" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Hirisan masa" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Meter" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Bahan Api" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Harga" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Jarak" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Eksport sebagai CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Laporan kos kenderaan" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategori:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Meter:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Penggunaan:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Kos bahan api:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Kos lain:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Jumlah kos:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(tiada)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Tampak" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Ralat" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Tidak dapat menamakan semula Akaun ini,\n" "dari '%s' ke '%s',\n" "nama ini sudah wujud." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Urus Akaun" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Am" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_ombor:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Setia_p:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Batal" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Sensitif huruf" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Penerima:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Pem_bayaran:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Urus Pemindahan" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Tidak ditemui" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Praset fail:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Nama:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "Fail QIF" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "Fail OFX/QFX" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "Fail CSV" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Semua fail" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "hari" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Padanan dilakukan mengikut tertib: berdasarkan akaun, amaun dan tarikh.\n" "Toleransi tarikh bagi 0 hari bermaksud padanan tepat" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Pengesahan" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Ralat format fail" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Urus Bajet" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Imbangan:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Paksa pemantauan kategori ini" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mac" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mei" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Ogo" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dis" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "Pen_dapatan" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Tidak dapat menamakan semula Kategori,\n" "dari '%s' ke '%s',\n" "nama ini sudah wujud." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Urus Kategori" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Bilangan digit:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Eksport sebagai QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Import dari CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "Fail homebank" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Tidak dapat menamakan semula Penerima ini,\n" "dari '%s' ke '%s',\n" "nama ini sudah wujud." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Urus Penerima" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Antaramuka" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Pemindahan" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Papar berdasarkan _amaun" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Papar lajur kada_r" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Papar per_incian" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Dibenarkan" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "Praset:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Pa_lang Alat:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Import:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Eksport:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Muat fail terakhir dibuka" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Keutamaan" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Maklumat" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Tambah transaksi" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Warisi transaksi" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Tarikh:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "A_kaun:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "M_emo:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Tunai" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Aset" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kad Kredit" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Liabiliti" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Hari" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Tahun" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Minggu" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Suku" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Termasuk" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Kecualikan" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Perbelanjaan & Pendapatan" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Sistem lalai" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Ikon sahaja" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Teks sahaja" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Teks dibawah ikon" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Teks bersebelahan ikon" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Abaikan" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Januari" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februari" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Mac" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Jun" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Julai" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Ogos" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Disember" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Cek" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Kad debit" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Arahan tersedia" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Pembayaran elektronik" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Deposit" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Fi FI" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/nb.po0000644000175000017500000031202714775770010010365 # Norwegian Bokmal translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-06-03 09:20+0000\n" "Last-Translator: Jomar Askim \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HjemmeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Personlig økonomi" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Gratis, enkelt, personlig regnskap for alle" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "økonomi;regnskap;budsjett;personlig;penger;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "Homebank er fri programvare (fri som i fri tale og gratis som i gratis øl) " "som vil hjelpe deg til å administrere ditt personlige regnskap" #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Det er utviklet for å være enkelt å bruke og gi deg muligheten til å " "analysere din personlige økonomi i detalj ved hjelp av kraftige " "filtreringsverktøy og vakre grafer." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Hvis du er på utkikk etter en fullstendig gratis og enkel måte å " "administrere ditt personlige regnskap på, bør Homebank være ditt førstevalg " "av programvare." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transaksjoner" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transaksjoner, %d valgte, gj.snitt: %s, sum: %s (%s - %s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Låst. Klikk for å låse opp" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Ulåst. Klikk for å låse" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "Livsenergi" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Timesbetaling' ikke satt i nåværende Lommebok." #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Er du sikker på at du ønsker å slette den %d valgte transaksjonen?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Slett" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Er du sikker på at du vil endre status til Ingen?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Noen transaksjoner i ditt utvalg er allerede Bilagt." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Endre" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Er du sikker på at du vil veksle visningsmodus av statusen Bilagt?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Veksle visningsmodus" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Det finnes %d lignende transaksjoner" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Ingen lignende transaksjoner ble funnet!" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Sjekk resultatet av intern overføring" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "" #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Konverter" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Ingen transaksjoner endret" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Legg til..." #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Arv..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Rediger..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Ingen" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Klarert" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Bilagt" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "ingen" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Redigere Flere..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Lage mal..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Slett..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Eksporter QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Eksporter CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Rediger" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Verktøy" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Legg til ny transaksjon" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Legg til" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Arv fra aktive transaksjon" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Arv" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Rediger aktive transaksjon" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Endre" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Veksle visningsmodus til bilagt for valgte transaksjon(er)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Redigere flere transaksjoner" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Slette valgte transaksjon(er)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Oppdater resultat" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Idag:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Fremtidig:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Tlbakestill ulagrede endringer i fil '%s'?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "-Endringer gjort i filen vil bli tapt for alltid\n" "-Filen blir lastet inn fra siste lagring (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Tilbakestill" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Er du sikker på at du vil anonymisere filen?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Fortsett og du vil anonymisere all tekst,\n" "som'konto x','betalingsmottaker y', 'memo z',..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymiser" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Velkommen til HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Lukk" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Lag en_ny fil" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Åpne en eksisterende fil" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Åpne eksempelfilen" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Les Homebank_Manual" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Får ikke åpnet '%s', filen finnes ikke.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O feil i fil '%s'." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Filen '%s' er ikke en gyldig HomeBank fil." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Filen '%s' ble lagret med en nyere versjon av HomeBank\n" "og kan ikke bli lastet inn i gjeldende versjon." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Filfeil" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Fil" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Ny" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Åpne" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Lagre" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Tilbakestill" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Avslutt" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Innstillinger..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Vis" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Verktøylinje" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Behandle" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "Kon_toer..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Betalingsmottakere..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategorier..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Planlagte/Mal..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Oppgaver" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budsjett..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaksjoner" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Legg til..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Vis..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Lag planlegger..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Send planlagte" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Rapporter" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistikk" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udsjett..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Kjøretøykostnad..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Vis velkomst dialogen" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Filstatistikk..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymiser..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Hjelp" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Innhold" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Rapporter et problem…" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Oversett dette programmet…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Om" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Opprett en ny fil" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Åpne en fil" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Åpne en nylig brukt fil" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Lagre gjeldende fil" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Konto" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Betalingsmottaker" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategori" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budsjett" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Viser valgte kontos bevegelser" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Legg til transaksjoner" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Åpne Statistikkrapport" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Åpne Trend Time rapport" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Åpne Saldorapporten" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Åpne Budsjettrapport" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Kjøretøykostnad" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Åpne kostnadsrapport for kjøretøy" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Fremtidig" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(ingen kategori)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Merke" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Beløp" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Ukjent" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FIL]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Nettleserfeil." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Kunne ikke vise URL '%s'" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Dine konti" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Ingen transaksjoner å legge til" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transaksjon lagt til: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Sjekk resultat av transaksjoner lagt i planlegger" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "senseste forfallsdato" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Sum" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Annet" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Utgift" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Inntekt" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Total sum" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Konti" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "I dag" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Dato" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Notat" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Merker" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultat" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Forsinket" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Neste dato" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Liste" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Vis resultat som liste" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linje" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Vis resultat som linjer" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalj" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Bytte detalj" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Oppdater" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Saldorapport" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Vis" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "Område" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Fra:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Til:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Alle" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Inverter" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Brukt" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Måned" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr "" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " venstre" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr "" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Ingen konto er valgt som del av budsjettet." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Du burde inkludere noen konti fra kontodialogen." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budsjettrapport" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Type:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budsjett:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Brukt:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Vis resultat som kolonne" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Vis resultat som smultringdiagram" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Aktiver forklaring" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Aktiver rente" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistikk Rapport" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Inntekt" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Utgift" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Måler" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Drivstoff" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Pris" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Distanse." #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Eksporter som CVS" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategori:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Meter" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Forbruk" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Drivstoffkostnad" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Andre kostnader" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Total kostnad:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(ingen)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Synlig" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Feil" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "" #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan ikke bytte navn på denne kontoen.\n" "fra '%s' til '%s',\n" "navnet finnes allerede" #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Behandle kontoer" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Generell" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "Nummer" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Hver:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "" #: ../src/ui-archive.c:972 msgid "posts" msgstr "" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Avbryt" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "_Skill mellom store/små bokstaver" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Betalingsmottaker" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Betaling" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "" #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Ikke funnet" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Navn:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Åpne" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF filer" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX filer" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CVS filer" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Alle filer" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dager" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Bekreftelse" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Filformat feil" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "" #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budsjett for %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Budsjett behandler" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balanse:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Mai." #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Des" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Inntekt" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Behandle Kategorier" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Fraktaltall:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "" #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Eksporter som QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importere fra CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank filer" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Planlagte transaksjoner" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Betaling" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan ikke endre navn på denne betaleren,\n" "fra '%s' til '%s',\n" "dette navet finnes allerede." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Behandle betalere" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Grensesnitt" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Overfør" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "" #: ../src/ui-pref.c:99 msgid "Report" msgstr "" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Vis av _beløp" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Vis _kurs kolonne" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Vis _detaljer" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "Aktiver" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Verktøylinje:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Import:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Eksporter:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Last siste åpnet fil" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Send ventende transaksjoner i planlegger" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Brukervalg..." #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Legg til transaksjon" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Arv transaksjonen" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Dato:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Konto" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Redigere flere transaksjoner" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Kontant" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Eiendel" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditkort" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Gjeld" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dag" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "År" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Uke" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "En firedel" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Inkludér" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Ekskludér" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Utgifter & Inntekter" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "System standarder" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Bare ikoner" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Bare tekst" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Tekst under ikoner" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Tekst ved siden av ikoner" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorer" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "januar" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "februar" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "mars" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "april" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "juni" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "juli" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "august" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "september" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "november" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "desember" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Sjekk" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Kreditt kort" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronisk betaling" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Innskudd" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/lt.po0000644000175000017500000032515514775770055010424 # Lithuanian translation for homebank # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2008. # Rimas Kudelis , 2015, 2016. msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2020-12-27 10:45+0000\n" "Last-Translator: Mantas Kriaučiūnas \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:22+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" "Language: lt\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank apskaita" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Namų buhalterija" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Laisva ir paprasta asmeninių finansų apskaita kiekvienam" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finansai;apskaita;biudžetas;asmeninė;pinigai;namai;šeimos;bankas;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "„HomeBank“ – tai laisvai ir nemokamai platinama programa, padėsianti jums " "tvarkyti ir stebėti savo asmeninius bei šeimos (namų) finansus." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Sukurta nesudėtingai namų ūkio finansų apskaitai ir analizuoti jūsų " "asmeninius finansus, suteikdama galingus filtrus ir vaizdžias diagramas." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Jei ieškote visiškai laisvo ir patogaus būdo tvarkyti savo asmeniniams " "finansams, išbandykite „HomeBank“ – ji jūsų nenuvils." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "" #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Šalinti" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Ar tikrai norite išvalyti operacijų būseną?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Kai kurios pasirinktos operacijos jau yra patvirtintos." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Valyti" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Ar norite perjungti operacijų būseną „Patvirtinta“?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Perjungti" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Sukurti" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Neatitikimų nerasta!" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Visų operacijų sumos bus padalintos iš %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Konvertuoti" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Nepakeista nė viena operacija" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "Pakeista operacijų: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Automatinių priskyrimų rezultatas" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Pridėti…" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Klonuoti…" #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Taisyti…" #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Jokia" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "Į_vykdyta" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "Pa_tvirtinta" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Būsena" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Nieko" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Daugybinis taisymas…" #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Kurti šablonus…" #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "" #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Šalinti…" #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Eksportuoti QIF…" #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Eksportuoti CSV…" #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "" #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "_Sąskaita" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Taisa" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "" #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Automatiniai priskyrimai" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Konvertuoti į Eurus…" #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Priemonės" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Pridėti naują operaciją" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Pridėti" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Pridėti naują operaciją, naudojant parinktos operacijos duomenis" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Klonuoti" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Keisti parinktą operaciją" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Taisyti" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Perjungti pasirinktų operacijų būseną „Įvykdyta“" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Perjungti pasirinktų operacijų būseną „Patvirtinta“" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Taisyti kelias operacijas" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Šalinti pasirinktas operacijas" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "At_naujinti" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Atnaujinti rezultatus" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "_Antrinė valiuta" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Šiandien:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Ateitis:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Ar atmesti neįrašytus failo „%s“ pakeitimus?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "– Atlikti šio failo pakeitimai bus negrįžtamai prarasti\n" "– Failas bus naujai įkeltas, panaudojant atsarginę jo kopiją (.xhb~ failą)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Atkurti" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Ar tikrai norite maskuoti šio failo įrašus?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Jeigu tęsite, visi įrašai bus nuasmeninti, pvz.:\n" "„paskyra x“, „mokėtojas y“, „pastaba z“ ir pan." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Maskuoti" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Sveiki, tai – „HomeBank“" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Užverti" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Kurti _naują el. piniginės failą" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Atverti anksčiau sukurtą failą" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Atverti _pavyzdinį failą" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "_Skaityti „HomeBank“ programos žinyną" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Nepavyko atverti „%s“, toks failas neegzistuoja.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "Skaitymo arba rašymo klaida, kreipiantis į failą „%s“." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Failas „%s“ nėra tinkamas „HomeBank“ failas." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Failas „%s“ buvo įrašytas aukštesne „HomeBank“ versija\n" "ir negali būti atvertas esama programos versija." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Failo klaida" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "" #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Failas" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Naujas" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Atverti…" #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "Į_rašyti" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Įrašyti kaip…" #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "" #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "" #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Atkurti" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Savybės…" #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Baigti darbą" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "_Nustatymai…" #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Rodymas" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Priemonių juosta" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Antrinė valiuta" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Valdymas" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "" #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Sąskaitos…" #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Gavėjai…" #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "_Kategorijos…" #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "" #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "_Planinės operacijos ir šablonai…" #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Priskyrimai…" #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valiutos…" #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "_Biudžetas…" #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Operacijos" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Pridėti…" #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Rodyti…" #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "" #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Tvarkaraščio parinktys…" #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Pridėti planines" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Ataskaitos" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistika…" #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Tendencijos…" #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "" #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "_Biudžetas…" #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Autotransporto išlaidos…" #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Rodyti pasveikinimo vediklio langą…" #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Failo statistika…" #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Maskuoti…" #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Pagalba" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Žinynas" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "" #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "" #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Pranešti apie problemą…" #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Versti šią programą…" #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Apie" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Kurti naują piniginės failą" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Atverti failą" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Atverti neseniai naudotą failą" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Įrašyti esamąjį failą" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Sąskaitos" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Gavėjai" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategorija" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Biudžetas" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Priskyrimai" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Rodyti pasirinktos sąskaitos operacijas" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Pridėti operacijas" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Atverti statistinę ataskaitą" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Atverti tendencijų ataskaitą" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Balansas" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Atverti balanso ataskaitą" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Atverti biudžeto ataskaitą" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Transporto išlaidos" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Atverti išlaidų transporto priemonėms ataskaitą" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Planinės operacijos" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Ateitis" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Priminti" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(be kategorijos)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "netinkamas CSV formatas" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Būsena" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Žymė" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Suma" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Nežinoma" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f L" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/L" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "myl./L" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(gavėjas nenurodytas)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FAILAS]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Naršyklės klaida." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Nepavyko atverti adreso „%s“" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Jūsų sąskaitos" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "" #: ../src/hub-account.c:594 msgid "Group by" msgstr "" #: ../src/hub-account.c:595 msgid "type" msgstr "" #: ../src/hub-account.c:596 msgid "group" msgstr "" #: ../src/hub-account.c:597 msgid "institution" msgstr "" #: ../src/hub-account.c:602 msgid "Show all" msgstr "" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Išskleisti viską" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Suskleisti viską" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Nėra pridėtinų operacijų" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "pridėta operacijų: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Planinių operacijų pridėjimo rezultatas" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "automatiškai pridedamos ne vėlesnės kaip" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Iš viso" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Pridėti" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Kita" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Išlaidos" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Pajamos" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Iš viso" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "" #: ../src/list-account.c:753 msgid "before maximum" msgstr "" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Sąskaitos" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Patvirtintos" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Įvykdytos" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Šiandien" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- išskaidyta -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Data" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Pastabos" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Žymės" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "" #: ../src/list-operation.c:2066 msgid "Match" msgstr "" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Būsena" #: ../src/list-report.c:957 msgid "Average" msgstr "" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Pavėluota" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Kita data" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d iš %d žemiau %s ribos" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Sąrašas" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Rodyti sąrašą" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linija" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Rodyti linijinę diagramą" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Išsamiai" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Rodyti išsamios informacijos polangį" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Atnaujinti" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Balanso ataskaita" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Rodymas" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_X mastelis:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Laikotarpis:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Nuo:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Iki:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Viskas" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invertuoti" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Išleista" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Mėnuo" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " viršyta" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " liko" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " nepanaudota" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Rodyti histogramą" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Jokia sąskaita nėra įtraukta į biudžetą." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Norimas sąskaitas galite įtraukti sąskaitų lange." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Biudžeto ataskaita" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Tipas:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Rezultatas:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Biudžetas:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Išleista:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s pagal %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Rodyti stulpelinę diagramą" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Rodyti žiedinę diagramą" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Rodyti legendą" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Rodyti santykį" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistinė ataskaita" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Detalumas:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Pajamos:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Išlaidos:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Vidurkis: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Tendencijų laike ataskaita" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "S_umuoti" #: ../src/rep-time.c:1544 msgid "Item" msgstr "" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Laiko intervalas" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Rida" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Degalų kiekis" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Kaina" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Atstumas" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Eksportuoti CSV formatu" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Išlaidų transporto priemonėms ataskaita" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategorija:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Nuvažiuota:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Suvartota:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Išlaidos degalams:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Kitos išlaidos:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Iš viso išlaidų:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(nėra)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Matomas" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Sąskaitos pavadinimas" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Klaida" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Naujai pridedama sąskaita negali vadintis „%s“ – toks pavadinimas jau " "naudojamas." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Negalima pašalinti sąskaitos „%s“" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Ar tikrai norite negrįžtamai pašalinti „%s“?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Sąskaitos pašalinimas yra negrąžinamas veiksmas." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Negalima šios sąskaitos pervadinti iš „%s“ į „%s“ – toks pavadinimas jau " "naudojamas." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Sąskaitų tvarkymas" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Pagrindai" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "_Numeris:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Pradinis _balansas:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Valiuta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "ši sąskaita už_daryta" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Pastabos:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Nepaisymas ataskaitose" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "neįtraukti į sąskaitų _suvestinę" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "neįtraukti į _biudžetą" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "neįtraukti į jokias _ataskaitas" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Einamojo čekio numeris" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "_1-ojoje čekių knygelėje:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "_2-ojoje čekių knygelėje:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Balanso ribos" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "Per_viršis ties:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "" #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "Planinės operacijos ar šablono pašalinimas yra negrįžtamas veiksmas." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Kita _data:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "_Vykdyti kas" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Savaitgaliais:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Nutraukti po:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "kartų" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Planinių operacijų ir šablonų tvarkymas" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Šablonai" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "" #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Atsisakyti" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_Gerai" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Sąlyga" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Skirti _didžiąsias ir mažąsias raides" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Gavėjas (mokėtojas):" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Perrašyti" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "_Mokėjimo būdas:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Priskyrimo pašalinimas yra negrįžtamas veiksmas." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Priskyrimų tvarkymas" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "" #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Pridėti" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Nežinomas" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Pradinių nustatymų failas:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Pavadinimas:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Pavadinimas" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "At_verti" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Žinomų tipų failai" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF failai" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX/QFX failai" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV failai" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Visi failai" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr "" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "" #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Datos formatas:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "d." #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Sutapimai aptinkami remiantis sąskaita, suma ir data.\n" "Pasirinkus 0 dienų datos paklaidą, bus aptinkami tik tikslūs sutapimai." #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "" #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Sveiki!" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importuoti" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Patvirtinimas" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Failo formato klaida" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV faile turi būti tiksliai apibrėžtas skaičius stulpelių,\n" "atskirtų kabliataškiu. Išsamesnės informacijos ieškokite žinyne." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Ar tikrai norite valyti laukų reikšmes?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Jei tęsite, visos sumos bus pakeistos nuliais." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Valyti" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Biudžetas: %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Biudžeto planavimas" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "" #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "" #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Balansas:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Valyti laukus" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Kita" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Priverstinai stebėti šią kategoriją" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Sau" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Vas" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Kov" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Bal" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Gegužė" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Bir" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Lie" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Rgp" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Spa" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Lap" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Grd" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Ši kategorija naudojama.\n" "Visos jai priklausančios operacijos liks be kategorijos." #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "_Pašalinti kategoriją „%s“" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Sujungti" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Nenaudojamų kategorijų šalinimas" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Ar tikrai norite negrįžtamai pašalinti\n" "nenaudojamas kategorijas?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "" #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Pajamos" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Negalima šios kategorijos pervadinti iš „%s“ į „%s“ – toks pavadinimas jau " "naudojamas." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Kategorijos „%s“ sujungimas" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Šiai kategorijai priklausančios operacijos\n" "bus perkeltos į žemiau parinktą kategoriją." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Kategorijų tvarkymas" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "" #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "" #: ../src/ui-category.c:2552 msgid "new category" msgstr "Nauja kategorija" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "nauja subkategorija" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Bazinė valiuta" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Ženklas" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Keitimo kursas" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Valiutos taisymas" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Valiuta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Formatas" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Tinkinti" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "Ž_enklas:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "_Prieš skaičių" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "Trupmenos _skirtukas:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "Skaitmenys po _kablelio:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Grupavimo ženklas:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Bazinės valiutos pasirinkimas" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Pasirinkti valiutą" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO kodas" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Atnaujinimo internetu klaida" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Jei pašalinsite valiutą, ji bus negrįžtamai prarasta." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Ar pakeisti bazinę valiutą?" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Jei patvirtinsite šį veiksmą, visų kitų valiutų kursai\n" "bus pakeisti į 0 – nepamirškite jų atnaujinti." #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valiutos" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Atnaujinti internetu" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Skirti bazine" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Failo statistika" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Operacija" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Naujovinimas" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Pasirinkite bazinę valiutą" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Pradedant 5.1 versija, „HomeBank“ programa gali dirbti iškart su keliomis\n" "valiutomis. Jei žemiau nurodyta valiuta yra neteisinga, pakeiskite ją:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Valiuta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Eksportuoti QIF formatu" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importuoti iš CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "„HomeBank“ failo atvėrimas" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "„HomeBank“ failo įrašymas" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "„HomeBank“ failai" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Įrašyti pakeitimus į failą prieš jį užveriant?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Neįrašius pakeitimų, jie bus negrįžtamai prarasti.\n" "Pakeitimų kiekis: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Užverti _neįrašant" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "„HomeBank“ aptiko kelias operacijas, kurios gali būti susijusios vidinio " "pavedimo operacijos." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "" #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Pastaba:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "_Atstatyti" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "" #: ../src/ui-filter.c:1370 msgid "default" msgstr "" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "" #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Failo savybės" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Planinės operacijos" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Nenaudojamų gavėjų šalinimas" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Ar tikrai norite negrįžtamai pašalinti\n" "nenaudojamus gavėjus (mokėtojus)?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "" #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "_Mokėjimo būdas:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Negalima šio gavėjo pervadinti\n" "iš „%s“ į „%s“ –\n" "toks pavadinimas jau naudojamas." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Gavėjo „%s“ sujungimas" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Šiam gavėjui (mokėtojui) priklausančios operacijos\n" "bus priskirtos žemiau parinktam mokėtojui." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Pašalinti gavėją (mokėtoją) „%s“" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Šis gavėjas (mokėtojas) naudojamas.\n" "Visos jam priklausančios operacijos liks be gavėjo (mokėtojo)." #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Gavėjų (mokėtojų) tvarkymas" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "naujas gavėjas (mokėtojas)" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Sąsaja" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Operacijos" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Pavedimas" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importas / eksportas" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Ataskaitos" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Sistemos kalba" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Pasirinkite numatytąjį „HomeBank“ failų aplanką" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Pasirinkite numatytąjį importo aplanką" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Pasirinkite numatytąjį eksporto aplanką" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX failai" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Pagrindinio lango ataskaitos" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Pirminis filtras" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistika" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Rodyti pagal _sumą" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "_Rodyti santykio stulpelį" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Rodyti _išsamios informacijos polangį" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Biudžetas" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "Įj_ungti" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Ruošinys:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Kalba:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Formatas:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Finansiniai metai" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "_Prasideda:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Matavimo vienetai" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Atstumus matuoti _myliomis" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Kuro kiekius matuoti _galonais" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Tinklelio linijos:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Grafikai" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "Prie_monių juosta:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importuoti:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Eksportuoti:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Programos paleidimas" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Rodyti užsklandą" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Įkelti paskiausiai naudotą failą" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Pridėti nepridėtas planines operacijas" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Naujinti valiutas internetu" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Nustatymai" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Informacija" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Kalbos pakeitimai įsigalios\n" "iš naujo paleidus „HomeBank“." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "" #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "" #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Rodyti _planines" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Pridėti naują operaciją" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Klonuoti operaciją" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Data:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Skaidyti operaciją" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "_Sąskaita:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Būsena:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "_Pastabos:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Dėmesio: kiekis neatitinka kategorijos ženklo" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Daugybinis operacijų taisymas" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Operacijos suma:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Nepriskirta:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Komponentų suma:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(nenurodytas)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bankas" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Grynieji" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Turtas" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditinė kortelė" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Įsipareigojimai" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Diena" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "leidžiama" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "prieš" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "po" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "Metai" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Savaitė" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Ketvirtis" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Įtraukti" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Neįtraukti" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Šis mėnuo" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Išlaidos ir pajamos" #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Visi tipai" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Visos būsenos" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Neįvykdytos" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Nepatvirtintos" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Be kategorijos" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Sistemos nustatymai" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Tik piktogramos" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Tik tekstas" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Tekstas po piktogramomis" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Tekstas šalia piktogramų" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horizontalios" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertikalios" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Abejos" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "mėnuo-diena-metai" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "diena-mėnuo-metai" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "metai-mėnuo-diena" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Nepaisyti" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Pridėti prie Pastabos" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Sausis" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Vasaris" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Kovas" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "Balandis" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Birželis" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Liepa" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Rugpjūtis" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "Rugsėjis" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Spalis" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "Lapkritis" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "Gruodis" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Rgs" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Ieškoti…" #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Čekis" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Debetinė kortelė" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Periodinis mokėjimas" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektroninis mokėjimas" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Depozitas" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Finansinis mokestis" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Tiesioginis debetas" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "" homebank-5.9.1/po/sv.po0000644000175000017500000035016114775770023010423 # Swedish translation for homebank # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the homebank package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: homebank\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-06 12:42+0200\n" "PO-Revision-Date: 2024-08-29 08:45+0000\n" "Last-Translator: Christian \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2025-04-10 16:21+0000\n" "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" #: ../data/homebank.desktop.in.in.h:1 ../src/dsp-mainwindow.c:726 msgid "HomeBank" msgstr "HomeBank" #: ../data/homebank.desktop.in.in.h:2 msgid "Personal finance" msgstr "Privatekonomi" #: ../data/homebank.desktop.in.in.h:3 ../src/dsp-mainwindow.c:217 #: ../src/dsp-mainwindow.c:730 msgid "Free, easy, personal accounting for everyone" msgstr "Gratis, enkel, personlig bokföring för alla" #: ../data/homebank.desktop.in.in.h:4 msgid "finance;accounting;budget;personal;money;" msgstr "finanser;bokföring;budget;personlig;pengar;" #: ../data/homebank.appdata.xml.in.h:1 msgid "" "HomeBank is a free software (as in \"free speech\" and also as in \"free " "beer\") that will assist you to manage your personal accounting." msgstr "" "HomeBank är en fri programvara (som i \"yttrandefrihet\" och även som i " "\"gratis öl\") som hjälper dig att hantera din personliga bokföring." #: ../data/homebank.appdata.xml.in.h:2 msgid "" "It is designed to easy to use and be able to analyse your personal finance " "in detail using powerful filtering tools and beautiful graphs." msgstr "" "Det är konstruerat för att vara enkelt att använda och för att kunna " "analysera din privatekonomi i detalj med kraftfulla filter och vackra grafer." #: ../data/homebank.appdata.xml.in.h:3 msgid "" "If you are looking for a completely free and easy way to manage your " "personal accounting then HomeBank should be the software of choice." msgstr "" "Om du letar efter ett helt gratis och enkelt sätt att hantera din privata " "bokföring så är HomeBank programmet du borde välja." #: ../src/dsp-account.c:489 #, c-format msgid "%d requires approval" msgstr "" #: ../src/dsp-account.c:575 #, c-format msgid "%d transactions" msgstr "%d transaktioner" #: ../src/dsp-account.c:578 #, c-format msgid "%d transactions, %d selected, avg: %s, sum: %s (%s - %s)" msgstr "%d transaktioner, %d valda, medel: %s, summa: %s (%s -%s)" #: ../src/dsp-account.c:593 msgid "Locked. Click to unlock" msgstr "Låst, klicka för att låsa upp" #: ../src/dsp-account.c:593 msgid "Unlocked. Click to lock" msgstr "Olåst, klicka för att låsa" #: ../src/dsp-account.c:942 ../src/ui-hbfile.c:357 msgid "Life Energy" msgstr "livsenergi" #: ../src/dsp-account.c:943 msgid "'Earn by hour' is not set into the current Wallet." msgstr "'Timlön' är inte inställt i denna plånbok" #: ../src/dsp-account.c:1898 #, c-format msgid "Are you sure you want to delete the %d selected transaction?" msgstr "Är du säker på att du vill radera de %d valda transaktionerna?" #: ../src/dsp-account.c:1903 msgid "If you delete a transaction, it will be permanently lost." msgstr "Om du raderar en transaktion, är den permanent raderad." #: ../src/dsp-account.c:1904 ../src/ui-account.c:1449 ../src/ui-archive.c:521 #: ../src/ui-assign.c:1619 ../src/ui-budget-tabview.c:2433 #: ../src/ui-category.c:1451 ../src/ui-category.c:2012 #: ../src/ui-currency.c:1585 ../src/ui-payee.c:1047 ../src/ui-payee.c:1579 #: ../src/ui-tag.c:694 ../src/ui-tag.c:1128 ../src/ui-txn-split.c:556 msgid "_Delete" msgstr "_Ta bort" #: ../src/dsp-account.c:2069 msgid "Are you sure you want to change the status to None?" msgstr "Är du säker på att du vill ändra status till Ingen?" #: ../src/dsp-account.c:2070 ../src/dsp-account.c:2117 #: ../src/dsp-account.c:2164 msgid "Some transaction in your selection are already Reconciled." msgstr "Några transaktioner i ditt urval är redan avstämda." #: ../src/dsp-account.c:2071 ../src/dsp-account.c:2118 #: ../src/ui-assist-start.c:280 ../src/ui-dialogs.c:488 msgid "_Change" msgstr "_Ändra" #: ../src/dsp-account.c:2116 msgid "Are you sure you want to change the status to Cleared?" msgstr "" #: ../src/dsp-account.c:2163 msgid "Are you sure you want to toggle the status Reconciled?" msgstr "Är du säker på att du vill växla status Avstämda?" #: ../src/dsp-account.c:2165 msgid "_Toggle" msgstr "_Växla" #: ../src/dsp-account.c:2220 #, c-format msgid "" "Are you sure you want to create template from the %d selected transaction?" msgstr "Är du säker på att du vill skapa en mall från %d transaktionen?" #: ../src/dsp-account.c:2226 ../src/dsp-account.c:2299 msgid "_Create" msgstr "_Skapa" #: ../src/dsp-account.c:2270 msgid "Create Template" msgstr "Skapa mall" #: ../src/dsp-account.c:2271 ../src/dsp-account.c:2343 #, c-format msgid "%d created with a prefilled icon" msgstr "" #: ../src/dsp-account.c:2294 #, c-format msgid "" "Are you sure you want to create assignment from the %d selected transaction?" msgstr "" #: ../src/dsp-account.c:2342 msgid "Create Assignment" msgstr "Skapa uppdrag" #: ../src/dsp-account.c:2405 ../src/dsp-account.c:3456 msgid "All transactions" msgstr "Alla transaktioner" #: ../src/dsp-account.c:2459 #, c-format msgid "%d category sign don't match" msgstr "" #: ../src/dsp-account.c:2464 msgid "No category sign don't match were found !" msgstr "" #: ../src/dsp-account.c:2543 #, c-format msgid "There is %d group of similar transactions" msgstr "Det finns %d-grupp av likartade transaktioner" #: ../src/dsp-account.c:2548 msgid "No similar transaction were found !" msgstr "Ingen liknande transaktion hittades !" #: ../src/dsp-account.c:2671 ../src/dsp-account.c:2681 msgid "Check internal transfer result" msgstr "Kontrollera interna överföringsresultat" #: ../src/dsp-account.c:2672 msgid "No inconsistency found !" msgstr "Ingen inkonsekvens hittades !" #: ../src/dsp-account.c:2682 #, c-format msgid "" "Inconsistency were found: %d\n" "do you want to review and fix?" msgstr "" "Inkonsekvens konstaterades: %d\n" "vill du granska och rätta?" #: ../src/dsp-account.c:2780 #, c-format msgid "Every transaction amount will be divided by %.6f." msgstr "Varje transaktionsbelopp delas upp med %.6f." #: ../src/dsp-account.c:2784 msgid "" "Are you sure you want to convert this account to Euro as Major currency?" msgstr "" "Är du säker på att du vill konvertera detta konto till Euro som huvudvaluta?" #: ../src/dsp-account.c:2786 msgid "_Convert" msgstr "_Konvertera" #: ../src/dsp-account.c:2946 msgid "No transaction changed" msgstr "Ingen transaktion ändrad" #: ../src/dsp-account.c:2948 #, c-format msgid "transaction changed: %d" msgstr "transaktion ändrad: %d" #: ../src/dsp-account.c:2951 msgid "Automatic assignment result" msgstr "Automatiskt uppdragsresultat" #: ../src/dsp-account.c:3089 msgid "_Add..." msgstr "_Lägg till" #: ../src/dsp-account.c:3090 msgid "_Inherit..." msgstr "_Ärv..." #: ../src/dsp-account.c:3091 msgid "_Edit..." msgstr "_Redigera..." #: ../src/dsp-account.c:3100 msgid "_None" msgstr "_Inget" #: ../src/dsp-account.c:3101 msgid "_Cleared" msgstr "_Rensat" #: ../src/dsp-account.c:3102 msgid "_Reconciled" msgstr "_Avstämda" #: ../src/dsp-account.c:3103 ../src/ui-pref.c:1821 msgid "_Status" msgstr "_Status" #: ../src/dsp-account.c:3107 ../src/rep-balance.c:1307 ../src/rep-time.c:1567 #: ../src/ui-assist-import.c:1803 ../src/ui-filter.c:896 #: ../src/ui-filter.c:1315 ../src/ui-widgets-data.c:136 #: ../src/ui-widgets-data.c:353 msgid "None" msgstr "Ingen" #. { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, #: ../src/dsp-account.c:3108 ../src/ui-widgets.c:1455 msgid "Red" msgstr "Röd" #: ../src/dsp-account.c:3109 ../src/ui-widgets.c:1456 msgid "Orange" msgstr "Orange" #: ../src/dsp-account.c:3110 ../src/ui-widgets.c:1457 msgid "Yellow" msgstr "Gul" #: ../src/dsp-account.c:3111 ../src/ui-widgets.c:1458 msgid "Green" msgstr "Green" #: ../src/dsp-account.c:3112 ../src/ui-widgets.c:1459 msgid "Blue" msgstr "Blå" #: ../src/dsp-account.c:3113 ../src/ui-widgets.c:1460 msgid "Purple" msgstr "Lila" #: ../src/dsp-account.c:3114 msgid "_Flag" msgstr "_Flagga" #: ../src/dsp-account.c:3121 msgid "Approve" msgstr "" #: ../src/dsp-account.c:3122 msgid "Reject (Delete)..." msgstr "" #: ../src/dsp-account.c:3125 msgid "_Multiple Edit..." msgstr "_Redigera flera..." #: ../src/dsp-account.c:3126 msgid "View _Split" msgstr "Vida _delning" #: ../src/dsp-account.c:3127 msgid "Copy raw amount" msgstr "" #: ../src/dsp-account.c:3128 msgid "Create template..." msgstr "Skapa mall..." #: ../src/dsp-account.c:3129 msgid "Create assignment..." msgstr "Skapa uppdrag..." #: ../src/dsp-account.c:3130 ../src/ui-flt-widget.c:457 msgid "_Delete..." msgstr "_Ta bort..." #: ../src/dsp-account.c:3135 msgid "_Up" msgstr "_Upp" #: ../src/dsp-account.c:3136 msgid "_Down" msgstr "_Ner" #: ../src/dsp-account.c:3163 msgid "Export QIF..." msgstr "Exportera QIF..." #: ../src/dsp-account.c:3164 msgid "Export CSV..." msgstr "Exportera CSV..." #: ../src/dsp-account.c:3165 ../src/hub-account.c:590 #: ../src/hub-scheduled.c:727 msgid "Print..." msgstr "Skriv ut..." #: ../src/dsp-account.c:3167 ../src/hub-account.c:636 msgid "Browse Website" msgstr "Besök hemsidan" #: ../src/dsp-account.c:3168 msgid "Close" msgstr "Stäng" #. ... #: ../src/dsp-account.c:3170 msgid "A_ccount" msgstr "K_onto" #: ../src/dsp-account.c:3180 msgid "Copy" msgstr "Kopiera" #: ../src/dsp-account.c:3181 msgid "Paste" msgstr "Klistra in" #: ../src/dsp-account.c:3182 msgid "Paste (today)" msgstr "Klistra in (idag)" #: ../src/dsp-account.c:3184 msgid "Copy clipboard" msgstr "Kopiera urklipp" #: ../src/dsp-account.c:3185 msgid "Find" msgstr "Sök" #. ... #: ../src/dsp-account.c:3187 ../src/dsp-mainwindow.c:2008 msgid "_Edit" msgstr "_Redigera" #: ../src/dsp-account.c:3197 msgid "Mark duplicate..." msgstr "Markera dubbletter..." #: ../src/dsp-account.c:3198 msgid "Mark category sign..." msgstr "" #: ../src/dsp-account.c:3199 msgid "Check internal transfer" msgstr "Kontollera intern överföring" #: ../src/dsp-account.c:3200 msgid "Auto. assignments" msgstr "Automatiska uppdrag" #: ../src/dsp-account.c:3201 msgid "Convert to Euro..." msgstr "Konvertera till Euro..." #. ... #: ../src/dsp-account.c:3203 ../src/dsp-mainwindow.c:2060 msgid "_Tools" msgstr "_Verktyg" #: ../src/dsp-account.c:3226 msgid "Move transaction up" msgstr "Flytta transaktionen upp" #: ../src/dsp-account.c:3230 msgid "Move transaction down" msgstr "Flytta transaktionen ner" #: ../src/dsp-account.c:3237 msgid "Add a new transaction" msgstr "Lägg till ny transaktion" #: ../src/dsp-account.c:3238 ../src/dsp-mainwindow.c:2117 #: ../src/ui-account.c:1828 ../src/ui-archive.c:1065 ../src/ui-assign.c:1929 #: ../src/ui-assist-import.c:1573 ../src/ui-category.c:2505 #: ../src/ui-currency.c:1811 ../src/ui-payee.c:1900 ../src/ui-tag.c:1365 #: ../src/ui-txn-split.c:1111 msgid "Add" msgstr "Lägg till" #: ../src/dsp-account.c:3242 msgid "Inherit from the active transaction" msgstr "Ärv från denna transaktion" #: ../src/dsp-account.c:3243 msgid "Inherit" msgstr "Ärv" #: ../src/dsp-account.c:3247 msgid "Edit the active transaction" msgstr "Redigera aktiva transaktionen" #. widget = gtk_button_new_with_mnemonic(_("_Edit")); #: ../src/dsp-account.c:3248 ../src/ui-archive.c:1077 ../src/ui-assign.c:1940 #: ../src/ui-category.c:2516 ../src/ui-currency.c:1822 ../src/ui-payee.c:1907 #: ../src/ui-tag.c:1372 ../src/ui-txn-split.c:1059 msgid "Edit" msgstr "Redigera" #: ../src/dsp-account.c:3255 msgid "Toggle cleared for selected transaction(s)" msgstr "Växla rensat för vald(a) transaktion(er)" #: ../src/dsp-account.c:3259 msgid "Toggle reconciled for selected transaction(s)" msgstr "Växla avstämda för vald(a) transaktion(er)" #: ../src/dsp-account.c:3263 msgid "Edit multiple transaction" msgstr "Redigera flera transaktioner" #: ../src/dsp-account.c:3267 msgid "Delete selected transaction(s)" msgstr "Ta bort vald(a) transaktion(er)" #: ../src/dsp-account.c:3276 msgid "Reconciled changes is" msgstr "" #: ../src/dsp-account.c:3449 msgid "(closed)" msgstr "(stängd)" #: ../src/dsp-account.c:3456 #, c-format msgid "%s - HomeBank" msgstr "%s - HomeBank" #: ../src/dsp-account.c:3502 ../src/dsp-mainwindow.c:2116 msgid "Show" msgstr "Visa" #. 3 - info bar for duplicate #: ../src/dsp-account.c:3507 msgid "_Refresh" msgstr "Uppdate_ra" #. 5.8.6 #: ../src/dsp-account.c:3521 ../src/ui-assist-import.c:1885 msgid "Date _gap:" msgstr "Datum_lucka:" #. #2008521 set more accurate tooltip #: ../src/dsp-account.c:3563 #, c-format msgid "Toggle show %d days ahead" msgstr "" #. window title #: ../src/dsp-account.c:3590 ../src/rep-stats.c:2198 ../src/ui-filter.c:1370 msgid "Edit filter" msgstr "Redigera filter" #. widget = gtk_button_new_with_mnemonic (_("Reset _filters")); #. widget = gtk_button_new_with_mnemonic (_("_Reset")); #: ../src/dsp-account.c:3596 ../src/rep-balance.c:1258 ../src/rep-stats.c:2201 #: ../src/rep-time.c:1516 msgid "Clear filter" msgstr "Rensa filter" #: ../src/dsp-account.c:3601 ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 #: ../src/rep-stats.c:1810 ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh results" msgstr "Uppdatera resultat" #: ../src/dsp-account.c:3605 msgid "Toggle Life Energy" msgstr "Livsenergi på/av" #. TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency #: ../src/dsp-account.c:3610 ../src/rep-balance.c:1214 ../src/rep-budget.c:2315 #: ../src/rep-stats.c:2155 ../src/rep-time.c:1472 ../src/rep-vehicle.c:994 msgid "Euro _minor" msgstr "Euro _mindre enhet" #: ../src/dsp-account.c:3640 msgid "Reconciled:" msgstr "Avstämd:" #: ../src/dsp-account.c:3648 msgid "Cleared:" msgstr "" #: ../src/dsp-account.c:3657 msgid "Today:" msgstr "Idag:" #: ../src/dsp-account.c:3666 msgid "Future:" msgstr "Framtid:" #: ../src/dsp-mainwindow.c:134 #, c-format msgid "Revert unsaved changes to file '%s'?" msgstr "Återställ osparade ändringar till fil \"%s\"?" #: ../src/dsp-mainwindow.c:137 msgid "" "- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)" msgstr "" "- Ändringar som gjorts i filen kommer permanent att gå förlorade\n" "- Fil kommer att återgå till den senaste sparade versionen (.xhb~)" #: ../src/dsp-mainwindow.c:144 msgid "_Revert" msgstr "_Återgå" #: ../src/dsp-mainwindow.c:332 msgid "Are you sure you want to anonymize the file?" msgstr "Är du säker på att du vill anonymisera filen?" #: ../src/dsp-mainwindow.c:335 msgid "" "Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..." msgstr "" "Förfarande kommer anonymisera all text, \n" "som \"konto x\", \"betalningsmottagare y\", \"memo z\", ..." #: ../src/dsp-mainwindow.c:342 msgid "_Anonymize" msgstr "_Anonymisera" #: ../src/dsp-mainwindow.c:702 msgid "Welcome to HomeBank" msgstr "Välkommen till HomeBank" #: ../src/dsp-mainwindow.c:705 ../src/dsp-mainwindow.c:2003 #: ../src/ui-account.c:1770 ../src/ui-archive.c:999 ../src/ui-assign.c:1872 #: ../src/ui-budget.c:1160 ../src/ui-budget-tabview.c:3202 #: ../src/ui-category.c:2400 ../src/ui-currency.c:1725 ../src/ui-dialogs.c:252 #: ../src/ui-payee.c:1795 ../src/ui-tag.c:1271 ../src/ui-transaction.c:1514 #: ../src/ui-txn-split.c:919 msgid "_Close" msgstr "_Stäng" #. label = make_label (_("What do you want to do:"), 0, 0); #. gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); #. gtk_box_prepend (GTK_BOX (mainvbox), label); #: ../src/dsp-mainwindow.c:748 msgid "Open _last opened file" msgstr "Öppna _senast öppnade fil" #: ../src/dsp-mainwindow.c:752 msgid "Create a _new file" msgstr "Skapa en _ny fil" #: ../src/dsp-mainwindow.c:756 msgid "_Open an existing file" msgstr "_Öppna en befintlig fil" #: ../src/dsp-mainwindow.c:760 msgid "Open the _example file" msgstr "Öppna _exempelfilen" #: ../src/dsp-mainwindow.c:764 msgid "Read HomeBank _Manual" msgstr "Läsa HomeBank-_handboken" #: ../src/dsp-mainwindow.c:768 msgid "Configure _preferences" msgstr "Konfigurera _inställningarna" #: ../src/dsp-mainwindow.c:772 msgid "Show this window next time" msgstr "Visa det här fönstret nästa gång" #: ../src/dsp-mainwindow.c:1056 #, c-format msgid "" "You are about to open the backup file '%s'.\n" "\n" "Are you sure you want to do this?" msgstr "" "Du håller på att öppna säkerhetskopian \"%s\".\n" "\n" "Är du säker på att du vill göra det här?" #: ../src/dsp-mainwindow.c:1060 msgid "Open the backup file?" msgstr "Öppna säkerhetskopian?" #: ../src/dsp-mainwindow.c:1062 msgid "_Open backup" msgstr "_Öppna säkerhetskopia" #: ../src/dsp-mainwindow.c:1108 #, c-format msgid "Unable to open '%s', the file does not exist.\n" msgstr "Kunde inte öppna \"%s\", filen finns inte.\n" #: ../src/dsp-mainwindow.c:1200 ../src/ui-currency.c:1348 msgid "Unknown error" msgstr "Okänt fel" #: ../src/dsp-mainwindow.c:1205 ../src/dsp-mainwindow.c:1310 #, c-format msgid "I/O error for file '%s'." msgstr "I/O fel för fil \"%s\"." #: ../src/dsp-mainwindow.c:1208 #, c-format msgid "The file '%s' is not a valid HomeBank file." msgstr "Filen \"%s\" är inte en giltig HomeBank-fil." #: ../src/dsp-mainwindow.c:1211 #, c-format msgid "" "The file '%s' was saved with a higher version of HomeBank\n" "and cannot be loaded by the current version." msgstr "" "Filen \"%s\" sparades med en nyare version av HomeBank\n" "och kan inte öppnas av den aktuella versionen." #: ../src/dsp-mainwindow.c:1216 ../src/dsp-mainwindow.c:1313 msgid "File error" msgstr "Filfel" #: ../src/dsp-mainwindow.c:1285 msgid "The file has been modified since reading it." msgstr "Filen har ändrats sedan den lästes." #: ../src/dsp-mainwindow.c:1286 msgid "" "If you save it, all the external changes could be lost. Save it anyway?" msgstr "" "Om du sparar den kan alla externa ändringar gå förlorade. Spara den ändå?" #: ../src/dsp-mainwindow.c:1287 msgid "S_ave Anyway" msgstr "Spara än_då" #: ../src/dsp-mainwindow.c:1955 msgid "Clear" msgstr "Rensa" #: ../src/dsp-mainwindow.c:1977 msgid "_File" msgstr "_Arkiv" #: ../src/dsp-mainwindow.c:1979 msgid "_New" msgstr "_Ny" #: ../src/dsp-mainwindow.c:1981 msgid "_Open..." msgstr "_Öppna..." #: ../src/dsp-mainwindow.c:1983 msgid "Open _Recent" msgstr "Öppna _senaste" #: ../src/dsp-mainwindow.c:1988 ../src/ui-dialogs.c:562 ../src/ui-dialogs.c:609 #: ../src/ui-dialogs.c:670 ../src/ui-dialogs.c:810 ../src/ui-flt-widget.c:454 msgid "_Save" msgstr "_Spara" #: ../src/dsp-mainwindow.c:1990 msgid "Save _As..." msgstr "Sp_ara som..." #: ../src/dsp-mainwindow.c:1993 msgid "Import..." msgstr "Importera..." #: ../src/dsp-mainwindow.c:1996 msgid "Export as QIF..." msgstr "Exportera som QIF..." #: ../src/dsp-mainwindow.c:1998 msgid "Revert" msgstr "Återgå" #: ../src/dsp-mainwindow.c:1999 msgid "Restore backup" msgstr "Återställ säkerhetskopia" #: ../src/dsp-mainwindow.c:2001 msgid "Properties..." msgstr "Egenskaper..." #: ../src/dsp-mainwindow.c:2005 msgid "_Quit" msgstr "_Avsluta" #: ../src/dsp-mainwindow.c:2010 msgid "Preferences..." msgstr "Inställningar..." #: ../src/dsp-mainwindow.c:2012 msgid "_View" msgstr "_Visa" #: ../src/dsp-mainwindow.c:2014 msgid "_Toolbar" msgstr "_Verktygsfält" #: ../src/dsp-mainwindow.c:2016 msgid "T_otal Chart" msgstr "T_otal diagram" #: ../src/dsp-mainwindow.c:2018 msgid "T_ime Chart" msgstr "T_idsdiagram" #: ../src/dsp-mainwindow.c:2020 msgid "_Bottom Lists" msgstr "_Bottenlistor" #: ../src/dsp-mainwindow.c:2023 ../src/ui-pref.c:103 msgid "Euro minor" msgstr "Euro mindre enhet" #: ../src/dsp-mainwindow.c:2027 msgid "_Manage" msgstr "_Hantera" #: ../src/dsp-mainwindow.c:2029 msgid "Wallet..." msgstr "Plånbok..." #: ../src/dsp-mainwindow.c:2030 msgid "Acc_ounts..." msgstr "_Konton..." #: ../src/dsp-mainwindow.c:2031 msgid "_Payees..." msgstr "_Betalningsmottagare..." #: ../src/dsp-mainwindow.c:2032 msgid "Categories..." msgstr "Kategorier..." #: ../src/dsp-mainwindow.c:2033 msgid "Tags..." msgstr "Taggar..." #: ../src/dsp-mainwindow.c:2035 msgid "Scheduled/Template..." msgstr "Schema/mall..." #: ../src/dsp-mainwindow.c:2036 msgid "Assignments..." msgstr "Uppdrag..." #: ../src/dsp-mainwindow.c:2037 msgid "Currencies..." msgstr "Valutor..." #: ../src/dsp-mainwindow.c:2039 msgid "Budget..." msgstr "Budget..." #: ../src/dsp-mainwindow.c:2040 msgid "Budget (table view)..." msgstr "Budget (visa som tabell)" #: ../src/dsp-mainwindow.c:2042 msgid "_Transactions" msgstr "_Transaktioner" #: ../src/dsp-mainwindow.c:2044 msgid "Add..." msgstr "Lägg till..." #: ../src/dsp-mainwindow.c:2045 msgid "Show..." msgstr "Visa..." #: ../src/dsp-mainwindow.c:2046 msgid "Show All..." msgstr "Visa alla..." #: ../src/dsp-mainwindow.c:2049 msgid "Set scheduler..." msgstr "Ange schemaläggare..." #: ../src/dsp-mainwindow.c:2050 ../src/ui-transaction.c:1532 msgid "Post scheduled" msgstr "Posten schemalagd" #: ../src/dsp-mainwindow.c:2052 msgid "_Reports" msgstr "_Rapporter" #: ../src/dsp-mainwindow.c:2054 msgid "_Statistics..." msgstr "_Statistik..." #: ../src/dsp-mainwindow.c:2055 msgid "_Trend Time..." msgstr "_Trendtid..." #: ../src/dsp-mainwindow.c:2056 msgid "_Balance..." msgstr "_Saldo..." #: ../src/dsp-mainwindow.c:2057 msgid "B_udget..." msgstr "B_udget..." #: ../src/dsp-mainwindow.c:2058 msgid "_Vehicle cost..." msgstr "_Fordonskostnad..." #: ../src/dsp-mainwindow.c:2062 msgid "Show welcome dialog..." msgstr "Visa välkomstdialog..." #: ../src/dsp-mainwindow.c:2063 msgid "File statistics..." msgstr "Filstatistik..." #: ../src/dsp-mainwindow.c:2065 msgid "Anonymize..." msgstr "Anonymisera..." #: ../src/dsp-mainwindow.c:2067 msgid "_Help" msgstr "_Hjälp" #: ../src/dsp-mainwindow.c:2069 msgid "_Contents" msgstr "_Innehåll" #: ../src/dsp-mainwindow.c:2071 ../src/dsp-mainwindow.c:2130 msgid "Get Help Online..." msgstr "Få hjälp på nätet..." #: ../src/dsp-mainwindow.c:2074 msgid "Check for updates..." msgstr "Sök efter uppdateringar..." #: ../src/dsp-mainwindow.c:2075 msgid "Release Notes" msgstr "Versionsinformation" #: ../src/dsp-mainwindow.c:2076 msgid "Report a Problem..." msgstr "Rapportera ett problem..." #: ../src/dsp-mainwindow.c:2077 msgid "Translate this Application..." msgstr "Översätt detta program..." #: ../src/dsp-mainwindow.c:2079 msgid "_About" msgstr "_Om" #: ../src/dsp-mainwindow.c:2092 msgid "New" msgstr "Ny" #: ../src/dsp-mainwindow.c:2092 msgid "Create a new file" msgstr "Skapa en ny fil" #: ../src/dsp-mainwindow.c:2095 msgid "Open" msgstr "Öppna" #: ../src/dsp-mainwindow.c:2096 msgid "Open a file" msgstr "Öppna en fil" #: ../src/dsp-mainwindow.c:2101 msgid "Open a recently used file" msgstr "Öppna en nyligen använd fil" #: ../src/dsp-mainwindow.c:2103 msgid "Save" msgstr "Spara" #: ../src/dsp-mainwindow.c:2103 msgid "Save the current file" msgstr "Spara den aktuella filen" #. g_string_append (node, "account" ); #. 3 -- account #. 5.2 Account is always created but not visible for BOOK #. column: Account #. column : Account #. label = make_label_group(_("Account filter")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); #. gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); #. header #: ../src/dsp-mainwindow.c:2107 ../src/hb-filter.c:1177 #: ../src/hub-reptotal.c:648 ../src/hub-reptotal.c:660 ../src/hub-reptime.c:551 #: ../src/list-operation.c:1108 ../src/list-operation.c:2056 #: ../src/list-scheduled.c:1330 ../src/list-scheduled.c:1485 #: ../src/rep-balance.c:1291 ../src/ui-account.c:946 #: ../src/ui-assist-import.c:2110 ../src/ui-dialogs.c:271 #: ../src/ui-filter.c:936 ../src/ui-filter.c:940 ../src/ui-filter.c:1423 #: ../src/ui-widgets-data.c:168 ../src/ui-widgets-data.c:186 msgid "Account" msgstr "Konto" #: ../src/dsp-mainwindow.c:2107 msgid "Manage the accounts" msgstr "Hantera kontona" #. g_string_append (node, "payee" ); #. column: Payee #. column : Payee #. payee #. header #. { REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, #: ../src/dsp-mainwindow.c:2108 ../src/hb-filter.c:1186 #: ../src/hub-reptotal.c:647 ../src/list-operation.c:1127 #: ../src/list-operation.c:2094 ../src/list-scheduled.c:1277 #: ../src/list-scheduled.c:1436 ../src/ui-assign.c:641 #: ../src/ui-assist-import.c:402 ../src/ui-dialogs.c:326 #: ../src/ui-filter.c:1014 ../src/ui-filter.c:1019 ../src/ui-filter.c:1427 #: ../src/ui-payee.c:950 ../src/ui-widgets-data.c:147 #: ../src/ui-widgets-data.c:167 ../src/ui-widgets-data.c:188 #: ../src/ui-widgets-data.c:370 msgid "Payee" msgstr "Betalningsmottagare" #: ../src/dsp-mainwindow.c:2108 msgid "Manage the payees" msgstr "Hantera betalningsmottagarna" #. g_string_append (node, "category" ); #. column: Category #. column : Category #. category #. header #. = = = = = = = = = = = = = = = = = = = = #. chart #: ../src/dsp-mainwindow.c:2109 ../src/hb-filter.c:1193 #: ../src/hub-reptotal.c:646 ../src/list-operation.c:1146 #: ../src/list-operation.c:2132 ../src/list-scheduled.c:1281 #: ../src/list-scheduled.c:1442 ../src/rep-budget.c:123 ../src/rep-budget.c:434 #: ../src/rep-budget.c:501 ../src/ui-assign.c:645 ../src/ui-assist-import.c:406 #: ../src/ui-budget.c:269 ../src/ui-budget-tabview.c:1639 #: ../src/ui-category.c:1350 ../src/ui-dialogs.c:335 ../src/ui-filter.c:965 #: ../src/ui-filter.c:970 ../src/ui-filter.c:1430 ../src/ui-payee.c:973 #: ../src/ui-txn-split.c:205 ../src/ui-txn-split.c:1064 #: ../src/ui-widgets-data.c:29 ../src/ui-widgets-data.c:165 #: ../src/ui-widgets-data.c:187 msgid "Category" msgstr "Kategori" #: ../src/dsp-mainwindow.c:2109 msgid "Manage the categories" msgstr "Hantera kategorierna" #: ../src/dsp-mainwindow.c:2110 msgid "Scheduled/Template" msgstr "Schemalagd/Mall" #: ../src/dsp-mainwindow.c:2110 msgid "Manage the scheduled/template transactions" msgstr "Hantera de schemalagda/malltransaktionerna" #. column: Income #: ../src/dsp-mainwindow.c:2111 ../src/dsp-mainwindow.c:2125 #: ../src/rep-budget.c:123 ../src/rep-budget.c:450 ../src/rep-budget.c:1238 msgid "Budget" msgstr "Budget" #: ../src/dsp-mainwindow.c:2111 msgid "Manage the budget" msgstr "Hantera budgeten" #: ../src/dsp-mainwindow.c:2112 ../src/ui-assign.c:1019 ../src/ui-dialogs.c:307 msgid "Assignment" msgstr "Uppdrag" #: ../src/dsp-mainwindow.c:2112 msgid "Manage the automatic assignments" msgstr "Hantera de automatiska uppdragen" #: ../src/dsp-mainwindow.c:2116 msgid "Shows selected account transactions" msgstr "Visar transaktioner för valt konto" #: ../src/dsp-mainwindow.c:2117 msgid "Add transactions" msgstr "Lägg till transaktioner" #: ../src/dsp-mainwindow.c:2122 msgid "Statistics" msgstr "Statistik" #: ../src/dsp-mainwindow.c:2122 msgid "Open the Statistics report" msgstr "Öppna statistikrapport" #: ../src/dsp-mainwindow.c:2123 msgid "Trend time" msgstr "Trendtid" #: ../src/dsp-mainwindow.c:2123 msgid "Open the Trend Time report" msgstr "Öppna trendtidsrapport" #. g_string_append (node, "balance" ); #. column: Total/Balance #: ../src/dsp-mainwindow.c:2124 ../src/hub-reptotal.c:659 #: ../src/hub-reptime.c:550 ../src/list-operation.c:1158 #: ../src/list-operation.c:2144 ../src/rep-balance.c:1447 #: ../src/rep-balance.c:1650 msgid "Balance" msgstr "Saldo" #: ../src/dsp-mainwindow.c:2124 msgid "Open the Balance report" msgstr "Öppna saldorapport" #: ../src/dsp-mainwindow.c:2125 msgid "Open the Budget report" msgstr "Öppna budgetrapport" #: ../src/dsp-mainwindow.c:2126 ../src/ui-hbfile.c:373 msgid "Vehicle cost" msgstr "Fordonskostnad" #: ../src/dsp-mainwindow.c:2126 msgid "Open the Vehicle cost report" msgstr "Öppna rapport för fordonskostnad" #: ../src/dsp-mainwindow.c:2130 msgid "Help" msgstr "Hjälp" #: ../src/dsp-mainwindow.c:2131 msgid "Donate" msgstr "Donera" #: ../src/dsp-mainwindow.c:2131 msgid "Donate to HomeBank project" msgstr "Donera till HomeBank-projektet" #: ../src/dsp-mainwindow.c:2255 ../src/hub-scheduled.c:645 #: ../src/ui-archive.c:1030 ../src/ui-dialogs.c:291 msgid "Scheduled" msgstr "Schemalagda" #. Future #: ../src/dsp-mainwindow.c:2259 ../src/list-account.c:881 msgid "Future" msgstr "Framtida" #: ../src/dsp-mainwindow.c:2262 ../src/ui-filter.c:1457 #: ../src/ui-transaction.c:1777 msgid "Remind" msgstr "Påminnelser" #: ../src/gtk-dateentry.c:711 msgid "_Today" msgstr "_Idag" #: ../src/hb-archive.c:226 ../src/ui-archive.c:513 msgid "(no memo)" msgstr "(ingen anteckning)" #: ../src/hb-assign.c:221 ../src/ui-assign.c:1537 msgid "(copy)" msgstr "(kopia)" #: ../src/hb-category.c:530 ../src/hb-report.c:588 ../src/ui-budget.c:119 #: ../src/ui-category.c:223 ../src/ui-category.c:747 msgid "(no category)" msgstr "(ingen kategori)" #: ../src/hb-category.c:1139 ../src/hb-payee.c:622 msgid "invalid CSV format" msgstr "ogiltigt CSV-format" #: ../src/hb-filter.c:1125 msgid "Invalid date range!" msgstr "Ogiltigt datumintervall" #. header #: ../src/hb-filter.c:1142 ../src/ui-filter.c:1260 ../src/ui-filter.c:1414 msgid "Type" msgstr "Typ" #. /TRANSLATORS: n-exp > normal espense #: ../src/hb-filter.c:1145 msgid "n-exp" msgstr "n-utg" #. /TRANSLATORS: n-inc > normal income #: ../src/hb-filter.c:1148 msgid "n-inc" msgstr "n-ink" #. /TRANSLATORS: x-exp > transfer espense #: ../src/hb-filter.c:1151 msgid "x-exp" msgstr "x-utg" #. /TRANSLATORS: x-inc > transfer income #: ../src/hb-filter.c:1154 msgid "x-inc" msgstr "x-ink" #. header #: ../src/hb-filter.c:1162 ../src/list-scheduled.c:1290 #: ../src/list-scheduled.c:1455 ../src/ui-filter.c:1303 ../src/ui-filter.c:1417 msgid "Status" msgstr "Status" #: ../src/hb-filter.c:1164 ../src/list-account.c:728 msgid "none" msgstr "ingen" #: ../src/hb-filter.c:1166 msgid "cleared" msgstr "" #: ../src/hb-filter.c:1168 msgid "reconciled" msgstr "" #. header #: ../src/hb-filter.c:1200 ../src/ui-dialogs.c:344 ../src/ui-filter.c:1044 #: ../src/ui-filter.c:1048 ../src/ui-filter.c:1433 ../src/ui-tag.c:598 #: ../src/ui-widgets-data.c:170 ../src/ui-widgets-data.c:189 msgid "Tag" msgstr "Etikett" #. g_string_append (node, "paymode" ); #. header #. TRANSLATORS: this is abbreviation for Payment #: ../src/hb-filter.c:1207 ../src/list-operation.c:1119 ../src/ui-filter.c:1201 #: ../src/ui-filter.c:1436 ../src/ui-payee.c:989 ../src/ui-pref.c:97 msgid "Payment" msgstr "Betalning" #. g_string_append (node, "amount" ); #. column: Amount #. amount #. header #. 5.7.1 #: ../src/hb-filter.c:1214 ../src/list-operation.c:1135 #: ../src/list-operation.c:2123 ../src/list-scheduled.c:1472 #: ../src/rep-time.c:1728 ../src/rep-vehicle.c:180 ../src/rep-vehicle.c:1391 #: ../src/ui-assist-import.c:383 ../src/ui-filter.c:1121 #: ../src/ui-txn-split.c:241 ../src/ui-txn-split.c:1073 msgid "Amount" msgstr "Belopp" #. header #: ../src/hb-filter.c:1221 ../src/ui-filter.c:1157 msgid "Text" msgstr "Text" #: ../src/hb-hbfile.c:632 ../src/ui-assist-import.c:2110 msgid "Unknown" msgstr "Okänd" #. TRANSLATORS: format a liter number with l/L as abbreviation #: ../src/hb-preferences.c:90 #, c-format msgid "%.2f l" msgstr "%.2f l" #. TRANSLATORS: kilometer per liter #: ../src/hb-preferences.c:93 msgid "km/l" msgstr "km/l" #. TRANSLATORS: miles per liter #: ../src/hb-preferences.c:96 msgid "mi./l" msgstr "mi./l" #: ../src/hb-report.c:631 ../src/ui-payee.c:647 msgid "(no payee)" msgstr "(ingen betalningsmottagare)" #: ../src/hb-report.c:692 ../src/hub-account.c:141 ../src/ui-group.c:272 msgid "(no group)" msgstr "(ingen grupp)" #: ../src/hb-report.c:723 ../src/ui-tag.c:385 msgid "(no tag)" msgstr "(ingen tag)" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:750 #, c-format msgid "w%02d" msgstr "v%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:758 #, c-format msgid "q%d" msgstr "Kv%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:763 #, c-format msgid "h%d" msgstr "H%d" #. TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 #: ../src/hb-report.c:1723 #, c-format msgid "%d-w%02d" msgstr "%d-w%02d" #. todo: will be innacurrate here if fiscal year start not 1/jan #. TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 #: ../src/hb-report.c:1735 #, c-format msgid "%d-q%d" msgstr "%d-q%d" #. #2007712 #. TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 #: ../src/hb-report.c:1740 #, c-format msgid "%d-h%d" msgstr "%d-H%d" #: ../src/homebank.c:76 msgid "Show the application’s version" msgstr "Visa programversion" #: ../src/homebank.c:82 msgid "[FILE]" msgstr "[FIL]" #: ../src/homebank.c:338 msgid "Browser error." msgstr "Bläddrarfel." #: ../src/homebank.c:339 #, c-format msgid "Could not display the URL '%s'" msgstr "Det gick inte att visa webbadressen \"%s\"" #: ../src/hub-account.c:131 msgid "(no institution)" msgstr "(ingen institution)" #: ../src/hub-account.c:446 ../src/hub-account.c:579 msgid "Your accounts" msgstr "Dina konton" #: ../src/hub-account.c:589 ../src/hub-scheduled.c:726 msgid "Copy to clipboard" msgstr "Kopiera till urklipp" #: ../src/hub-account.c:594 msgid "Group by" msgstr "Gruppera efter" #: ../src/hub-account.c:595 msgid "type" msgstr "typ" #: ../src/hub-account.c:596 msgid "group" msgstr "grupp" #: ../src/hub-account.c:597 msgid "institution" msgstr "institution" #: ../src/hub-account.c:602 msgid "Show all" msgstr "Visa alla" #: ../src/hub-account.c:625 ../src/rep-budget.c:2429 ../src/rep-stats.c:2317 #: ../src/ui-budget.c:1240 ../src/ui-budget-tabview.c:3351 #: ../src/ui-category.c:2534 ../src/ui-filter.c:990 msgid "Expand all" msgstr "Expandera alla" #: ../src/hub-account.c:629 ../src/rep-budget.c:2433 ../src/rep-stats.c:2321 #: ../src/ui-budget.c:1244 ../src/ui-budget-tabview.c:3355 #: ../src/ui-category.c:2538 ../src/ui-filter.c:994 msgid "Collapse all" msgstr "Dölj alla" #. TRANSLATORS: example 'sum: 3 (-1 + 4)' #: ../src/hub-scheduled.c:374 #, c-format msgid "sum: %s (%s + %s)" msgstr "Summa: %s (%s + %s)" #: ../src/hub-scheduled.c:420 msgid "No transaction to add" msgstr "Inga transaktioner att lägga till" #: ../src/hub-scheduled.c:422 #, c-format msgid "transaction added: %d" msgstr "transaktioner tillagda: %d" #: ../src/hub-scheduled.c:425 msgid "Check scheduled transactions result" msgstr "Kontrollera schemalagda transaktionsresultat" #: ../src/hub-scheduled.c:477 msgid "Post when program start" msgstr "" #: ../src/hub-scheduled.c:477 msgid "On" msgstr "På" #: ../src/hub-scheduled.c:477 msgid "Off" msgstr "Av" #: ../src/hub-scheduled.c:478 msgid "maximum post date" msgstr "maximalt inläggsdatum" #. column: Total #: ../src/hub-scheduled.c:600 ../src/hub-reptime.c:323 #: ../src/list-account.c:103 ../src/list-account.c:305 ../src/list-report.c:90 #: ../src/list-report.c:427 ../src/list-report.c:963 ../src/rep-stats.c:1203 #: ../src/rep-stats.c:1348 ../src/rep-time.c:1898 ../src/rep-vehicle.c:1087 #: ../src/ui-widgets-data.c:158 ../src/ui-widgets-data.c:180 msgid "Total" msgstr "Summa" #: ../src/hub-scheduled.c:688 msgid "_Skip" msgstr "_Hoppa över" #: ../src/hub-scheduled.c:692 msgid "Edit & P_ost" msgstr "Redigera & lägg upp" #. TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. #. TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. #: ../src/hub-scheduled.c:698 ../src/ui-transaction.c:1520 msgid "_Post" msgstr "_Posta" #: ../src/hub-reptotal.c:126 #, c-format msgid "Top %d Spending / Category" msgstr "Topp %d Utgifter / Kategori" #: ../src/hub-reptotal.c:128 #, c-format msgid "Top %d Expense / Category" msgstr "Topp %d Utgift / Kategori" #: ../src/hub-reptotal.c:132 #, c-format msgid "Top %d Spending / Payee" msgstr "Topp %d Utgifter / Betalningsmottagare" #: ../src/hub-reptotal.c:134 #, c-format msgid "Top %d Expense / Payee" msgstr "Topp %d Utgift / Mottagare" #: ../src/hub-reptotal.c:138 #, c-format msgid "Top %d Spending / Account" msgstr "Topp %d Utgifter / Konto" #: ../src/hub-reptotal.c:140 #, c-format msgid "Top %d Expense / Account" msgstr "Topp %d Utgift / Konto" #: ../src/hub-reptotal.c:144 ../src/hub-reptime.c:137 #, c-format msgid "Account Balance" msgstr "Kontosaldo" #: ../src/hub-reptotal.c:147 ../src/hub-reptime.c:141 #, c-format msgid "Account Group Balance" msgstr "" #: ../src/hub-reptotal.c:423 msgid "Other" msgstr "Annat" #: ../src/hub-reptotal.c:618 msgid "Total chart" msgstr "" #: ../src/hub-reptotal.c:645 msgid "Top by" msgstr "" #. g_object_unref (section); #. 5.8 #. section = g_menu_new (); #. g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); #: ../src/hub-reptotal.c:654 ../src/hub-reptime.c:545 msgid "Raw amount" msgstr "" #: ../src/hub-reptotal.c:661 ../src/hub-reptime.c:552 msgid "Account group" msgstr "Kontogrupp" #: ../src/hub-reptime.c:122 ../src/hub-reptime.c:536 msgid "Spending" msgstr "Utgifter" #. column: Expense #: ../src/hub-reptime.c:124 ../src/list-operation.c:2126 #: ../src/list-report.c:90 ../src/list-report.c:415 #: ../src/list-scheduled.c:1305 ../src/rep-balance.c:1443 #: ../src/rep-balance.c:1642 ../src/rep-time.c:1890 #: ../src/ui-budget-tabview.c:92 ../src/ui-filter.c:1272 #: ../src/ui-txn-split.c:1074 ../src/ui-widgets-data.c:57 #: ../src/ui-widgets-data.c:116 ../src/ui-widgets-data.c:178 #: ../src/ui-widgets-data.c:306 ../src/ui-widgets-data.c:316 msgid "Expense" msgstr "Utgift" #. 5.7.5 #: ../src/hub-reptime.c:127 ../src/hub-reptime.c:538 msgid "Revenue" msgstr "Inkomster" #. column: Income #: ../src/hub-reptime.c:129 ../src/list-operation.c:2129 #: ../src/list-report.c:90 ../src/list-report.c:421 #: ../src/list-scheduled.c:1318 ../src/rep-balance.c:1445 #: ../src/rep-balance.c:1646 ../src/rep-time.c:1894 #: ../src/ui-budget-tabview.c:93 ../src/ui-filter.c:1277 #: ../src/ui-txn-split.c:1076 ../src/ui-widgets-data.c:58 #: ../src/ui-widgets-data.c:117 ../src/ui-widgets-data.c:179 #: ../src/ui-widgets-data.c:307 ../src/ui-widgets-data.c:317 msgid "Income" msgstr "Inkomst" #: ../src/hub-reptime.c:132 ../src/hub-reptime.c:539 msgid "Spending & Revenue" msgstr "Utgifter & inkomster" #: ../src/hub-reptime.c:134 msgid "Expense & Income" msgstr "Utgift & Inkomst" #: ../src/hub-reptime.c:145 msgid "Global Balance" msgstr "" #: ../src/hub-reptime.c:516 msgid "Time chart" msgstr "" #: ../src/hub-reptime.c:553 msgid "Global" msgstr "Globalt" #: ../src/hb-import.c:1421 msgid "imported account" msgstr "importerat konto" #: ../src/list-account.c:106 ../src/list-account.c:309 msgid "Grand total" msgstr "Stor summa" #: ../src/list-account.c:714 msgid "last reconciled" msgstr "senast avstämd" #: ../src/list-account.c:738 msgid "until overdraft" msgstr "fram till kassakredit" #: ../src/list-account.c:753 msgid "before maximum" msgstr "före maximum" #: ../src/list-account.c:856 msgid "Accounts" msgstr "Konton" #. Reconciled #: ../src/list-account.c:869 ../src/ui-filter.c:1325 #: ../src/ui-widgets-data.c:138 ../src/ui-widgets-data.c:329 msgid "Reconciled" msgstr "Avstämd" #. Cleared #: ../src/list-account.c:873 ../src/ui-filter.c:1320 #: ../src/ui-widgets-data.c:137 ../src/ui-widgets-data.c:327 msgid "Cleared" msgstr "Rensad" #. Today #: ../src/list-account.c:877 ../src/ui-widgets-data.c:221 msgid "Today" msgstr "Idag" #: ../src/list-operation.c:154 ../src/list-operation.c:162 #: ../src/list-operation.c:841 ../src/list-scheduled.c:387 msgid "- split -" msgstr "- delad -" #: ../src/list-operation.c:857 msgid "- this needs a category -" msgstr "- det behövs en kategori -" #. g_string_append (node, "date" ); #. label = make_label_group(_("Date filter")); #. header #. label = make_label_group(_("Date filter")); #. header #: ../src/list-operation.c:1113 ../src/list-operation.c:2080 #: ../src/rep-balance.c:1264 ../src/rep-balance.c:1441 #: ../src/rep-balance.c:1632 ../src/rep-budget.c:2331 ../src/rep-stats.c:2214 #: ../src/rep-time.c:1522 ../src/rep-vehicle.c:176 ../src/rep-vehicle.c:1011 #: ../src/rep-vehicle.c:1344 ../src/ui-assist-import.c:374 #: ../src/ui-filter.c:1072 ../src/ui-filter.c:1411 msgid "Date" msgstr "Datum" #. g_string_append (node, "info" ); #: ../src/list-operation.c:1123 ../src/ui-widgets-data.c:371 msgid "Number" msgstr "Nummer" #. g_string_append (node, "memo" ); #. column: Memo #. memo #: ../src/list-operation.c:1131 ../src/list-operation.c:2097 #: ../src/list-scheduled.c:1285 ../src/list-scheduled.c:1448 #: ../src/ui-assist-import.c:379 ../src/ui-txn-split.c:225 #: ../src/ui-txn-split.c:1068 ../src/ui-widgets-data.c:146 #: ../src/ui-widgets-data.c:369 msgid "Memo" msgstr "Anteckning" #. g_string_append (node, "tags" ); #. column : Tags #: ../src/list-operation.c:1152 ../src/list-operation.c:2139 #: ../src/ui-assign.c:661 msgid "Tags" msgstr "Taggar" #: ../src/list-operation.c:1760 ../src/list-scheduled.c:1099 #: ../src/ui-assist-import.c:388 msgid "Pay./Number" msgstr "" #: ../src/list-operation.c:1915 msgid "Imported" msgstr "" #: ../src/list-operation.c:1922 msgid "Past date" msgstr "" #: ../src/list-operation.c:2046 msgid "Flag" msgstr "Flagga" #: ../src/list-operation.c:2066 msgid "Match" msgstr "Matcha" #. gtk_tree_view_column_set_title(column, _("Status")); #: ../src/list-operation.c:2103 msgid "St." msgstr "" #. column: Result #: ../src/list-report.c:90 ../src/list-report.c:402 ../src/rep-budget.c:123 #: ../src/rep-budget.c:465 ../src/rep-budget.c:1238 msgid "Result" msgstr "Resultat" #: ../src/list-report.c:957 msgid "Average" msgstr "Medelvärde" #. TRANSLATORS: title of list column to inform the scheduled transaction is Late #: ../src/list-scheduled.c:1228 msgid "Late" msgstr "Försenade" #. TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn #: ../src/list-scheduled.c:1247 msgid "Still" msgstr "Fortfarande" #: ../src/list-scheduled.c:1264 ../src/list-scheduled.c:1421 msgid "Next date" msgstr "Nästa datum" #. TRANSLATORS: example 'Balance by Month' #: ../src/rep-balance.c:71 #, c-format msgid "Balance by %s" msgstr "" #. //TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold #: ../src/rep-balance.c:133 #, c-format msgid "%d/%d under %s" msgstr "%d/%d under %s" #: ../src/rep-balance.c:986 ../src/rep-budget.c:1981 ../src/rep-stats.c:1748 #: ../src/rep-time.c:1196 msgid "List" msgstr "Lista" #: ../src/rep-balance.c:987 ../src/rep-budget.c:1982 ../src/rep-stats.c:1749 #: ../src/rep-time.c:1197 msgid "View results as list" msgstr "Visa resultat som lista" #: ../src/rep-balance.c:992 ../src/rep-time.c:1202 msgid "Line" msgstr "Linje" #: ../src/rep-balance.c:993 ../src/rep-time.c:1203 msgid "View results as lines" msgstr "Visa resultat som linjer" #: ../src/rep-balance.c:1000 ../src/rep-budget.c:1995 ../src/rep-stats.c:1780 #: ../src/rep-time.c:1216 msgid "Detail" msgstr "Detalj" #: ../src/rep-balance.c:1001 ../src/rep-budget.c:1996 ../src/rep-stats.c:1781 #: ../src/rep-time.c:1217 msgid "Toggle detail" msgstr "Växla detaljer" #. button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); #. data->BT_filter = button; #: ../src/rep-balance.c:1006 ../src/rep-budget.c:2002 ../src/rep-stats.c:1810 #: ../src/rep-time.c:1222 ../src/rep-vehicle.c:794 msgid "Refresh" msgstr "Uppdatera" #: ../src/rep-balance.c:1009 ../src/rep-budget.c:2036 ../src/rep-stats.c:1843 #: ../src/rep-time.c:1256 msgid "Print" msgstr "Skriv ut" #: ../src/rep-balance.c:1173 msgid "Balance report" msgstr "Saldorapport" #: ../src/rep-balance.c:1196 ../src/rep-budget.c:2291 ../src/rep-stats.c:2089 #: ../src/rep-time.c:1451 ../src/rep-vehicle.c:979 msgid "Display" msgstr "Visa" #: ../src/rep-balance.c:1202 ../src/rep-stats.c:2122 ../src/rep-time.c:1455 msgid "Inter_val:" msgstr "Inter_vall:" #: ../src/rep-balance.c:1209 ../src/rep-time.c:1467 msgid "Show empty line" msgstr "Visa tom rad" #: ../src/rep-balance.c:1219 ../src/rep-stats.c:2147 ../src/rep-time.c:1477 msgid "_Zoom X:" msgstr "_Zooma X:" #: ../src/rep-balance.c:1238 ../src/rep-budget.c:2327 ../src/rep-stats.c:2178 #: ../src/rep-time.c:1496 ../src/rep-vehicle.c:1006 msgid "Filter" msgstr "Filtrera" #. active #: ../src/rep-balance.c:1243 ../src/rep-stats.c:2183 ../src/rep-time.c:1501 msgid "Active:" msgstr "Aktiv:" #: ../src/rep-balance.c:1268 ../src/rep-budget.c:2335 ../src/rep-stats.c:2218 #: ../src/rep-time.c:1526 ../src/rep-vehicle.c:1015 ../src/ui-filter.c:1084 #: ../src/ui-pref.c:1243 ../src/ui-pref.c:1692 msgid "_Range:" msgstr "_Urval:" #: ../src/rep-balance.c:1274 ../src/rep-budget.c:2341 ../src/rep-stats.c:2224 #: ../src/rep-time.c:1532 ../src/rep-vehicle.c:1021 ../src/ui-filter.c:1092 #: ../src/ui-filter.c:1132 ../src/ui-transaction.c:185 msgid "_From:" msgstr "_Från:" #. 5.8 test #: ../src/rep-balance.c:1280 ../src/rep-budget.c:2348 ../src/rep-stats.c:2230 #: ../src/rep-time.c:1538 ../src/rep-vehicle.c:1027 ../src/ui-assign.c:1826 #: ../src/ui-filter.c:1100 ../src/ui-filter.c:1139 ../src/ui-transaction.c:175 #: ../src/ui-transaction.c:185 msgid "_To:" msgstr "_Till:" #: ../src/rep-balance.c:1299 ../src/rep-time.c:1559 #: ../src/ui-assist-import.c:1796 ../src/ui-filter.c:888 msgid "Select:" msgstr "Välj:" #: ../src/rep-balance.c:1303 ../src/rep-time.c:1563 #: ../src/ui-assist-import.c:1799 ../src/ui-filter.c:892 #: ../src/ui-widgets-data.c:297 msgid "All" msgstr "Alla" #: ../src/rep-balance.c:1311 ../src/rep-time.c:1571 #: ../src/ui-assist-import.c:1807 ../src/ui-filter.c:900 msgid "Invert" msgstr "Invertera" #: ../src/rep-balance.c:1327 ../src/ui-pref.c:1277 msgid "Include _transfer" msgstr "Inkludera överf_öring" #. column: Expense #: ../src/rep-budget.c:123 ../src/rep-budget.c:446 msgid "Spent" msgstr "Spenderat" #: ../src/rep-budget.c:123 ../src/rep-budget.c:457 msgid "Fulfilled" msgstr "" #: ../src/rep-budget.c:501 ../src/ui-widgets-data.c:171 #: ../src/ui-widgets-data.c:198 msgid "Month" msgstr "Månad" #: ../src/rep-budget.c:683 msgid "Budget by category" msgstr "Budget per kategori" #: ../src/rep-budget.c:685 msgid "Budget by month" msgstr "Budget per månad" #: ../src/rep-budget.c:1464 ../src/rep-budget.c:1712 msgid " over" msgstr " över" #: ../src/rep-budget.c:1470 ../src/rep-budget.c:1718 msgid " left" msgstr " kvar" #: ../src/rep-budget.c:1473 ../src/rep-budget.c:1721 msgid " under" msgstr " under" #: ../src/rep-budget.c:1541 msgid "(unbudgeted)" msgstr "(obudgeterat)" #: ../src/rep-budget.c:1987 ../src/rep-stats.c:1766 msgid "Stack" msgstr "Stapla" #: ../src/rep-budget.c:1988 msgid "View results as stack bars" msgstr "Visa resultat som stapelstänger" #: ../src/rep-budget.c:2018 ../src/rep-stats.c:1826 ../src/rep-time.c:1238 msgid "_Result to clipboard" msgstr "_Resultat till urklipp" #: ../src/rep-budget.c:2019 ../src/rep-stats.c:1827 ../src/rep-time.c:1239 msgid "_Result to CSV" msgstr "_Resultat till CSV" #: ../src/rep-budget.c:2024 ../src/rep-stats.c:1832 ../src/rep-time.c:1244 msgid "_Detail to clipboard" msgstr "_Detail till urklipp" #: ../src/rep-budget.c:2025 ../src/rep-stats.c:1833 ../src/rep-time.c:1245 msgid "_Detail to CSV" msgstr "_Detalj till CSV" #: ../src/rep-budget.c:2184 msgid "No account is defined to be part of the budget." msgstr "Inget konto definieras som en del av budgeten." #: ../src/rep-budget.c:2185 msgid "You should include some accounts from the account dialog." msgstr "Du bör inkludera några konton från kontodialogen." #: ../src/rep-budget.c:2276 msgid "Budget report" msgstr "Budgetrapport" #: ../src/rep-budget.c:2295 ../src/rep-stats.c:2094 ../src/ui-hbfile.c:309 msgid "Mode:" msgstr "Läge:" #: ../src/rep-budget.c:2303 ../src/rep-stats.c:2114 ../src/ui-account.c:1879 #: ../src/ui-assist-start.c:535 msgid "_Type:" msgstr "_Typ:" #: ../src/rep-budget.c:2310 msgid "Only out of budget" msgstr "Endast utanför budgeten" #: ../src/rep-budget.c:2356 msgid "U_ntil today" msgstr "" #: ../src/rep-budget.c:2385 msgid "Result:" msgstr "Resultat:" #: ../src/rep-budget.c:2391 msgid "Budget:" msgstr "Budget:" #: ../src/rep-budget.c:2397 msgid "Spent:" msgstr "Spenderat:" #. TRANSLATORS: example 'Expense by Category' #. TRANSLATORS: example 'Category by Month' #: ../src/rep-stats.c:336 ../src/rep-time.c:76 #, c-format msgid "%s by %s" msgstr "%s per %s" #: ../src/rep-stats.c:1228 msgid "Too much columns to display" msgstr "För många kolumner att visa" #: ../src/rep-stats.c:1229 msgid "Please select a wider interval and / or a narrower date range" msgstr "Välj ett större intervall och / eller ett smalare datumspan" #: ../src/rep-stats.c:1754 ../src/rep-time.c:1208 msgid "Column" msgstr "Kolumn" #: ../src/rep-stats.c:1755 ../src/rep-time.c:1209 msgid "View results as column" msgstr "Visa resultatet som kolumner" #: ../src/rep-stats.c:1760 msgid "Donut" msgstr "Munk" #: ../src/rep-stats.c:1761 msgid "View results as donut" msgstr "Visa resultat som munk" #: ../src/rep-stats.c:1767 msgid "View results as stack" msgstr "Visa resultat som stack" #: ../src/rep-stats.c:1772 msgid "Stack 100%" msgstr "" #: ../src/rep-stats.c:1773 msgid "View results as stack 100%" msgstr "" #: ../src/rep-stats.c:1789 msgid "Legend" msgstr "Teckenförklaring" #: ../src/rep-stats.c:1790 msgid "Toggle legend" msgstr "Växla förklaring" #: ../src/rep-stats.c:1798 msgid "Rate" msgstr "Räntesats" #: ../src/rep-stats.c:1799 msgid "Toggle rate" msgstr "Växla ränta" #: ../src/rep-stats.c:2067 msgid "Statistics Report" msgstr "Statistikrapport" #: ../src/rep-stats.c:2102 msgid "_View by:" msgstr "_Visa efter:" #: ../src/rep-stats.c:2109 msgid "_Balance mode" msgstr "" #: ../src/rep-stats.c:2132 msgid "_Forecast" msgstr "_Prognos" #: ../src/rep-stats.c:2137 msgid "Sort by _amount" msgstr "Sortera efter _belopp" #: ../src/rep-stats.c:2142 msgid "Compare Exp. & Inc." msgstr "Jämför kostnad & inkomst" #: ../src/rep-stats.c:2260 msgid "Total:" msgstr "Summa:" #: ../src/rep-stats.c:2266 ../src/ui-budget.c:1277 msgid "Income:" msgstr "Inkomst:" #: ../src/rep-stats.c:2273 ../src/ui-budget.c:1270 msgid "Expense:" msgstr "Utgift:" #: ../src/rep-time.c:697 #, c-format msgid "Average: %s" msgstr "Genomsnitt: %s" #: ../src/rep-time.c:1435 msgid "Trend Time Report" msgstr "Trend rapport" #: ../src/rep-time.c:1462 msgid "_Cumulate" msgstr "_Kumulativ" #: ../src/rep-time.c:1544 msgid "Item" msgstr "Objekt" #: ../src/rep-time.c:1548 msgid "_By:" msgstr "" #: ../src/rep-time.c:1728 msgid "Time slice" msgstr "Tidssnitt" #. #. LST_CAR_DATE, #. LST_CAR_MEMO, #. LST_CAR_METER, #. LST_CAR_FUEL, #. LST_CAR_PRICE, #. LST_CAR_AMOUNT, #. LST_CAR_DIST, #. LST_CAR_100KM #. #. #. column: Memo #. #. column = gtk_tree_view_column_new(); #. gtk_tree_view_column_set_title(column, _("Memo")); #. gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); #. renderer = gtk_cell_renderer_text_new(); #. gtk_tree_view_column_pack_start(column, renderer, TRUE); #. gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); #. //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); #. #. column: Meter #: ../src/rep-vehicle.c:177 ../src/rep-vehicle.c:1379 msgid "Meter" msgstr "Mätare" #. column: Fuel load #: ../src/rep-vehicle.c:178 ../src/rep-vehicle.c:1383 msgid "Fuel" msgstr "Bränsle" #. column: Price by unit #: ../src/rep-vehicle.c:179 ../src/rep-vehicle.c:1387 msgid "Price" msgstr "Pris" #. column: Distance done #: ../src/rep-vehicle.c:181 ../src/rep-vehicle.c:1395 msgid "Dist." msgstr "Distans" #: ../src/rep-vehicle.c:796 msgid "Export" msgstr "Exportera" #: ../src/rep-vehicle.c:796 ../src/ui-dialogs.c:608 ../src/ui-dialogs.c:900 msgid "Export as CSV" msgstr "Exportera som CSV" #: ../src/rep-vehicle.c:963 msgid "Vehicle cost report" msgstr "Rapport för Fordonskostnad" #. label = make_label_widget(_("Vehi_cle:")); #. #2001566 make label consistent with properties dialog #: ../src/rep-vehicle.c:985 ../src/ui-assign.c:1161 ../src/ui-hbfile.c:377 #: ../src/ui-payee.c:1302 msgid "_Category:" msgstr "_Kategori:" #: ../src/rep-vehicle.c:1054 msgid "Meter:" msgstr "Mätare:" #: ../src/rep-vehicle.c:1058 msgid "Consumption:" msgstr "Konsumtion:" #: ../src/rep-vehicle.c:1062 msgid "Fuel cost:" msgstr "Bränslekostnad:" #: ../src/rep-vehicle.c:1066 msgid "Other cost:" msgstr "Andra kostnader:" #: ../src/rep-vehicle.c:1070 msgid "Total cost:" msgstr "Totalkostnad:" #. setting wrap causes O(n^2) performance regression because after #. every insert the drop-down list size is re-computed. #. gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); #. populate template #: ../src/ui-account.c:643 ../src/ui-account.c:1682 ../src/ui-assign.c:233 #: ../src/ui-currency.c:248 ../src/ui-widgets.c:1551 msgid "(none)" msgstr "(inget)" #: ../src/ui-account.c:899 ../src/ui-assign.c:590 ../src/ui-category.c:1289 #: ../src/ui-currency.c:602 ../src/ui-payee.c:887 ../src/ui-tag.c:547 msgid "Visible" msgstr "Synlig" #: ../src/ui-account.c:1361 ../src/ui-account.c:1484 msgid "Account name" msgstr "Kontonamn" #: ../src/ui-account.c:1367 ../src/ui-account.c:1495 ../src/ui-assign.c:1540 #: ../src/ui-category.c:1652 ../src/ui-category.c:1792 ../src/ui-payee.c:1212 #: ../src/ui-payee.c:1367 ../src/ui-tag.c:843 ../src/ui-tag.c:951 msgid "Error" msgstr "Fel" #: ../src/ui-account.c:1368 #, c-format msgid "" "Cannot add an account '%s',\n" "this name already exists." msgstr "" "Kan inte lägga till ett konto \"%s\",\n" "detta namn finns redan." #: ../src/ui-account.c:1416 #, c-format msgid "Cannot delete account '%s'" msgstr "Kan inte ta bort konto \"%s\"" #: ../src/ui-account.c:1420 msgid "It has transaction" msgstr "" #: ../src/ui-account.c:1421 msgid "It is target of xfer transaction" msgstr "" #: ../src/ui-account.c:1422 msgid "It has scheduled/template" msgstr "" #: ../src/ui-account.c:1423 msgid "It is target of xfer scheduled/template" msgstr "" #: ../src/ui-account.c:1441 ../src/ui-archive.c:513 ../src/ui-assign.c:1611 #: ../src/ui-budget-tabview.c:2421 ../src/ui-category.c:2000 #: ../src/ui-currency.c:1577 ../src/ui-payee.c:1567 ../src/ui-tag.c:1116 #, c-format msgid "Are you sure you want to permanently delete '%s'?" msgstr "Är du säker på att du vill ta bort \"%s\" permanent?" #: ../src/ui-account.c:1443 msgid "If you delete an account, it will be permanently lost." msgstr "Om du ta bort ett konto kommer det att försvinna permanent." #: ../src/ui-account.c:1496 #, c-format msgid "" "Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan inte byta namn på detta konto\n" "från \"%s\" till \"%s\"\n" "namnet finns redan." #: ../src/ui-account.c:1767 msgid "Manage Accounts" msgstr "Hantera konton" #: ../src/ui-account.c:1832 ../src/ui-archive.c:1069 ../src/ui-assign.c:1933 #: ../src/ui-assist-import.c:1577 ../src/ui-category.c:2509 #: ../src/ui-currency.c:1815 ../src/ui-payee.c:1902 ../src/ui-tag.c:1367 #: ../src/ui-txn-split.c:1051 msgid "Delete" msgstr "Radera" #: ../src/ui-account.c:1839 msgid "Rename" msgstr "Döp om" #: ../src/ui-account.c:1846 ../src/ui-assign.c:1951 msgid "Move up" msgstr "Flytta upp" #: ../src/ui-account.c:1850 ../src/ui-assign.c:1955 msgid "Move down" msgstr "Flytta ner" #. level, identifier iconname label #: ../src/ui-account.c:1866 ../src/ui-hbfile.c:280 ../src/ui-pref.c:89 #: ../src/ui-pref.c:1376 ../src/ui-pref.c:1629 ../src/ui-pref.c:2059 msgid "General" msgstr "Allmänt" #: ../src/ui-account.c:1886 msgid "_Group:" msgstr "_Grupp:" #: ../src/ui-account.c:1895 msgid "_Institution:" msgstr "_Institut:" #: ../src/ui-account.c:1903 msgid "N_umber:" msgstr "N_ummer:" #: ../src/ui-account.c:1911 msgid "Start _balance:" msgstr "Start_saldo:" #: ../src/ui-account.c:1918 msgid "_Currency:" msgstr "_Valuta:" #: ../src/ui-account.c:1925 msgid "this account was _closed" msgstr "detta konto har _stängts" #: ../src/ui-account.c:1931 msgid "Website:" msgstr "Webbsida:" #: ../src/ui-account.c:1939 ../src/ui-assign.c:1231 ../src/ui-payee.c:1281 msgid "Notes:" msgstr "Anteckningar:" #: ../src/ui-account.c:1958 msgid "Behaviour" msgstr "Beteende" #: ../src/ui-account.c:1967 msgid "Automation" msgstr "Automatisering" #: ../src/ui-account.c:1971 msgid "Default _Template:" msgstr "Standard_mall:" #: ../src/ui-account.c:1993 msgid "Report exclusion" msgstr "Rapportera utelämning" #: ../src/ui-account.c:1997 msgid "exclude from account _summary" msgstr "utelämna från konto_sammandrag" #: ../src/ui-account.c:2003 msgid "outflow into summary" msgstr "" #: ../src/ui-account.c:2008 msgid "exclude from the _budget" msgstr "utelämna från _budgeten" #: ../src/ui-account.c:2013 msgid "exclude from any _reports" msgstr "utelämna från alla _rapporter" #: ../src/ui-account.c:2023 msgid "Misc." msgstr "Diverse" #: ../src/ui-account.c:2032 msgid "Current check number" msgstr "Aktuellt kontrollnummer" #: ../src/ui-account.c:2036 msgid "Checkbook _1:" msgstr "Kontrollbok _1:" #: ../src/ui-account.c:2043 msgid "Checkbook _2:" msgstr "Kontrollbok _2:" #: ../src/ui-account.c:2055 msgid "Balance limits" msgstr "Saldogränser" #: ../src/ui-account.c:2059 msgid "_Overdraft at:" msgstr "_Övertrassering på:" #: ../src/ui-account.c:2066 msgid "Max_imum:" msgstr "Max_imalt:" #: ../src/ui-archive.c:504 msgid "Template delete" msgstr "Radera mall" #: ../src/ui-archive.c:505 msgid "This template is used as an account template and cannot be deleted." msgstr "Denna mall används som en kontomall och kan inte tas bort." #: ../src/ui-archive.c:515 msgid "If you delete a scheduled/template, it will be permanently lost." msgstr "" "Om du tar bort en schemalagd/mall kommer den att gå permanent förlorad." #: ../src/ui-archive.c:862 msgid "The post date will be shifted outside of the weekend" msgstr "" #: ../src/ui-archive.c:866 msgid "Next _date:" msgstr "Nästa _datum:" #: ../src/ui-archive.c:874 msgid "Recurrence pattern" msgstr "" #: ../src/ui-archive.c:895 msgid "Ever_y:" msgstr "Varj_e:" #: ../src/ui-archive.c:918 msgid "The" msgstr "" #: ../src/ui-archive.c:936 msgid "More options" msgstr "Fler alternativ" #: ../src/ui-archive.c:949 msgid "Week end:" msgstr "Veckoslut:" #: ../src/ui-archive.c:958 msgid "_Stop after:" msgstr "_Sluta efter:" #: ../src/ui-archive.c:972 msgid "posts" msgstr "poster" #: ../src/ui-archive.c:996 msgid "Manage scheduled/template transactions" msgstr "Hantera schemalagda-/malltransaktioner" #: ../src/ui-archive.c:1034 ../src/ui-dialogs.c:299 msgid "Template" msgstr "Mall" #: ../src/ui-archive.c:1081 ../src/ui-assign.c:1944 ../src/ui-txn-split.c:1055 msgid "Duplicate" msgstr "Duplicera" #: ../src/ui-archive.c:1095 msgid "_Schedule" msgstr "_Schema" #. column : Search #: ../src/ui-assign.c:625 msgid "Search" msgstr "Sök" #. column : Notes #: ../src/ui-assign.c:637 msgid "Notes" msgstr "Noteringar" #. TRANSLATORS: abbreviation for payment #: ../src/ui-assign.c:653 msgid "Pay." msgstr "" #. #2042035 #: ../src/ui-assign.c:789 #, c-format msgid "Search cannot be empty" msgstr "Sökfältet kan inte vara tomt." #: ../src/ui-assign.c:801 #, c-format msgid "This search text already exists at position %d" msgstr "Denna söktext finns redan på position %d" #. GTK_FILE_CHOOSER_ACTION_OPEN, #: ../src/ui-assign.c:1022 ../src/ui-assist-import.c:753 #: ../src/ui-budget-tabview.c:2234 ../src/ui-budget-tabview.c:2487 #: ../src/ui-category.c:1701 ../src/ui-category.c:1868 ../src/ui-currency.c:789 #: ../src/ui-currency.c:1159 ../src/ui-dialogs.c:62 ../src/ui-dialogs.c:139 #: ../src/ui-dialogs.c:444 ../src/ui-dialogs.c:561 ../src/ui-dialogs.c:616 #: ../src/ui-dialogs.c:676 ../src/ui-dialogs.c:745 ../src/ui-dialogs.c:809 #: ../src/ui-dialogs.c:903 ../src/ui-dialogs.c:1031 ../src/ui-dialogs.c:1193 #: ../src/ui-filter.c:1363 ../src/ui-hbfile.c:253 ../src/ui-payee.c:1252 #: ../src/ui-payee.c:1448 ../src/ui-pref.c:2409 ../src/ui-tag.c:882 #: ../src/ui-tag.c:1006 ../src/ui-transaction.c:1508 ../src/ui-txn-multi.c:461 #: ../src/ui-txn-split.c:985 msgid "_Cancel" msgstr "_Avbryt" #: ../src/ui-assign.c:1024 ../src/ui-category.c:1703 ../src/ui-currency.c:791 #: ../src/ui-currency.c:1161 ../src/ui-dialogs.c:64 ../src/ui-dialogs.c:445 #: ../src/ui-hbfile.c:255 ../src/ui-payee.c:1254 ../src/ui-pref.c:2410 #: ../src/ui-tag.c:884 ../src/ui-transaction.c:1509 ../src/ui-txn-multi.c:463 #: ../src/ui-txn-split.c:998 msgid "_OK" msgstr "_OK" #: ../src/ui-assign.c:1063 msgid "Condition" msgstr "Villkor" #. label = make_label_widget(_("Con_tains:")); #: ../src/ui-assign.c:1068 msgid "_Search:" msgstr "_Sök:" #: ../src/ui-assign.c:1090 msgid "_In:" msgstr "_I:" #: ../src/ui-assign.c:1098 ../src/ui-filter.c:1184 msgid "Case _sensitive" msgstr "Skiftläges_känslig" #: ../src/ui-assign.c:1103 msgid "_Regular expression" msgstr "" #: ../src/ui-assign.c:1109 ../src/ui-transaction.c:1616 #: ../src/ui-txn-multi.c:513 msgid "Amou_nt:" msgstr "Män_gd:" #: ../src/ui-assign.c:1114 msgid "_AND" msgstr "" #. label = make_label_group(_("Assign payee")); #: ../src/ui-assign.c:1132 msgid "Assignments" msgstr "Tilldelningar" #: ../src/ui-assign.c:1141 ../src/ui-transaction.c:1717 #: ../src/ui-txn-multi.c:580 msgid "_Payee:" msgstr "_Betalningsmottagare:" #: ../src/ui-assign.c:1151 ../src/ui-assign.c:1171 ../src/ui-assign.c:1190 #: ../src/ui-assign.c:1216 msgid "Overwrite" msgstr "Skriv över" #: ../src/ui-assign.c:1181 msgid "Pay_ment:" msgstr "Betal_ning:" #: ../src/ui-assign.c:1200 ../src/ui-transaction.c:1793 #: ../src/ui-txn-multi.c:630 msgid "_Tags:" msgstr "_Taggar:" #: ../src/ui-assign.c:1541 #, c-format msgid "" "Cannot duplicate this Assignment,\n" "'%s' already exists." msgstr "" #: ../src/ui-assign.c:1564 #, c-format msgid "(rule %d)" msgstr "(regel %d)" #: ../src/ui-assign.c:1613 msgid "If you delete an assignment, it will be permanently lost." msgstr "Om du tar bort en uppgift kommer den att gå förlorad permanent." #: ../src/ui-assign.c:1808 msgid "Move to..." msgstr "Flytta till:" #: ../src/ui-assign.c:1817 msgid "Move rule" msgstr "Flyttregel" #: ../src/ui-assign.c:1840 msgid "Move" msgstr "Flytta" #: ../src/ui-assign.c:1869 msgid "Manage Assignments" msgstr "Hantera uppdrag" #: ../src/ui-assist-start.c:58 msgid "" "This assistant will help you setup a minimum configuration\n" "for a new HomeBank file." msgstr "" "Den här assistenten hjälper dig att ställa in en minsta konfiguration\n" "för en ny HomeBank-fil." #: ../src/ui-assist-start.c:64 msgid "All the elements you setup here can be changed later if required." msgstr "Alla element du ställer in här kan ändras senare om det behövs." #: ../src/ui-assist-start.c:70 msgid "" "No changes will be made until you click \"Apply\"\n" "at the end of this assistant." msgstr "" "Inga ändringar kommer att göras förrän du klickar på \"Tillämpa\"\n" "i slutet av denna assistent." #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:139 msgid "" "HomeBank will display a title for the main window,\n" "it can be a free label or your name." msgstr "" "HomeBank kommer att visa en titel för huvudfönstret, \n" "det kan vara en valfri etikett eller ditt namn." #: ../src/ui-assist-start.c:149 ../src/ui-hbfile.c:284 msgid "_Title:" msgstr "_Titel:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:267 msgid "" "HomeBank support multiple currencies. The base currency is\n" "the default for new accounts and reports." msgstr "" "HomeBank stöder flera valutor. Basvalutan är\n" "standard för nya konton och rapporter." #: ../src/ui-assist-start.c:275 msgid "Base:" msgstr "Bas:" #: ../src/ui-assist-start.c:285 msgid "Setup additional currencies" msgstr "Ställ in ytterligare valutor" #: ../src/ui-assist-start.c:297 ../src/ui-transaction.c:1518 msgid "_Add" msgstr "_Lägg till" #: ../src/ui-assist-start.c:395 msgid "Not found" msgstr "Inte hittad" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:415 msgid "" "HomeBank can prefill the categories for your language\n" "if a CSV file is available and provided by the community." msgstr "" "Homebank kan på förhand fylla i kategorierna för ditt språk\n" "om en CSV-fil är tillgänglig och tillhandahålls av diskussionsgruppen." #: ../src/ui-assist-start.c:420 msgid "Setup categories for my language" msgstr "Ställ in kategorier för mitt språk" #: ../src/ui-assist-start.c:430 msgid "Preset file:" msgstr "Förinställd fil:" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-assist-start.c:511 msgid "" "HomeBank enables to import your accounts from downloaded\n" "financial institution files, or you can create your account manually." msgstr "" "HomeBank gör det möjligt att importera dina konton från hämtade\n" "finansiella institutionsfiler eller så kan du skapa ditt konto manuellt." #: ../src/ui-assist-start.c:516 msgid "Create my first account" msgstr "Skapa mitt första konto" #: ../src/ui-assist-start.c:528 ../src/ui-category.c:1717 #: ../src/ui-currency.c:1238 ../src/ui-payee.c:1271 ../src/ui-tag.c:907 msgid "_Name:" msgstr "_Namn:" #: ../src/ui-assist-start.c:559 msgid "" "This is a confirmation page,\n" "\n" "press 'Apply' to apply changes" msgstr "" "Detta är en bekräftelsesida,\n" "\n" "tryck på \"Tillämpa\" för att tillämpa ändringar" #: ../src/ui-assist-start.c:736 msgid "Start File Setup" msgstr "Starta filinställning" #: ../src/ui-assist-start.c:742 msgid "File Options" msgstr "Filalternativ" #: ../src/ui-assist-start.c:747 msgid "Choose Currencies" msgstr "Välj valutor" #: ../src/ui-assist-start.c:752 msgid "Choose Categories" msgstr "Välj kategorier" #: ../src/ui-assist-start.c:757 msgid "Create Account" msgstr "Skapa konto" #: ../src/ui-assist-start.c:763 msgid "Finish File Setup" msgstr "Slutför filinställning" #: ../src/ui-assist-import.c:490 msgid "" msgstr "" #: ../src/ui-assist-import.c:495 msgid "" msgstr "" #: ../src/ui-assist-import.c:517 msgid "" msgstr "" #: ../src/ui-assist-import.c:660 ../src/ui-assist-import.c:1811 msgid "Valid" msgstr "Giltig" #: ../src/ui-assist-import.c:672 ../src/ui-currency.c:619 #: ../src/ui-currency.c:1221 msgid "Name" msgstr "Namn" #: ../src/ui-assist-import.c:755 ../src/ui-dialogs.c:603 #: ../src/ui-dialogs.c:665 ../src/ui-dialogs.c:746 msgid "_Open" msgstr "_Öppna" #: ../src/ui-assist-import.c:765 msgid "Known files" msgstr "Kända filer" #: ../src/ui-assist-import.c:776 ../src/ui-dialogs.c:567 msgid "QIF files" msgstr "QIF-filer" #: ../src/ui-assist-import.c:784 msgid "OFX/QFX files" msgstr "OFX-/QFX-filer" #: ../src/ui-assist-import.c:792 ../src/ui-dialogs.c:625 msgid "CSV files" msgstr "CSV-filer" #: ../src/ui-assist-import.c:799 ../src/ui-dialogs.c:568 #: ../src/ui-dialogs.c:626 ../src/ui-dialogs.c:686 msgid "All files" msgstr "Alla filer" #: ../src/ui-assist-import.c:878 msgid "new global account" msgstr "nytt globalt konto" #: ../src/ui-assist-import.c:881 msgid "new account" msgstr "nytt konto" #: ../src/ui-assist-import.c:884 msgid "skipped" msgstr "hoppade över" #: ../src/ui-assist-import.c:903 #, c-format msgid ", %d of %d transactions" msgstr ", %d av %d transaktioner" #: ../src/ui-assist-import.c:1032 #, c-format msgid "%d transaction(s), %d similar, %d existing, %d selected" msgstr "%d transaktion(er), %d liknande, %d befintliga, %d valda" #: ../src/ui-assist-import.c:1034 #, c-format msgid "%d transaction(s), %d selected" msgstr "%d transaktion(er), %d valda" #: ../src/ui-assist-import.c:1202 msgid "" "Some date cannot be converted. Please try to change the date order to " "continue." msgstr "" "Vissa datum kan inte konverteras. Vänligen försök att ändra datumordningen " "för att fortsätta." #. label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); #: ../src/ui-assist-import.c:1391 #, c-format msgid "Import %s in_to:" msgstr "Importera %s in_to:" #: ../src/ui-assist-import.c:1391 msgid "this file" msgstr "denna fil" #: ../src/ui-assist-import.c:1391 msgid "this account" msgstr "detta konto" #: ../src/ui-assist-import.c:1398 #, c-format msgid "" "Name: %s\n" "Number: %s\n" "File: %s\n" "Encoding: %s" msgstr "" "Namn: %s\n" "Nummer: %s\n" "Fil: %s\n" "Kodning: %s" #: ../src/ui-assist-import.c:1448 msgid "Import transactions from bank or credit card" msgstr "Importera transaktioner från bank eller kreditkort" #: ../src/ui-assist-import.c:1457 msgid "" "With this assistant you will be guided through the process of importing one " "or several\n" "downloaded statements from your bank or credit card, in the following " "formats:" msgstr "" "Med denna assistent kommer du att guidas genom processen att importera en " "eller flera\n" "hämtade påståenden från din bank eller ditt kreditkort, i följande format:" #: ../src/ui-assist-import.c:1464 msgid "" "Recommended: .OFX or .QFX\n" "(Sometimes named Money™ or Quicken™)\n" "Supported: .QIF\n" "(Common Quicken™ file)\n" "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)" msgstr "" "Rekommendras: .OFX eller .QFX\n" "(Ibland kallad Money™ eller Quicken™)\n" "Stöder: .QIF\n" "(Vanlig Quicken™-fil)\n" "Endast avancerade användare: .CSV\n" "(formatet är specifikt för HomeBank, se dokumentationen)" #: ../src/ui-assist-import.c:1484 msgid "" "No changes will be made until you click \"Apply\" at the end of this " "assistant." msgstr "" "Inga ändringar kommer att göras tills du klickar på \"Tillämpa\" i slutet av " "den här assistenten." #. SPACING_SMALL #: ../src/ui-assist-import.c:1488 msgid "Don't show this again" msgstr "Visa inte detta igen" #: ../src/ui-assist-import.c:1547 msgid "" "Drag&Drop one or several files to import.\n" "You can also use the add/delete buttons of the list." msgstr "" "Dra och släpp en eller flera filer för att importera dem.\n" "Du kan också använda lägg till/ta bort knapparna på listan." #: ../src/ui-assist-import.c:1611 msgid "" "There is too much account in the files you choose,\n" "please use the back button to select less files." msgstr "" "Det finns för mycket konto i filerna du väljer,\n" "använd bakåtknappen för att välja mindre filer." #: ../src/ui-assist-import.c:1733 msgid "Target account identification by name or number failed." msgstr "Målkodsidentifiering av namn eller nummer misslyckades." #: ../src/ui-assist-import.c:1746 ../src/ui-pref.c:1079 msgid "Date order:" msgstr "Datumordning:" #: ../src/ui-assist-import.c:1761 ../src/ui-pref.c:1129 msgid "_Import memos" msgstr "_Importera anteckningar" #: ../src/ui-assist-import.c:1765 ../src/ui-pref.c:1132 msgid "_Swap memos with payees" msgstr "_Byt anteckningar med betalningsmottagare" #: ../src/ui-assist-import.c:1774 ../src/ui-pref.c:1103 msgid "OFX _Name:" msgstr "OFX-_namn:" #: ../src/ui-assist-import.c:1780 ../src/ui-pref.c:1111 msgid "OFX _Memo:" msgstr "OFX-_anteckning:" #: ../src/ui-assist-import.c:1828 ../src/ui-pref.c:1087 msgid "Sentence _case memo/payee" msgstr "" #: ../src/ui-assist-import.c:1832 msgid "_Toggle amount" msgstr "_Växla belopp" #: ../src/ui-assist-import.c:1864 msgid "Similar transaction in target account (possible duplicate)" msgstr "Liknande transaktion i målkontot (eventuell dubblett)" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-assist-import.c:1893 ../src/ui-hbfile.c:347 ../src/ui-pref.c:1802 msgid "days" msgstr "dagar" #: ../src/ui-assist-import.c:1901 msgid "" "The match is done in order: by account, amount and date.\n" "A date tolerance of 0 day means an exact match" msgstr "" "Matchningen har utförts i följande ordning: efter konto, belopp och datum.\n" "En datumtolerans på 0 dagar innebär en exakt matchning" #: ../src/ui-assist-import.c:1969 msgid "Option" msgstr "" #: ../src/ui-assist-import.c:1973 msgid "Import as pending" msgstr "" #: ../src/ui-assist-import.c:1979 msgid "Run automation" msgstr "Kör automatisering" #: ../src/ui-assist-import.c:1983 msgid "1) Enrich with _payee default" msgstr "1) Berika med betalningsmottagarens standard" #: ../src/ui-assist-import.c:1989 msgid "2) Run automatic _assigment rules" msgstr "2) Kör automatiska _uppdragsregler" #: ../src/ui-assist-import.c:1995 msgid "Click \"Apply\" to update your accounts." msgstr "Klicka på \"Tillämpa\" för att uppdatera dina konton." #: ../src/ui-assist-import.c:2273 msgid "Welcome" msgstr "Välkommen" #: ../src/ui-assist-import.c:2279 msgid "Select file(s)" msgstr "Välj fil(er)" #. gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); #: ../src/ui-assist-import.c:2284 msgid "Import" msgstr "Importera" #: ../src/ui-assist-import.c:2297 msgid "Confirmation" msgstr "Bekräftelse" #: ../src/ui-budget.c:536 ../src/ui-budget-tabview.c:3089 #: ../src/ui-category.c:1495 ../src/ui-payee.c:1095 ../src/ui-tag.c:740 msgid "File format error" msgstr "Filformatsfel" #: ../src/ui-budget.c:537 ../src/ui-budget-tabview.c:3090 #: ../src/ui-category.c:1496 ../src/ui-payee.c:1096 ../src/ui-tag.c:741 msgid "" "The CSV file must contains the exact numbers of column,\n" "separated by a semi-colon, please see the help for more details." msgstr "" "CSV-filen måste innehålla exakt antal kolumner,\n" "separerad av ett semikolon, se hjälpen för mer detaljer." #: ../src/ui-budget.c:932 msgid "Are you sure you want to clear input?" msgstr "Är du säker på att du vill rensa inmatning?" #: ../src/ui-budget.c:934 ../src/ui-budget-tabview.c:2642 msgid "If you proceed, every amount will be set to 0." msgstr "Om du fortsätter kommer varje belopp att ställas till 0." #: ../src/ui-budget.c:940 ../src/ui-budget-tabview.c:2648 #: ../src/ui-budget-tabview.c:2928 msgid "_Clear" msgstr "_Rensa" #: ../src/ui-budget.c:995 #, c-format msgid "Budget for %s" msgstr "Budget för %s" #. create window #: ../src/ui-budget.c:1157 ../src/ui-budget-tabview.c:3199 msgid "Manage Budget" msgstr "Hantera budget" #: ../src/ui-budget.c:1211 ../src/ui-budget-tabview.c:3263 #: ../src/ui-category.c:2461 ../src/ui-payee.c:1858 ../src/ui-tag.c:1329 msgid "_Import CSV..." msgstr "_Importera CSV..." #: ../src/ui-budget.c:1212 ../src/ui-budget-tabview.c:3264 #: ../src/ui-category.c:2462 ../src/ui-payee.c:1859 ../src/ui-tag.c:1330 msgid "E_xport CSV..." msgstr "E_xportera CSV..." #: ../src/ui-budget.c:1284 msgid "Balance:" msgstr "Saldo:" #: ../src/ui-budget.c:1305 msgid "is the same each month" msgstr "är samma varje månad" #: ../src/ui-budget.c:1319 msgid "_Clear input" msgstr "_Rensa inmatning" #: ../src/ui-budget.c:1334 msgid "is different per month" msgstr "är olika per månad" #: ../src/ui-budget.c:1373 ../src/ui-dialogs.c:940 msgid "Options" msgstr "Alternativ" #. Force monitoring #: ../src/ui-budget.c:1378 ../src/ui-budget-tabview.c:3339 msgid "_Force monitoring this category" msgstr "_Tvinga övervakning av denna kategori" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:415 msgid "Jan" msgstr "Jan" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:416 msgid "Feb" msgstr "Feb" #: ../src/ui-budget-tabview.c:83 ../src/ui-widgets-data.c:417 msgid "Mar" msgstr "Mar" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:418 msgid "Apr" msgstr "Apr" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:399 #: ../src/ui-widgets-data.c:419 msgid "May" msgstr "Maj" #: ../src/ui-budget-tabview.c:84 ../src/ui-widgets-data.c:420 msgid "Jun" msgstr "Jun" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:421 msgid "Jul" msgstr "Jul" #: ../src/ui-budget-tabview.c:85 ../src/ui-widgets-data.c:422 msgid "Aug" msgstr "Aug" #: ../src/ui-budget-tabview.c:85 msgid "Sept" msgstr "Sept" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:424 msgid "Oct" msgstr "Okt" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:425 msgid "Nov" msgstr "Nov" #: ../src/ui-budget-tabview.c:86 ../src/ui-widgets-data.c:426 msgid "Dec" msgstr "Dec" #: ../src/ui-budget-tabview.c:91 msgid "Summary" msgstr "Sammanfattning" #: ../src/ui-budget-tabview.c:538 ../src/ui-budget-tabview.c:539 msgid "Totals" msgstr "Totalt" #. gtk_tree_view_column_set_title(col, _("Annual Total")); #: ../src/ui-budget-tabview.c:1670 msgid "" "Annual\n" "Total" msgstr "" "Årligen\n" "Total" #. gtk_tree_view_column_set_title(col, _("Monthly Average")); #: ../src/ui-budget-tabview.c:1684 msgid "" "Monthly\n" "Average" msgstr "" #: ../src/ui-budget-tabview.c:1697 ../src/ui-widgets-data.c:65 msgid "Monthly" msgstr "Månadsvis" #: ../src/ui-budget-tabview.c:2231 msgid "Add a category" msgstr "Lägg till en kategori" #: ../src/ui-budget-tabview.c:2240 ../src/ui-budget-tabview.c:2493 msgid "_Apply" msgstr "Tillämp_a" #: ../src/ui-budget-tabview.c:2258 msgid "Parent category" msgstr "Föregående kategori" #: ../src/ui-budget-tabview.c:2281 msgid "Category name" msgstr "Kategorinamn" #: ../src/ui-budget-tabview.c:2425 ../src/ui-category.c:2004 msgid "" "This category is used.\n" "Any transaction using that category will be set to (no category)" msgstr "" "Denna kategori används.\n" "Alla transaktioner som använder den kategorin kommer att ställas in som " "(ingen kategori)" #: ../src/ui-budget-tabview.c:2484 msgid "Merge categories" msgstr "Foga samman kategorier" #: ../src/ui-budget-tabview.c:2511 #, c-format msgid "" "Transactions assigned to category '%s', will be moved to the category " "selected below." msgstr "" "Transaktioner i kategorin '%s', kommer att flyttas till kategorin som väljs " "nedan." #: ../src/ui-budget-tabview.c:2518 msgid "Target category" msgstr "Målkategori" #: ../src/ui-budget-tabview.c:2550 #, c-format msgid "_Delete the category '%s'" msgstr "Ra_dera kategorin \"%s\"" #: ../src/ui-budget-tabview.c:2641 #, c-format msgid "Are you sure you want to clear inputs for '%s'?" msgstr "Är du säker på att du vill rensa inmatningar för \"%s\"?" #: ../src/ui-budget-tabview.c:2926 msgid "Clear the entire Budget" msgstr "" #: ../src/ui-budget-tabview.c:2927 msgid "" "Are you sure you want to permanently\n" "clear the budget?" msgstr "" #: ../src/ui-budget-tabview.c:3269 msgid "_Clear All..." msgstr "" #. Add / Remove / Merge #: ../src/ui-budget-tabview.c:3315 msgid "Add category" msgstr "Lägg till kategori" #: ../src/ui-budget-tabview.c:3320 msgid "Remove category" msgstr "Ta bort kategori" #: ../src/ui-budget-tabview.c:3325 ../src/ui-category.c:1869 #: ../src/ui-payee.c:1449 ../src/ui-tag.c:1007 msgid "Merge" msgstr "Slå samman" #. Clear Input #: ../src/ui-budget-tabview.c:3333 msgid "Clear input" msgstr "Rensa inmatning" #. TRANSLATORS: 'txn' is abbrevation for transaction #: ../src/ui-category.c:1306 ../src/ui-payee.c:907 ../src/ui-tag.c:569 msgid "# txn" msgstr "" #. TRANSLATORS: 'cfg' is abbrevation for configuration #. TRANSLATORS: 'txn' is abbrevation for configuration #: ../src/ui-category.c:1320 ../src/ui-payee.c:922 ../src/ui-tag.c:584 msgid "# cfg" msgstr "" #: ../src/ui-category.c:1449 msgid "Delete unused categories" msgstr "Ta bort oanvända kategorier" #: ../src/ui-category.c:1450 msgid "" "Are you sure you want to permanently\n" "delete unused categories?" msgstr "" "Är du säker på att du vill permanent\n" "ta bort oanvända kategorier?" #: ../src/ui-category.c:1653 msgid "Duplicate category name. Try another name." msgstr "Denna kategori finns redan. Prova ett annat namn." #: ../src/ui-category.c:1698 msgid "Edit Category" msgstr "Redigera kategori" #: ../src/ui-category.c:1729 msgid "Change Type" msgstr "Byt typ" #: ../src/ui-category.c:1734 ../src/ui-pref.c:2019 msgid "_Income" msgstr "_Inkomst" #: ../src/ui-category.c:1739 msgid "Propagate to _children" msgstr "" #: ../src/ui-category.c:1793 #, c-format msgid "" "Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan inte byta namn på den här kategorin,\n" "från \"%s\" till \"%s\",\n" "detta namn finns redan." #: ../src/ui-category.c:1857 #, c-format msgid "Merge category '%s'" msgstr "Slå samman kategori \"%s\"" #: ../src/ui-category.c:1878 msgid "" "Transactions assigned to this category,\n" "will be moved to the category selected below." msgstr "" "Transaktioner i denna kategori kommer\n" "att flyttas till den nedan valda kategorin." #: ../src/ui-category.c:1888 msgid "Include _subcategories" msgstr "Inkludera _underkategorier" #: ../src/ui-category.c:1893 #, c-format msgid "_Delete the category '%s' (and any budget)" msgstr "" #: ../src/ui-category.c:2397 msgid "Manage Categories" msgstr "Hantera kategorier" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2437 ../src/ui-payee.c:1840 msgid "Show Hidden" msgstr "Visa dolda" #. test headerbar #. content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); #: ../src/ui-category.c:2441 ../src/ui-payee.c:1844 ../src/ui-tag.c:1315 msgid "Show Usage" msgstr "" #: ../src/ui-category.c:2467 ../src/ui-payee.c:1864 ../src/ui-tag.c:1335 msgid "_Delete unused..." msgstr "Ra_dera oanvända..." #: ../src/ui-category.c:2520 ../src/ui-payee.c:1909 ../src/ui-tag.c:1374 msgid "Move/Merge" msgstr "Flytta/Foga samman" #: ../src/ui-category.c:2527 ../src/ui-payee.c:1915 msgid "Show/Hide" msgstr "Visa/dölj" #: ../src/ui-category.c:2552 msgid "new category" msgstr "ny kategori" #: ../src/ui-category.c:2563 msgid "new subcategory" msgstr "ny underkategori" #: ../src/ui-currency.c:369 ../src/ui-currency.c:376 msgid "Base currency" msgstr "Basvaluta" #: ../src/ui-currency.c:631 msgid "Symbol" msgstr "Symbol" #: ../src/ui-currency.c:643 ../src/ui-currency.c:831 msgid "Exchange rate" msgstr "Växelkurs" #: ../src/ui-currency.c:658 msgid "Last modified" msgstr "Senast ändrad" #: ../src/ui-currency.c:786 msgid "Edit currency" msgstr "Redigera valuta" #: ../src/ui-currency.c:817 ../src/ui-dialogs.c:353 msgid "Currency" msgstr "Valuta" #: ../src/ui-currency.c:850 ../src/ui-pref.c:1429 msgid "Format" msgstr "Format" #: ../src/ui-currency.c:859 ../src/ui-pref.c:1438 msgid "_Customize" msgstr "_Anpassa" #: ../src/ui-currency.c:868 ../src/ui-pref.c:1447 msgid "_Symbol:" msgstr "_Symbol:" #: ../src/ui-currency.c:875 ../src/ui-pref.c:1454 msgid "Is pre_fix" msgstr "Är pre_fix" #: ../src/ui-currency.c:880 ../src/ui-pref.c:1459 msgid "_Decimal char:" msgstr "_Decimaltecken:" #: ../src/ui-currency.c:887 ../src/ui-pref.c:1466 msgid "_Frac digits:" msgstr "_Bråkdelssiffror:" #: ../src/ui-currency.c:894 ../src/ui-pref.c:1473 msgid "_Grouping char:" msgstr "_Grupperingstecken:" #: ../src/ui-currency.c:1156 msgid "Select base currency" msgstr "Välj basvaluta" #: ../src/ui-currency.c:1156 msgid "Select currency" msgstr "Välj valuta" #: ../src/ui-currency.c:1226 msgid "ISO Code" msgstr "ISO-kod" #: ../src/ui-currency.c:1232 msgid "Add a custom _currency" msgstr "Lägg till en anpassad _valuta" #: ../src/ui-currency.c:1245 msgid "_ISO:" msgstr "_ISO:" #: ../src/ui-currency.c:1356 msgid "Update online error" msgstr "Uppdatering fel på nätet" #: ../src/ui-currency.c:1579 msgid "If you delete a currency, it will be permanently lost." msgstr "Om du tar bort en valuta förloras den permanent." #: ../src/ui-currency.c:1622 msgid "Change the base currency" msgstr "Ändra basvalutan" #: ../src/ui-currency.c:1623 msgid "" "If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it" msgstr "" "Om du fortsätter, kommer omräkningskurs på andra \n" "valutor att ställas till 0, glöm inte att uppdatera den" #: ../src/ui-currency.c:1722 msgid "Currencies" msgstr "Valutor" #: ../src/ui-currency.c:1770 msgid "Update online" msgstr "Uppdatera på nätet" #: ../src/ui-currency.c:1776 msgid "Call log" msgstr "" #: ../src/ui-currency.c:1826 msgid "Set as base" msgstr "Ange som bas" #: ../src/ui-dialogs.c:249 msgid "File statistics" msgstr "Filstatistik" #: ../src/ui-dialogs.c:280 msgid "Transaction" msgstr "Transaktion" #: ../src/ui-dialogs.c:441 msgid "Upgrade" msgstr "Uppgradera" #: ../src/ui-dialogs.c:469 msgid "Select a base currency" msgstr "Välj en basvaluta" #: ../src/ui-dialogs.c:478 msgid "" "Starting v5.1, HomeBank can manage several currencies\n" "if the currency below is not correct, please change it:" msgstr "" "Från och med v5.1 kan HomeBank hantera flera valutor\n" "om valutan nedan inte är korrekt, vänligen ändra den:" #: ../src/ui-dialogs.c:483 msgid "Currency:" msgstr "Valuta:" #: ../src/ui-dialogs.c:558 msgid "Export as QIF" msgstr "Exportera som QIF" #: ../src/ui-dialogs.c:602 msgid "Import from CSV" msgstr "Importera från CSV" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank file" msgstr "Öppna HomeBank-fil" #: ../src/ui-dialogs.c:664 msgid "Open HomeBank backup file" msgstr "Öppna Homebank-säkerhetskopian" #: ../src/ui-dialogs.c:669 msgid "Save HomeBank file as" msgstr "Spara HomeBank-fil som" #: ../src/ui-dialogs.c:685 ../src/ui-pref.c:2185 msgid "HomeBank files" msgstr "HomeBank-filer" #: ../src/ui-dialogs.c:697 msgid "File backup" msgstr "Säkerhetskopiering av filer" #: ../src/ui-dialogs.c:701 msgid "All backups" msgstr "Alla säkerhetskopior" #: ../src/ui-dialogs.c:799 msgid "Save changes to the file before closing?" msgstr "Spara ändringar till filen innan den stängs?" #: ../src/ui-dialogs.c:803 #, c-format msgid "" "If you don't save, changes will be permanently lost.\n" "Number of changes: %d." msgstr "" "Om du inte sparar kommer förändringar du gjort gå förlorade.\n" "Antal förändringar: %d." #: ../src/ui-dialogs.c:808 msgid "Close _without saving" msgstr "Stäng _utan att spara" #: ../src/ui-dialogs.c:904 msgid "Export as _CSV" msgstr "Exportera som _CSV" #: ../src/ui-dialogs.c:927 ../src/ui-dialogs.c:1053 msgid "Folder:" msgstr "Mapp:" #: ../src/ui-dialogs.c:929 ../src/ui-dialogs.c:1055 msgid "Pick a Folder" msgstr "Välj en mapp" #: ../src/ui-dialogs.c:933 ../src/ui-dialogs.c:1059 msgid "Filename:" msgstr "Filnamn:" #: ../src/ui-dialogs.c:944 msgid "Add Status column" msgstr "Lägg till statuskolumn" #: ../src/ui-dialogs.c:948 msgid "Detail split lines" msgstr "Detaljdelade linjer" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:958 msgid "" "The file will not be in HomeBank CSV format, because you export\n" "from 'All transaction', or you selected an option." msgstr "" "Filen kommer inte att vara i HomeBank CSV-format, eftersom du exporterar\n" "från \"Alla transaktioner\", eller så har du valt ett alternativ." #: ../src/ui-dialogs.c:1028 msgid "Export as PDF" msgstr "Exportera som PDF" #: ../src/ui-dialogs.c:1032 msgid "Export as _PDF" msgstr "Exportera som _PDF" #. 123456789012345678901234567890123456789012345678901234567890 #: ../src/ui-dialogs.c:1070 msgid "" "With HomeBank, printing is oriented towards an eco-responsible\n" "attitude towards the most widespread digital format: PDF format. " msgstr "" "Med HomeBank är utskrift orienterad mot en miljöansvarig\n" "attityd till det mest utbredda digitala formatet: PDF-format. " #: ../src/ui-dialogs.c:1190 msgid "Select action for target creation" msgstr "" #: ../src/ui-dialogs.c:1194 msgid "Create _New" msgstr "Skapa _nytt" #: ../src/ui-dialogs.c:1195 msgid "Use _Selection" msgstr "Använd _urvalet" #: ../src/ui-dialogs.c:1223 msgid "Source transfer" msgstr "Källa överföring" #. target listview #: ../src/ui-dialogs.c:1238 msgid "Target association suggested" msgstr "" #: ../src/ui-dialogs.c:1243 msgid "" "HomeBank has found some transaction that may be the associated transaction " "for the internal transfer." msgstr "" "HomeBank har funnit en viss transaktion som kan vara den tillhörande " "transaktionen för intern överföring." #. 5.8 chnage text #: ../src/ui-dialogs.c:1309 msgid "No transaction match." msgstr "Inga transaktioner matchar." #: ../src/ui-filter.c:1152 msgid "Input From -30 To -15 to filter on expense" msgstr "" #: ../src/ui-filter.c:1169 msgid "_Memo:" msgstr "_Anteckning:" #: ../src/ui-filter.c:1176 ../src/ui-transaction.c:1710 #: ../src/ui-txn-multi.c:564 msgid "_Number:" msgstr "_Nummer:" #: ../src/ui-filter.c:1282 msgid "Expense Transfer" msgstr "Utgift överföring" #: ../src/ui-filter.c:1287 msgid "Income Transfer" msgstr "Inkomst överföring" #: ../src/ui-filter.c:1359 ../src/ui-pref.c:2380 ../src/ui-pref.c:2407 msgid "_Reset" msgstr "Åte_rställ" #: ../src/ui-filter.c:1365 msgid "_Save & Use" msgstr "_Spara & Använd" #: ../src/ui-filter.c:1367 msgid "_Use" msgstr "_Använd" #: ../src/ui-filter.c:1370 msgid "default" msgstr "standard" #: ../src/ui-filter.c:1439 msgid "Amount/Text" msgstr "Summa/Text" #: ../src/ui-filter.c:1454 msgid "Always show" msgstr "Visa alltid" #. { TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, #: ../src/ui-filter.c:1461 ../src/ui-widgets-data.c:140 msgid "Void" msgstr "Ogiltig" #: ../src/ui-filter.c:1465 msgid "Added" msgstr "Tillagd" #: ../src/ui-filter.c:1469 msgid "Edited" msgstr "Redigerad" #: ../src/ui-flt-widget.c:129 msgid "(default)" msgstr "(standard)" #: ../src/ui-flt-widget.c:230 msgid "Filter rename" msgstr "Döp om filter" #: ../src/ui-flt-widget.c:264 #, c-format msgid "New filter %d" msgstr "Nytt filter: %d" #: ../src/ui-flt-widget.c:265 msgid "Filter name" msgstr "Filternamn" #: ../src/ui-flt-widget.c:455 msgid "_Save as..." msgstr "_Spara som..." #: ../src/ui-flt-widget.c:456 msgid "_Rename..." msgstr "_Byt namn…" #: ../src/ui-hbfile.c:47 msgid "Due Date" msgstr "Förfallodatum" #: ../src/ui-hbfile.c:48 msgid "Next Payout" msgstr "Nästa utbetalning" #: ../src/ui-hbfile.c:49 msgid "In Advance" msgstr "I förskott" #. #2102726 #: ../src/ui-hbfile.c:86 #, c-format msgid "Maximum post date is %s (included)" msgstr "" #: ../src/ui-hbfile.c:250 msgid "File properties" msgstr "Filegenskaper" #: ../src/ui-hbfile.c:298 msgid "Scheduled transactions" msgstr "Schemalagda transaktioner" #: ../src/ui-hbfile.c:326 msgid "of each" msgstr "av varje" #: ../src/ui-hbfile.c:333 msgid "month" msgstr "månad" #: ../src/ui-hbfile.c:360 msgid "_Earn by hour:" msgstr "_Timlön:" #: ../src/ui-payee.c:1045 msgid "Delete unused payee" msgstr "Ta bort oanvänd betalningsmottagare" #: ../src/ui-payee.c:1046 msgid "" "Are you sure you want to\n" "permanently delete unused payee?" msgstr "" "Är du säker på att du vill\n" "ta bort oanvänd betalningsmottagare permanent?" #: ../src/ui-payee.c:1213 msgid "Duplicate payee name. Try another name." msgstr "Denna mottagare finns redan. Prova ett annat namn." #: ../src/ui-payee.c:1249 msgid "Edit Payee" msgstr "Redigera mottagare" #: ../src/ui-payee.c:1297 msgid "Default Fill" msgstr "" #: ../src/ui-payee.c:1311 ../src/ui-transaction.c:1698 #: ../src/ui-txn-multi.c:549 msgid "Pa_yment:" msgstr "Be_talning:" #: ../src/ui-payee.c:1368 #, c-format msgid "" "Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan inte byta namn på denna betalningsmottagare,\n" "från \"%s\" till \"%s\",\n" "detta namn finns redan." #: ../src/ui-payee.c:1437 #, c-format msgid "Merge payee '%s'" msgstr "Slå samman betalningsmottagare \"%s\"" #: ../src/ui-payee.c:1458 msgid "" "Transactions assigned to this payee,\n" "will be moved to the payee selected below." msgstr "" "Transaktioner tilldelade denna betalningsmottagare,\n" "kommer att flyttas till den betalningsmottagare som valts nedan." #: ../src/ui-payee.c:1469 #, c-format msgid "_Delete the payee '%s'" msgstr "_Ta bort betalningsmottagaren \"%s\"" #: ../src/ui-payee.c:1571 msgid "" "This payee is used.\n" "Any transaction using that payee will be set to (no payee)" msgstr "" "Denna betalningsmottagare används.\n" "Varje transaktion med den betalningsmottagaren kommer att ställas till " "(ingen betalningsmottagare)" #: ../src/ui-payee.c:1792 msgid "Manage Payees" msgstr "Hantera betalningsmottagare" #: ../src/ui-payee.c:1923 msgid "new payee" msgstr "ny betalningsmottagare" #: ../src/ui-pref.c:90 msgid "Interface" msgstr "Gränssnitt" #: ../src/ui-pref.c:91 msgid "Theming" msgstr "" #: ../src/ui-pref.c:92 msgid "Color" msgstr "" #: ../src/ui-pref.c:93 msgid "Locale" msgstr "Språk" #: ../src/ui-pref.c:94 msgid "Transactions" msgstr "Transaktioner" #: ../src/ui-pref.c:95 msgid "Dialog" msgstr "" #: ../src/ui-pref.c:96 ../src/ui-widgets-data.c:118 #: ../src/ui-widgets-data.c:318 msgid "Transfer" msgstr "Överföring" #: ../src/ui-pref.c:98 msgid "Import/Export" msgstr "Importera/exportera" #: ../src/ui-pref.c:99 msgid "Report" msgstr "Rapport" #: ../src/ui-pref.c:100 ../src/ui-pref.c:1338 msgid "Forecast" msgstr "Prognos" #: ../src/ui-pref.c:101 ../src/ui-pref.c:2137 msgid "Backup" msgstr "Säkerhetskopia" #: ../src/ui-pref.c:102 msgid "Folders" msgstr "Mappar" #: ../src/ui-pref.c:104 msgid "Advanced" msgstr "Avancerat" #: ../src/ui-pref.c:200 msgid "System Language" msgstr "Systemspråk" #: ../src/ui-pref.c:363 msgid "Choose a default HomeBank files folder" msgstr "Välj en standardfilmapp för HomeBank" #: ../src/ui-pref.c:368 msgid "Choose a default HomeBank backup files folder" msgstr "Välj en standardmapp för HomeBank-säkerhetskopior" #: ../src/ui-pref.c:373 msgid "Choose a default import folder" msgstr "Välj en standardmapp för import" #: ../src/ui-pref.c:378 msgid "Choose a default export folder" msgstr "Välj en standardmapp för export" #: ../src/ui-pref.c:994 msgid "Payment shows & chooses" msgstr "" #: ../src/ui-pref.c:998 msgid "Use drag & drop to reorder" msgstr "Använd dra& släpp för att ändra ordning" #: ../src/ui-pref.c:1032 msgid "Currency API" msgstr "Valuta API" #: ../src/ui-pref.c:1036 msgid "Url:" msgstr "Webbadress:" #: ../src/ui-pref.c:1045 msgid "Key:" msgstr "Nyckel:" #: ../src/ui-pref.c:1075 msgid "General options" msgstr "Allmänna alternativ" #: ../src/ui-pref.c:1099 msgid "OFX/QFX options" msgstr "OFX/QFX-alternativ" #: ../src/ui-pref.c:1125 msgid "QIF options" msgstr "QIF-alternativ" #: ../src/ui-pref.c:1143 msgid "CSV options" msgstr "CSV-alternativ" #: ../src/ui-pref.c:1147 msgid "(transaction import only)" msgstr "(endast transaktionsimport)" #: ../src/ui-pref.c:1151 msgid "Separator:" msgstr "Avskiljare:" #: ../src/ui-pref.c:1211 msgid "Main window reports" msgstr "Huvudfönsterrapporter" #. removed 5.7 #. label = make_label_left(_("_Range:")); #. gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); #. widget = make_daterange(label, DATE_RANGE_CUSTOM_HIDDEN); #. data->CY_daterange_wal = widget; #. gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); #. #. row++; #: ../src/ui-pref.c:1224 msgid "Max _items:" msgstr "Max _poster:" #: ../src/ui-pref.c:1239 msgid "Initial filter" msgstr "Initialt filter" #: ../src/ui-pref.c:1258 msgid "Statistics options" msgstr "Statistikalternativ" #: ../src/ui-pref.c:1262 msgid "Show by _amount" msgstr "Visa efter _belopp" #: ../src/ui-pref.c:1267 msgid "Show _rate column" msgstr "Visa _räntekolumn" #: ../src/ui-pref.c:1272 ../src/ui-pref.c:1292 msgid "Show _details" msgstr "Visa _detaljer" #: ../src/ui-pref.c:1288 msgid "Budget options" msgstr "Budgetalternativ" #: ../src/ui-pref.c:1297 msgid "Exclude subcategories from unbudgeted line" msgstr "" #: ../src/ui-pref.c:1342 msgid "Enable _forecast" msgstr "A_ktivera prognos" #: ../src/ui-pref.c:1347 msgid "Month number:" msgstr "" #: ../src/ui-pref.c:1380 msgid "_Enable" msgstr "_Aktivera" #: ../src/ui-pref.c:1385 msgid "_Preset:" msgstr "_Förinställd:" #: ../src/ui-pref.c:1402 msgid "Configuration" msgstr "" #: ../src/ui-pref.c:1499 msgid "User interface" msgstr "Användargränssnitt" #: ../src/ui-pref.c:1503 msgid "_Language:" msgstr "_Språk:" #: ../src/ui-pref.c:1511 msgid "Date display:" msgstr "" #: ../src/ui-pref.c:1518 msgid "C_ustomize" msgstr "" #: ../src/ui-pref.c:1527 msgid "_Format:" msgstr "_Format:" #: ../src/ui-pref.c:1539 msgid "" "%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a " "decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded " "by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number." msgstr "" "%a språkets förkortade veckodagsnamn.\n" "%A språkets fullständiga veckodagsnamn.\n" "%b språkets förkortade månadsnamn.\n" "%B språkets fullständiga månadsnamn.\n" "%c språkets lämplig datum och tid representation.\n" "%C sekeltal (året dividerat med 100 och avkortat till ett heltal) som ett " "decimaltal [00-99].\n" "%d dag i månaden som ett decimaltal [01,31].\n" "%D samma som %m/%d/%y.\n" "%e dag i månaden som ett decimaltal [1,31]; En siffra föregås av ett " "mellanslag.\n" "%j dag på året som ett decimaltal [001 366].\n" "%m månad som ett decimaltal [01,12].\n" "%p språkets lämpliga datum representation.\n" "%y år utan sekel som ett decimaltal [00,99].\n" "%Y år med sekel som ett decimaltal." #: ../src/ui-pref.c:1570 msgid "Fiscal year" msgstr "Verksamhetsår" #. TRANSLATORS: (fiscal year) starts on #: ../src/ui-pref.c:1575 msgid "Starts _on:" msgstr "Börjar _den:" #: ../src/ui-pref.c:1596 msgid "Measurement units" msgstr "Mätningsenheter" #: ../src/ui-pref.c:1600 msgid "Use _miles for meter" msgstr "Använd _mil för meter" #: ../src/ui-pref.c:1605 msgid "Use _gallon for fuel" msgstr "Använd _gallon för bränsle" #: ../src/ui-pref.c:1633 msgid "Always show remind" msgstr "Visa alltid påminnelse" #: ../src/ui-pref.c:1638 msgid "Always show void" msgstr "Visa alltid tomrum" #: ../src/ui-pref.c:1643 msgid "Include remind into balance and report" msgstr "" #: ../src/ui-pref.c:1654 msgid "Safety" msgstr "" #: ../src/ui-pref.c:1658 msgid "Lock reconciled for any changes" msgstr "" #: ../src/ui-pref.c:1663 msgid "Approve additions before last reconciliation" msgstr "" #: ../src/ui-pref.c:1668 msgid "Approve additions" msgstr "" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending #: ../src/ui-pref.c:1677 msgid "days before today's date" msgstr "" #: ../src/ui-pref.c:1688 msgid "Ledger window" msgstr "" #: ../src/ui-pref.c:1700 msgid "_Show future:" msgstr "_Visa framtid:" #. TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date #: ../src/ui-pref.c:1709 msgid "days ahead" msgstr "dagar framåt" #: ../src/ui-pref.c:1713 msgid "Hide reconciled" msgstr "Dölj avstämda" #: ../src/ui-pref.c:1737 msgid "Transaction dialog" msgstr "Transaktionsdialog" #: ../src/ui-pref.c:1741 msgid "_Keep the last date when multiple add or inherit" msgstr "" #: ../src/ui-pref.c:1746 msgid "Enable _memo autocomplete with" msgstr "Aktivera automatisk komplettering av memot med" #: ../src/ui-pref.c:1752 msgid "rolling days" msgstr "rullande dagar" #: ../src/ui-pref.c:1756 msgid "Show add confirmation text for 5s" msgstr "Visa bekräftelsetext för lägg till i 5s" #: ../src/ui-pref.c:1761 msgid "Show template list when edit" msgstr "Visa malllista vid redigering" #: ../src/ui-pref.c:1787 msgid "Behavior" msgstr "" #: ../src/ui-pref.c:1791 msgid "When adding, always show selection _action for target dialog" msgstr "" #: ../src/ui-pref.c:1797 msgid "Date _gap to find a target:" msgstr "" #: ../src/ui-pref.c:1812 msgid "Synchronize" msgstr "" #: ../src/ui-pref.c:1816 msgid "_Date" msgstr "" #: ../src/ui-pref.c:1874 msgid "Theme" msgstr "" #: ../src/ui-pref.c:1879 msgid "Dark mode:" msgstr "" #: ../src/ui-pref.c:1882 msgid "System has no preference" msgstr "" #: ../src/ui-pref.c:1884 msgid "System prefer dark" msgstr "" #: ../src/ui-pref.c:1887 msgid "System prefer light" msgstr "" #: ../src/ui-pref.c:1894 msgid "Use _dark mode if available" msgstr "" #: ../src/ui-pref.c:1906 msgid "Icons" msgstr "" #: ../src/ui-pref.c:1910 msgid "_Icon theme:" msgstr "_Ikontema" #: ../src/ui-pref.c:1922 msgid "Use _symbolic icons if available" msgstr "" #: ../src/ui-pref.c:1935 msgid "Gtk settings" msgstr "Gtk-inställningar" #: ../src/ui-pref.c:1939 msgid "Ov_erride" msgstr "" #: ../src/ui-pref.c:1944 msgid "_Font size:" msgstr "" #: ../src/ui-pref.c:1973 msgid "Chart" msgstr "" #: ../src/ui-pref.c:1977 msgid "_Palette:" msgstr "" #: ../src/ui-pref.c:1999 msgid "Others" msgstr "" #: ../src/ui-pref.c:2003 msgid "_Use colors from the chart palette" msgstr "" #: ../src/ui-pref.c:2011 msgid "_Expense" msgstr "" #: ../src/ui-pref.c:2027 msgid "_Warning" msgstr "" #: ../src/ui-pref.c:2035 msgid "Background _future" msgstr "" #: ../src/ui-pref.c:2063 msgid "Color the _amounts" msgstr "" #: ../src/ui-pref.c:2068 msgid "Color the _background of future transactions" msgstr "" #. widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); #. data->CM_ruleshint = widget; #: ../src/ui-pref.c:2075 msgid "_Grid line:" msgstr "_Rutnätslinje:" #: ../src/ui-pref.c:2089 msgid "Charts options" msgstr "Diagramalternativ" #: ../src/ui-pref.c:2093 msgid "Smaller legend _font" msgstr "Mindre _teckenstorlek" #: ../src/ui-pref.c:2110 msgid "_Toolbar:" msgstr "_Verktygsfält:" #: ../src/ui-pref.c:2141 msgid "_Enable automatic backups" msgstr "_Använd automatisk säkerhetskopiering" #: ../src/ui-pref.c:2146 msgid "_Number of backups to keep:" msgstr "_ Antal säkerhetskopior att behålla:" #: ../src/ui-pref.c:2161 msgid "Backup frequency is once a day" msgstr "Frekvensen för säkerhetskopiering är en gång om dagen" #: ../src/ui-pref.c:2189 msgid "_Wallets:" msgstr "_Plånböcker:" #: ../src/ui-pref.c:2207 msgid "_Backups:" msgstr "Säkerhetskopia:" #: ../src/ui-pref.c:2233 msgid "Exchange files" msgstr "Utbyta filer" #: ../src/ui-pref.c:2237 msgid "_Import:" msgstr "_Importera:" #: ../src/ui-pref.c:2256 msgid "_Export:" msgstr "_Exportera:" #: ../src/ui-pref.c:2296 msgid "Program start" msgstr "Programstart" #: ../src/ui-pref.c:2300 msgid "Show splash screen" msgstr "Visa startskärm" #: ../src/ui-pref.c:2305 msgid "Load last opened file" msgstr "Öppna senast öppnade filen" #: ../src/ui-pref.c:2310 msgid "Post pending scheduled transactions" msgstr "Posta väntande schemalagda transaktioner" #: ../src/ui-pref.c:2315 msgid "Update currencies online" msgstr "Uppdatera valutor på nätet" #: ../src/ui-pref.c:2378 msgid "Reset All Preferences" msgstr "Återställ alla inställningar" #: ../src/ui-pref.c:2379 msgid "" "Do you really want to reset\n" "all preferences to default\n" "values?" msgstr "" "Vill du verkligen återställa\n" "alla inställningar till standardvärden?" #: ../src/ui-pref.c:2401 msgid "Preferences" msgstr "Inställningar" #: ../src/ui-pref.c:2682 ../src/ui-pref.c:2690 msgid "Info" msgstr "Info" #: ../src/ui-pref.c:2683 msgid "" "You will have to restart HomeBank\n" "for the language change to take effect." msgstr "" "Du måste starta om HomeBank för\n" "att språkändringarna ska träda i kraft." #: ../src/ui-pref.c:2691 msgid "" "The backup directory has changed,\n" "you may need to copy the '.bak' file to this new location." msgstr "" "Säkerhetskopieringsmappen har ändrats,\n" "du kan behöva kopiera \".bak\"-filen till denna nya plats." #: ../src/ui-tag.c:692 msgid "Delete unused tag" msgstr "Ta bort ej använda etiketter" #: ../src/ui-tag.c:693 msgid "" "Are you sure you want to\n" "permanently delete unused tag?" msgstr "" "Är du säker att du vill\n" "radera ej använda etikett?" #: ../src/ui-tag.c:844 msgid "Duplicate tag name. Try another name." msgstr "Denna etikett finns redan. Prova ett annat namn." #: ../src/ui-tag.c:879 msgid "Edit Tag" msgstr "Redigera etikett" #: ../src/ui-tag.c:952 #, c-format msgid "" "Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists." msgstr "" "Kan inte byta namn på den här taggen,\n" "från \"%s\" till \"%s\",\n" "detta namn finns redan." #: ../src/ui-tag.c:995 #, c-format msgid "Merge tag '%s'" msgstr "Sammanfoga taggen \"%s\"" #: ../src/ui-tag.c:1016 msgid "" "Transactions assigned to this tag,\n" "will be moved to the tag selected below." msgstr "" "Transaktioner som tilldelats denna tagg,\n" "kommer att flyttas till taggen som valts nedan." #: ../src/ui-tag.c:1026 #, c-format msgid "_Delete the tag '%s'" msgstr "_Ta bort taggen \"%s\"" #: ../src/ui-tag.c:1120 msgid "" "This tag is used.\n" "That tag will be deleted from any transaction using it." msgstr "" "Den här taggen används.\n" "Taggen tas bort från alla transaktioner som använder den." #: ../src/ui-tag.c:1268 msgid "Manage Tags" msgstr "Hantera taggar" #: ../src/ui-tag.c:1382 msgid "new tag" msgstr "ny tagg" #: ../src/ui-transaction.c:920 #, c-format msgid "Transaction of %s created." msgstr "Transaktion av %s skapad." #: ../src/ui-transaction.c:1053 msgid "" "Do you want to break the internal transfer?\n" "\n" "Proceeding will delete the target transaction." msgstr "" "Vill du bryta den interna överföringen?\n" "\n" "Om du fortsätter tas måltransaktionen bort." #: ../src/ui-transaction.c:1055 msgid "_Break" msgstr "_Bryt" #: ../src/ui-transaction.c:1375 msgid "Show _scheduled" msgstr "Visa _schemalagda" #: ../src/ui-transaction.c:1379 msgid "Show _all accounts" msgstr "Visa _all konton" #: ../src/ui-transaction.c:1408 msgid "Use a template" msgstr "Använd mall" #: ../src/ui-transaction.c:1516 msgid "Add & _Keep" msgstr "Lägg till & _behåll" #: ../src/ui-transaction.c:1530 msgid "Add transaction" msgstr "Lägg till transaktion" #: ../src/ui-transaction.c:1531 msgid "Add template" msgstr "Lägg till mall" #: ../src/ui-transaction.c:1535 msgid "Inherit transaction" msgstr "Ärv transaktion" #: ../src/ui-transaction.c:1537 msgid "Inherit template" msgstr "Ärv mallinställningar" #: ../src/ui-transaction.c:1540 msgid "Edit transaction" msgstr "Redigera transaktion" #: ../src/ui-transaction.c:1542 msgid "Edit template" msgstr "Redigera mall" #: ../src/ui-transaction.c:1584 ../src/ui-txn-multi.c:494 msgid "_Date:" msgstr "_Datum:" #. gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); #: ../src/ui-transaction.c:1599 msgid "" "- type: d, d/m, m/d a complete date\n" "- use arrow key + ctrl or shift\n" "- empty for today" msgstr "" "- typ: d, d/m, m/d ett fullständigt datum\n" "- Använd piltangent + ctrl eller skift\n" "- tom för idag" #: ../src/ui-transaction.c:1606 ../src/ui-transaction.c:1689 msgid "T_o:" msgstr "T_ill:" #: ../src/ui-transaction.c:1629 ../src/ui-txn-split.c:916 #: ../src/ui-txn-split.c:982 msgid "Transaction splits" msgstr "Transaktionsuppdelningar" #: ../src/ui-transaction.c:1657 msgid "No rate available to auto fill" msgstr "" #: ../src/ui-transaction.c:1670 ../src/ui-txn-multi.c:528 msgid "A_ccount:" msgstr "K_onto:" #: ../src/ui-transaction.c:1704 msgid "Book _2" msgstr "Bok _2" #. gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); #: ../src/ui-transaction.c:1729 ../src/ui-transaction.c:1750 msgid "" "- type some letter for autocompletion\n" "- type new text to create entry" msgstr "" "- skriv någon bokstav för automatisk komplettering\n" "- Skriv ny text för att skapa post" #: ../src/ui-transaction.c:1737 ../src/ui-txn-multi.c:597 msgid "Cate_gory:" msgstr "Kate_gori:" #: ../src/ui-transaction.c:1765 msgid "_Status:" msgstr "_Status:" #: ../src/ui-transaction.c:1785 ../src/ui-txn-multi.c:614 msgid "M_emo:" msgstr "Ant_eckning:" #: ../src/ui-transaction.c:1815 msgid "Warning: amount and category sign don't match" msgstr "Varning: summa och kategori matchar inte" #: ../src/ui-txn-multi.c:479 msgid "Multiple edit transactions" msgstr "Redigera flera transaktioner" #: ../src/ui-txn-multi.c:660 msgid "" "Type as\n" "transfer" msgstr "" "Skriv in som\n" "överföring" #: ../src/ui-txn-split.c:555 msgid "Do you want to delete all split lines" msgstr "" #: ../src/ui-txn-split.c:1047 msgid "Delete all" msgstr "Ta bort alla" #: ../src/ui-txn-split.c:1104 msgid "Prefix with -/+ to force the sign" msgstr "Prefix med -/+" #: ../src/ui-txn-split.c:1115 msgid "Apply" msgstr "Tillämpa" #: ../src/ui-txn-split.c:1119 msgid "Cancel" msgstr "Avbryt" #: ../src/ui-txn-split.c:1127 msgid "Transaction amount:" msgstr "Transaktionsbelopp:" #: ../src/ui-txn-split.c:1137 msgid "Unassigned:" msgstr "Otilldelad:" #: ../src/ui-txn-split.c:1153 msgid "Sum of splits:" msgstr "Summa av delar:" #: ../src/ui-txn-split.c:1166 msgid "Number of splits limit is reached" msgstr "" #: ../src/ui-txn-split.c:1174 msgid "Warning: sum of splits and transaction type don't match" msgstr "Varning: summan av splittringar och transaktionstyp matchar inte" #: ../src/ui-txn-split.c:1182 msgid "Warning: sum of splits and transaction amount don't match" msgstr "Warning: sum of splits and transaction amount don't match" #: ../src/ui-widgets-data.c:38 msgid "(no type)" msgstr "(ingen typ)" #: ../src/ui-widgets-data.c:39 msgid "Bank" msgstr "Bank" #: ../src/ui-widgets-data.c:40 ../src/ui-widgets.c:1554 msgid "Cash" msgstr "Kontant" #: ../src/ui-widgets-data.c:41 msgid "Asset" msgstr "Tillgång" #: ../src/ui-widgets-data.c:42 ../src/ui-widgets.c:1552 msgid "Credit card" msgstr "Kreditkort" #: ../src/ui-widgets-data.c:43 msgid "Liability" msgstr "Skuld" #: ../src/ui-widgets-data.c:44 msgid "Checking" msgstr "Checkkonto" #: ../src/ui-widgets-data.c:45 msgid "Savings" msgstr "Besparingar" #: ../src/ui-widgets-data.c:63 msgid "Daily" msgstr "" #: ../src/ui-widgets-data.c:64 msgid "Weekly" msgstr "" #: ../src/ui-widgets-data.c:66 msgid "Yearly" msgstr "" #: ../src/ui-widgets-data.c:71 msgid "day(s)" msgstr "" #: ../src/ui-widgets-data.c:72 msgid "week(s)" msgstr "" #: ../src/ui-widgets-data.c:73 msgid "month(s)" msgstr "" #: ../src/ui-widgets-data.c:74 msgid "year(s)" msgstr "" #: ../src/ui-widgets-data.c:81 msgid "First" msgstr "" #: ../src/ui-widgets-data.c:82 msgid "Second" msgstr "" #: ../src/ui-widgets-data.c:83 msgid "Third" msgstr "" #: ../src/ui-widgets-data.c:84 msgid "Fourth" msgstr "" #: ../src/ui-widgets-data.c:85 msgid "Last" msgstr "" #: ../src/ui-widgets-data.c:92 ../src/ui-widgets-data.c:195 msgid "Day" msgstr "Dag" #: ../src/ui-widgets-data.c:94 msgid "Monday" msgstr "" #: ../src/ui-widgets-data.c:95 msgid "Tuesday" msgstr "" #: ../src/ui-widgets-data.c:96 msgid "Wednesday" msgstr "" #: ../src/ui-widgets-data.c:97 msgid "Thursday" msgstr "" #: ../src/ui-widgets-data.c:98 msgid "Friday" msgstr "" #: ../src/ui-widgets-data.c:99 msgid "Saturday" msgstr "" #: ../src/ui-widgets-data.c:100 msgid "Sunday" msgstr "" #: ../src/ui-widgets-data.c:107 msgid "Possible" msgstr "Möjlig" #: ../src/ui-widgets-data.c:108 msgid "Before" msgstr "Före" #: ../src/ui-widgets-data.c:109 msgid "After" msgstr "Efter" #: ../src/ui-widgets-data.c:110 msgid "Skip" msgstr "Hoppa över" #: ../src/ui-widgets-data.c:159 msgid "Time" msgstr "Tid" #: ../src/ui-widgets-data.c:169 msgid "Account Group" msgstr "Kontogrupp" #: ../src/ui-widgets-data.c:172 ../src/ui-widgets-data.c:201 msgid "Year" msgstr "År" #: ../src/ui-widgets-data.c:196 msgid "Week" msgstr "Vecka" #: ../src/ui-widgets-data.c:197 msgid "Fortnight" msgstr "" #: ../src/ui-widgets-data.c:199 msgid "Quarter" msgstr "Kvartal" #: ../src/ui-widgets-data.c:200 msgid "Half Year" msgstr "Halvår" #: ../src/ui-widgets-data.c:213 msgid "Include" msgstr "Inkludera" #: ../src/ui-widgets-data.c:214 msgid "Exclude" msgstr "Uteslut" #: ../src/ui-widgets-data.c:220 msgid "Yesterday" msgstr "Igår" #: ../src/ui-widgets-data.c:222 msgid "Tomorrow" msgstr "Imorgon" #: ../src/ui-widgets-data.c:224 msgid "Last Week" msgstr "Förra veckan" #: ../src/ui-widgets-data.c:225 msgid "This Week" msgstr "Denna veckan" #: ../src/ui-widgets-data.c:226 msgid "Next Week" msgstr "Nästa vecka" #: ../src/ui-widgets-data.c:228 msgid "Last Fortnight" msgstr "" #: ../src/ui-widgets-data.c:229 msgid "This Fortnight" msgstr "" #: ../src/ui-widgets-data.c:230 msgid "Next Fortnight" msgstr "" #: ../src/ui-widgets-data.c:237 msgid "Last Month" msgstr "Förra månaden" #: ../src/ui-widgets-data.c:238 msgid "This Month" msgstr "Denna månaden" #: ../src/ui-widgets-data.c:239 msgid "Next Month" msgstr "Nästa månad" #: ../src/ui-widgets-data.c:241 msgid "Last Quarter" msgstr "Senaste kvartalet" #: ../src/ui-widgets-data.c:242 msgid "This Quarter" msgstr "Detta kvartalet" #: ../src/ui-widgets-data.c:243 msgid "Next Quarter" msgstr "Nästa kvartal" #: ../src/ui-widgets-data.c:245 msgid "Last Year" msgstr "Föregående år" #: ../src/ui-widgets-data.c:246 msgid "This Year" msgstr "Detta året" #: ../src/ui-widgets-data.c:247 msgid "Next Year" msgstr "Nästa år" #: ../src/ui-widgets-data.c:258 msgid "Year to date" msgstr "" #: ../src/ui-widgets-data.c:259 msgid "Month to date" msgstr "" #: ../src/ui-widgets-data.c:260 msgid "All to date" msgstr "" #: ../src/ui-widgets-data.c:265 msgid "Last 90 Days" msgstr "Senaste 90 dagarna" #: ../src/ui-widgets-data.c:266 msgid "Last 60 Days" msgstr "Senaste 60 dagarna" #: ../src/ui-widgets-data.c:267 msgid "Last 30 Days" msgstr "Senaste 30 dagarna" #: ../src/ui-widgets-data.c:273 msgid "Last 12 Months" msgstr "Senaste 12 månaderna" #: ../src/ui-widgets-data.c:274 msgid "30 Days Around" msgstr "" #: ../src/ui-widgets-data.c:275 msgid "All Date" msgstr "Alla datum" #. 5.7 added back #: ../src/ui-widgets-data.c:282 msgid "Custom" msgstr "Anpassad" #: ../src/ui-widgets-data.c:288 msgid "This month" msgstr "Denna månad" #: ../src/ui-widgets-data.c:289 msgid "Next month" msgstr "Nästa månad" #: ../src/ui-widgets-data.c:291 msgid "Next 30 days" msgstr "Kommande 30 dagar" #: ../src/ui-widgets-data.c:292 msgid "Next 60 days" msgstr "Kommande 60 dagar" #: ../src/ui-widgets-data.c:293 msgid "Next 90 days" msgstr "Kommande 90 dagar" #: ../src/ui-widgets-data.c:295 msgid "Maximum Post Date" msgstr "" #: ../src/ui-widgets-data.c:305 msgid "Exp. & Inc." msgstr "Utg. & ink." #: ../src/ui-widgets-data.c:314 msgid "Any Type" msgstr "Alla typer" #: ../src/ui-widgets-data.c:325 msgid "Any Status" msgstr "Alla status" #: ../src/ui-widgets-data.c:328 msgid "Uncleared" msgstr "Orensad" #: ../src/ui-widgets-data.c:330 msgid "Unreconciled" msgstr "Oavstämd" #: ../src/ui-widgets-data.c:332 msgid "Uncategorized" msgstr "Okategoriserad" #. 5.9 #: ../src/ui-widgets-data.c:334 msgid "Unapproved" msgstr "" #: ../src/ui-widgets-data.c:343 msgid "System defaults" msgstr "Systemets standardvärden" #: ../src/ui-widgets-data.c:344 msgid "Icons only" msgstr "Endast ikoner" #: ../src/ui-widgets-data.c:345 msgid "Text only" msgstr "Endast text" #: ../src/ui-widgets-data.c:346 msgid "Text under icons" msgstr "Text under ikoner" #: ../src/ui-widgets-data.c:347 msgid "Text beside icons" msgstr "Text bredvid ikoner" #: ../src/ui-widgets-data.c:354 msgid "Horizontal" msgstr "Horisontell" #: ../src/ui-widgets-data.c:355 msgid "Vertical" msgstr "Vertikal" #: ../src/ui-widgets-data.c:356 msgid "Both" msgstr "Båda" #: ../src/ui-widgets-data.c:361 msgid "m-d-y" msgstr "m-d-å" #: ../src/ui-widgets-data.c:362 msgid "d-m-y" msgstr "d-m-å" #: ../src/ui-widgets-data.c:363 msgid "y-m-d" msgstr "å-m-d" #: ../src/ui-widgets-data.c:368 ../src/ui-widgets-data.c:376 msgid "Ignore" msgstr "Ignorera" #: ../src/ui-widgets-data.c:377 msgid "Append to Number" msgstr "" #: ../src/ui-widgets-data.c:378 msgid "Append to Memo" msgstr "Bifoga till anteckning" #: ../src/ui-widgets-data.c:379 msgid "Append to Payee" msgstr "Bifoga till betalningsmottagare" #: ../src/ui-widgets-data.c:384 msgid "Tab" msgstr "Flik" #: ../src/ui-widgets-data.c:385 msgid "Comma" msgstr "Kommatecken" #: ../src/ui-widgets-data.c:386 msgid "Semicolon" msgstr "Semikolon" #: ../src/ui-widgets-data.c:387 msgid "Space" msgstr "Blanksteg" #: ../src/ui-widgets-data.c:395 msgid "January" msgstr "Januari" #: ../src/ui-widgets-data.c:396 msgid "February" msgstr "Februari" #: ../src/ui-widgets-data.c:397 msgid "March" msgstr "Mars" #: ../src/ui-widgets-data.c:398 msgid "April" msgstr "April" #: ../src/ui-widgets-data.c:400 msgid "June" msgstr "Juni" #: ../src/ui-widgets-data.c:401 msgid "July" msgstr "Juli" #: ../src/ui-widgets-data.c:402 msgid "August" msgstr "Augusti" #: ../src/ui-widgets-data.c:403 msgid "September" msgstr "September" #: ../src/ui-widgets-data.c:404 msgid "October" msgstr "Oktober" #: ../src/ui-widgets-data.c:405 msgid "November" msgstr "November" #: ../src/ui-widgets-data.c:406 msgid "December" msgstr "December" #: ../src/ui-widgets-data.c:423 msgid "Sep" msgstr "Sep" #: ../src/ui-widgets.c:575 msgid "Search..." msgstr "Sök..." #: ../src/ui-widgets.c:1482 msgid "Any flag" msgstr "" #: ../src/ui-widgets.c:1553 msgid "Check" msgstr "Check" #: ../src/ui-widgets.c:1555 msgid "Bank Transfer" msgstr "Banköverföring" #: ../src/ui-widgets.c:1556 msgid "Debit card" msgstr "Betalkort" #: ../src/ui-widgets.c:1557 msgid "Standing order" msgstr "Stående order" #: ../src/ui-widgets.c:1558 msgid "Electronic payment" msgstr "Elektronisk betalning" #: ../src/ui-widgets.c:1559 msgid "Deposit" msgstr "Insättning" #. TRANSLATORS: Financial institution fee #: ../src/ui-widgets.c:1561 msgid "FI fee" msgstr "Finansinstitutsavgift" #: ../src/ui-widgets.c:1562 msgid "Direct Debit" msgstr "Autogiro" #. #1817274 #: ../src/ui-widgets.c:1564 msgid "Mobile Phone" msgstr "Mobiltelefon" homebank-5.9.1/config.guess0000755000175000017500000012605111023413026011310 #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2006-02-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS_NT-*:*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[345]*) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T:Interix*:[345]*) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: homebank-5.9.1/config.sub0000755000175000017500000007713011023413026010756 #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2006-02-23' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m32c) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; m32c-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: homebank-5.9.1/depcomp0000755000175000017500000003710011023413026010341 #! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: homebank-5.9.1/Makefile.am0000644000175000017500000000165114322523705011035 # HomeBank Makefile.am #SUBDIRS = src SUBDIRS = src data images mime pixmaps themes po doc datasdir = $(datadir)/homebank/datas/ datas_DATA = \ ChangeLog EXTRA_DIST = $(datas_DATA) # don't forget to do a 'make check' # to ensure all files are in po/POTFILES.in #pot: Makefile #${MAKE} -C po $(PACKAGE).pot INTLTOOL_FILES = intltool-extract.in \ intltool-merge.in \ intltool-update.in DISTCLEANFILES = ... intltool-extract \ intltool-merge \ intltool-update \ po/.intltool-merge-cache # we clean every folder under /usr/share/homebank as well on uninstall uninstall-hook: -rm -rf $(datadir)/homebank/datas -rm -rf $(datadir)/homebank/help -rm -rf $(datadir)/homebank/icons -rm -rf $(datadir)/homebank/images -rm -rf $(datadir)/homebank -rm -rf $(datadir)/appdata/homebank.appdata.xml #-rmdir $(datadir)/homebank homebank-5.9.1/data/0000775000175000017500000000000015006374031007765 5homebank-5.9.1/data/homebank.desktop.in.in0000644000175000017500000000047712603766713014120 [Desktop Entry] _Name=HomeBank _GenericName=Personal finance _Comment=Free, easy, personal accounting for everyone _Keywords=finance;accounting;budget;personal;money; Exec=homebank %f Terminal=false StartupNotify=true Type=Application Icon=homebank Categories=GNOME;GTK;Office;Finance; MimeType=application/x-homebank; homebank-5.9.1/data/datas/0000775000175000017500000000000015006374031011061 5homebank-5.9.1/data/datas/hb-categories-pt.csv0000644000175000017500000000526411374317671014673 1;-;Pensão de alimentos 1;-;Automóvel 2;-;Pagamento de carro 2;-;Gasoline 2;-;Manutenção 1;-;Os encargos bancários 2;-;Juros pagos 2;-;Taxa de Serviço 1;-;Notas 2;-;TV a cabo / satélite 2;-;Celular 2;-;Celular 2;-;Electricidade 2;-;Lixo e Reciclagem 2;-;Health Club 2;-;Dues Home-proprietário 2;-;Taxas de Associação 2;-;Pagamento de Hipoteca 2;-;Gás Natural / Óleo 2;-;Diário 2;-;Serviço de On-line/Internet 2;-;O pagamento do empréstimo Outros 2;-;Rent 2;-;O pagamento do empréstimo de estudante 2;-;Telefone 2;-;Água e Esgoto 1;-;Retirar Dinheiro 1;-;Doações 1;-;Childcare 1;-;Crianças / brinquedos 2;-;Apoio à Criança 2;-;Creche 1;-;Vestuário 1;-;Pagamentos com cartão de crédito / Transfers 1;-;Dining Out 1;-;Educação 2;-;Livros 2;-;Taxas 2;-;Mensalidades 1;-;Diversão 1;-;Honorários 1;-;Comida 1;-;Presentes 1;-;Mercearia 1;-;Cuidados de saúde 2;-;Dental 2;-;Eye de cuidados 2;-;Hospital 2;-;Médico 2;-;Prescrição 1;-;Hobbies e Lazer 2;-;Livros e Revistas 2;-;Eventos Culturais 2;-;Entertaining 2;-;Cinema e Video Rentals 2;-;Eventos Esportivos 2;-;Esporte e Lazer 2;-;Tapes & CDs 2;-;Brinquedos e Games 1;-;Home Improvement 1;-;Casa 2;-;Mobiliário 2;-;Lavagem House 2;-;Serviço de Quintal 1;-;Seguro 2;-;Automobile 2;-;Saúde 2;-;Home-proprietário / locatário do 2;-;Life 1;-;Trabalho Despesa 2;-;Não reembolsáveis 2;-;Reembolso 1;-;Empréstimo 2;-;Juros de empréstimos 2;-;Interesse Mortgage 2;-;Juros do empréstimo de estudante 1;-;Variado 1;-;Mortgage / Rent 1;-;Cuidados Pessoais 1;-;Pet Care 2;-;Alimentos 2;-;Suprimentos 2;-;Veterinário 1;-;Telefone / Wireless 1;-;Serviços / Associações 1;-;Impostos 2;-;Imposto de Renda Federal 2;-;Ano Receita Federal Tax-Anterior 2;-;Imposto de Renda Local 2;-;Imposto sobre Medicare 2;-;Outros Impostos 2;-;Real Estate Impostos 2;-;Imposto sobre Vendas 2;-;Imposto de Segurança Social 2;-;Imposto de Renda Estado 2;-;Estadual / municipal 1;-;Viagens de férias / 2;-;Hospedagem 2;-;Viagem 1;-;Utilitários 1;+;Renda / Juros 1;+;Rendimento de Investimento 2;+;Ganhos de Capital 2;+;Dividendos 2;+;Juros 2;+;Interesse tax-exempt 1;+;Não é uma despesa 1;+;Outras receitas 2;+;Apoio à Criança Recebido 2;+;Employee Stock Option 2;+;Dons recebidos 2;+;Principal empréstimo recebido 2;+;Loterias 2;+;Restituição Imposto Estadual e Municipal 2;+;Compensação de desemprego 1;+;Renda de aposentadoria 2;+;Distribuição IRA 2;+;Pensões e Anuidades 2;+;Benefícios Sociais Segurança 1;+;Salário e Salário 2;+;Bonus 2;+;Comissão 2;+;Correspondência de Empregador 2;+;Remuneração Bruta 2;+;Net Pay 2;+;Overtime homebank-5.9.1/data/datas/hb-categories-it.csv0000644000175000017500000000527611374317662014667 1;-;Alimenti 1;-;Automobile 2;-;Auto di pagamento 2;-;Benzina 2;-;Manutenzione 1;-;Le spese bancarie 2;-;Interessi pagamento 2;-;Servizio di carica 1;-;Banconote 2;-;Cavo / Satellite Television 2;-;Cell Phone 2;-;Cellular 2;-;Elettricità 2;-;Rifiuti e riciclaggio 2;-;Health Club 2;-;Home-proprietario Quote 2;-;Quota di Adesione 2;-;Ipoteca di pagamento 2;-;Gas naturale / olio 2;-;Giornale 2;-;Servizio On-line/Internet 2;-;Pagamento altro prestito 2;-;Affitto 2;-;Studente prestito di pagamento 2;-;Telefono 2;-;Acqua e fogna 1;-;Prelievo di contanti 1;-;Donazioni di beneficenza 1;-;Childcare 1;-;I bambini / Giocattoli 2;-;Child Support 2;-;Asilo 1;-;Abbigliamento 1;-;Pagamenti con carta di credito / Trasferimenti 1;-;Dining Out 1;-;Istruzione 2;-;Libri 2;-;Tasse 2;-;Tasse scolastiche 1;-;Divertimento 1;-;Tasse 1;-;Cibo 1;-;Regali 1;-;Alimentari 1;-;Di assistenza sanitaria 2;-;Dental 2;-;Eye-care 2;-;Ospedale 2;-;Medico 2;-;Prescrizioni 1;-;Hobby / tempo libero 2;-;Libri e Riviste 2;-;Eventi Culturali 2;-;Divertente 2;-;Film e video Affitti 2;-;Manifestazioni Sportive 2;-;Sporting Goods 2;-;Nastri e CD 2;-;Giocattoli e giochi 1;-;Home Improvement 1;-;Famiglia 2;-;Arredamento 2;-;La pulizia della casa 2;-;Cantiere di servizio 1;-;Assicurazione 2;-;Automobile 2;-;Salute 2;-;Home-proprietario / Renter 2;-;Life 1;-;Job Expense 2;-;Non rimborsabili 2;-;Rimborsati 1;-;Prestito 2;-;Prestito senza interessi 2;-;Interessi ipotecari 2;-;Studente di interessi sui prestiti 1;-;Varie 1;-;Ipoteca / Affitto 1;-;Personal Care 1;-;Pet Care 2;-;Cibo 2;-;Forniture 2;-;Veterinario 1;-;Telefono / Wireless 1;-;Servizi / Associazioni 1;-;Tasse 2;-;Imposta federale sul reddito 2;-;Anno federale sul reddito fiscale precedente 2;-;Imposta locale sui redditi 2;-;Tassa di Medicare 2;-;Altre imposte 2;-;Tasse Immobiliari 2;-;Tasse di vendita 2;-;Tassa di sicurezza sociale 2;-;Stato di imposta sul reddito 2;-;Stato / Provincia 1;-;Viaggi / Vacanze 2;-;Alloggio 2;-;Viaggi 1;-;Utilità 1;+;Reddito / Interessi 1;+;Redditi da capitale 2;+;Utili di capitale 2;+;Dividendi 2;+;Interessi 2;+;Interessi di esenzione fiscale 1;+;Non è una spesa 1;+;Altri proventi 2;+;Supporto bambino ha ricevuto 2;+;Dipendente di Stock Option 2;+;Doni ricevuti 2;+;Principali prestito ricevuto 2;+;Lotterie 2;+;Stato e locali Tax Refund 2;+;Disoccupazione Compensazione 1;+;Redditi da pensione 2;+;Distribuzione IRA 2;+;Pensioni e vitalizi 2;+;Le prestazioni di sicurezza sociale 1;+;Salario e stipendio 2;+;Bonus 2;+;Commissione 2;+;Datore di lavoro di corrispondenza 2;+;Retribuzione lorda 2;+;La retribuzione netta 2;+;Lavoro straordinario homebank-5.9.1/data/datas/hb-categories-ru.csv0000644000175000017500000001121512532111546014655 1;-;Автомобили и мотоциклы 2;-;Выплаты по кредиту 2;-;Принадлежности 2;-;Стоянка и дорожный налог 2;-;Страхование 2;-;Техническое обслуживание 2;-;Топливо 1;-;Банковские расходы 2;-;Банковские начисления 2;-;Банковское обслуживание 2;-;Выплаченные проценты 2;-;Платежи по картам и кредитам 2;-;Различные расходы 1;-;Бытовые принадлежности 2;-;Мебель 2;-;Работы и инструменты 2;-;Электроприборы 1;-;Дети 2;-;Выплаты по кредиту на обучение 2;-;Детский сад и услуги няни 2;-;Оплата обучения 2;-;Питание в столовой 2;-;Различные расходы 2;-;Спортивная и культурная деятельность 2;-;Страхование 1;-;Домашние животные 2;-;Ветеринарные услуги 2;-;Корма 2;-;Различные расходы 1;-;Здоровье 2;-;Больница 2;-;Врачебные услуги 2;-;Добровольное медицинское страхование 2;-;Лекарства 2;-;Массаж 2;-;Офтальмология 2;-;Стоматология 1;-;Личная гигиена 2;-;Парикмахерская и косметология 2;-;Фитнесс и SPA 1;-;Налоги и сборы 2;-;Другие налоги 2;-;Местные налоги 2;-;Налог на имущество 2;-;Подоходный налог 2;-;Подоходный налог за прошлый год 2;-;Социальное страхование 1;-;Одежда 2;-;Аксессуары 2;-;Обувь 2;-;Спецодежда и обмундирование 1;-;Отдых, культура и спорт 2;-;Видеопрокат 2;-;Газеты и журналы 2;-;Игры 2;-;Кино и театр 2;-;Книги 2;-;Музеи и выставки 2;-;Покупка CD и DVD 2;-;Спортивная деятельность 2;-;Спортивные мероприятия 2;-;Спортивные товары 1;-;Отпуск и путешествия 2;-;Жильё 2;-;Питание 2;-;Проезд 2;-;Прокат автомобиля 2;-;Различные расходы 2;-;Страхование 2;-;Экскурсии 1;-;Питание 2;-;Бакалейные товары 2;-;Кафе и бары 2;-;Рестораны 1;-;Подписки и счета 2;-;Арендная плата 2;-;Водоснабжение 2;-;Выплаты по ипотечному кредиту 2;-;Выплаты по потребительскому кредиту 2;-;Домашнее хозяйство 2;-;Интернет 2;-;Кабельное и спутниковое телевидение 2;-;Мобильная связь 2;-;Отопление 2;-;Страхование жилья 2;-;Текущий ремонт 2;-;Телефон 2;-;Эксплуатационные затраты 2;-;Электричество 1;-;Разное 2;-;Благотворительные пожертвования 2;-;Гражданская ответственность 2;-;Подарки 2;-;Снятие наличных 1;-;Сбережения 2;-;Вклады и прочее 2;-;Страхование жизни 1;-;Служебные расходы 2;-;Возмещаемые 2;-;Невозмещаемые 1;-;Транспорт 2;-;Метро, автобусы 2;-;Поезда 2;-;Самолёты 2;-;Такси 1;+;Другие доходы 2;+;Выигрыши 2;+;Налоговый кредит 2;+;Наследство 2;+;Опцион на акции 2;+;Полученные подарки 2;+;Пособие по безработице 2;+;Производственная травма 2;+;Семейное пособие 2;+;Ссудный капитал 1;+;Жалование и заработная плата 2;+;Выплаты работодателя 2;+;Комиссионное вознаграждение 2;+;Начисленная сумма 2;+;Плата за сверхурочную работу 2;+;Различные надбавки 2;+;Сумма к выплате 1;+;Инвестиции 2;+;Дивиденды 2;+;Доход от сдачи жилья в аренду 2;+;Повышение стоимости недвижимости 2;+;Прирост капитала 2;+;Проценты 1;+;Пенсия 2;+;Дополнительные выплаты 2;+;Пенсия по возрасту 2;+;Социальные пособия homebank-5.9.1/data/datas/hb-categories-es.csv0000644000175000017500000000557211425013520014640 1;-;Pensión alimenticia 1;-;Automóvil 2;-;Pago de Automóvil 2;-;Gasolina 2;-;Mantenimiento 1;-;Cargos del Banco 2;-;Interés Pagado 2;-;Servicio de carga 1;-;Billetes 2;-;Cable / Televisión por satélite 2;-;Cell Phone 2;-;Celular 2;-;Electricidad 2;-;Basura y Reciclaje 2;-;Health Club 2;-;Inicio-propietario de Cuotas 2;-;Cuotas de Afiliación 2;-;Hipoteca de Pago 2;-;Gas Natural / Gas 2;-;Periódico 2;-;Servicio de On-line/Internet 2;-;El pago del préstamo Otros 2;-;Alquiler 2;-;Pago de Préstamo Estudiantil 2;-;Teléfono 2;-;Agua y Alcantarillado 1;-;Retiro de efectivo 1;-;Donaciones caritativas 1;-;Cuidado de niños 1;-;Los niños / Juguetes 2;-;Manutención de Niños 2;-;Guardería 1;-;Ropa 1;-;Pagos con tarjeta de crédito / Transferencias 1;-;Comer fuera 1;-;Educación 2;-;Libros 2;-;Honorarios 2;-;Matrícula 1;-;Entretenimiento 1;-;Tasas 1;-;Comida 1;-;Regalos 1;-;Comestibles 1;-;Atención de la salud 2;-;Dental 2;-;De atención oftálmica 2;-;Hospital 2;-;Médico 2;-;Prescripciones 1;-;Aficiones / Ocio 2;-;Libros y Revistas 2;-;Eventos culturales 2;-;Entretenido 2;-;Cine y Video de Alquiler 2;-;Eventos Deportivos 2;-;Artículos Deportivos 2;-;Cintas y CDs 2;-;Juguetes y juegos 1;-;Mejoras para el hogar 1;-;Casa 2;-;Muebles 2;-;Limpieza de Casas 2;-;Patio de servicio 1;-;Seguro 2;-;Automóvil 2;-;Salud 2;-;Inicio-propietario / arrendatario 2;-;La vida 1;-;Empleo de gastos 2;-;No Reembolso 2;-;Reembolso 1;-;Préstamo 2;-;Préstamos de Interés 2;-;Hipoteca de Interés 2;-;Interés de préstamos estudiantiles 1;-;Misceláneo 1;-;Hipoteca / Alquiler 1;-;Cuidado Personal 1;-;Cuidado de Mascotas 2;-;Alimentación 2;-;Suministros 2;-;Médico Veterinario 1;-;Teléfono / Wireless 1;-;Servicios / Asociaciones 1;-;Impuestos 2;-;Impuesto sobre la Renta Federal 2;-;Año de impuestos sobre la renta federal anterior 2;-;Impuesto sobre la Renta Local 2;-;Impuesto sobre Medicare 2;-;Otros Impuestos 2;-;Impuestos sobre bienes raíces 2;-;Impuesto a las Ventas 2;-;Impuesto de la Seguridad Social 2;-;Estado Impuesto a la Renta 2;-;Estado / Provincia 1;-;Agencia de viajes / vacaciones 2;-;Alojamiento 2;-;Viajes 1;-;Utilidades 1;+;Ingresos / Interés 1;+;Ingresos por inversiones 2;+;Ganancias de Capital 2;+;Dividendos 2;+;Interés 2;+;Intereses exentos de impuestos 1;+;No un gasto 1;+;Otros Ingresos 2;+;Mantenimiento de hijos recibido 2;+;Empleado de Opciones sobre Acciones 2;+;Recibidos 2;+;Director del préstamo recibido 2;+;Loterías 2;+;Departamental y Local Devolución de impuestos 2;+;Compensación por Desempleo 1;+;Ingresos de Jubilación 2;+;Distribución del IRA 2;+;Las pensiones y anualidades 2;+;Beneficios del Seguro Social 1;+;Salarios y sueldos 2;+;Bono 2;+;Comisión 2;+;El empleador concordantes 2;+;Ingreso Bruto 2;+;Salario neto 2;+;Horas extraordinarias homebank-5.9.1/data/datas/hb-categories-hu.csv0000664000175000017500000000534613436221666014666 1;-;Adók 2;-;Illetékek 2;-;Kommunális adó 2;-;Telekadó 2;-;Építményadó 1;-;Közlekedés, gépjárművek 2;-;Bérlet 2;-;Jegy 2;-;Üzemanyag 2;-;Parkolás 2;-;Autópálya-matrica 2;-;Súlyadó 2;-;KGFB, Casco 2;-;Műszaki vizsga 2;-;Szerviz 2;-;Autóápolás 1;-;Banki ügyek 2;-;Szolgáltatási díj 2;-;Kártyadíjak 2;-;Kamatfizetés 2;-;Életbiztosítás 2;-;Kötvények 2;-;Babakötvény 2;-;Nyugdíjpénztár 2;-;Megtakarítások 2;-;Részvények, állampapírok 2;-;Lekötött betétek 2;-;Lakástakarék 2;-;Befektetések 1;-;Hitel 2;-;Hitelkártya 2;-;Áruvásárlási hitel 2;-;Lakáshitel 2;-;Diákhitel 2;-;Jelzáloghitel 2;-;Lízing 2;-;Személyi kölcsön 1;-;Kommunikáció 2;-;Telefon 2;-;Mobil 2;-;Internet 2;-;TV 2;-;Újság 1;-;Ház, lakás 2;-;Lakbér 2;-;Bútorok 2;-;Háztartási textilek 2;-;Berendezési tárgyak 2;-;Elektronikai cikkek 2;-;Konyhai eszközök 2;-;Otthonbiztosítás 2;-;Felújítás 1;-;Háztartás, rezsi 2;-;Közös költség 2;-;Szemétszállítás 2;-;Víz- és csatornadíj 2;-;Földgáz vagy olaj 2;-;Áram 2;-;Fűtés 2;-;Távhő 2;-;Tűzifa 2;-;Takarítószerek 2;-;Bejárónő 1;-;Gyerekek 2;-;Játékok 2;-;Óvodai csoportpénz 2;-;Osztálypénz 2;-;Zsebpénz 2;-;Közétkeztetés 2;-;Bébiszitter 2;-;Tartásdíj 1;-;Közösség 2;-;Tagdíj 2;-;Klubtagság 1;-;Szórakozás és kultúra 2;-;Hobbi 2;-;Utazás 2;-;Szállás 2;-;Nyaralás 2;-;Belépők 2;-;Kulturális események 2;-;Mozi 2;-;Színház, hangversenyek, opera 2;-;Sportesemények 2;-;Étterem, cukrászda 1;-;Sport 2;-;Bérletek, tagsági díjak 2;-;Sportcikkek 2;-;Sportruházat 1;-;Ruházat 2;-;Napi ruházat 2;-;Alkalmi öltözet 2;-;Évszakfüggő ruházat 2;-;Munkaruházat 2;-;Cipő 1;-;Testápolás 2;-;Higiéniai cikkek 2;-;Testápolási cikkek 2;-;Kozmetikumok 2;-;Szépségszalon 1;-;Egészség 2;-;Magánorvos 2;-;Magánkórház 2;-;Gyógyszerek 2;-;Fogászat 2;-;Optikus 1;-;Tanulás 2;-;Tanszerek 2;-;Tandíj 2;-;Tanfolyamdíjak 2;-;Különórák 2;-;Könyvek 1;-;Étkezés 2;-;Élelmiszer-vásárlás 2;-;Menza 2;-;Nasi és italok 2;-;Élvezeti cikkek 1;-;Adományok és ajándékok 2;-;Jótékonysági adomány 2;-;Havi rendszeres adakozás 2;-;Ajándékok 2;-;Tized 1;-;Állattartás, kedvencek 2;-;Állatorvos 2;-;Eledel 2;-;Alom 1;+;Munkáltatás 2;+;Fizetés 2;+;Béren kívüli juttatás 2;+;Bónusz 2;+;Jutalom 2;+;Cafeteria 1;+;Állami és önkormányzati juttatások 2;+;Önkormányzati segély 2;+;Munkanélküli segély 2;+;Segély 2;+;Családi pótlék 2;+;Anyasági támogatás 2;+;CSED 2;+;GYED 2;+;GYES 2;+;Gyermeknevelési támogatás 2;+;Táppénz 2;+;Nyugdíj 1;+;Ajándékok 1;+;Családi támogatások 2;+;Szülői támogatás 2;+;Tartásdíj 1;+;Ösztöndíj 1;+;Befektetési nyereségek 2;+;Osztalék 2;+;Jutalék 2;+;Bérleti díj homebank-5.9.1/data/datas/hb-categories-fr_CA.csv0000664000175000017500000000523514002765335015215 1;-;Abonnement/factures 2;-;Assurance habitation 2;-;Charges 2;-;Chauffage 2;-;Eau 2;-;Électricité 2;-;Internet 2;-;Loyer 2;-;Ménage 2;-;Cellulaire 2;-;Remb. crédit conso 2;-;Remb. prêt immobilier 2;-;Salarié à domicile 2;-;Service d'entretien 2;-;Téléphone 2;-;TV/Câble 1;-;Alimentation 2;-;Café/bar 2;-;Épicerie 2;-;Restaurant 1;-;Animaux domestiques 2;-;Alimentation 2;-;Fournitures diverses 2;-;Frais de garde 2;-;Vétérinaire 1;-;Auto/moto 2;-;Accessoires 2;-;Assurance Auto/moto 2;-;Carburant 2;-;Entretien/réparations 2;-;Stationnement/péage 2;-;Remb. de prêt 1;-;Divers 2;-;Cadeaux 2;-;Dons caritatifs 2;-;Responsabilité civile 2;-;Retrait d'espèces 1;-;Enfants 2;-;Activité sportive/culturelle 2;-;Assurance scolaire 2;-;Frais de cantine 2;-;Frais de garde 2;-;Frais de scolarité 2;-;Frais divers 2;-;Remb. prêt étudiant 1;-;Épargne 2;-;Assurancevie 2;-;Livrets/Divers 1;-;Équipement du logement 2;-;Ameublement 2;-;Bricolage / Outils 2;-;Électroménager 2;-;Jardinage 2;-;Ordinateur et accessoires 2;-;Remb. de crédit équipement 2;-;Télévision et accessoires 2;-;Travaux / Décoration 1;-;Frais bancaires 2;-;Agios 2;-;Carte de paiement/de crédit 2;-;Frais divers 2;-;Intérêts versés 2;-;Services / Abonnement 1;-;Frais professionnels 2;-;Non remboursés 2;-;Remboursés 1;-;Habillement 2;-;Accessoires 2;-;Chaussures 2;-;Vêtements 1;-;Impôts 2;-;Autres impôts 2;-;Cotisations Sécurité sociale 2;-;Impôts locaux 2;-;Impôts sur le revenu 2;-;Impôts sur le revenuAnnée préc. 1;-;Loisirs/culture/sport 2;-;Activité sportive 2;-;Articles de sport 2;-;Achat CD/DVD 2;-;Cinéma/spectacle 2;-;Jeux 2;-;Journaux 2;-;Livres 2;-;Location DVD 2;-;Manifestation sportives 2;-;Musées/expositions 1;-;Santé 2;-;Complémentaire santé 2;-;Dentiste 2;-;Hôpital 2;-;Kinésithérapeute 2;-;Médecin 2;-;Oculiste 2;-;Pharmacie 1;-;Soin de la personne 2;-;Coiffeur/esthéticienne 2;-;Entraînement physique 1;-;Transport 2;-;Avion 2;-;Métro/Bus/Train 2;-;Taxis 1;-;Vacances 2;-;Alimentation/restaurant 2;-;Assurance voyage 2;-;Divers 2;-;Excursion/visite 2;-;Location de voiture 2;-;Logement 2;-;Séjours 2;-;Voyage 1;+;Autres revenus 2;+;Accident du travail 2;+;Allocations de chômage 2;+;Allocations familiales 2;+;Capital de prêt reçu 2;+;Crédit d'impôts 2;+;Dons et cadeaux 2;+;Héritage 2;+;Jeux 2;+;Option d'achat d'actions 1;+;Placements 2;+;Dividendes 2;+;Intérêts 2;+;Plusvalues 2;+;Plusvalues immobilières 2;+;Revenus locatifs 1;+;Retraite 2;+;Pensions 2;+;Régime général 2;+;Retraite complémentaire 1;+;Traitements et salaires 2;+;Commissions 2;+;Contributions employeur 2;+;Heures supplémentaires 2;+;Primes diverses 2;+;Primes résultat 2;+;Salaire net homebank-5.9.1/data/datas/hb-categories-ro.csv0000644000175000017500000000535711374317700014664 1;-;Pensia alimentară 1;-;Auto 2;-;Maşini de plată 2;-;Benzina 2;-;Întreţinere 1;-;Banca Taxe 2;-;Dobânda plătită 2;-;Tariful pentru serviciu 1;-;Proiectele de legi 2;-;Televiziune prin cablu sau televiziune prin satelit 2;-;Telefon mobil 2;-;Celular 2;-;Electricitate 2;-;Gunoi & Recycle 2;-;Club de sanatate 2;-;Home-proprietarului Dues 2;-;Componenţa Taxe 2;-;Ipoteca de plată 2;-;Gaze naturale / petrol 2;-;Ziar 2;-;Serviciul On-line/Internet 2;-;Alte împrumut de plată 2;-;Inchirieri 2;-;Student Împrumut de plată 2;-;Telefon 2;-;Apă şi canalizare 1;-;Retragerea de numerar 1;-;Donatii caritabile 1;-;De îngrijire a copiilor 1;-;Copii / Jucarii 2;-;Suport pentru copii 2;-;Zi 1;-;Îmbrăcăminte 1;-;Card de credit Plăţi / transferuri 1;-;Dining Out 1;-;Educaţie 2;-;Carti 2;-;Taxe 2;-;Scolarizare 1;-;Divertisment 1;-;Taxe 1;-;Alimente 1;-;Cadouri 1;-;Alimente 1;-;De sănătate 2;-;Dentare 2;-;Ochi-de îngrijire 2;-;Spitalul 2;-;Medic 2;-;Prescripţii 1;-;Hobby-uri / Agrement 2;-;Cărţi şi reviste 2;-;Evenimente culturale 2;-;Divertisment 2;-;Filme & Inchirieri Video 2;-;Evenimente sportive 2;-;Sportive 2;-;Benzi si CD-uri 2;-;Jucarii si jocuri 1;-;Home Îmbunătăţirea 1;-;Gospodărie 2;-;Mobilier 2;-;Casa de curăţare 2;-;Serviciul Yard 1;-;Asigurare 2;-;Automobile 2;-;Sănătate 2;-;Home-proprietarului / Clientul a 2;-;Viaţa 1;-;Cheltuieli de locuri de muncă 2;-;Non-rambursate 2;-;Rambursate 1;-;Împrumut 2;-;Împrumut fără dobândă 2;-;Ipoteca Dobânzi 2;-;Student Împrumut de Interes 1;-;Diverse 1;-;Ipoteca / Inchiriaza 1;-;De îngrijire personală 1;-;Pet Care 2;-;Produse alimentare 2;-;Consumabile 2;-;Medicul veterinar 1;-;Telefon / Wireless 1;-;Servicii / Afilieri 1;-;Taxele 2;-;Federal Impozitul pe venit 2;-;Anul venit Federală fiscal precedent 2;-;Locală Impozitul pe venit 2;-;Medicare fiscale 2;-;Alte impozite 2;-;Taxele Real Estate 2;-;Taxa de Vanzare 2;-;Asigurări sociale 2;-;De stat impozitul pe venit 2;-;De stat / Provincial 1;-;Travel / vacanþã 2;-;Cazarea 2;-;Turism 1;-;Utilităţi 1;+;Venituri / Interes 1;+;Venituri din investiţii 2;+;Castiguri de capital 2;+;Dividende 2;+;Dobânzi 2;+;Scutite de impozite Interes 1;+;Nu este o cheltuială 1;+;Alte venituri 2;+;Suport copil a primit 2;+;Angajat Stock Option 2;+;Cadouri primite 2;+;Principal de imprumut primite 2;+;Loteriile 2;+;Taxa hoteliera de stat & Returnare 2;+;Şomajul Despăgubiri 1;+;Venituri de pensionare 2;+;IRA Distribuţie 2;+;Pensii şi anuităţi 2;+;Prestaţii de securitate socială 1;+;Salariul & Salariu 2;+;Bonus 2;+;Comisia 2;+;Angajatorului potrivire 2;+;Brute Plătiţi 2;+;Salariale nete 2;+;Orele suplimentare homebank-5.9.1/data/datas/hb-categories-fr.csv0000646000175000017500000000522711374317651014656 1;-;Abonnement/factures 2;-;Assurance habitation 2;-;Charges 2;-;Chauffage 2;-;Eau 2;-;Électricité 2;-;Internet 2;-;Loyer 2;-;Ménage 2;-;Portable 2;-;Remb. crédit conso 2;-;Remb. prêt immobilier 2;-;Salarié à domicile 2;-;Service d'entretien 2;-;Téléphone 2;-;TV/Câble 1;-;Alimentation 2;-;Café/bar 2;-;Épicerie 2;-;Restaurant 1;-;Animaux domestiques 2;-;Alimentation 2;-;Fournitures diverses 2;-;Frais de garde 2;-;Vétérinaire 1;-;Auto/moto 2;-;Accessoires 2;-;Assurance Auto/moto 2;-;Carburant 2;-;Entretien/réparations 2;-;Parking/péage 2;-;Remb. de prêt 1;-;Divers 2;-;Cadeaux 2;-;Dons caritatifs 2;-;Responsabilité civile 2;-;Retrait d'espèces 1;-;Enfants 2;-;Activité sportive/culturelle 2;-;Assurance scolaire 2;-;Frais de cantine 2;-;Frais de garde 2;-;Frais de scolarité 2;-;Frais divers 2;-;Remb. prêt étudiant 1;-;Épargne 2;-;Assurancevie 2;-;Livrets/Divers 1;-;Équipement du logement 2;-;Ameublement 2;-;Bricolage / Outils 2;-;Électroménager 2;-;Jardinage 2;-;Ordinateur et accessoires 2;-;Remb. de crédit équipement 2;-;Télévision et accessoires 2;-;Travaux / Décoration 1;-;Frais bancaires 2;-;Agios 2;-;Carte de paiement/de crédit 2;-;Frais divers 2;-;Intérêts versés 2;-;Services / Abonnement 1;-;Frais professionnels 2;-;Non remboursés 2;-;Remboursés 1;-;Habillement 2;-;Accessoires 2;-;Chaussures 2;-;Vêtements 1;-;Impôts 2;-;Autres impôts 2;-;Cotisations Sécurité sociale 2;-;Impôts locaux 2;-;Impôts sur le revenu 2;-;Impôts sur le revenuAnnée préc. 1;-;Loisirs/culture/sport 2;-;Activité sportive 2;-;Articles de sport 2;-;Achat CD/DVD 2;-;Cinéma/spectacle 2;-;Jeux 2;-;Journaux 2;-;Livres 2;-;Location DVD 2;-;Manifestation sportives 2;-;Musées/expositions 1;-;Santé 2;-;Complémentaire santé 2;-;Dentiste 2;-;Hôpital 2;-;Kinésithérapeute 2;-;Médecin 2;-;Oculiste 2;-;Pharmacie 1;-;Soin de la personne 2;-;Coiffeur/esthéticienne 2;-;Thalasso/remise en forme 1;-;Transport 2;-;Avion 2;-;Métro/Bus/Train 2;-;Taxis 1;-;Vacances 2;-;Alimentation/restaurant 2;-;Assurance voyage 2;-;Divers 2;-;Excursion/visite 2;-;Location de voiture 2;-;Logement 2;-;Séjours 2;-;Voyage 1;+;Autres revenus 2;+;Accident du travail 2;+;Allocations de chômage 2;+;Allocations familiales 2;+;Capital de prêt reçu 2;+;Crédit d'impôts 2;+;Dons et cadeaux 2;+;Héritage 2;+;Jeux 2;+;Option d'achat d'actions 1;+;Placements 2;+;Dividendes 2;+;Intérêts 2;+;Plusvalues 2;+;Plusvalues immobilières 2;+;Revenus locatifs 1;+;Retraite 2;+;Pensions 2;+;Régime général 2;+;Retraite complémentaire 1;+;Traitements et salaires 2;+;Commissions 2;+;Contributions employeur 2;+;Heures supplémentaires 2;+;Primes diverses 2;+;Primes résultat 2;+;Salaire net homebank-5.9.1/data/datas/Makefile.am0000644000175000017500000000061614002765523013043 datasdir = $(datadir)/homebank/datas datas_DATA = \ hb-categories-cy.csv \ hb-categories-de.csv \ hb-categories-en.csv \ hb-categories-es.csv \ hb-categories-fr.csv \ hb-categories-fr_CA.csv \ hb-categories-hu.csv \ hb-categories-it.csv \ hb-categories-lt.csv \ hb-categories-pt.csv \ hb-categories-ro.csv \ hb-categories-ru.csv \ hb-categories-sk.csv \ example.xhb EXTRA_DIST = $(datas_DATA) homebank-5.9.1/data/datas/hb-categories-cy.csv0000664000175000017500000000434113311142110014631 1;-;Alimoni 1;-;Car 2;-;Taliadau Car 2;-;Tanwydd 2;-;Cynnal a Chadw 1;-;Costau Banc 2;-;Llog wedi ei Dalu 2;-;Gosgau Gwasnaeth 1;-;Biliau 2;-;Teledu Lloeren/Cebl 2;-;Ffn T? 2;-;Ffn Symudol 2;-;Trydan 2;-;Sbwriel ac Ailgylchu 2;-;Clwb Iechyd 2;-;Taliadau Perchennog Tai 2;-;Costau Aelodaeth 2;-;Taliadau Morgais 2;-;Olew/Nwy 2;-;Papur Newydd 2;-;Gwasanaeth Rhyngrwyd 2;-;Taliad Benthyciad arall 2;-;Rhent 2;-;Taliadau Benthyciad Myfyriwr 2;-;Ffn 2;-;D?r a Charffosiaeth 1;-;Tynnu Arian 1;-;Rhoddion Elusennol 1;-;Gofal Plant 1;-;Plant/Tegannau 2;-;Cefnogaeth i Blant 2;-;Gofal Dydd Plant 1;-;Dillad 1;-;Taliadau/Trosglwyddiadau Cardiau Credyd 1;-;Bwyta Allan 1;-;Addysg 2;-;Llyfrau 2;-;Fees 2;-;Dysgu Preifat 1;-;Adloniant 1;-;Ffi 1;-;Bwyd 1;-;Rhoddion 1;-;Siopa Bwyd 1;-;Gofal Iechyd 2;-;Deintyddol 2;-;Gofal Llygaid 2;-;Ysbyty 2;-;Meddyg 2;-;Presgriptiynau 1;-;Hobau/Hamdden 2;-;Llyfrau a Chylchgronnau 2;-;Digwyddiadau Diwylliannol 2;-;Diddanu 2;-;Rhentu Ffilmiau a Fideo 2;-;Digwyddiadau Chwaraeon 2;-;Nwyddau Chwaraeon 2;-;Tapiau a CDs 2;-;Tegannau a Gemau 1;-;Gwellainnau ir T? 1;-;Cartref 2;-;Dodrefn 2;-;Glanhaur T? 2;-;Gwasanaetau ir Ardd 1;-;Yswiriant 2;-;Car 2;-;Iechyd 2;-;Perchennog/Rhentu 2;-;Bywyd 1;-;Costau Swydd 2;-;Dim Ad-daliad 2;-;Ad-daliad 1;-;Benthyciad 2;-;Llog Benthyciad 2;-;Llog Morgais Interest 2;-;Llog Benthyciad Myfyriwr 1;-;Amrywiol 1;-;Morgais/Rhent 1;-;Personal Care 1;-;Gofal Anifeiliaid 2;-;Bwyd 2;-;Newyddau 2;-;Fet 1;-;Ffn/Diwifr 1;-;Gwasanaethau/Aelodaeth 1;-;Trethi 2;-;Treth Incwm 2;-;Treth Incwm - Llynedd 2;-;Treth Lleol 2;-;Treth Iechyd 2;-;Trethi Eraill 2;-;Treth T? 2;-;Trethi Gwerthu 2;-;Treth Diogelwch Iechyd 2;-;Treth Incwm Taleithiol 2;-;Taleithiol/Ardal 1;-;Teithio/Gwyliau 2;-;Llety 2;-;Teithio 1;-;Gwasanaethau 1;+;Incwm/Llog 1;+;Incwm Buddsoddiadau 2;+;Enillion Cyfalaf 2;+;Difidendau 2;+;Llog 2;+;Llog Didreth 1;+;Nnid Cost 1;+;Incwm Arall 2;+;Arian Plant Wedi ei Dderbyn 2;+;Dewis Stoc Cyflogedig 2;+;Rhoddion wedi eu Derbyn 2;+;Bethyciad Wedi ei Dderbyn 2;+;Loteri 2;+;Ad-daliad Treth 2;+;AD-daliad Diweithdra 1;+;Incwm Ymddeoliad 2;+;Dosbarthiad IRA 2;+;Pensiwn a Blwydd Daliadau 2;+;Budd-daliadau 1;+;Cyflog 2;+;Bonws 2;+;Commisiwn 2;+;Tl Cyfartal Cyflogwr 2;+;Cyflog Gros 2;+;Cyflog Net 2;+;Goramser homebank-5.9.1/data/datas/hb-categories-lt.csv0000664000175000017500000000400512436321407014651 1;-;Grynųjų pinigų paėmimas 1;-;Automobilis 2;-;Įmoka už automobilį 2;-;Kuras 2;-;Eksploatavimo išlaidos 1;-;Alimentai 2;-;Sumokėtos palūkanos 2;-;Paslaugų mokesčiai 1;-;Paslaugų apmokėjimai 2;-;Mobilusis telefono ryšys 2;-;Fiksuotas (laidinis) telefono ryšys 2;-;Elektra 2;-;Šiukšlės ir perdirbimas 2;-;Televizija (Kabelinė,Palydovinė) 2;-;Sveikatos/sporto klubas 2;-;Namo savininko/bendrijos mokesčiai 2;-;Gamtinės dujos/degalai 2;-;Nuoma 2;-;Vanduo ir nuotekos 1;-;Labdara 1;-;Rūbai 1;-;Valgymai ne namie 1;-;Išsilavinimas 2;-;Knygos 2;-;Mokesčiai 2;-;Mokestis už mokslą 1;-;Pramogos 1;-;Maistas 1;-;Dovanos 1;-;Sveikatos priežiūra 2;-;Dantys 2;-;Akys 2;-;Ligoninė 2;-;Gydytojas 2;-;Vaistai 1;-;Hobi/Laisvalaikis 2;-;Knygos ir žurnalai 2;-;Kultūriniai renginiai 2;-;Pasilinksminimai 2;-;Filmų ir video nuoma 2;-;Sporto renginiai 2;-;Sporting//Sporto prekės 2;-;Muzikos ir vaizdo įrašai 2;-;Žaislai ir žaidimai 1;-;Namų remontas 1;-;Namų ūkis 2;-;Namų apyvoka/baldai 2;-;Namų valymas 2;-;Kiemo paslaugos 1;-;Draudimas 2;-;Automobilis 2;-;Sveikata 2;-;Namų savininko/nuomininko 2;-;Gyvybės 2;-;Negrąžinti pinigai 2;-;Apmokėti pinigai 1;-;Naminių gyvūnų priežiūra 2;-;Pašaras 2;-;Maistas/Atsargos 2;-;Veterinaras 1;-;Mokesčiai 2;-;Pajamų mokestis 2;-;Verslo liudijimo mokestis 2;-;Sveikatos draudimo mokestis 2;-;Kiti mokesčiai 2;-;Nekilnojamojo turto mokesčiai 2;-;Pardavimo mokesčiai 1;-;Kelionės/Atostogos 2;-;Nakvynė/Apgyvendinimas 2;-;Keliavimo išlaidos 2;-;Dovanos/Suvenyrai 1;+;Pajamos/pelnas 1;+;Investavimo pajamos/palūkanos 2;+;Kapitalo prieaugis 2;+;Dividentai 2;+;Palūkanos 2;+;Neapmokestinamosios palūkanos 2;+;Išmokos už vaikus 2;+;Gautos dovanos 2;+;Gauta paskola 2;+;Loterija 2;+;Grąžinti valstybės ir vietiniai mokesčiai 2;+;Bedarbio pašalpa 2;+;Socialinio draudimo išmokos 1;+;Darbo užmokestis ir atlyginimas 2;+;Premijos 2;+;Komandiruotės 2;+;Darbdavio atitikimas 2;+;Darbo užmokestis "ant popieriaus" 2;+;Darbo užmokestis "į rankas" 2;+;Viršvalandžiai homebank-5.9.1/data/datas/hb-categories-sk.csv0000644000175000017500000000440011422643175014647 1;-;Alimenty 1;-;Automobil 2;-;Náklady na auto 2;-;Benzín 2;-;Údržba 1;-;Bankové poplatky 2;-;Splátky úroku 2;-;Poplatky za služby 1;-;Účty 2;-;Káblová/satelitná televízia 2;-;Mobil 2;-;Elektrina 2;-;Odpad & recyklácia 2;-;Klub zdravia 2;-;Poplatky majiteľovi domu 2;-;Členské poplatky 2;-;Splátka hypotéky 2;-;Olej/benzín natural 2;-;Noviny 2;-;Internet 2;-;Splátka inej pôžičky 2;-;Nájomné 2;-;Splátka študentskej pôžičky 2;-;Telefón 2;-;Vodné a stočné 1;-;Výber hotovosti 1;-;Príspevok na charitu 1;-;Starostlivosť o dieťa 1;-;Deti/hračky 2;-;Vreckové pre deti 2;-;Detské jasle 1;-;Oblečenie 1;-;Platby kreditnou kartou/Transfery 1;-;Reštaurácia/bar 1;-;Vzdelanie 2;-;Knihy 2;-;Poplatky 2;-;Školné 1;-;Zábava 1;-;Poplatky 1;-;Jedlo 1;-;Dary 1;-;Potraviny 1;-;Starostlivosť o zdravie 2;-;Zubár 2;-;Očný lekár 2;-;Nemocnica 2;-;Lekár 2;-;Lieky na predpis 1;-;Hobby/voľný čas 2;-;Knihy a časopisy 2;-;Kultúrne podujatia 2;-;Zabávanie 2;-;Požičovňa videí 2;-;Športové podujaria 2;-;Športové potreby 2;-;Pásky & disky CD 2;-;Hračky & hry 1;-;Domáci majster 1;-;Domácnosť 2;-;Nábytok 2;-;Čistiace prostriedky 2;-;Starostlivosť o záhradu/predzáhradku 1;-;Poistenie 2;-;Automobil 2;-;Životné 2;-;Nehnuteľnosti 2;-;Úrazové 1;-;Pracovné náklady 2;-;Bez refundácie 2;-;S refundáciou 1;-;Pôžička 2;-;Úrok pôžičky 2;-;Úrok hypotéky 2;-;Úrok študentskej pôžičky 1;-;Rozličné 1;-;Hypotéka/nájomné 1;-;Osobná hygiena 1;-;Starostlivosť o zviera 2;-;Jedlo 2;-;Hračky 2;-;Veterinár 1;-;Telefón/Bezdrátový 1;-;Služby/členské 1;-;Dane 2;-;Daň z príjmu 2;-;Daň z príjmu - predchádzajúci rok 2;-;Iné dane 2;-;Daň z nehnuteľnosti 2;-;Miestna daň 1;-;Cestovanie/dovolenka 2;-;Ubytovanie 2;-;Cestovanie 1;-;Pomôcky 1;+;Príjem/Úrok 1;+;Príjem z investície 2;+;Zisky z kapitálu 2;+;Dividendy 2;+;Úrok 2;+;Úrok nepodliehajúci zdaneniu 1;+;Nie výdavok 1;+;Iný príjem 2;+;Prijatá podpora na dieťa 2;+;Zamestnanecká akciová opcia 2;+;Prijaté dary 2;+;Prijatá istina 2;+;Lotéria 2;+;Vrátanie dane 2;+;Podpora v nezamestnanosti 1;+;Prijatý dôchodok 2;+;Mimoriadna odmena za služby 1;+;Plat & mzda 2;+;Bonus 2;+;Provízia 2;+;Hrubá mzda 2;+;Čistý príjem 2;+;Nadčas 2;+;Odstupné homebank-5.9.1/data/datas/example.xhb0000664000175000017500000026255214605434125013160 homebank-5.9.1/data/datas/hb-categories-en.csv0000644000175000017500000000430211367354455014645 1;-;Alimony 1;-;Automobile 2;-;Car Payment 2;-;Gasoline 2;-;Maintenance 1;-;Bank Charges 2;-;Interest Paid 2;-;Service charge 1;-;Bills 2;-;Cable/Satellite Television 2;-;Cell Phone 2;-;Cellular 2;-;Electricity 2;-;Garbage & Recycle 2;-;Health Club 2;-;Home-owner's Dues 2;-;Membership Fees 2;-;Mortgage Payment 2;-;Natural Gas/Oil 2;-;Newspaper 2;-;On-line/Internet Service 2;-;Other Loan Payment 2;-;Rent 2;-;Student Loan Payment 2;-;Telephone 2;-;Water & Sewer 1;-;Cash Withdrawal 1;-;Charitable Donations 1;-;Childcare 1;-;Children/Toys 2;-;Child Support 2;-;Daycare 1;-;Clothing 1;-;Credit Card Payments/Transfers 1;-;Dining Out 1;-;Education 2;-;Books 2;-;Fees 2;-;Tuition 1;-;Entertainment 1;-;Fees 1;-;Food 1;-;Gifts 1;-;Groceries 1;-;Health-care 2;-;Dental 2;-;Eye-care 2;-;Hospital 2;-;Physician 2;-;Prescriptions 1;-;Hobbies/Leisure 2;-;Books & Magazines 2;-;Cultural Events 2;-;Entertaining 2;-;Movies & Video Rentals 2;-;Sporting Events 2;-;Sporting Goods 2;-;Tapes & CDs 2;-;Toys & Games 1;-;Home Improvement 1;-;Household 2;-;Furnishing 2;-;House Cleaning 2;-;Yard Service 1;-;Insurance 2;-;Automobile 2;-;Health 2;-;Home-owner's/Renter's 2;-;Life 1;-;Job Expense 2;-;Non-Reimbursed 2;-;Reimbursed 1;-;Loan 2;-;Loan Interest 2;-;Mortgage Interest 2;-;Student Loan Interest 1;-;Miscellaneous 1;-;Mortgage/Rent 1;-;Personal Care 1;-;Pet Care 2;-;Food 2;-;Supplies 2;-;Veterinarian 1;-;Phone/Wireless 1;-;Services/Memberships 1;-;Taxes 2;-;Federal Income Tax 2;-;Federal Income Tax-Previous Year 2;-;Local Income Tax 2;-;Medicare tax 2;-;Other Taxes 2;-;Real Estate Taxes 2;-;Sales Tax 2;-;Social Security Tax 2;-;State Income Tax 2;-;State/Provincial 1;-;Travel/Vacation 2;-;Lodging 2;-;Travel 1;-;Utilities 1;+;Income/Interest 1;+;Investment Income 2;+;Capital Gains 2;+;Dividends 2;+;Interest 2;+;Tax-Exempt Interest 1;+;Not an Expense 1;+;Other Income 2;+;Child Support Received 2;+;Employee Stock Option 2;+;Gifts Received 2;+;Loan Principal Received 2;+;Lotteries 2;+;State & Local Tax Refund 2;+;Unemployment Compensation 1;+;Retirement Income 2;+;IRA Distribution 2;+;Pensions & Annuities 2;+;Social Security Benefits 1;+;Wage & Salary 2;+;Bonus 2;+;Commission 2;+;Employer Matching 2;+;Gross Pay 2;+;Net Pay 2;+;Overtime homebank-5.9.1/data/datas/Makefile.in0000664000175000017500000003512615006363044013057 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = data/datas ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(datasdir)" DATA = $(datas_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ datasdir = $(datadir)/homebank/datas datas_DATA = \ hb-categories-cy.csv \ hb-categories-de.csv \ hb-categories-en.csv \ hb-categories-es.csv \ hb-categories-fr.csv \ hb-categories-fr_CA.csv \ hb-categories-hu.csv \ hb-categories-it.csv \ hb-categories-lt.csv \ hb-categories-pt.csv \ hb-categories-ro.csv \ hb-categories-ru.csv \ hb-categories-sk.csv \ example.xhb EXTRA_DIST = $(datas_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/datas/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/datas/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-datasDATA: $(datas_DATA) @$(NORMAL_INSTALL) @list='$(datas_DATA)'; test -n "$(datasdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(datasdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(datasdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(datasdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(datasdir)" || exit $$?; \ done uninstall-datasDATA: @$(NORMAL_UNINSTALL) @list='$(datas_DATA)'; test -n "$(datasdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(datasdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(datasdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-datasDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-datasDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-datasDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-datasDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/data/datas/hb-categories-de.csv0000644000175000017500000000466011374317625014636 1;-;Alimente 1;-;Automobil 2;-;Auto-Payment 2;-;Benzin 2;-;Wartung 1;-;Bankgebühren 2;-;Gezahlte Zinsen 2;-;Service kostenlos 1;-;Bills 2;-;Kabel / Satelliten-Fernsehen 2;-;Cell Phone 2;-;Cellular 2;-;Elektrizität 2;-;Garbage & Recycle 2;-;Fitnessraum 2;-;Home-owner's Dues 2;-;Mitgliedsbeiträge 2;-;Mortgage Payment 2;-;Natural Gas / Öl 2;-;Zeitung 2;-;On-line/Internet Service 2;-;Andere Loan Payment 2;-;Miete 2;-;Student Loan Payment 2;-;Telefon 2;-;Wasser & Abwasser 1;-;Bargeldauszahlung 1;-;Spenden 1;-;Kinderbetreuung 1;-;Kinder / Spielzeug 2;-;Child Support 2;-;Kindertagesstätte 1;-;Kleidung 1;-;Zahlungen mit Kreditkarte / Transfers 1;-;Dining Out 1;-;Bildung 2;-;Bücher 2;-;Gebühren 2;-;Studiengebühren 1;-;Unterhaltung 1;-;Gebühren 1;-;Lebensmittel 1;-;Geschenke 1;-;Lebensmittel 1;-;Health-care 2;-;Dental 2;-;Eye-Care 2;-;Krankenhaus 2;-;Physician 2;-;Rezepte 1;-;Hobbies / Freizeit 2;-;Bücher & Zeitschriften 2;-;Kulturelle Veranstaltungen 2;-;Entertaining 2;-;Film & Video Rentals 2;-;Sporting Club 2;-;Sporting Goods 2;-;Tapes & CDs 2;-;Spielzeug 1;-;Home Improvement 1;-;Haushalt 2;-;Möblierung 2;-;House Cleaning 2;-;Yard Service 1;-;Versicherung 2;-;Automobile 2;-;Gesundheit 2;-;Home-Eigentümers / Mieters 2;-;Life 1;-;Job Expense 2;-;Nicht erstattete 2;-;Erstattet, 1;-;Darlehen 2;-;Darlehenszinsen 2;-;Hypotheken-Zinsen 2;-;Student Loan Interest 1;-;Verschiedenes 1;-;Mortgage / Miete 1;-;Körperpflege 1;-;Pet Care 2;-;Essen 2;-;Supplies 2;-;Tierarzt 1;-;Telefon / Wireless 1;-;Services / Mitgliedschaften 1;-;Steuern 2;-;Bundessteuer 2;-;Bundessteuer-Jahr zurück 2;-;Local Income Tax 2;-;Medicare Steuern 2;-;Sonstige Steuern 2;-;Real Estate Steuern 2;-;Sales Tax 2;-;Social Security Tax 2;-;State Income Tax 2;-;Staat / Provinz 1;-;Reisen / Urlaub 2;-;Freie 2;-;Reise 1;-;Utilities 1;+;Erträge / Zinsen 1;+;Vermögenseinkommen 2;+;Capital Gains 2;+;Dividenden 2;+;Zinsen 2;+;Steuerfreie Zinsen 1;+;Keine Ausgabe 1;+;Sonstige Erträge 2;+;Child Support erhalten 2;+;Employee Stock Option 2;+;Geschenke erhalten 2;+;Loan Principal Received 2;+;Lotterien 2;+;State & Local Tax Refund 2;+;Arbeitslosengeld 1;+;Alterseinkünftegesetz 2;+;IRA Distribution 2;+;Pensions & Annuities 2;+;Social Security Benefits 1;+;Lohn & Gehalt 2;+;Bonus 2;+;Kommission 2;+;Employer Passende 2;+;Brutto-Pay 2;+;Net Pay 2;+;Überstunden homebank-5.9.1/data/Makefile.am0000644000175000017500000000076114310436761011751 ## Process this file with automake to produce Makefile.in SUBDIRS = datas @INTLTOOL_DESKTOP_RULE@ desktopdir = $(datadir)/applications desktop_in_files = homebank.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_XML_RULE@ appdatadir = $(datadir)/metainfo appdata_in_files = homebank.appdata.xml.in appdata_DATA = $(appdata_in_files:.xml.in=.xml) EXTRA_DIST = \ $(desktop_in_files) \ $(appdata_in_files) CLEANFILES = \ $(desktop_DATA) \ $(appdata_DATA) homebank-5.9.1/data/homebank.desktop.in0000664000175000017500000000047715006363047013506 [Desktop Entry] _Name=HomeBank _GenericName=Personal finance _Comment=Free, easy, personal accounting for everyone _Keywords=finance;accounting;budget;personal;money; Exec=homebank %f Terminal=false StartupNotify=true Type=Application Icon=homebank Categories=GNOME;GTK;Office;Finance; MimeType=application/x-homebank; homebank-5.9.1/data/homebank.appdata.xml.in0000664000175000017500000000216614310436752014244 fr.free.mdoyen.HomeBank.desktop CC0-1.0 GPL-2.0+ HomeBank Free, easy, personal accounting, for everyone <_p> HomeBank is a free software (as in "free speech" and also as in "free beer") that will assist you to manage your personal accounting. <_p> It is designed to easy to use and be able to analyse your personal finance in detail using powerful filtering tools and beautiful graphs. <_p> If you are looking for a completely free and easy way to manage your personal accounting then HomeBank should be the software of choice. http://homebank.free.fr/img/homebank-appdata.png http://homebank.free.fr homebank@free.fr homebank-5.9.1/data/Makefile.in0000664000175000017500000005402415006363044011761 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = data ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = homebank.desktop.in CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(desktopdir)" DATA = $(appdata_DATA) $(desktop_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(srcdir)/homebank.desktop.in.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = datas desktopdir = $(datadir)/applications desktop_in_files = homebank.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) appdatadir = $(datadir)/metainfo appdata_in_files = homebank.appdata.xml.in appdata_DATA = $(appdata_in_files:.xml.in=.xml) EXTRA_DIST = \ $(desktop_in_files) \ $(appdata_in_files) CLEANFILES = \ $(desktop_DATA) \ $(appdata_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): homebank.desktop.in: $(top_builddir)/config.status $(srcdir)/homebank.desktop.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-appdataDATA: $(appdata_DATA) @$(NORMAL_INSTALL) @list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appdatadir)" || exit $$?; \ done uninstall-appdataDATA: @$(NORMAL_UNINSTALL) @list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appdatadir)'; $(am__uninstall_files_from_dir) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(desktopdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-appdataDATA install-desktopDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-appdataDATA uninstall-desktopDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am \ install-appdataDATA install-data install-data-am \ install-desktopDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-appdataDATA uninstall-desktopDATA .PRECIOUS: Makefile @INTLTOOL_DESKTOP_RULE@ @INTLTOOL_XML_RULE@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/ChangeLog0000644000175000017500000034666415006351154010570 2025-05-06 Maxime DOYEN Made 5.9.1 release * bugfix: some button icons where too small * bugfix: pending transaction account change was keeping warning on old acc * bugfix: #2109861 edit an invalid transfer make the app crash * bugfix: #2109854 ledger quick unapproved filter do not show all transaction * bugfix: #2109358 paste text in amount with comma separator change it as dot * bugfix: #2108847 untranslated periodicity label into scheduling popover * bugfix: #2107704 filter presets range wrongly use financial year range * bugfix: #2107649 ledger amounts gets wrong with unapproved and approved transaction 2025-04-10 Maxime DOYEN Made 5.9 release * new : new svg default iconset * new : new symbolic svg iconset * new : budget tabview: added import/export menu * new : budget tabview: added clearall menu * new : reinforced error handling when loading/saving a .xhb file * new : preference: amount color can be herited from chart palette * new : added a ledger tool to mark category sign with amount don't match * change: xhb data file format (v1.6) * change: internal data/display flag separation * change: icon name rework * change: simplified ledger icon status column (reconciled merged with lock) * change: manage account icons was moved to a left column for consistency * change: the preference pages have been organized on 2 levels * change: the last used preferences page is remembered during the session * change: relayout of edit assignment dialog * wish : #2101100 budget report option to exclude subcat from unbudgeted line * wish : #2089475 inherit while managing scheduled transactions * wish : #2083175 balance report to propose an option to include/exclude transfer * wish : #2079857 budget report option to restrict <= today * wish : #2073032 statistic time report detail to focus on row or cell (specific month) * wish : #2070444 possibility to print/export scheduled transactions * wish : #2068845 duplicate a transaction split line * wish : #2068663 include split transaction memos in completion * wish : #2067399 Schedule Transaction for the nth weekday of a Month * wish : #2066993 scheduled payment on last day of month * wish : #2066110 refactor EUR feature for future euro adopters * wish : #2065633 option to keep internal transfer date sync * wish : #2065355 making “remind” status independent of “reconciled” status * wish : #2064958 "Period to date" date range * wish : #2061227 a feature to prevent add/import prior last reconciled date * wish : #2052314 option of background color for future transactions * wish : #2042038 assignment more visible search option (case and regex) * wish : #2042037 manage assignment list search option icons (case and regex) * wish : #1938412 inline calculation in transaction/split amount field * wish : #1875100 option to add/import in pending status and approve later * wish : #1756407 remove -|+ of amount widget + empty if focus * bugfix: post scheduled from main window do not enable save * bugfix: #2106307 broken link in the Preferences Dialog * bugfix: #2106027 delete then show usage make a crash in tags manage * bugfix: #2105387 no changes in manage accounts faulty count changes * bugfix: #2104162 Wrong balance values in Balance Report after changing the interval * bugfix: #2102726 Unexpected dates from 'Next payout' automatic posting * bugfix: #2101050 transaction sign change with a transfer between accounts * bugfix: #2100875 payment filter revert to mobile phone after reopen saved file * bugfix: #2100731 budget report time list print result label are incorrect * bugfix: #2100489 windows: date problem if you change the short format in regional settings * bugfix: #2099918 scheduled with week-end before/after gap post date is incorrect * bugfix: #2099843 budget chart wrong color when spend = budget * bugfix: #2098359 portable version truncate recently-used.xbel 2025-04-04 Maxime DOYEN Made 5.9-rc2 release 2025-01-26 Maxime DOYEN Made 5.9-rc release 2024-12-26 Maxime DOYEN Made 5.8.6 release * bugfix: fix crash when print your accounts * bugfix: ledger similar marked transaction were persisted after close * bugfix: ledger similair marked transaction now display their group * bugfix: repbalance first column title was not set to interval * bugfix: #2091004 statistics time report totals line with exact 0 is not displayed * bugfix: #2090668 close after start wizard not not let choose filename to save * bugfix: #2090183 the export CSV functionality does not take into account the frac digits property of the currency * bugfix: #2089407 trendtime/balance report clear filter don't clear properly * bugfix: #2087750 save indicator (*) not showing after editing multiple transfert * bugfix: #2085376 future/remind main window bottom list column not updated * bugfix: #2083127 inherit operations should not preserve colour flags * bugfix: #2079801 alert about budget usage when move/delete a category * bugfix: #2060159 window width and height size is reset to a small size after demaximizing on startup * wish : #2086475 add menu keyboard shortcut to import files 2024-10-05 Maxime DOYEN Made 5.8.5 release * bugfix: #2083718 date and other button shortened in ledger book 2024-10-04 Maxime DOYEN Made 5.8.4 release * bugfix: prevent some problems with transfer and both legder window opened * bugfix: #2083124 account rename doesn't allow case correction * bugfix: #2081574 windows: budget report date fields not showing in their entirety * bugfix: #2081379 planned split operations are not modified after a category merge * bugfix: #2080864 HomeBank CLI --version or -V no longer works in linux * bugfix: #2080756 balance change from ledger toolbar not updated for transfer target * bugfix: #2080032 your accounts print/export hidden columns * bugfix: #2079884 ledger window snap half left oversize * bugfix: #2036404 grouped budget categories not showing total amount 2024-09-08 Maxime DOYEN Made 5.8.3 release * bugfix: #2066535 cannot see a 1 sub-category in Stats Rept donut view * bugfix: #2076458 saved filter date ranges going wrong * bugfix: #2076474 dark mode applied live, but not on app startup or when exiting preferences dialog * bugfix: #2077180 budget report category do not sum their subcat budget in 5.8.2 * bugfix: #2078281 csv export crash * bugfix: #2078679 category appeard Empty and crashes Homebank on Linux 2024-07-08 Maxime DOYEN Made 5.8.2 release * bugfix: #2073805 switching saved filter with same date range doesn't refresh * bugfix: #2073233 vehicle cost distance/volume is rounded to distance and always xx,0 * bugfix: #2071648 possibility for positive or negative budget values gone * bugfix: #2069152 windows: CFA protected folder save fail with no dialog warning * bugfix: #2068825 budget report type filter do not work anymore * bugfix: #2068664 filter text option only work when both memo and number are filled * bugfix: #2068634 copy/paste a transaction do not enable save * bugfix: #2067855 transfer from one account to another does not sync statuse even with "Sync transfer Status" checked * bugfix: #2067440 payment settings not retained * bugfix: #2066539 budget Report - unbudgeted includes transactions for subcats where main cat has a budget * bugfix: #2062021 transaction date may change if system shortdate is not dd/MM/yy 2024-05-26 Maxime DOYEN Made 5.8.1 release * bugfix: #2066161 "Raw amount" check menu is not saved * bugfix: #2065955 scheduled transactions not automatically posted before weekend * bugfix: #2065929 saved filter does not show transaction with remind status * bugfix: #2065781 balance not updated after edit a transaction in ledger * bugfix: #2065770 display bug of next date column in template dialog * bugfix: #2065758 incorrect window title for credit card type * bugfix: #2065740 scheduled transactions are broken for "Next Payout" * bugfix: #2065628 windows: crash after open recent file no more existing * bugfix: #2065625 save button stay disabled after edit a transaction * bugfix: #2065592 changing status to none from transaction dialog fail * bugfix: #2065551 embedded help file misses some new files and images * bugfix: #2065531 statistics report with tags filter show extra tags 2024-05-12 Maxime DOYEN Made 5.8 release * new : statistics report: category sign is now also displayed * new : added a tooltip to display active filter in all report windows * change: xhb data file format (v1.5) * change: migrating to GTK4 preparation (GdkEvent struct) * change: migrating to GTK4 preparation (GtkApplication, GtkApplicationWindow) * change: migrating to GTK4 preparation (GtkMenu*, GtkToolbar) for ledger * change: 'select action for target transfer' creation cancel now get back to transaction dialog * change: reports: moved the collapse/expand buttons to bottom of the list * change: example file addition: split, tags, loan, flags, life-energy * change: the Info field is named as it should have originally: Number * change: added missing enums for most action of combobox * wish : #2064754 yours account should always display a tooltip for consistency * wish : #2064520 enable ledger transaction reconciled > cleared, like for none * wish : #2063416 index for importing csv files * wish : #2060588 widths of memo -v- amount field in split transactions * wish : #2059733 preference to use the template list when edit a transaction * wish : #2058696 enrich account transactions list window title with account number and institution name * wish : #2058566 budget Report - detail pane size not adjustable * wish : #2056654 add thousand separator when print 'your accounts' * wish : #2055533 Payment column in auto-assignment window * wish : #2054906 "Cancel" button on prompt for a target transaction when adding transfer should not create a transaction * wish : #2051758 add a help tip when input amount range in filter * wish : #2045514 Balance report to exclude transfers when multiple selected accounts * wish : #2044601 preference to always prompt for a target transaction when adding transfer * wish : #2042674 idiot-proof preference for "Sync transfert Status" * wish : #2038753 copy transaction to clipboard to paste external apps * wish : #2037039 amend "Spending By Month" to have income option & both income/expense by month * wish : #2023696 budget report to show not-budgeted amount * wish : #2017625 transfer transaction widget From vs To field ordering to be static * wish : #2017437 reorderable columns in the Scheduled/Template window * wish : #2017436 scheduled/template window show internal transfers "To" account in Payee column * wish : #2016317 columns for status icon and payment icon in scheduled/template * wish : #2002177 automatic GTK dark theme switching for Linux (using the Freedesktop standard) * wish : #1910935 statistic report by accounts groups * wish : #1909255 report exclude income in transfers * wish : #1867979 internal transfer edit dialog to show/change date in both accounts * wish : #1867498 add "Life Energy" attribute * wish : #1817274 add more paymode + user order position + disable * wish : #1674016 assignment to assign tags * wish : #1600356 add colour flag/group to transaction * wish : #613894 favorite saved filter list to use in report and ledger show all * bugfix: multiple transaction edit tag was not displaying the tag list * bugfix: time report quick filter item list were displaying too much columns * bugfix: #2064839 post of today due date transaction do not happen * bugfix: #2063145 top spending pie chart subcategory is not sorted descending * bugfix: #2063135 statistics details export menu items sensitivity update problem * bugfix: #2061979 cross-currency transfer still do not propose target transaction * bugfix: #2060159 window width and height size is reset to an invalid small size after demaximizing on startup * bugfix: #2059709 filter exclusion of payment=none hide transfer * bugfix: #2055101 windows: recent file Clear keep deleted/renamed files * bugfix: #2052678 home time chart spending by month should show net expense * bugfix: #2052304 budget should warn/fix when we input positive number for expense 2024-04-15 Maxime DOYEN Made 5.8-rc release 2024-02-06 Maxime DOYEN Made 5.7.4 release * change: migrating to GTK4 preparation (GtkScrolledWindow) * change: statistic report default type is now Total * wish : #2037200 add a used feature for tags like for payee/categories * wish : #2044850 revert 5.7.2 print single account (statement) fit to the page width * wish : #2051419 management dialogs to shows hidden items by default * bugfix: template deletion was possible despite used into an account * bugfix: dateentry was faultly trigger double parse/eval/update sequence * bugfix: filter for report was faultly show always show items * bugfix: update currency was not counting change to enable save * bugfix: input a mindate > maxdate from the filter was possible with no warning * bugfix: #2051440 export CSV not including memo field from split transactions * bugfix: #2051349 add an existing category/payee/tag from manage dialog do not warn user * bugfix: #2051307 export CSV not including remind status * bugfix: #2050848 skip multiple Scheduled do not refresh as expected * bugfix: #2048236 transfer are not included in forecast, balance mode * bugfix: #2047647 cross-currency transfer do not propose target transaction * bugfix: #2046157 info icon for transfers is not displayed * bugfix: #2046032 date filter shows wrong date * bugfix: #2043523 exclude zero-sum categories from Top Spending 2023-12-08 Maxime DOYEN Made 5.7.3 release * change: budget report added sign on categories like in manage dialog * change: budget report only display fulfilled for budget category * wish : #2042699 chart drill down shows the cat total when drawing subcat * wish : #2042683 assigment rule dialog to be wider and/or size saved * bugfix: forecast was sometimes faultly done for excluded/closed account * bugfix: date range 'last 12 months' start was not set to 1st day of -12 months * bugfix: #2045299 'install for me only' end with error message when creating optional desktop shortcut * bugfix: #2043886 portable version could prevent to store recent-file * bugfix: #2043433 chart drill down Category link is not translated * bugfix: #2043385 budget report forced displayed subcategories can have no parent * bugfix: #2043366 budget forced category remains displayed with exp/inc filter * bugfix: #2043223 budget report fulfilled column badly rounded display 99% vs 100% * bugfix: #2042676 accound dialog exclude from any report do not refresh the graph after close * bugfix: #2020181 mate: only french flag for payment icons 2023-11-12 Maxime DOYEN Made 5.7.2 release * wish : #2042692 count and show number of selected transactions when suppressing them * bugfix: crash was possible when no file loaded and change to main chart * bugfix: #2043152 lock icon for transaction sometime disapear due to column resize * bugfix: #2042771 currency don't update due to wrong api url since 5.7 * bugfix: #2042770 HomeBank closes after leaving "preferences" menu with no file open. * bugfix: #2042668 remove/sanitize GTK listview quicksearch * bugfix: #2042484 category popoverlist shows subcat income standalone its expense parent * bugfix: #2042463 manage categories add subcategory fail after a search * bugfix: #2042035 assign edit cancel faultly persist the rule search * bugfix: #2040494 app crashes when exporting a report after I delete a category that contained data * bugfix: #2040010 ISO 8601 date format not respected when exporting to clipboard or CSV * bugfix: #2039995 budget by time do not filter transaction type exp/inc * bugfix: #2039493 statistics report crash when opened with a too wide date range 2023-10-08 Maxime DOYEN Made 5.7.1 release * new : split dialog: add a confirm dialog before delete all split lines * new : dateentry only rely on token and date order detection, glib failover * change: split dialog: add info+tooltip icon next to the amount input * change: split dialog: amount input is named according transaction type * wish : #2038601 "Schedule" and "Template" linked togglebuttons are not mutually exclusive * wish : #2034625 statistics Reportsorting by expense or income when using the Time Mode * bugfix: dateentry d, dm, md was sometimes wrong * bugfix: dateentry 2 year digits fix with 40/60 windowing * bugfix: #2037597 top 10 Spending Category chart legend labels sometimes ellipsized * bugfix: #2037468 "All Transactions" CSV export no longer includes account * bugfix: #2037132 cannot create assignments from a transaction with empty memo * bugfix: #2036703 budget report shows wrong Spent and Budget totals * bugfix: #2036290 migrate libsoup-2.4 to libsoup-3.0 * bugfix: #2036270 no message when split limit is reached * bugfix: #2036228 forecast only limited to time span set in preferences * bugfix: #2036097 budget report date range from/to does not localized month name * bugfix: #2035401 Main panel size not retained; account info concealed on start * bugfix: #2035129 incorrect values in "tooltip" message for forcast view (subcategory) * bugfix: #2034764 statistics Report Total Row not reflecting displayed amounts * bugfix: #2034647 trend time Report Title does not match Interval * bugfix: #2034618 statistics report sometimes crashes with half year interval 2023-09-06 Maxime DOYEN Made 5.7 release * new : added balance mode for statistics total report * new : added fulfilled column for budget report * new : added back the Custom indicator in Date Range widget * new : added the date as last sort in case of prior equality for transaction list * new : added two preferences parameters to be more flexible with currency rate api * new : added abbreviated weekday in date input widget * change: migrating to GTK4 preparation (GtkContainer/GdkEvent/...) * change: the currency rate api to exchangerate.host * change: numerous optimization and refactoring for report computing * change: home scheduled: moved the maximum post date to an info icon tooltip * change: avoid refreshing undisplayed items on the home main window * change: chart legend is hidden when not enough space to display chart * change: export PDF of transaction migrated to a standard print feature * wish : #2030322 add weekday display in date input * wish : #2024956 sort the scheduled transaction by date order * wish : #2028464 manage account add sort header, search and website * wish : #2023477 stack chart to display income above and expense below * wish : #2019193 preference to sync transfer status by default * wish : #2018680 replace **PREFILLED** for new assignement/archive from register with added icon * wish : #2018174 change currency rate api to a more fulfilled one * wish : #2008641 add a duplicate assignment action * wish : #2004078 print option missing in Show all * wish : #1964434 optimize the legend position to maximize chart size * wish : #1933165 budget report includes Category & Subcategory * wish : #1932198 pdf print transaction report, custom title, total and portrait/paysage * wish : #1918459 adding pdf print function - show the result as a list * wish : #1912973 ability to print "Your accounts" list in main window * wish : #1909851 filter scheduled operations add Next payout (max post date) * wish : #1857890 home chart to show account balance total/time * wish : #1816389 home chart to show spending by month * wish : #1783645 chart drill down for categories * wish : #588864 budget report over time (month) * wish : #121510 cash flow forecast * bugfix: #2030333 account not sorted by position in import assistant * bugfix: #2024322 currency online update not working * bugfix: #2018726 budget report should be bounded to month 2023-08-06 Maxime DOYEN Made 5.7-rc release 2023-08-04 Maxime DOYEN Made 5.6.6 release * bugfix: #2027201 when ordering the transaction list by category, split ones are not ordered * bugfix: #2026641 anonymise does not deal with account notes, start balance, overdraft and automatic assignment notes * bugfix: #2026626 anonymise feature doesn't fully anonymise accounts name * bugfix: #2026594 changing currency account with transfer faulty change target account currency * bugfix: #2026184 statistics report doesn't always show total for parent category * bugfix: #2024940 statistics faulty hide items with data when result is 0.0 * bugfix: #2024389 filter Status always show section should always be visible * bugfix: #2019312 status column included in export detail transaction from report break re-import 2023-06-21 Maxime DOYEN Made 5.6.5 release * bugfix: #2024243 when creating splits for income transactions, expenses are added as incomes regardless of amount sign * bugfix: #2023388 account cannot be deleted message is not precise enough * bugfix: #2022049 windows: displayed values overflow int32 in 5.6.4 * bugfix: #2018039 lock icon for reconciled transaction is not displayed in report detail 2023-05-18 Maxime DOYEN Made 5.6.4 release * bugfix: #2019876 balance report allow max < min date (crash) and ignore input with All dates range set * bugfix: #2018414 tags edit/import faultly enable space and may cause report crash * bugfix: #2018206 balance sometimes displays -0.00 * bugfix: #2018145 rate calculation on total report values * bugfix: #2017435 posting both sides of a scheduled internal transfer posts 2 occurrence * bugfix: #2012999 one transaction Imported from QFX file no longer matches * bugfix: #2012576 statistics Report using Balance Mode by time shows odd "total" column 2023-03-20 Maxime DOYEN Made 5.6.3 release * change: budget table view is now the default * bugfix: scheduled transaction list was not display src/dst account for transfer * bugfix: scheduled transaction list total was incorrect * bugfix: account future transaction account column was not displayed oblique * bugfix: #2009277 removing tag from multiple transactions * bugfix: #2009250 cannot select Hidden Categories in Statistics Reporting * bugfix: #2008521 account window toggle future transaction is not working * bugfix: #2007947 dropdown boxes in the Edit Transaction dialog box behave inconsistently * bugfix: #2007712 report half-year column header is not translated * bugfix: #2000728 wayland: template window closes only on third attempt * bugfix: #1999699 wayland: click on schedule button select first item and don't open popover * wish : #2007714 table budget dialog view improvements * wish : #2000290 Fortnight interval in Reports * wish : #1996505 Sum SELECTED scheduled transaction at main window * wish : #1956060 sort by amount in statistics report to take sign into consideration * wish : #1886123 Remind status transactions not calculated in reports despite include preference 2023-02-06 Maxime DOYEN Made 5.6.2 release * change: updated the example.xhb file with up to date data * change: avoid to call the update currency api unless file last save is less than 24h * bugfix: #2004631 date and column title alignement * bugfix: #2004053 budget manage table view category column no ellipsis nor resizable * bugfix: #2002873 changing a category name do not update the list * bugfix: #2002699 en_GB locale faultly translated to Arabic by a user * bugfix: #2002650 update currency at program start always mark the file changed * bugfix: #2002348 impossible to schedule income template with an amount equal to 0 * bugfix: #2000480 crash importing OFX under specific conditions * bugfix: #2000452 vehicle cost report shows duplicated subcats 2023-01-08 Maxime DOYEN Made 5.6.1 release * bugfix: #2001566 vehicule cost report label vehicle while properties label Category * bugfix: #2000834 when fiscal year is not 01 jan last/this/next year is 1 year ahead * bugfix: #2000809 user feedback when create template or assignment * bugfix: #2000760 typo in french translation * bugfix: #2000629 move buttons in Manage Assignments window do not update at ends * bugfix: #2000294 statistics Time 'Balance mode' ignores filters * bugfix: #2000292 week 51/52 display incorrectly in Statistics Report * bugfix: #2000269 quick filter transactions uncleared shows reconciled transactions * bugfix: #2000266 duplicated 'This fortnight' label in date range * bugfix: #1999963 category list with an & show other name * bugfix: #1999879 new assignment by amount do not save the amount * bugfix: #1999322 When I hide a payee, changes are not saved * bugfix: #1999297 win: crash in scheduled transaction * bugfix: #1999265 future/remind list column width to 0 (hidden) * bugfix: #1999250 program crashes exporting Payees to csv * bugfix: #1999243 moving assignment rule is not subject to saving and moving to position>99 fails * bugfix: #1999188 show detail preference is ignored + column width to 0 * bugfix: #1999186 void transactions show regardless of preferences setting * bugfix: #1998987 translation is missing for days and transaction status * bugfix: #1998912 translation is missing for the new date selector 2022-12-06 Maxime DOYEN Made 5.6 release * new : add a Manage > Wallet menu entry * new : add suggested/destructive style to relevant dialog buttons * new : add search input into manage category dialog * new : all search input CTRL+F to activate, ESC to empty+quit * new : filter on individual type: expense, income, transfer * new : filter on individual status: cleared, reconciled * new : filter dialog has a visual indicator on page with active filter * new : added an info icon with detailed info as tooltip in import, account pages * new : added a warning icon when transfer with different currency prefill target amount fail * change: dropped usage of remaining comboboxentry in profit of a popoverentry * change: account rename dialog relayout * change: payee edit dialog relayout * change: category edit dialog relayout * change: manage payee/category hid usage column by default, toggle button to show * change: filter dialog relayout * change: layout harmonisation of all manage dialog * change: spacing check and harmonisation of all windows * change: removed icons for secondary windows/dialogs (GTK obsolete) * wish : #1996223 statistics time report stack chart to show rate in tooltip * wish : #1993088 register closed account popmenu should be disabled * wish : #1989211 stats report preference to include/exclude transfer by default * wish : #1986501 columns visibility settings for scheduled mainwindow list * wish : #1983995 Ability to "Copy raw amount" from a transaction in the account's transactions list * wish : #1982036 improve columns order/width for target transfer transaction list * wish : #1980562 setting to unlock by default the reconciled changes * wish : #1977686 autocompletion for split memo field * wish : #1974450 modify assignment order by specifying its index * wish : #1973029 add tag import/export function * wish : #1958039 Add ability to sort by search text in Assignments Dialog * wish : #1955305 Ability to search for criteria text in "Management Assignments" window * wish : #1933164 sort by header column click on statistics * wish : #1932193 add a note field into payee * wish : #1920642 separate columns and widths settings for reports details pane * wish : #1909749 feature to lock changes of reconciled transactions * wish : #1906953 add "ignore" week-end behavior * wish : #1896887 Reports / Exclude tags does an AND on multiple tags, it should default to OR * wish : #1896441 set an account to be outflow into 'Your Accounts' * wish : #1886757 HomeBank Report Account balances for each month * wish : #1875801 shows split detail in the report detail list * wish : #1869352 option to add scheduled transaction until x months * wish : #1826360 hide useless payee/category to lighten autocomplete/lists * wish : #1710085 assignment based on amount * wish : #1673260 internal transfer with different currency * wish : #1530170 more date range option and redesign * wish : #1173135 charts for stat over time items (pay, cate, acc...) report * wish : #625527 multiselectable combobox in trendtime reports * bugfix: unused tags were not saved * bugfix: add ellipsize to some report columns for large item name * bugfix: report budget layout problem with large category name * bugfix: #1993599 your accounts tooltip fail when account name contains a & * bugfix: #1993727 import assistant selection counts do not update 2022-11-08 Maxime DOYEN Made 5.6-rc release 2022-10-16 Maxime DOYEN Made 5.5.8 release * bugfix: #1992548 linking transfers between accounts fails to join correctly * bugfix: #1992284 manage tag edit input is empty 2022-10-04 Maxime DOYEN Made 5.5.7 release * bugfix: #1681532 Segfault when pressing escape while editing a new transaction * bugfix: #1981464 "Select among possible transactions" duplicate transfer refactor * bugfix: #1984246 compilation problem on Debian 11 * bugfix: #1987975 choose among target transfer faultly propose same sign transaction * bugfix: #1988489 Statistics "total" percentage breakdown incorrect * bugfix: #1988594 edit transaction with keyboard ok button (alt) don't update focused amount * bugfix: #1989171 Invalid appdata confuse gnome-software * bugfix: #1991459 register apply type=income + status=uncategorized shows expense 2022-06-28 Maxime DOYEN Made 5.5.6 release * bugfix: #1977796 rounding problem for euro minor in deutsche mark * bugfix: #1976138 split amount opposite sign don't work when using + button * bugfix: #1972078 inherit old transfer enable to post to a closed account * bugfix: #1970526 windows do not minimize independently; cannot raise main window above others * bugfix: #1970509 manage scheduled list column hscrollbar * bugfix: #1970020 balance report - toggle detail show no transaction * bugfix: #1967708 csv export invalid with semicolon in text 2022-04-18 Maxime DOYEN Made 5.5.5 release * change: windows: upgraded to GTK 3.24.33 * wish : #1960755 add a refresh button in account detail screen * wish : #1960380 void transaction icon improved visibility in dark mode * wish : #1950234 your account show total for single group foreign currency * wish : #1948608 scheduled list (manage/bottom) could show category column * wish : #1945636 detail report list amount sort in base currency * bugfix: fixed double trigger on some radiobutton: category, budget, assign, repstats * bugfix: #1968249 templates names not displayed in Transaction dialog * bugfix: #1965594 children windows should be transient for their parents * bugfix: #1964433 'Top Spending' home chart option button disapear * bugfix: #1963833 window: main window don't open in primary screen * bugfix: #1960750 tooltip is in English even if localization is set to FR * bugfix: #1960745 not showing * after some changes made to manage * bugfix: #1960743 double click payee not working after search * bugfix: #1958767 managing payees search does not refresh after merge * bugfix: #1958145 windows: can't enter specials characters with alt gr * bugfix: #1958001 balance 'Show Empty Line' includes days outside of selected range 2022-01-10 Maxime DOYEN Made 5.5.4 release * change: windows: upgraded to GTK 3.24.31 * bugfix: #1956185 dates not accepting 2 digit year * bugfix: #1955984 homebank cannot import its own CSV exports * bugfix: #1955046 statistics time csv subcategory export fail * bugfix: #1954017 QIF import uncheck similar transaction with different category * bugfix: #1947931 vehicle cost CSV output incorrect values in km/l column * bugfix: #1945715 windows: update currency return 'unaccaceptable TLS certificate' * bugfix: #1942494 statistics "total" percentage breakdown incorrect * bugfix: #1940103 (null) is shown in dialog when deleting a template/scheduled * bugfix: #1919063 windows: scaling in 'Top Spending' text too big in UHD 3840 x 2160 * bugfix: #1801655 windows: button order for GtkAssistant import is confusing 2021-08-08 Maxime DOYEN Made 5.5.3 release * new : added 4 report color themes: quicken2017, mint, material, nord * change: added 6 more colors to ynab report color theme * wish : #1930395 ability to copy certain amounts (sum, avg, balance) * bugfix: fixed some minor memory leak in post scheduled * bugfix: adding tags from manage tags dialog don't enable save * bugfix: #1936806 after editing a transaction from detail list of report, the list is empty * bugfix: #1934739 today button text is not translated in date picker * bugfix: #1932301 main windows New and Save tooltip text remains in english * bugfix: #1931816 changing a date from 'show all transaction' don't sort by date * bugfix: #1930924 import back a csv reads categories as tags * bugfix: #1928147 account column don't sort in scheduled dialog * bugfix: #1919936 document what the account maximum balance limit does in practice 2021-05-08 Maxime DOYEN Made 5.5.2 release * new : statistics report add result/detail to clipboard/csv file * wish : #1923368 calendar "Today" button to not auto-close widget * wish : #1916365 please add Toggle detail function to Time mode on Statistics report * bugfix: #1925976 statistics "total" percentage breakdown incorrect * bugfix: #1922829 reorder transaction buttons not updated after date change * bugfix: #1921741 top spending chart legend text overlap * bugfix: #1919080 OFX import deduplication unselect valid transaction * bugfix: #1918479 choosing to force budget monitoring does not make document dirty * bugfix: #1918334 void transactions from previous periods show up in the current transactions 2021-03-08 Maxime DOYEN Made 5.5.1 release * change: report window are now closed when new/open a file * wish : #1904569 more flexible date handling for QIF import * wish : #1594684 balance report to select several accounts * bugfix: #1917837 the tag popover list is too small in width and height * bugfix: #1917075 delete unused payee/category do not enable save * bugfix: #1916932 impossible to read text when using dark theme * bugfix: #1916587 scheduled this/next month date filter is wrong * bugfix: #1915729 windows "tag" close the programm on delete item * bugfix: #1915660 update to the Help & Homebank for check numbers * bugfix: #1915643 the "Balance report" does not group correctly by week (ISO 8601) * bugfix: #1915609 qif export of multiple account double transfer line * bugfix: #1914943 statistic by time total row doubled with subcategory * bugfix: #1914935 changing the "Include remind into balance" option doesn't update balance in accounts summary * bugfix: #1910857 transaction category autofill from payee is too invasive * bugfix: #1910819 paste amount into split may input too much decimal digits * bugfix: #1889659 crash on typing in category during add due to inconsistent XML * bugfix: #1842429 difference between loading 1 OFX file or more at once 2021-02-06 Maxime DOYEN Made 5.5 release * new : your accounts added cleared column * new : target transfer dialog add a match ratio column * new : added checking and savings account type * new : added tooltip on 'your accounts' to show last reconciled date, minimun/maximum remaining * new : trend time, added average value and line into the graph * change: your accounts renamed bank column to reconciled * change: statistics report renamed the 'Balance' term with a more accurate 'Total' * change: statistics report added a compare Exp. & Inc. checkbox to clarify the interface * wish : #1911838 integrate fr_CA categories (included with wish) * wish : #1909694 duplicate auto assignment find * wish : #1909590 include one decimal digit in the fuel average * wish : #1900281 homebank Stats Rept - Subcategory heading * wish : #1898277 add a "today" button/calendar option when adding new transactions * wish : #1897810 search or sort assignment rules * wish : #1897696 red text in budget report for negative results * wish : #1894425 Add switch inside app to change dark/light theme * wish : #1893854 shortcut for scheduled main window button * wish : #1892606 graph legend text not smaller than windows font * wish : #1891878 your accounts add remaining before overdraft * wish : #1890024 add a high limit for saving accounts * wish : #1887212 internal transfer detection day gap manual preference * wish : #1884376 payee multimatch for autocompletion * wish : #1882876 category/payee separate usage count for transaction and overall usage * wish: : #1882456 transaction dialog to order popover category by type * wish : #1870390 statistic report - sum/total as last row * wish : #1866456 import option to invert expense/income for credit card account * wish : #1857636 Allow showing only short/medium-term scheduled operations in the main window's overview * wish : #1847622 transaction status display to button and/or add icon * wish : #1846928 top spending max items configurable * wish : #1846822 your accounts column choose + add cleared * wish : #1581863 on main window, accounts have 'Reconciled date' * wish : #1565386 ability to set time interval for the Balance report * wish : # 300380 add direct print + pdf/png/ps export mostly for report/graph * bugfix: #1911805 the decimal digits of the Belarusian ruble is indicated incorrectly * bugfix: #1909323 windows: crash importing an OFX file with info + add to info * bugfix: #1903437 date column in transaction list can be empty * bugfix: #1898408 split window does not provide 8 decimal places for cryptocurrency * bugfix: #1898294 time unit is not translated 'Manage scheduled/template transactions' dialog * bugfix: #1895478 ofx file marked as invalid if empty line at top 2020-11-21 Maxime DOYEN Made 5.5-rc release 2020-09-06 Maxime DOYEN Made 5.4.3 release * wish : #1886299 export to csv/clipboard 1st column title naming * wish : #1886181 default preference or remind for import similar date gap * wish : #1880386 revert ease to combine expense/income in splits dialog * wish : #1882081 add a gtk font size override Edit * wish : #1871383 increase exchange rate size * wish : #1869112 "Export CSV" feature for the "Show all..." transactions view * wish : #1837550 export transaction from account as CSV with every split line * bugfix: #1892828 position of auto assignments is lost after reload a file * bugfix: #1885413 inversion of sign in splits causes the transaction to not be saveable * bugfix: #1883403 Cancel editing a "splitted transaction" is updating the expense value in transaction list * bugfix: #1883063 Scheduled entries can't have a blank memo * bugfix: #1879451 press delete while the focus is in quicksearch try to delete transaction 2020-05-16 Maxime DOYEN Made 5.4.2 release * bugfix: multiedit from expense to income was not changing transaction type * bugfix: transaction dialog date revert to today when applying a template * bugfix: transaction list column popmenu chooser was faulty visible in window it should not * bugfix: reset from filter dialog for statistics was faulty set date range to last 12 months * bugfix: reset button of filter dialog removed from transaction window (reset button already there) * bugfix: trend time report, changing the text for account was leading to a crash * bugfix: #1878483 transaction Screeen shows wrong Status * bugfix: #1876134 windows: pasted numbers from calculator loose dchar * bugfix: #1875766 "changed" icons are not removed from accounts summary after the data file is saved * bugfix: #1875070 merging a cat to a new cat do not merge subcat * bugfix: #1874548 Changing the amount of multiple transactions doesn't change future balance * bugfix: #1873643 keep natural CTRL up/down focus for date widget 2020-04-22 Maxime DOYEN Made 5.4.1 release * bugfix: #1874404 win: missing icons until 5.4 * bugfix: #1873660 vehicle cost report miss parent category * bugfix: #1873324 register status quick filter do not reset * bugfix: #1873311 inherit with keep last date off should set todays date * bugfix: #1873248 auto. assignments menu faulty visible on 'All transactions' window * bugfix: #1872329 automatic cheque numbering doesn't work in all cases * bugfix: #1872140 new scheduled/template transaction have **PREFILLED** added to Memo * bugfix: #1872039 make - error during installation * bugfix: #1872038 tooltips on toolbar buttons should start with "Manage" and not "Configure" * bugfix: #1871776 lost some or all of the scheduled/template transaction 2020-04-08 Maxime DOYEN Made 5.4 release. * change: windows: upgraded to GTK+ 3.24.14 * change: remove deprecated GtkAction/GtkUIManager for rep_balance * change: harmonization of dialog dimension with aspect ratio * change: split list column now follow same width rule than other list * change: updated the file statistics: added tags, currencies, template, scheduled * change: updated the welcome dialog: added icon, relayout, show next time checkbox * change: reworked and improved the new file assistant * change: prefixed template created from the register * wish : #1861759 search "Manage Accounts" * wish : #1861432 merge tags * wish : #1860905 sort by amount in budget report * wish : #1851733 Reports/Vehicle Cost Report filtered dropdown * wish : #1851729 multi line scheduled post * wish : #1851718 popup menu on transaction list * wish : #1847907 add reconcile data when export as CSV * wish : #1829597 view split transaction detail from the register (expand or other) * wish : #1810621 mass prefill assignment from the register * bugfix: double click on scheduled list total line was faulty reactive * bugfix: delete tag was partially working * bugfix: your accounts list was not refreshed after new file or import * bugfix: #1870476 typo: Your * bugfix: #1870433 default backup path folder not initialized with wallet folder * bugfix: #1869727 typo: assigment * bugfix: #1868185 search not finding amounts with more than 3 digits dollar amount * bugfix: #1867392 delete tooltip not translated in scheduled/template dialog * bugfix: #1865361 transaction dialog template list switch sort order on each save * bugfix: #1865083 when moving a transaction a 'changed' icon isn't displayed against the 'from' account * bugfix: #1864176 'Restore backup' doesn't open default backup folder * bugfix: #1864089 missing icons for "Case sensitive" and "Regular expression in the assignment dialog * bugfix: #1863484 scheduled 'stop after' cannot be removed * bugfix: #1862769 manage schedule/template and quicksearch behavior * bugfix: #1862677 add and keep FROM register reset the date * bugfix: #1862540 win: currency symbol detection fail leads to crash * bugfix: #1862436 win: incorrect display of russian ruble currency symbol * bugfix: #1858675 import/export budget mixup if subcategory has same name 2020-02-10 Maxime DOYEN Made 5.3.2 release. * change: remove deprecated GtkAction/GtkUIManager for rep_balance * bugfix: edit menu was not disabled for closed account * bugfix: statistics show legend toolbutton was state inverted * bugfix: #1861337 transactions from closed accounts not showing > Transactions > Show All * bugfix: #1861008 after changing values in the budget, the save button is not enabled * bugfix: #1860356 transaction List wrong preset status dropdown * bugfix: #1860309 preference "Keep the last date" not working after creating a new transaction * bugfix: #1860232 crash when deleting multiple transactions from "Show All" view * bugfix: #1859476 budget "Dec" not included in total * bugfix: #1859386 unable to save Split Transaction in 5.3.1 after initially working * bugfix: #1859346 restore backup should be available anytime * bugfix: #1859344 missing texts under icons in top menu * bugfix: #1859275 budget table view balance sometimes empty + no edit 2020-01-12 Maxime DOYEN Made 5.3.1 release. * bugfix: #1859279 toggling from category to subcategory level on Statistics Report doubles the amount * bugfix: #1859117 split transaction not displaying Split in Category after edit transaction * bugfix: #1859088 crash may occur if you enable 'show confirmation text' in preference * bugfix: #1859077 no more pre-filled account when single account * bugfix: #1858945 keep last date preference no more working * bugfix: #1858682 add buttons disabled while adding or inherit a transfer * bugfix: #1858507 some menu/toolbar tooltip text remains in English 2020-01-06 Maxime DOYEN Made 5.3 release. * new : transaction dialog shows weekdays and account currency * new : transaction type created expense/income and transfer * new : added a clear menu for recent opened file * new : added delete key shortcut to delete transaction * new : added budget pin icon to category forced to be displayed * new : filter dialog added select all/none/invert for payment * new : added account budget icon to show if account is part of the budget * change: xhb data file format (v1.4) * change: account dialog layout change * change: budget dialog layout change * change: assign dialog layout change * change: filter dialog layout change * change: transaction dialog layout change * change: merged transaction and template dialog * change: internal transfer payment mode removed (in profit to transfer type) * change: transfer payment mode was renamed to bank transfer * change: button add/edit/merge/delete to icon button into toolbar under listview * change: rewritten menus and toolbars to drop usage of deprecated GtkAction/GtkUIManager * change: dropped significant g_list_append to gain in performance * change: replaced the 'remove' text to more accurate 'delete' * change: reworked the ui design of release candidate warning message * change: lighten stack usage for dialog * wish : #1851449 Add a transaction very very slooow with many account numbers * wish : #1848604 rely on type exp/inc also for split line input * wish : #1845388 remind the apply of assignment between import * wish : #1844892 detect/skip UTF-8 BOM (Excel CSV files) * wish : #1842897 colour trailing spaces in assignments * wish : #1842758 your accounts list keep state after open/close register * wish : #1840100 updates when use multiple account window * wish : #1831975 optional visible/audible confirmation of transaction entered * wish : #1831372 add nett Budget value to 'Manage Budget' screen * wish : #1818320 add "void" status to transactions * wish : #1818052 copy/paste one/multiple transaction(s) * wish : #1813474 "Info" field for scheduled/template transactions * wish : #1812630 multiple edit enable change to internal transfer * wish : #1812598 calculate "Remind" transactions into balance (as configuration option?) * wish : #1810299 bold lowest balance for future date in register * wish : #1792279 configurable backup directory * wish : #1756681 ease debit/credit/transfer transaction seizure * wish : #1749457 change order of same day transactions * wish : #1740368 expense & Income type available at sub-category level * wish : #1719184 table view for budget setup (contribution code) * wish : #1708974 allow for transfer on mismatched days * wish : #1504348 improve control of assignments * wish : #1460666 features for scheduled transactions dialog * wish : #1173135 statistics report to show all items (pay, cat, acc...) over time * wish : #1095160 account: more type and created group * bugfix: #1854953 Direct Debit type ignored during OFX import * bugfix: #1853531 show 'Uncleared' transactions displays uncleared and Reconciled * bugfix: #1845841 check point and remainder on splits gone since 5.2 * bugfix: #1847645 number of backups exceeds preference settings * bugfix: #1845839 updating a transaction from the Remind screen doesn't always update the account summary * bugfix: #1844881 internal transfer of budget account "this needs a category" * bugfix: #1829927 when inherit a transaction, the Add button faulty keep the data 2019-10-08 Maxime DOYEN Made 5.3-rc release. 2019-09-18 Maxime DOYEN Made 5.2.8 release. * new : import: auto assignment is now optional * new : payee dialog: added a payment icon column to ease management * new : add help and donate toolbar buttons * change: payee popover: improved the dimension of the popover to larger one * wish : #1843184 reorganize accelerator for transaction dialog * wish : #1841462 shortcuts for register view * wish : #1828914 mark "Today" for calendar widget * wish : #1826211 csv import to assign category from payee choice * wish : #1673902 add a visual marker for uncategorized transaction of budget account * bugfix: fixed compile fail with GTK < 3.22 and gtk_popover_popdown * bugfix: accelerator key was not working for date widget * bugfix: #1843648 info gets empty after editing a transaction with paymode cheque and positive amount * bugfix: #1842935 can't save file after OFX import with long unicode strings * bugfix: #1842292 windows: language change KO if install path as utf-8 char (é, ç, à, etc) * bugfix: #1840998 transaction Screen only shows 3 weeks in advance * bugfix: #1840393 import qfx similar transaction dialog amount show $0.00 * bugfix: #1839851 balance report details view all show amount 0.00 2019-07-28 Maxime DOYEN Made 5.2.7 release. * new : dropped usage of comboboxentry in profit of a popover list for tags * new : payee column shows >account or format-> numbers options is never saved * bugfix: #1562372 statistics filtered on category with split display wrong results * bugfix: #1535483 importing CSV file silently skips a line! 2016-05-21 Maxime DOYEN Made 5.0.8 release. * bugfix: #1584342 operation disappearing and corrupted account file 2016-05-06 Maxime DOYEN Made 5.0.7 release. * new : preferences, add preview for chart color scheme * new : doc, added every payment into the lexicon * wish : #1509485 quicksearch split transactions memo/category * wish : #1507252 ability to batch-edit selected transactions easily * wish : #1501125 export to CSV for all reports list view * wish : #1501111 double-click on scheduled transaction in main window to open template editor * wish : #1292377 enable edit transactions from report detail list * wish : #880846 hide/show transaction list column on right click * bugfix: #1577555 scheduled transaction edit doesn't enable file save * bugfix: #1556289 scheduled transactions disappear with no reason * bugfix: #1553862 budget report categories displayed when selecting subcategories * bugfix: #1523216 import window wrongly sized * bugfix: #1511325 no warning about old gtk3.x version when compiling from source * bugfix: #1464961 inconsistency in my file internal transfer 2015-10-18 Maxime DOYEN Made 5.0.6 release. * bugfix: #1504514 next Previous buttons not translated when importing ofx file * bugfix: #1504359 assignment with same name should not be possible * bugfix: #1503682 app crash opening a file from previous version * bugfix: #1502997 || input in split should not be possible * bugfix: #1502496 auto assignment don't set payee on split transaction * bugfix: #1502444 auto assignment can mark untouched transaction as changed * bugfix: #1502034 translate homebank.appdata.xml * bugfix: #1501968 splits without category are lost during QIF import * bugfix: #1501962 statistics report crashes HomeBank after adding a new tag * bugfix: #1501144 auto assignment changes split category when only payee is defined in assignment definition * bugfix: #1501138 wrong number of transactions in pop-up after auto assignment * bugfix: #1501129 auto assignment dialog not active when no category defined * bugfix: #1501098 litre symbol is not translatable * bugfix: #1500043 remove period from short description * bugfix: #1498622 translation: add developer note to FI Fee * bugfix: #1497630 translation: typing errors * bugfix: #1497521 transaction dialog +/- button reset amount to 0 2015-09-19 Maxime DOYEN Made 5.0.5 release. * bugfix: revert back fix for #1464961 inconsistency in internal transfer 2015-09-12 Maxime DOYEN Made 5.0.4 release. * change: windows: upgraded to GTK+ 3.16.6 * change: amount toggle sign button changed from text button to entry icon * change: added/changed transaction are always showed by default filter * wish : #1469424 bank Account window should remember user column arrangement * wish : #1338052 add option to show x days future ledger transaction * wish : #1330156 in the ledger, a way to identify graphically the past from the future. * bugfix: #1492634 using memo filter does not list memos in split categories * bugfix: #1475969 no help file. F1 does nothing. Windows 10 * bugfix: #1473717 year on statistics is preset to 1900 instead of e.g. current year * bugfix: #1464961 inconsistency in internal transfer * bugfix: #1391506 windows: (gtk3.6.4 bug) Dropdown list appear on the wrong Screen (dualscreen) 2015-06-06 Maxime DOYEN Made 5.0.3 release. * change: windows: upgraded to libofx 0.9.9 again * wish : #1460370 internal transfer credit should display 'From account' * wish : #1444792 button to expand/collapse all in "Manage Categories" * wish : #1429413 thinking of icon credit vs debit card * wish : #1416957 add ability to modify transaction when posting from template * bugfix: #1460390 Saving a file as do not work since last 5.0.2 * bugfix: #1434972 (libofx 0.8.3 bug) windows: some OFX files leads to crash * bugfix: #1424660 (libofx 0.8.3 bug) windows: memo field truncated * bugfix: #1080093 (libofx bug 39) OFX imports incorrect date 2015-05-06 Maxime DOYEN Made 5.0.2 release. * bugfix: #1448549 importing CSV files automatically creates 3 new accounts * bugfix: #1443782 date filter From/To fields not working in Trend time and Balance reports * bugfix: #1443048 saving cut file name after a dot * bugfix: #1443047 budget amount is wrong (seems twice) * bugfix: #1429414 calendar widget can't be dismissed by clicking on the arrow or text entry 2015-04-06 Maxime DOYEN Made 5.0.1 release. * change: xhb data file format (v1.1) * wish : #1439015 use Segoe UI as UI font on Windows * wish : #1432204 inherit transaction should set status to none * wish : #1435944 appdata is missing long description and screenshot * wish : #1432204 inherit transaction should set status to none * wish : #1421326 "Fill from template" showed by default * wish : #1419986 reconciled icons, text and translation * wish : #1413874 keyboard shortcut to transaction none status * wish : #1377640 transaction same consecutive entry * wish : #926782 for transfers, display target/source account as payee * bugfix: #1437883 edit/modify transaction box takes >10 sec. to open * bugfix: #1429410 document the "Cleared" ("Pointée") operation status * bugfix: #1429407 shortcut clashes with search or other text entry widgets * bugfix: #1427798 -0,00€ for total of account * bugfix: #1427112 status of template transactions is ignored * bugfix: #1425986 QIF import sometimes fails in v5.0 * bugfix: #1424437 gtk warning from console * bugfix: #1422617 trend time report shows dates from closed accounts * bugfix: #1420859 alternate row colours not working * bugfix: #1420495 typo problem in chart tooltip (apos) * bugfix: #1420098 ctrl+w no longer closes account window * bugfix: #1419992 visible column names are not localized in preferences dialog * bugfix: #1419975 not all languages updates were imported for 5.0 * bugfix: #1419476 edit transaction dialog empty category * bugfix: #1419304 crash if Balance report is open and transaction is deleted * bugfix: #1415740 budget line with value of 0 not shown in Budget Report 2015-03-28 Maxime DOYEN Made 5.0.1-rc release. 2015-02-08 Maxime DOYEN Made 5.0 release. * new : migrated to GTK+ 3 (windows target is 3.6.4) * new : budget report is now a stack chart * new : file statistics dialog was added * new : cleared status added for transaction * new : new column for transaction list with cleared/reconciled/remind status * new : category: added an Expense/Income switch filter * new : budget: added an Expense/Income switch filter * new : budget: added an icon for budgeted categories * new : payee/category: when you merge, deleting the old item is now optional * new : payee/category/budget list: added a quick search function, so that after the selection of an item, when you type some text, an input appear to easily locate your item with up/down keys * new : account/assignment/template/scheduled: confirmation before deleting unused items * new : reinforced the io error control on file save * new : charts now uses your system fonts * new : icon set was reworked * change: xhb data file format (v1.0) * change: windows: downgraded to libofx 0.8.3 * change: payee/category: renamed the action move to merge, as it is more relevant * change: reworked all the confirmation dialogs * change: relayouted all dialogs/windows spacing to be more Gnome HIG compliant * change: replaced 'remove' string by 'delete' (more relevant) * change: import process reworked and refactored to ease import and enable future evolution * change: lot of small visual changes (disable state, reworked texts and sentences) * change: split import menu by file type and preset the file filter on the type * change: removed the currency symbol into transaction list * change: doc entirely updated with new screenshots * wish : #1388402 'Pinned' remind transaction (with no set date) * wish : #1341202 transaction state add of cleared * wish : #1318284 persist transaction list column width * wish : #1254650 transaction entry boc too small and fiddly * wish : #1231865 windows add version in EXE properties * wish : #1202500 top5 spending for subcategories * wish : #995436 average in Trendtime Report * wish : #706600 euro major conversion feature * bugfix: #1412200 Text fields to input a new category name (or subcategories) writes in reverse (right to left) * bugfix: #1410166 add transaction crash after selecting cheque payment * bugfix: #1400403 5.0-rc Reconciled status lost at reload <=4.6.3 converted file * bugfix: #1354789 windows: (libofx 0.9.9 bug 42) QFX import dates show as year 2059 * bugfix: #1419032 Scheduled transaction amount not saved in some case * bugfix: #1418968 Transaction list scroll reset when deleting transaction * bugfix: #1416742 5.0-rc Merge 2 payees and they remain on the display * bugfix: #1416624 5.0-rc category still display in transaction dialog after split * bugfix: #1414267 5.0-rc Budget Report sort order * bugfix: #1411898 windows: (libofx 0.9.9) Incorrect encoding when reading .QFX files * bugfix: #1408966 move a category still display it in the list just after * bugfix: #1407091 5.0-rc cannot sort by clicking on C column * bugfix: #1400381 5.0-rc Memo column empty in OFX import assistant * bugfix: #1388520 5.0-rc Internal Transfer linked choose dialog box too small * bugfix: #1384202 Alphabetical category sorting does not work when there are spaces in the name * bugfix: #1378836 Scheduled transaction display is not complete in case of internal transfer * bugfix: #1355786 Vehicle Cost Report wrong label 2014-11-08 Maxime DOYEN Made 5.0 rc release. 2014-08-09 Maxime DOYEN Made 4.6.3 release. * new : enhanced categories completion (complete is done with partial match on both categories and subcategories) * change: windows: upgraded to libofx 0.9.9 * bugfix: #1351098 windows: OFX import freeze HomeBank * bugfix: #1349160 layout are not persisted well on maximized windows 2014-07-27 Maxime DOYEN Made 4.6.2 release. * change: xhb data file format (v0.9) * change: sort preference language list by name (was by code) * bugfix: gtk warning on budget/stats report * bugfix: #1348951 when you move from one category to a new one, it creates a lot of categories * bugfix: #1348319 scheduler options not saved * bugfix: #1345739 moving payee creates erroneous payees * bugfix: #1340142 program crash when select Category on Trend Time report button * bugfix: #1339572 exclude from any reports and from budget, options with strange behaviour * bugfix: #1338491 add transaction dialog, Memo field autocomplete doesn't give suggestions * bugfix: #1338140 add transaction date defaults to the date the app was opened on * bugfix: #1336882 filter for unreconciled transactions * bugfix: #1335285 when inherit transaction, date is not today's date * bugfix: #1325969 ms windows incorrect sort of strings with special/accented (diacritics) 2014-06-25 Maxime DOYEN Made 4.6.1 release. * bugfix: #1333426 crash under ms-windows when no euro datas into preferences 2014-06-23 Maxime DOYEN Made 4.6 release. * new : report graph now use the gtk theme colors for background and scale * new : scheduled list: added late column and splitted amount to expense/income * new : speed optimization file load, register display (tested with 0,5M transaction) * change: xhb data file format (v0.8) * change: account dialog: relayout the properties with tabs * change: preferences: moved prefix/suffix symbol to a single symbol with a checkbox for prefix * change: transaction dialog : replaced the split S button with a most common image button * wish : #1317183 scheduled dialog listview to be resizable * wish : #1258344 template transaction with unspecified account inherits from current account value * wish : #1197965 text filter and sensitive case * wish : #1099026 ability to individually play scheduled transactions from the list * wish : #926784 per account QIF export * wish : #923154 vehicle Costs assumes UK volume in gallons - sold in litres * wish : #818440 scheduled transaction date before or after weekend * wish : #676447 change financial year boundaries (report dates) * wish : #564922 add Direct Debit as payment type * wish : #493162 auto-assign category from payee * wish : #455295 search functionality (thunderbird/outlook) * bugfix: was possible to quick edit the balance column in account window * bugfix: crash after a reset of preferences * bugfix: #1316252 Vehicle cost report: "Other cost" always $ 0.00 * bugfix: #1308745 Error in sum displayed in Bank, Today, Future * bugfix: #1304539 HomeBank crashes when 'move payee' * bugfix: #1301002 Split Transactions are filtered by category incorrectly in reports * bugfix: #1297054 Top spending not taking credits into account * bugfix: #1295877 Expense shows in Income column * bugfix: #1292012 car cost show 1km/l * bugfix: #1287956 Dialogs for multiple edit of transaction are too small * bugfix: #1286752 Screen Manage Categories: button Move is not translated * bugfix: #1286329 In preferences, file chooser dialog have title "title" 2014-03-01 Maxime DOYEN Made 4.5.6 release. * wish : #1273848 insert scheduled more than 92 days in advance * bugfix: #1285326 export transactions to csv. Concat [dot]csv to filename * bugfix: #1285164 tags not well sorted when mixed with blank * bugfix: #1277622 problem with the split transaction and the Vehicle cost feature * bugfix: #1276377 qif import shows 0 items * bugfix: #1275534 Balances not updated with sheduled transactions 2014-01-26 Maxime DOYEN Made 4.5.5 release. * change: extended number of split from 6 to 10 * wish : #1242274 balance when date descending * wish : #1238575 total percentages in "Top 5" and ordering statistics * wish : #1231120 record discount on splitted item (mix exp/inc) * wish : #1202503 clarify when move a subcategory to category * wish : #953695 sorting by date tracks the order transactions are entered * wish : #735350 ability to change language * bugfix: #1272760 qif split transaction import with >6 parts fails * bugfix: #1270876 QIF export date does not follow settings * bugfix: #1270687 balance doesn't recalculate if dates are changed * bugfix: #1270457 duplicate hotkeys in Modify Transaction window * bugfix: #1268026 internal transfer: do not copy the reconcile state * bugfix: #1267344 remind transactions affecting running balance displayed * bugfix: #1258821 existing Split transaction can't be summed again when modified * bugfix: #1254544 date get back to today in add transaction dialog after adding a transaction * bugfix: #1253004 rework the create new file from welcome dialog * bugfix: #1252230 editing the account of an internal transfer transaction changes only one transaction (out of two) * bugfix: #1250061 change internal payment connection * bugfix: #1250057 select linked internal transaction create a same transaction when no selection * bugfix: #1235465 auto assignment doesn't search the memo field of split transactions, so doesn't work * bugfix: #1234879 running balance problem after sorting transactions by ascending date * bugfix: #773282 QIF Credit Card import shows reverse Expense and Income 2013-09-29 Maxime DOYEN Made 4.5.4 release. * bugfix: #1230401 running balance missordered after insert on same date * bugfix: #1232418 Account, Payees and category, wrongly disabled! * bugfix: scheduled transaction icon was still displayed after a save 2013-09-21 Maxime DOYEN Made 4.5.3 release. * bugfix: #1225611 Trend Time report : categories crashes on windows * bugfix: #1221484 end date not checked to be larger than Start date in reports * bugfix: #1218644 there is a problem of calculating the column balances. * bugfix: #1216321 reversed transactions * bugfix: #1216284 balance report do not exclude account with exclude from report checked * bugfix: #1215521 when importing qif, automatic assignments are not made * bugfix: #1214077 windows: my csv file exported crash when import again * bugfix: #1213569 windows: program not all translated in french since 4.5.1 2013-08-15 Maxime DOYEN Made 4.5.2 release. * bugfix: #1207156 Off-by-one error in range selection box 2013-08-03 Maxime DOYEN Made 4.5.1 release. * change: windows: upgraded to libofx 0.9.8 * change: lot of code warning fix with gcc -Wextra and cppcheck * change: source code preparation for gtk3 migration * wish : #1163319 revert back date range 'Last Year' * wish : #814472 update main wallet view while editing some accounts * wish : #801970 add R keyboard shortcuts to reconcile/unreconcile * wish : #703544 account selected in the main view should be used by default when launching a graph report * wish : #559787 running balance column in the list of transactions * wish : #331113 keep windows maximized * bugfix: mainwindow, top spending was not refreshed after preferences change * bugfix: anonymize, bankname/number were not modified * bugfix: #1202507 moving a (sub)category resets its "income" (vs expense) status * bugfix: #1202503 after a move of a category the list was not refreshed * bugfix: #1197516 file COPYING out of date * bugfix: #1195859 expense Income Balance Total error in Tag Statistic Report * bugfix: #1173910 illegal xml character allowed in split category memo * bugfix: #1163749 positive/Minus button ignores decimal character * bugfix: #1163447 auto-affectations non modifiables * bugfix: #1156846 QIF Import with date format YY/MM/DD fails. * bugfix: #1151259 split transaction filter on category problem * bugfix: #1140903 Bank, Today and Future Don't Update After Adding Transaction * bugfix: #1138103 no error message when 2 bank accounts have the same name * bugfix: #1133105 more permissive QIF import * bugfix: #1103668 segfaults on file open on x64 * bugfix: #1102896 pick a date in calendar only works once (rollback #730319) * bugfix: #1099944 some strings in the main window untranslated * bugfix: #1047103 win: (libofx) Importing QFX causes HomeBank to freeze 2013-07-16 Maxime DOYEN Made 4.5.1 rc release. 2013-01-14 Maxime DOYEN Made 4.5 release. * new : main window, "where your money goes" report * new : main window, anonymize feature * new : account window, new filter on date, type and status * new : account window, label of account displayed * new : account, ability to exclude from any reports * new : account, ability to exclude from account summary * new : budget, warning dialog when no account is configured * new : import assistant, 'known file' pattern set by default * new : import assistant, ability to change date format * new : preferences, set a default date order format for import/export * new : preferences, option to append scheduled transaction * new : preferences, a lots of new preferences + reorganized * new : chart, color scheme are now available + a new default one * new : chart, some changes and add of titles drawed into the chart * new : ms windows, number/currency default value from user locale * change: xhb data file format (v0.7) * change: upgraded to gtk 2.24 / glib 2.28 * change: windows: upgraded to libofx 0.8.3 * change: preference dialog, moved the clear button position * change: homebank, clarified the error load messages * change: homebank, optimized xml * change: homebank, added a visual type of category everywhere (-income/+expense) * change: replaced '(none)' string by something more relevant * wish : #140504 category split for transaction * wish : #400010 csv export add support of mm-dd-yy * wish : #593435 add subtotals for account list by type or bank * wish : #660450 Cash Account hidden from Accounts Overview * wish : #688494 limit day for automatic transaction add in the future * wish : #722226 xhb file format : amounts and order details * wish : #730137 portable app for ms-windows * wish : #730319 single click in calendar to choose date * wish : #787131 Column titles in exported CSV * wish : #787134 csv add import/export for tags * wish : #833614 sorting on category / subcategory in statistics report * wish : #856477 improve category dropdown with +/- * wish : #886372 poland in the European country list * wish : #1006802 hide reconciled transactions by default * wish : #1088259 Handling "VOIDed" check transactions * bugfix: archive target internal transfer account * bugfix: closed accounts were not excluded from reports * bugfix: detail status and rate in toolbar report window was not initialized * bugfix: #123704 Numpad dot key does not work for french locale * bugfix: #599476 some English terms unclear * bugfix: #726052 Balance report not up to date * bugfix: #740373 ofx import, debit should negate TRNAMT * bugfix: #758281 QIF import shows wrong dates * bugfix: #772233 mouse over piechart sometimes crash * bugfix: #777886 Crash when I click "Select All" in the Balance Report * bugfix: #783787 Fix for a small memleak * bugfix: #793719 csv output: no rounded values * bugfix: #801962 win: Descr field inUpcoming Auto-transactions alters on one entry when mouse-over or near * bugfix: #813789 HomeBank does not import MsMoney-qif-exported files * bugfix: #828947 New Wallet wizard do not treat created wallet as modified * bugfix: #828991 Error message when you decide not to "Save As" * bugfix: #829362 Missing decimal separator with C locale * bugfix: #840245 Closed account on internal transfert selection * bugfix: #850996 Escape key looses changes on "New file" with unsaved data * bugfix: #870023 HomeBank can't find browser * bugfix: #872185 crashes on qif export * bugfix: #885749 QIF Import shows wrong amount * bugfix: #905277 balance rapport reports wrong amount * bugfix: #926915 transaction modify window sizing problem * bugfix: #931187 preferences not saved when ~/.config doesn't exist * bugfix: #932959 win7: import QXF/OFX file if path contains non-ascii chars * bugfix: #942346 internal transactions mixup * bugfix: #987144 QIF Import Error in Financisto * bugfix: #1024907 2 qif export problems that must be fixed * bugfix: #1074133 from date to date - does'nt count the last day of the months * bugfix: #1080132 4.5pre1: transaction split OK button stays inactive * bugfix: #1081809 4.5pre1: filter by category ignores split transactions * bugfix: #1082634 4.5pre1: transaction filter dates being reset * bugfix: #1094215 Button "ok" & "close" unvailable when changin "payement" * bugfix: #1096364 scheduled transaction internal transfer dst_account not saved 2012-11-17 Maxime DOYEN Made 4.5 pre1 release. 2012-09-01 Maxime DOYEN Made 4.5 rc release. 2011-02-24 Maxime DOYEN Made 4.4 release. * change: xhb data file format (v0.6) * change: upgraded to gtk 2.20 / glib 2.24 * change: auto assign is done when payee or category is empty (both were necessary) * change: rewritten the management of internal transfer * change: rewritten the old overdrawn report to a new more powerful balance report * change: date range information above the listview in all report window * change: #695790 compile problem with gtk 2.23 with deprecated flags * change: #690024 remove deprecated gdk stuffs from gtkchart.c * change: #685434 the date entry field doesn't follow date format settings * change: #617936 +/- are not used during "internal transfer" * change: #602443 cancel button different way around on Add and Edit dialogs * change: #584344 inconsistent translation - account type "Institut" / "Bank" | german * change: #561618 some toolbar buttons should be togglebuttons * change: #229904 wrong multiple plural in translation * wish : #682656 automatic assignment even if payee and the category are filled * wish : #657273 set focus to "save" when asking before quit * wish : #617243 km/l fuel consumption instead of l/100km * wish : #595540 'car cost' should be 'vehicle cost' * wish : #576878 filter dialog too high for netbook screen * wish : #569022 overdrawn report to use end of day balance * wish : #555186 all accounts display on Overdrawn report * wish : #446330 add a check box for a category to be part of the budget report * bugfix: after a save, the account list was not refreshed * bugfix: #722397 Remaining time in Automatic addition not translated * bugfix: #704111 Budget csv exports incorrect, so import crashes * bugfix: #694015 ui-assist-start.c has missing localization strings * bugfix: #692488 renaming categories doesn't always work * bugfix: #678121 windows styling reverted to "Classic" in windows 7 * bugfix: #677351 internal Transfer's target account referenced when it no longer should * bugfix: #674102 filling the tag of an inherited transaction change the transaction original tag * bugfix: #662427 account window and balance adjusted in wrong direction when removing transaction * bugfix: #632496 payee and category deletion was possible in despite it was used in assign rules * bugfix: #620048 wrong calculations in trend time report * bugfix: #617926 wrong +/- description in manual * bugfix: #615099 when importing OFX, memo field not properly added to description * bugfix: #609046 doesnt show error on save w7 folder permissions problem * bugfix: #609041 hb-categories-es.csv is not in spanish lang * bugfix: #606613 4.3 only runs minimized for me, 4.1 works fine, I'm on Windows 7 * bugfix: #593082 if lastopened file was deleted error dialog * bugfix: #577000 Problem with synchronization in internal transfers * bugfix: #540581 changing to internal transfer create a duplicate in target account * bugfix: #159066 Car cost 100km consumption detail maybe false * remove: the amiga computer version file import feature 2011-01-17 Maxime DOYEN Made 4.4 rc release. 2010-06-18 Maxime DOYEN Made 4.3 release. * new : welcome dialog at first run and available later from the help menu * new : a new wallet assistant to initialize categories and the first account * new : preset categories files for some languages loaded when creating a new wallet * new : account column in upcoming listview and report detail listview * new : utf-8 validation for csv import of payee, category, budget * new : utf-8 validation before loading .xhb file * change: ofx/qfx import set credit card payment for credit card account * change: xhb data file format (v0.5) * change: remember last folder location during import assistant * wish : #427710 Total into the automated transactions list * bugfix: #378992 windows: libofx not always convert string to utf-8 causes partial load on file reopen * bugfix: #528923 slackware64+kde4: crashes on start / load saved files * bugfix: #528993 opening other wallet with account window open causes a crash * bugfix: #527260 trend time report for category don't sum subcategories * bugfix: #530290 budget problem with category and subcategories * bugfix: #492755 transfer validation validate both source + destination * bugfix: #512046 links broken and file permissions changed * bugfix: #545643 def_pref.c - missing translation string 'Enable' * bugfix: #562503 string not translated in operation window * bugfix: #579260 QIF Export Internal transfer shows wrong account * bugfix: #580714 case sensitivity in QIF File * bugfix: #586322 x-scale legend month/year in statistics report bar 2010-05-20 Maxime DOYEN Made 4.3 rc release. 2010-02-15 Maxime DOYEN Made 4.2.1 release. * bugfix: transaction remove was buggy * bugfix: detail list for trend time report account was not working 2010-02-10 Maxime DOYEN Made 4.2 release. * new : trend time report with line chart for Account, Category and Payee * new : chart zoom in/out for x-axis in bar/line * new : OFX import of memo field with user preference * change: transaction and archive dialogs widget was relayouted * change: default archive is set to month, instead of day * change: the storage for user data into appropriate config dir * change: account selection widget was not sorted * change: the icon format to window 7 (size > 48) * bugfix: the deletion of all transaction of an account was very slow * bugfix: minor toggle display was sometimes not working * bugfix: #516560 Last tag can't be removed * bugfix: #502621 Transactions sometimes lost when added prior to minimun account date * bugfix: #502491 Please consider using XDG /home/user/.config * bugfix: #493160 Multiple transaction type: internal transfer - cant set account * bugfix: #492872 Account transaction page minimum width too wide for netbook. (1024x600) * bugfix: #492127 qif amount import problem * bugfix: #491861 csv export category * bugfix: #489969 date should be bounded to 1900+ * bugfix: #421228 amount display problem * bugfix: #399170 Carcost calculation is wrong when adding multiple car transactions per day * bugfix: #379760 problems with csv imported transaction with payment=5 * bugfix: #326844 Re-edition of internal transfer is blocked but possible * bugfix: #319202 improve OFX import using memo field * bugfix: #288874 Graph time "line" chart by category 2010-01-24 Maxime DOYEN Made 4.2 rc release. 2009-10-31 Maxime DOYEN Made 4.1 release. * new : automatic assignment of payee/categories in import and accountwindow * new : new payment: debit card, standing order, electronic payment, deposit, FI fee * new : account type: bank, cash, asset, credit card, liability * new : payees/categories can now be moved * new : archive can be inserted as remind * new : stats result can be exported into a CSV file * new : filter on plain text for info, description, tags * new : preference for transaction list columns: reorder-able with drag&drop * new : preference amount colors presets * new : preference for treeview rules hint * new : preference for displaying splash at start * new : preference custom amount colors can be disabled * new : mainwindow saved sort column for transaction list * new : mainwindow saved adjustable repartition of account and upcoming in main window * new : mainwindow view menu with saved option for toolbar, statusbar and upcoming list * new : some icons into option combobox for filter dialog * change: xhb data file format (v0.4) * change: import was simplified * change: moved the recent file menu to the toolbar * change: moved the total accounts balance at bottom in account list * change: amount colors are now more visible when a listview line is selected * change: upgraded to gtk 2.14 / glib 2.17 * change: native gtk 2.14 function are now used to open local and web location * change: reworked the icon management to follow gtk+ standard * change: complete new iconset in png format (no more blur svg) * change: (beta) added a dialog result for auto-assigments * bugfix: #444015 If an account is not included in the budget, Budget report's Details panel should not show it either * bugfix: #434877 import file filter is case-sensitive * bugfix: #433396 sort list of archives and "fill with archive" alphabetically * bugfix: #424046 QIF wrong import of amount with not 2 digits after decimal point * bugfix: #406880 tag sort has no effect * bugfix: #406879 date format display in account window * bugfix: #401947 QIF C and N field seem not to be treated at import/export * bugfix: #400483 Zero balance displayed wrong * bugfix: #399170 Carcost calculation is wrong when adding multiple car transactions per day) * bugfix: #399038 Payee column on Automated Transactions list is blank * bugfix: #398585 HomeBank crashes if Add Transaction is selected from the Main ... * bugfix: #396964 The automatic cheque numbering is no more working * bugfix: #395254 Colours not as selected * bugfix: #380642 Budget report shows an inverted Decay (screenshot Attached) * bugfix: #329897 transaction list sort by payee doesn't work * bugfix: using the clear button on filter was not refreshing data's * bugfix: dropping a non-homebank file was causing to close the current file * bugfix: imperial measurement units display in carcost 2009-08-28 Maxime DOYEN Made 4.1 rc release. 2009-06-10 Maxime DOYEN Made 4.0.4 release. * new : add some new euro currency preferences (2009 to 2013) * bugfix: #371381 import QIF file with date format dd-mm-yy (instead of dd/mm/yy)... * bugfix: #371404 budget - doesn't save data when 'same each month' selected * bugfix: #372204 payment images for transfer have disappeared in 4.0.3 * bugfix: #379372 problem in multiple monitors view * bugfix: #370922 homebank 4.0.3 : make error * bugfix: #361242 sort by state not possible * bugfix: #361246 filter by "reminder" not possible * bugfix: #380550 import problem with QIF from National Bank - NZ * bugfix: #385164 budget categories with different month value display nothing 2009-05-01 Maxime DOYEN Made 4.0.3 release. * bugfix: #364480 windows: 4.0.2 some French translation missing * bugfix: #349067 dsp_wallet.c - missing translation string * bugfix: #349033 4.0.2 German translation error causing half translated homebank * bugfix: #339871 [OpenBSD] Regress tests failed * bugfix: #338109 no other cost in car report * bugfix: #332671 no decimals importing csv files * bugfix: #328034 missing added categories in budget * bugfix: #318733 "inherit" doesn't use actual date * bugfix: #314248 can't import non UTF-8 QIF/CSV files * bugfix: #313609 can't select account to import from OFX file * bugfix: #306742 move the filter widgets out of the toolbar * bugfix: #292316 header in transaction list window could have better look * bugfix: #290440 budget should be calculated for all subcategories * bugfix: #207203 two untranslatable strings * bugfix: #147410 display statistics and budget reports by top-level category 2009-01-31 Maxime DOYEN Made 4.0.2 release. * change: 306967 "Save as..." menu option unavailable to unmodified files * change: 306750 do not show scrollbars when not needed * change: 306741 do not ellipsize toolbar button labels * change: 203663 sate format entry could display tooltip about the format * change: 203653 toolbar style "Icons beside text" isn't displayed. * change: 117857 french text on the main menu icon are too long... * bugfix: #321237 category dialog box and accents * bugfix: #315071 fixed minimum version of glib to 2.12 and gtk to 2.10 * bugfix: #314817 manage categories dialog does not show all categories recorded * bugfix: #314049 missing added categories in statistics report * bugfix: #307803 Import from Quicken creates duplicate transactions on Internal transfers * bugfix: #305974 using "&" in description field leads to misinterpretation inOverdrawn report * bugfix: #305692 closed account should not be displayed to main list window * bugfix: #305674 suffix and prefix in display format 2008-12-04 Maxime DOYEN Made 4.0.1 release. * change: xhb data file format (v0.3) * bugfix: #303886 after a multiple change of categories in account window, stats and budget report crash * bugfix: #294755 windows saving of file is not working with non ascii folder name * bugfix: #303738 after removing payees or categories, statistics and buget reports crash * bugfix: #303666 removing an internal transfer transaction was causing a crash * bugfix: #304484 does not build on either GCC 3.4x or amd64 on FreeBSD 2008-11-22 Maxime DOYEN Made 4.0 release. * new : QIF import/export feature * new : tag can be assigned to transaction and used as a new report axis * new : statistic report is now possible distinctly for Category and Subcategory * new : date saised can now be day, day/month or month/day, or complete date * new : direct creation of Payee from the transaction dialog * new : direct creation of Category from the transaction dialog * new : autocompletion for account selection widget * new : autocompletion for payee selection widget * new : autocompletion for category selection widget * new : autocompletion for description/memo widget (transaction dialog) * new : drag'n'drop of homebank file is now possible on the main window * new : preference to choose or not to load the last opened file at start * new : preference export path * change: removed the account window csv import function, global import menu must be used instead * change: inherits transaction also inherit date and permit multiple add at once * change: internal datamodel + refactoring of source code * change: account/payee/category dialog changes applies directly * change: xhb data file format (v0.2) * change: forced dialog windows to center on their parent window * change: reworked and clarified the import process * change: listview title columns are now centered * change: subcategories are displayed in italics * change: full category name is now displayed in listview * change: rewritten the charts using cairographics * bugfix: #187952 spinbutton in manage account dialog do not persist seize sometimes * bugfix: #201704 closing the main window was possible in despite there was changes made in an account window * bugfix: #188236 monetary display - the grouping char was causing bad display for some countries * bugfix: #210497 import csv - lines containing UTF-8 characters were ignored * bugfix: #244365 in account window future transaction were badly also summed for today total * bugfix: #256703 windows crash on saving when no owner set into wallet properties * bugfix: #226122 crash when exporting payee * bugfix: #260973 filter by amount doesn't work * bugfix: #238571 balances sometimes wrong in account operation window * bugfix: #152556 balance for new ofx created account using import feature was not computed * bugfix: #238571 account window bank balances was false when modifying transaction amount * bugfix: #239939 crash was occurred when loading file with orphans transactions (deleted account) * bugfix: #240247 editing a transaction to transfer, the invert transaction was not created * bugfix: #244621 transfer inverted transaction was not validated if the source was * bugfix: #263024 removed obsolete GtkType and GtkSignalFunc * * bugfix: #207203 untranslatable string "Bank Account" and "%/%d under %s" * bugfix: #244365 future transaction were faulty added to today's balance also * bugfix: #244622 zero balance are sometimes displayed in red color * bugfix: #253390 fixed the build break when linked with --as needed * bugfix: #267473 lastopened file feature was no more working * bugfix: transfer transaction was possible with same source and target account * bugfix: preference display format empty value where ignored * bugfix: statistic sort by amount income/balance was wrong 2008-09-14 Maxime DOYEN Made 4.0 rc release. 2008-08-18 Maxime DOYEN Made 4.0 alpha2 release. 2008-06-29 Maxime DOYEN Made 4.0 alpha1 release. 2008-04-01 Maxime DOYEN Made 3.8 release. * bugfix: removed the -Werror compile option * bugfix: transaction window in add mode was having button add and close action inverted * bugfix: ofx file with a blank line were not recognized 2008-03-22 Maxime DOYEN Made 3.7 release. * change: removed transaction register amount inherits from the category sign automatically * bugfix: archive changes were not considered for save changes * bugfix: strings change (British units to Imperial units) * bugfix: remind transaction were not displayed after save * bugfix: transaction window close button was faulty add a transaction * bugfix: string in account window status bar was not localized * bugfix: making an archive with empty name from a transaction was possible * bugfix: statistics rate columns were sometimes displaying 'nan' as rate 2007-12-14 Maxime DOYEN Made 3.6 release. * new : transaction register amount inherits from the category sign automatically * change: transaction register dialog buttons to follow gnome/gtk+ hig * change: charts now uses theme color (no more forced white background) * bugfix: prototypes declaration check (for 64bits machines especially) * bugfix: statistic 'by amount' widget doesn't work at first * bugfix: internal transfer changes were not propagated to opposite transaction * bugfix: filter force option to include added/changed transactions is now off by default * bugfix: reordering the accounts was causing a mix-up in target account for internal transfer * bugfix: specific month budget report display problem (decay with the previous month) * bugfix: detail list was not refreshed after a filter or deselection of a result item 2007-08-22 Maxime DOYEN Made 3.5 release. * change: GPL headers update of each source files * bugfix: FreeBSD crash when 'lastopenedfiles' configuration file does not exists * bugfix: MacOS amount display problem due to uninitialized preferences 2007-08-16 Maxime DOYEN Made 3.4 release. * new : local on disk program help documentation * new : a menu to close the account window * change: new GPL icon set based on gnome 2.18 icons * change: new splash screen * change: native en_US strings translation changed as requested by some users * change: statistics does no more include internal transfer transaction by default * bugfix: csv import/export for category, payee, budget and account was crashing 2007-06-28 Maxime DOYEN Made 3.4 unstable release. * new : windows position/size are now saved * change: converted amounts colors to Tango palette colors * bugfix: .desktop file menu Categories was wrong (GNOME instead of GTK) * bugfix: charts amount display was not affected by the user preferences * bugfix: account window for a same account could be opened several times * bugfix: when adding transfer transaction from the account window, 'account' widget was faulty set to previous 'to account' widget value * bugfix: internal transfer transaction changes/deletes affect child transfer * bugfix: amount display was incorrect when the grouping_char was empty * change: transaction window 'fill from' widget is hidden when modifying 2007-05-24 Maxime DOYEN Made 3.3 release. * new : preference format sample preview for date and amounts * new : transaction list columns visibility can be configured in preferences * new : transaction list 'Amount' column * new : preference folder chooser button and dialog (for path) * new : preference clear button that reset all preferences to default * new : backup of files: saved to .old * new : mainwindow menu tooltips are now displayed in the statusbar * new : standard args are supported now (--version and a filename to load) * new : menu list of recent files (GTK native one) * new : menu to revert file to the last saved * new : gnome complete menu integration * new : mime integration of .xhb files * new : launchpad.net integration * change: main window is now maximized at start * change: account window is now horizontally re-sizable * change: transaction list columns can now be resized * change: new icon for the toolbar 'view as list' button * bugfix: minor currency settings was not loaded * bugfix: compilation without OFX support was ignored * bugfix: transaction add cheque number prefill for pad2 was not working * bugfix: inherit transaction with empty info or description was severely cashing * bugfix: date format set in preferences was ignored * bugfix: import ofx with multiple accounts was adding all the transactions to the 1st wallet account * bugfix: date widget string input was always revert to calendar date 2007-02-23 Maxime DOYEN Made 3.3 unstable release. * new : list summary of upcoming automated transactions to the main window * new : import path in the preferences * new : OFX format is now supported via an import wizard * change: gtkdatentry: up/down keys change days, with shift for months, with ctrl for years * change: list of account is now display as a tree with total * change: moved the total balance in the account list * change: minor currency checkbox moved to a menu with a shortcut * change: number format is fully configurable in the settings * change: get rid the use of strfmon func, amount number format is now HomeBank internal * bugfix: overdrawn balance was false in partial view (when not displaying all date) * bugfix: budget category name with entities (& < > ...) was displayed wrong in budget list * bugfix: toolbar style was wrong in report windows * bugfix: fixed a possible segfault caused by automated insert on new, open, or at close time * bugfix: transaction list was badly sorted on income/expense * bugfix: cheque auto increments was not working on transaction inheritance 2006-11-27 Maxime DOYEN Made 3.2.1 release. * new : title in chart tooltip * new : preferences statistic rate column display * change: new category and budget icons * change: chart month displayed full name * bugfix: inherit a cheque transaction was crashing * bugfix: overdrawn balance column was shifted 1 line down * bugfix: charts tooltip was a little buggy * bugfix: charts were sometimes all black colored * bugfix: statistics credit charts value displayed were wrong (bad column) 2006-09-26 Maxime DOYEN Made 3.2 release. * new : sum of multi selected transaction in account window statusbar (missing from amiga version) * new : statistics report dual barchart display for income/expense (missing from amiga version) * new : budget report dual barchart display for spend/budget (missing from amiga version) * new : filter invert button for selection of category, payee and account list (missing from amiga version) * new : icon to indicate automated archive in the archive list * new : csv transaction import wizard with user control of duplicate filter * new : statistics report toggle rate toolbutton * new : splash window 2006-07-12 Maxime DOYEN Made 3.2 alpha2 release. * bugfix: transaction lost problem, due to xml entities not escaped. Data using "'>&< in name were well saved the 1st time but the glib xmlparser was crashing and not warn about it at reload, so if saved again, the data were lost :-/ * bugfix: description & info transaction field were impossible to blank * bugfix: empty field were badly saved with '(null)' instead of '' * bugfix: a change in the wallet dialog was not enabling to save 2006-06-21 Maxime DOYEN Made 3.2 alpha1 release. homebank-5.9.1/NEWS0000644000175000017500000000024711023413024007463 HomeBank -- Free, easy, personal accounting for everyone. --------------------------------------------------------- Every changes can be read in the ChangeLog file. homebank-5.9.1/aclocal.m40000664000175000017500000024063115006363043010643 # generated automatically by aclocal 1.16.5 -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, [m4_warning([this file was generated for autoconf 2.71. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # Increment this whenever this file is changed. #serial 1 # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. dnl dnl Copied from intlmacosx.m4 in gettext, GPL. dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. glib_DEFUN([glib_gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFPreferencesCopyAppValue(NULL, NULL)]])], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in Mac OS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFLocaleCopyCurrent();]])], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= glib_gt_INTL_MACOSX AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl AU_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ], [[$0: This macro is deprecated. You should use upstream gettext instead.]]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 42 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' AC_SUBST(INTLTOOL_V_MERGE) AC_SUBST(INTLTOOL__v_MERGE_) AC_SUBST(INTLTOOL__v_MERGE_0) INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) AC_SUBST(intltool__v_merge_options_) AC_SUBST(intltool__v_merge_options_0) INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # nls.m4 serial 6 (gettext-0.20.2) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2020 Free dnl Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) # pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*- # serial 12 (pkg-config-0.29.2) dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA dnl 02111-1307, USA. dnl dnl As a special exception to the GNU General Public License, if you dnl distribute this file as part of a program that contains a dnl configuration script generated by Autoconf, you may include it under dnl the same distribution terms that you use for the rest of that dnl program. dnl PKG_PREREQ(MIN-VERSION) dnl ----------------------- dnl Since: 0.29 dnl dnl Verify that the version of the pkg-config macros are at least dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's dnl installed version of pkg-config, this checks the developer's version dnl of pkg.m4 when generating configure. dnl dnl To ensure that this macro is defined, also add: dnl m4_ifndef([PKG_PREREQ], dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], [m4_define([PKG_MACROS_VERSION], [0.29.2]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) dnl ---------------------------------- dnl Since: 0.16 dnl dnl Search for the pkg-config tool and set the PKG_CONFIG variable to dnl first found in the path. Checks that the version of pkg-config found dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is dnl used since that's the first version where most current features of dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])dnl PKG_PROG_PKG_CONFIG dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------------------------------- dnl Since: 0.18 dnl dnl Check to see whether a particular set of modules exists. Similar to dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl only at the first occurrence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) dnl --------------------------------------------- dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])dnl _PKG_CONFIG dnl _PKG_SHORT_ERRORS_SUPPORTED dnl --------------------------- dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])dnl _PKG_SHORT_ERRORS_SUPPORTED dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl -------------------------------------------------------------- dnl Since: 0.4.0 dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES might not happen, you should be sure to include an dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])dnl PKG_CHECK_MODULES dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl --------------------------------------------------------------------- dnl Since: 0.29 dnl dnl Checks for existence of MODULES and gathers its build flags with dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags dnl and VARIABLE-PREFIX_LIBS from --libs. dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to dnl include an explicit call to PKG_PROG_PKG_CONFIG in your dnl configure.ac. AC_DEFUN([PKG_CHECK_MODULES_STATIC], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl _save_PKG_CONFIG=$PKG_CONFIG PKG_CONFIG="$PKG_CONFIG --static" PKG_CHECK_MODULES($@) PKG_CONFIG=$_save_PKG_CONFIG[]dnl ])dnl PKG_CHECK_MODULES_STATIC dnl PKG_INSTALLDIR([DIRECTORY]) dnl ------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable pkgconfigdir as the location where a module dnl should install pkg-config .pc files. By default the directory is dnl $libdir/pkgconfig, but the default can be changed by passing dnl DIRECTORY. The user can override through the --with-pkgconfigdir dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_INSTALLDIR dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) dnl -------------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable noarch_pkgconfigdir as the location where a dnl module should install arch-independent pkg-config .pc files. By dnl default the directory is $datadir/pkgconfig, but the default can be dnl changed by passing DIRECTORY. The user can override through the dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_NOARCH_INSTALLDIR dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------- dnl Since: 0.28 dnl dnl Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], dnl [DESCRIPTION], [DEFAULT]) dnl ------------------------------------------ dnl dnl Prepare a "--with-" configure option using the lowercase dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and dnl PKG_CHECK_MODULES in a single macro. AC_DEFUN([PKG_WITH_MODULES], [ m4_pushdef([with_arg], m4_tolower([$1])) m4_pushdef([description], [m4_default([$5], [build with ]with_arg[ support])]) m4_pushdef([def_arg], [m4_default([$6], [auto])]) m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) m4_case(def_arg, [yes],[m4_pushdef([with_without], [--without-]with_arg)], [m4_pushdef([with_without],[--with-]with_arg)]) AC_ARG_WITH(with_arg, AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, [AS_TR_SH([with_]with_arg)=def_arg]) AS_CASE([$AS_TR_SH([with_]with_arg)], [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], [auto],[PKG_CHECK_MODULES([$1],[$2], [m4_n([def_action_if_found]) $3], [m4_n([def_action_if_not_found]) $4])]) m4_popdef([with_arg]) m4_popdef([description]) m4_popdef([def_arg]) ])dnl PKG_WITH_MODULES dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [DESCRIPTION], [DEFAULT]) dnl ----------------------------------------------- dnl dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES dnl check._[VARIABLE-PREFIX] is exported as make variable. AC_DEFUN([PKG_HAVE_WITH_MODULES], [ PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) AM_CONDITIONAL([HAVE_][$1], [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) ])dnl PKG_HAVE_WITH_MODULES dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [DESCRIPTION], [DEFAULT]) dnl ------------------------------------------------------ dnl dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make dnl and preprocessor variable. AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], [ PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) ])dnl PKG_HAVE_DEFINE_WITH_MODULES # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.16.5], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.16.5])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. AS_CASE([$CONFIG_FILES], [*\'*], [eval set x "$CONFIG_FILES"], [*], [set x $CONFIG_FILES]) shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`AS_DIRNAME(["$am_mf"])` am_filepart=`AS_BASENAME(["$am_mf"])` AM_RUN_LOG([cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles]) || am_rc=$? done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE="gmake" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi AS_UNSET([am_dirpart]) AS_UNSET([am_filepart]) AS_UNSET([am_mf]) AS_UNSET([am_rc]) rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking is enabled. # This creates each '.Po' and '.Plo' makefile fragment that we'll need in # order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl m4_ifdef([_$0_ALREADY_INIT], [m4_fatal([$0 expanded multiple times ]m4_defn([_$0_ALREADY_INIT]))], [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) # Variables for tags utilities; see am/tags.am if test -z "$CTAGS"; then CTAGS=ctags fi AC_SUBST([CTAGS]) if test -z "$ETAGS"; then ETAGS=etags fi AC_SUBST([ETAGS]) if test -z "$CSCOPE"; then CSCOPE=cscope fi AC_SUBST([CSCOPE]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check whether make has an 'include' directive that can support all # the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) AS_CASE([$?:`cat confinc.out 2>/dev/null`], ['0:this is the am__doit target'], [AS_CASE([$s], [BSD], [am__include='.include' am__quote='"'], [am__include='include' am__quote=''])]) if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* AC_MSG_RESULT([${_am_result}]) AC_SUBST([am__include])]) AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR homebank-5.9.1/install-sh0000755000175000017500000001440611023413026010774 #!/bin/sh # # install - install a program, script, or datafile # # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 homebank-5.9.1/COPYING0000644000175000017500000004325412166575517010055 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. homebank-5.9.1/images/0000775000175000017500000000000015006374031010321 5homebank-5.9.1/images/Makefile.am0000644000175000017500000000024213640137156012300 ## Makefile.am for homebank/data/images imagedatadir = $(pkgdatadir)/images imagedata_DATA = \ homebank-icon.svg \ splash.png EXTRA_DIST = $(imagedata_DATA) homebank-5.9.1/images/splash.png0000644000175000017500000022304311023413026012234 PNG  IHDR)O!sBIT|d pHYs oytEXtSoftwarewww.inkscape.org< IDATxkh)9N'S;=y؎86_N-$mQӳV;>ص>}p>})sRW9\}/:2<ڣ][> wqm)}k;߭e})s{Uʹ'c]u i%] 'lc2Oģ 鿐/'c]{s)-&GyboH!}%}k!}vQ/'13O!])|v/Z!ģp>>ص>_HߵQ_Ϳ.6J!}%}k!}WZ_LJP?~kq|R?صk=j_%'.¿|Tv_u=jOQҿڿz{v }ADknmH+M Bҿڿz{vq>E Z JhE_HkQ|R?صw@:̷O~`>avע?w_I! ͩD@zdč~!,J<=> DGXF]_H+}cE~*'|+h3Bf'Bop/V? `>5F}.‚sO.-v>',g>,6?"-)_έ_H1^_z/K"碆wC10\%\f5*mH+Oαۯ/]=w ZoAC%qf78G{/~k{dŏ"cw@˲ו1}<j-?v4*wI9<#r0*S@7>ص=BflA _s _X1=r ? ^|9q{G]vwm|䱿`~۵>76kHWԯvi\89E{o³N@h~O%th/rrό+ hg/sMA ~{!}k3/pdM[ل{曧7 Bd+C$a}ҫv;ݗ-/=:_Hg)~ģViUe FYzkF\PۧkN~"k;̵ܽ)ŜYpSP_^t:R73o./~X K ߳:ղ'^ic͢# h^=W]ܷWhRDˣ8o|0 ӵ fOCw<,;-nmfksn=i՞aʕOO\o a ˫^kF<җ]c?YT;R۹o*3ѽm힮].5|s'}} Y4=,zӰ"γ)fccRVy=Zz{ i! ~%bυ/ XY'g6Z8qH'PHZ_c>qNӨO%N:#H_t65x nyKCaU{۽};?/߹O׭~7\K\+zVuEv. hEy\N649KWQjzqicd+0V:y6r\0nУg(͢ Y=2%׽dq!Pn) V QV''X@6zYh7륧׆GWhCe w/ =$m}cߑ@چΦ?+;Q,U |O2ءz e~w:K#b0H}H!3v(U\y;UOzlo/={ey\-fԞh|/:f=ԫ(oLΆ#hiQ,Ož*g7DԆ{`x HC ~3mw0 P]So鍯2CnB7;x7Nveh3hvoQC~7= εq%Q9 Odr"ۀ&ŤJ(jQxU>fpݓ(Ut[$?j1<3-<#ߢW͟ $_DyT8JY[Dlٵk;VPozυ4܅kA*jC+:pnYw˟E͒ ̄gEUbrm+] j@3Ңo FLo^7]{̈́<+euz4ڊY9咜l;_$$f$)gdQB8*wmf#xTj>}G7CM/T?c}De2#68k3ʿ} E]a?w@bd."T|:.ق "8kqǕ׵ ᬣXP%ZX&@)7u'SSڤa%p$4ʯ)ɽAY?]oDE[y.Oivk8W!hE[wIEip7>/߈pN[J&uS߁LnxBeYiuЃayaU-HT<; +oT/T  0H7 !C1@wُ#'*VUq#]NC! ZR$<@[viUM:нܫϊ7nDY!y2ǧ o{k*?ڂ"}띈讹`vjJpP'A(W); +f m}w A{n(צQh!ymː\&W:֘a;Az^ O DVͨw5N~q8׽'xaGG\>pwG^: @p1'ۂ-GkiP~Tz:j^0w]t #h$ @s-bK[ 54=(lrk \ۇ&d|/n.R[~YmW|6r| -HƬ(%VWV7?D\8\6p|Vj0(AP RLhXT{b@urSd_k^ی֍}-hH8SK 6|x m7prUph2 (nR!N!!^n{Eٮm^ lp5X2NǶIOZB^a\Jj4VMe΢%h>FPD&?2s#_ٮ4>ڹjw%XOvZ^HJ#[:?ȹ+)bU%J\h&)I5u^}aЙeC V< $G*Bdtexpzm8q)UBrs:0&Q@}IDllRa%Ez7qFy8}T|\t-o諓~L 1uг#}>pY _GU/fƅw Ƙ]uB,Let&c{V(we?jؙ>Ԣ\>^+%`me@S6,/wI>kG/vkM? @ &vqS)]:9JoyM!w@%Kc7^GЃX;eF6R]7b ݸ[̌.w(=2JG`KS6?G fa*b|F5 :$IAJ.PAn[%Qҭ?+Qp]n]# \:V.`e55NVHvݦ|Vo |p ߠ={ #zd=uecФ&gv5׃$*"G H J悽46bss9=i%^8c/,92:)ޯ|T>y%a"[6.'ƶzآ(Lأf2d\tZDP7DB{kz wN 3jeHXȵޗS_7'{R gِur 뀤t+V/\)hUojޙE'+ZޱsWNbC=##_Zʗѐ8TaARϨ b;ڔ[|} =7ʎ?hU;\hfUQ;^0Ѯkh:G6ͮg]D,ds;O0'D哮S 9g4;(#agkN)ralEUrh]̗81z1_3Z"nzxέ!"19$/fl=~+YEq q("{'va6^ȶ(&Y;l Ρ_"F20D'u{3ʲ^to'͇ 2 Wn;׏Cwz+]PoBvzޕ~^Q>K F3g> 2M8bۋI a_Xjo vA<=]g=b=CbѮ Aҽn0|\Fqq}:#bk*K' EStFr =ݞ|se@5? Ko'Z Eq񄬀wCb7d㑎Eڋ?9 ktt4ҹґ a=29gpor'sTFeȚqEYb[/3"Z:9D(pPe'@ dN܏||NIg@/ˁ.#~ y2wz*7FOw%_'aaa2k d7c2K:J\`3{B^սɸuei}tɟ(${h/pABGrޤaIu$9+RHW,Xϒ.rG;.|:zgZQqt.{뱵L;yElgcԮg3ܛ h9ddžئ7A-d2htӺ!m4 ?<6qEVw!720.慡#Vӕ%HKVX=J*S 5D=홤geR޲yݯjg-0l&j \/PC;Tz؈'K>.,V#DGi}, (݀t5j9 vƉ+W?z{YpQ `ԈeF-2nRA o+/=SuDW \\C=Tl,a-e`SZR2Ѵo~.YB_ ?a)B!Ѯԩ}>EyLA ͳ%gio%7bht&iz396i )vU}6pB_#<ݝ+57`z PM|+:IDMm @."pin+ߘ.4>&-\;&cO'^),% 3@msLW| JMzw%G0J hmC52Җm+p/UHJ u[Z%/teYpEfG{Ϣޕ1x4oQY>֖*e~kᤗlGc jfM`ct݁FyS,m](&5`J Ia5vE,as-O IDAT,x4wU|ꏾC\._z)+EnB72WYf8o|uN0n[%_53Tm)2^nw7O\]=b|[eӅ6D/"tM|7 ~N]At0aS<5Sv"hWcE=q-^y|*hCA}އDu$^baHǀ5%h_M9|#སCyݭsguwG ![ϋWaʀ8 [& ke81 a'a !_oj!9> Ty'XydwRᏮKپ]+GRȰd6tPߡA$h{Ǡx%חP(CF&g'wY"6Ui{o.̟pX0D^R >+RpfnY:0JW,-ݨ|j:Rq!0e8Wgzkq 52Jρy/Oj +d0ƟzbMtJN tHɡb,:0 : ;U ׺#st@,偎9}5TD_#h!0 Gj,g(芣2, `TB`i%mN@Ztҟ܅J'&٘|cAT~c27i лpv`=HF,M9ʇڄ,UP!" >b7N0k.AY'\ʋE>dGِNc$&4J\/:$Fl=Nx2W?08'kNȋCqswE$M,Y!0W/wTwԩisˏ .2T.[*MF7x@Ȱ;eYM 9&IrhC%~$YIiw|,;T0.+2|Wq4 4g$xdͩ{!U_ mqiN9 gu+bv%vZ9^q {- !h4ګpttLbCo z)]b)Lyޚ$?'yp]U|2:ʔ-8UN%.~_K-A#"u Μ[e8`$9kk͍Z_;a@YE2 wo8^)r7'fчȽf FU U^NR*GN]֜ח0[\}rJ_nz(INI&HGI6tv]*7ׁUβ 1|2F~˼X?KF"hHH@M8..N?FcjfLcw3Rv.+JXPV ߇eTo`rW\" Gdx o\N%veRwQ'a%"4`n%t3WWdGteOֺ>ҧ͏7?^DDAzUs̑1~; 'ͺw/$,4iKJoQSP}A:2o]}Ri֕s贋6`hv4)ue765N;-2HD6͖p_lc\Dw ;ZMuA&团+F xG_T-Q??~˾j?^WB>RL}Y˶M%gez !;ifIJ|N'phCĈJ'ˇŔϊS&i:K}h:(Ԗ6.ҁ"$Q{͇OPA ev'N UꋣwI1h72ye}#y((o,^} : sHtQfz&T_u8L.PH:>Y;=XZ 5,Hv ] 73_ 5ޢF_I}[KXWgj\с\NzX٤CD#߆m巀eBelMg]R `Xhd]pY,T sc1BPGSW?RH׋?WvPرFIvNN|/7~D/\#:6 'y?\j؃#{?=L8`gh mh٤jM3F$|H1pSvu(]cT‰*< "טV";-^# ;*1I./ &Կ,GG}n;*!!dq cuy;%&:[ ]+;i2s B9\h 9Os|!wByҰvwi NP U<ٚDҙԦ." D =%B~8X- [[HP6(R_?'Ʃh헅]W%š)hn4dmlDX3m.mK)zn(ޒa7 _A!GF6ӡj8X1l7:]WفTѠ<~s\0 Y{Uft?]|@'Yg@̳قY_=7x@'}9ݑQ9F#T ' Uyxˤ5 i}*I ȾSHsqcMŚgt<\;~TU6HN&E80mk;O.*Ǫn??Б|i".}}qqxǖѮ5:i5'iRJfvA e%j0PvN%;uno] 현pJKFRbysmD/h0l8m{*lWy5Z`@bXٺw eA(\sԩT5- dZPBDܟey6e}Y7Fo2,YNlh9U9" Qwh:~'Gsd!L&-ZNJ%?F#1V9zyw긪k[gE矗CK,\<蓍RN aHG!  ՝8 >ή5 Qꏋ Z_`|eB5ZDh0~7A;'@|tQ-}daGrGǰ \$=>EOpr;%,)/zYm@Xu[ FQ,HED_u8r$vĎw t3]3}33]qR{vlYK5zs-k4,$Z@zI[@pѕA޿6Ƥ|P/ <)!s sg fI@.@nŬ UQiZC;Xo.B*XՋZNBVu"$4s0rwcYc1yf0EQ[KNFc(gp-5?AM9-Wwy0p#W|TVyENVNO訰 ї=b&L&|y )D'c]S K>5ʹ:{u  oj]d\(Fk|$A4E(u%oO:4`jRR(sܤblFme ,J" e|H_P,cSu \RA֕6q/*KeNpy8AD2ߛwn^ Sh  ^_|7rlg1;a3jt8cc%AY#~'4t j%\{} ]W]G{m}o¨σQTul}v Bt,ǖF_rp"^cI\в9jdW+K'k% +ys7U~xWwE[u]Ma`> ls48KCs, %D 9Lz}%Yf庛?nw( tsx)7?/^l e8Pl@{8|n!]܎E 5%@8jyf%(a[/cpЯsX)eqi> O7[e;BNBdёB³[N _@V*@ KA8[B:ˍ Ln%!4c]Z Aɢ21Կki|9:5ks5}Γ9@EPMIMBw |!(l{otw;#[6 5iΕ.{X*nAW9G,IVpp.&3!R~w((|i;ןnpiCJ4U9w.%7mHs\LK; Ȇ} \6]GڌeҶ|tf0v>k5}GPԾ@6Gs?S6y{w 5/w~@w#t/1Vq"(yWZu ;σBt{:ZPzOe)1JaWc#7X,:n(M{uR3taPq)Vm2+sE#Y Ft`T 02 !yVL<|ƛ5[O*2q:|ן0Doi#x~N3aM8?1U('Idr@6eօҋ{وHd IDATi'@cKQt TƔlkP@scK]0!uXEc*Gj3YOȓ81qΠ^op0_}N|a;K$|˒氲 F.q2H|+`Πt ej!ka`}~Vo+UʈJ8U̯nFm7[h@PqBg$(m \>H#tFb X뜰1BQGAs/ 'mg/zO1~P,c._o3/t,d py g񛩉rԫ;B:UW3A(eU\| gmG9k(ٶo+! xOA1Q]AC 7.lϣSPE~Pw 9#uUJwc2Uu'LʍfT,*aQg!ܭhyo s A` 7#m;LUB$y}x/FW'3/nOi}) iۿm4X`8A㟁TtxՐ\%44>svq8 KG]ꍜ,cCYb93gZuHi`q7(’rSne`1h1TFgUu WB fC;0Jlfk! fR@ ?͇P1'fI_jԏWOV^ r*+vB4jvm շjr3H՗ځ)B@ `#.ZT cY8K\TG'Uj +}8Ot>}xIi%OMN{MZ;0t]e!7eK9T%>M3<EǖF ^wΎ4tW`O$*8뀰p;(wT; [ EaMi p4R*X/55'g@ҖQxCy9J4b=ad16+]HtNBsym%Cؐ5-tSxP6!Z "ÑOp]fg  % @g:^'I_o#?g |Du;p^C0?Uux|NP itց ,qh%b ޅ$r٦@3xe@! lK}T^ZRV9uٛ/3#,5uuEO.os7[$8{ȷl+3gvL]d7q{ g2M]SQN@ {H+2lV2ThHm *To U 0HDP oYS(tk9>G:pwW R3Lm=lNtX>]УYS@W^s"] NZ#8d8"'d3g+y"[;yXḃP;E5QYg] ҆+8@z9"\;>(5ѣ.eaHl}>\ ,Ƴ #Q] ]CYVmu=u; < ~,=ȏlڂG & NQ0duzo0ӆa#N2Б* (t3eUde-U| HGmK׻9Gdd ʳa %A w7ckWdn)60_חWB̯$ka;y3H0SgU]|jU9%8ʅ4ԉ[T#jZ<@&ZJJ<G62Pvtި mh{c 05 aC~3CSu%]T5Te%jϠPŦjP7 =-WPY##ayv, W#v s -_8J~Ȇ)%) DX"ʔCqڒ2 Gݛk*Kh4m^ 3ڎIZ:Q@hzR$rxbppܑ푎̇4Ov.ZPpjT|ydF RP6~YA}DJ^[^*lV;2CR AptRAp?dc න" Ivcmbqի0(mk: ѧV :igPEkp G=[5h6 Ꝉ?Ĺno l@x#_z2 :1&Cֈ]45v˗E:%28Oh9HDEl_-2vV%:kk 'A^ym;( =:6RLםv-Xuop4孎ie3e]xI\ݴhmLUbqa2Wbn}]&U9eM\, {gHfd]}}wI*lχUiY9ya{}.NplޅQJЧ(Gm 7X=2l T|@Yyb()j}!!h|e"#U9\{ŭ]Z·j+oR:?MEU. Huh0qZgalݔ)]DUЧq 'DFu6ו&@nm>^"tgQHHo$t<;ӊ,_|+umNDE=2,m-CY-3KWjW'=P^Y:/W988i>ћ ȣ\+?i!Z:Q/%?a1WSg0enǨ ςERua܇3{ =0ua:.6KcY1Yr&4|? W >;H`r9o{ԵYW#PS' ʞ~暽6(bO*s9%G@}Njc|!8U aE_ib/E9r9 {mf!z]dD"5b)[?~6"0rW H5MwwlAuО Hy-MFOR2#p$. WcZ"%.@a;_]>9KFaYv'eɛSkte [9;9./hY6P ]U~FE priNVvT(6Rʆm`<\R#H8 Ju-m麴T9dxQۋ;/kMV0fTk/#hYgP+}+"[Lmˀ&_X$:N &F @=D7|gj9mF(JYv-xt]O+,ϔ9cFH@NDbzW ee;y,CEL [zrQT MȂF!v6{]e 8,rdt> =~5?!Ow惣3.sj?6TMѲ v~ 0Rf.Ѯ-#k <. |V(t C ~TNV3 :T@Cyf} MaTX)!"ް07V}QlEqcױP$aI}Ņ.XeCʄd?3nua:|Q'eiz"P1W *_C#D^+`~;eNmvsd^15rpnq N:jSlL]j(̕ɻ8Xkj$WbuJ8׳[<>#w4_A  NBm ?k~WOpINt xބ*x#Y~>M؎lL蠟--2xWqmkeEA^:$i@ϸ"q {:^j1 Sit !O>d'WtߋʌjRa%'wQeav<@]MalUM4}Hށ ՜o"pSn;ؙL.RbfnLA u&Dvն5N ; 긠RE;R ,S^ꛢ>@gFy#WtD~ evie˫ς bYCEО'9=zL VC^2oP 9FSR񀲠`v^_P}UpIa:TܶG5Gdca\VotNTQW}8xrr+LfNfYL{ɨ#Ql:B??ʉͮ8cF%o~Kp3R*Tu#~+v tg]Uגlⓕ?Hl>ȇ>h2vMסv W*M Ϗ=a! Iu ^9 pF;']vJ/gJDKR˳A#W`#|dbjekN7]'Yf<Fv4(23)F}DINr3V P_;}Ei.o;]%eŶML@Hlj^/ɻ f " 1"P@N"juu}\|Qd/8 "sT"E`TF`"0rk]c|PЅZǡr_T&x!)'*CI/%s mD ;`nW= ,k 1(4ʧ`X5<r9r8PfyܩsΡwjYolK!  *t~(Gplތ|2U^ lȶ#0rZfC'|<-A8O:Ryn TLgBPUK9Wڪ{ʐ҉mTQ;".oӖc,"9hP,*e@ MSG֟)7fK]*ߊY{$cz%jG{iQ6 < Ɲ0O:8S8tL5R' .l(9zJ$ Q낑F'7!!GyEܴSտ-%P܃10^>_X0.*IE35y.6W9v껬_s<Qݖ:Q I?mדN$*.#}{ӎ"`t&7l~wY]MRrN1q{> AY O蒍Z]U(3f (Wol}x+:z/ٶmԏ+ xք1ա\[Bż}>q"Su*w!l,ЯYBjy@{w/zCɌsW;i@pT>&g`&ORP8(JQ VJxNZ48mhGͨ@ΝB`u։N':}V,D1AdWםHSn}ւlP]PLU Ht:HU^aUiNY ]X[+yVx@w]L> ]m+ˎ  7V@U/< &ZI|*yV+qOTݭsMUAmce҉xbtq5j,fKt|'TcSwi]hZ,hB 8*dg/q%~ՏLPE <ԷݎFy` .uXdkP}֥@@1(@ft"Sȡld1oW@=KNdg~DDyR; -]m*5oRb4}oƊ+,z#?+t&4l.Q9r`JMJ˂9,œR uH*=iL7h pSV#}D~.U?ΆYv[v*8 gؖlȭݯ/ ŲݣyHGYU!-ADm$RN*Ю TFus!q>kj 0_KGZlޚӝZ .Ul0B"-Zbx4yv,Z]亯{rwdr;\91ea%[!;(3((QQ)n( i~Y,tP+0nrƼ*KHF_Y*R@X1&!+, ;*NSmh2;9g #n+wғP&"ՉlЖ-u_f|C-aqd:>x{~md:sDW݊]ʈuʿ].CpYC)lx&O'm2f"0+}(];g??΀tI;zk;62u1mjX}.>-W%pcD֭h0ϲ#;,\dByȟ!b @~l͹i"4"pF~Ƥ݁iʡi]0vo/Y&oAY _<¸v0xdoG2YAy}NC𼗅 ʌ/,\םmLftq뼭#Gʀ9/-]wnxof{;QQLLWwrG|DsEn 򏆟g@yGEdWHoFx[H=Nd|ԡkD&5a*"wΓԆ|Aqˈl2eЎk^w:{ #3r\JXUp8kT&h헖> "_ğ.x Y/NE6Ot)ec8g`Ά@m~5>UDcUGr^a#@&L!\<RuvQ'(+iQDAM^u >,]h+tհ khybF^D[Ͼm'PVga@fYnpFDo$ Sxr7==&ihB:D-0Z# ٝF4yᩲCSS  ѷF+0F2\U}O>Z˟"uYU/605ԉQ%r,/ׅvBu.bv2=/ ޝ& {ƭ,&Y~?$F)98ɭDrO8d_To!env(qwU'7EXEzy-[fg@|rr"j b~LDΆ˱ cli61>2B#'9]e> AG2,"TQ %Ѻ'vI>yzh)XWz_sB(X|WvVqu($2@s=+G!0f6gzg^ MRp-@eXyK> p7ErA/@y7JvL!`i  \fEv5|1h=ɞ3`ٿ*dL,^6,(X&QԉmJ5?7&蟭eeZTubYJnHΪ@U .g`"4I](uM.Auĭ5ݲ"^UkPfg uE'|. dy4H!erIJo$ubY]%Y;؛=^9=ٽ6$ HL)lcxlYBξX٢}hTd6ʑ-K]F2U$^qۛ2'_%J.N!#o-kd *sMWZU凞ut&r-$I[i?-W9iNԆ9q0'8ՙ݈W] PZMm)yAWZH쐺Vl'̍yM"OEYxv%*b-3X| h5Eqv:\ ^#;@t&5O*xgP[v\I]C; 5Qe ʞA9hSl{U>YB_>tx1 3^>:,9s(/(݉r>/2_xRo$Gpby&NpPY£uebvn5l\]ܷ[P) IݹFpF'\k|N24ė.S< [;آީS: 7)2! Mk vq~d_<1\R>ؓn Q_q~ة%FTEAh>Gy~|2{Lm5T^ }r ~_cRyc< PO`_qDvҬSeӷmTCXuz&sSޛ@=WY_dQo7$K|2wŊVVT*(o}I`gzqOm?{mfDW` rhg'::~6;j7_/ARYߚ~?׋ 6\'{l%{{QGWjT uyq-@{^#vt'g҂̊dt~ PgrGy"Oݍ ;y{V0 >@{1j.\wғwnF΀H)2jDB8i;P:UwOݼjw%"EDM0dk"LNdE0aV@PEV+jsytGP3\mOթSs*@KRS ixҀkel4V''1>,c6iCAH1@ٟ> N^9z^uUcaSd *Mca']*m'1(Pt+$|]*3*% a@[YC\gVt^fRTA,y'Ev~K鏕XBee9 !-oS`d#eq>Xe/e._|FnV#2d)yzrQԮI>" #%IX uMY/0-'+˥ٻv.A=u/V: *!!KY8%:k )pN '$ +Jq1)i`%M>|{H!c-f/}*JE/kYgtnbWŢ.v:D\(oz1 \yxrMdŁ{Ða5>m'CC|mVG$dS=If ,}wO:cH;}ڇuع!l7}&;oYNR'Nl b/Yξ!p0*4DW(º䕔>&(Q~i> Ud8pcTt.rlZ|N˔a BtZ%( =;H׈T*Y<}K +CdLJjeajۂ4_o׵C-ʋ+clRX݃N/OAGuwbu~}(Yo)A/\4<)8*W by#u`J*I WGF^ J-6b2XuPNZJۃfOx=޴`&CH$?'BlBB70@'H T~!`U t]9 }w"ȦSh0V>\H(os$A>/_JJvk̠Nx@y%d X]n$#%ʰv64H[r(z{1&)}gD=#jX OA|× "#`ixbI\x| .瀔^8](D*Uu8RA@\\ᶐIYǁ_ ȁ;wA3" guWWGxłLL>֗4\@&Q !]r{IN:{v P |A#;|qh z*gq(G}T < )B XYz~d ~'([״T36N%$@ewrr,Sr*cW7ƩK 7/) UxG?cVĶz"vm:@boMn:K^7uR!YtG[ٝ0']7yRl>lM I6.}nDL!0KIVr @)Ʊ<0OJIgu5Vq$NF‰%͠2#_+о܃/qΩo_BMYƤah J5v⤔X}O{[R8 J`*$k(k/-owDU@08MNZe,B v!@0(ETɈ4h9bwwE,ܗ/ZShHy[ܛ^ʈ$o&vHBTK 񤒱,';-_/܇/*E(2:<@#?ˆ IDATjcf_5VMr)T AVL D\Ԫ$)\p Dx0+d VPh?=1i) ix~{]QUw6h^p!?0.%#׾T^]qYl Wnn8SI?È*KyMX (q?i.eW~uKiBf"XG}mn I Ц9DEyMnj>CWZ`:{] F&F: *+!N87LJ{!$+KG|@gM󧲂U@.N~ïJVN#˱o0MiAWs:Y~8# <~#et`#&] H \{?ׇateKW XJOHR&;;DG7 ᬢvbl(AjopۉIz%rcN t|zRݾhVbt o8 |So\ 4X2zo̽ȑ@:u/ǸZ!!9q1cƪ,m YΡ,9Scy2qVNSQ$%c ےE7@r="%RI*#9%鴻}lEO}87O'8*#x7hQIsTZ PVqIZh`OC<x+OE@^p`O9+Rz KA}i^BCҁδ% :]['ѷiN7mI0}rg @ỌqpX{P@/`WD+U0 ƪ/V愻r|/m @Ø!} ҀqbR7{~R&;Nq$ctų I)%FK-mujҞw><,[[V$r?EsE_w!a,Z(+:nE4.E iXUi"|]nȍg ״ 4)I`DuJBQ]AIcwtb a/r}xlr{4#c;~R)-B)4ӟ3EdӨާN=//\z$@ -^G2ӯzXVVQ'FU}`܏) XLJ ,*Bvc<#=Gi>2H?nEkn]/sս^&I^)mGQ 7> *:, @bA8.:ǁirBI2y%Gv8SJ N~vDȺqvel|>xxMg`hxD )(-q8>l5+sW(aC"@n=7̩$\']2?ĝΒp_]tYG҄\-*Ն!hC`t <9S,ax@6kh{{^q2R\"QTkj5zjj06v$E2CuQ,Y4#`c U ٴ|a0VR `!شNx˰$-o/RXHȦӀcH~N6u D>nȻ쏋Z2D' h=RN1It`N;_wAD i.yUYR N"dur a!B ,:2<G5_7Է_'Kxw?2@34Xbbtr~oh/2rУ4.UGʼT,Ҹ{ʯWbO#FbuφjMX#{t?M^:Nh\ӎRl< w|kJpA6q >MGڪWZl1 `~)6C<~^xZ((AWaWu|R>e;omo*j ]. ?odtKP2%t "`Y qt ueA ~'w TeAADDd)ߖYH=wW>.%v߃5wtB(E(>N$C{QG/~Wn p2S>[on,} ƪDፑ`C1G'IǔYwߣ?+NyZT |oP~/6mJ =gusyayg908Pۺk'd3O1\p5<:OUDQ ü {о6  U`Ӎ/RI!!1 t /7Re}wkaP`ˍKR{gFN.g d)@2h 1T7)Z(P;hEދhC!0s K2"3˰%X2H}pa!OҸ2ѹWhWU1I+_)< lBqXiAގIH @<1 ֿN ҋ!9C8M$"A?v§[˖.mo};eq-7qI4[lO40wUׯc ZƁ潸ڃh3Zm#B3r1! A2Z9hToQj7@hXhIsiX#wҗ5܃l^_t}>[w4 OvZwT6vMM{C 8-G&<W'/-*_MG"oȠ/%^{2Ԕ'+<]8 U-VIV=drLq2#@qh4}WMX,ML>M~߇5F^Gc )P T#`Y6G()B:3jQݎL ) ['"ev.y'kuu%#?uEbη6onf9R>{c4{Qk,t̩ǭcWRgRpWuX䞇w#{hfiڌX:Zf g#KZ~@@JiZz=-!l{4Z>Qn`AFG8c9  Z'%##d$s'$ss%GYN~i,]OLl6i/yu 4'sGWX@C{ZҪ&!A 5 ZTg71v> _25}p4?@p  FD%|3ue׵H2WSQthйKJ{ ݴd(S$XJ멇xp\;y=r9,C! Ҳ04Iq C3P1Z7߽~Z4-.>oMw>gj=D:HI&Zs̚ qꆕ^#o!84]!_(вB ie>HVO:7O :G.|LMwmX@q ˲Iyٌγ?׽,ƇՖKh7D-OOVvI K.T]7uV5@Zhж,iY^B8H^Kxҹ`z׼\׿ _C&vgsxk}ٽr hr |_P,K^Ʌ=n']v@Sy7a(ZE^Ͽz)I-ƣ,_DV\8z=V{;Ȇkt ); ȬP^ê_ҵOgƫ;ވY<ʒ. UnVv/nXiS[뎎2tfJS{8΀]-m˷t"VgMvJI b1$g`߽˿{#Gϗ[P,Sdwz7ܽkn}g]xyFnh\( y<ҲySO߻ݏ/Sh$yPw|v {ؾ{jL) S<>|4P\x39&{ L^;~}z~#xNm/?\FmSC*wX,FmU5V^mwhے_+^~ բϲfX`H_ʗ/=|GY `Y&#C%{mro~_.'y*9jdEF ]8˖HU;ܿ J ?"]O2DVU#~ Bmhmx#qYsX~ ; c/ԇ_hg螆x2\wv#J ndv=wy?}}Ox0Wjl2[c(4= ]羏V8G~`pc3KXxuv⢎M(:@ !=^r--'?c=E R9-l,} eYWi˲H[@}~>GэAKEyJ:ǜOAZs?@w^麞Az:)]Ά#er?Q E`z$O6]]ToαƟ .\}$T@v T;] (- YM$;3"wUϞc*~JG9I`a|BQF#.LEF&˒dzԚ_- Ƃ, jR7L\.B&kJeNMqŏou$ LIˢY``bӖBz[0L0h[#_ ܽl>Oe>rhk oOɖcAXJIV!#$B&aЖFl=f Ej7'|C/ ʴI9IKD52c)˲2:6G>1tMK_-[RD"cWjM B4-ZaاxIr1O6r@9m^=.dY*->0t ]i2X.L! سow'tʂpW}cQOSsNLKl2r&>h¢5s%9@Mqr+WK4݆ LLP ߬n/cbb#g,eC7Y-I2dÓ^7~=o/v/o/?/#~v *I`_qjKO_&(;#skW2:XdiIB([m=[9ԣ@nWg)2Z39SOy^frn܏쳟o{-iq)rg166CC#βwm{].+U/~\ ǟ IDATpO{ƳXr5ZݻvЃqM70:TG.{ߊq'voY>1vj+>Β ^ĹR}[r셗i:V^t.ӵټ,[v$']X BZlgSj{ݒXŞK{9䛔r;1О _sٗ˘}G4d <\]X19u݆IΛ^NP;k*E bvH["tִK*?2e'&5lfJc4f4/9eJ/O bx.>8>FdhFP_ͥsA8O~X=WլUyg*~W= ~t|k#Ɣȕ_}(/oە̶oRR6hڔJeͦV\sWz<+aqOK^\9~sR͛ZR,[l,c`h9r] >bt:*O4'ϯ~2ʌ쟬yN9HW!V-k~ŋ_?IGEO~ |9\.ǛvFFǙ*)KlHO:45[aŪ5\/z c7+ Ux["6.lG6}%cdn=0߼ t^x,h.d 1؆9驔N5Sys+n?;l&븟WJ{vnkur4 azzY9xh /d8=OE@UvCgQ0|hl,2Re_kY7+Sz饤2NXq;ÇHݼ5oְ}3ZV풮ת[5pAmx2V#ډ dlI#49U 녜gxz%#頵$_d1k`5 nz2s>G`xK@SnS6ia6 CGZ&digl60- Ne|i6j>IJ5p>/@}eZ It ";z.|7?Iw@I.a2jy}Vx Jw@.pbXtj҈W3O%Ve}qǯ]F>kn5sfp]v*]h4ɤXd9k Y{ŭ:F} {CW4i<=yO>\{u ޾׽lK}3*&=ʲt{n@P.啋2A²L^cwɖ-y_ԥфd9nQ4֭;]7+i177wr!KI)?9igso#U5w ~Κ'^4inRәn]qôHҴLj:Aղ 6M 95mYZ4YD6>B~rxv%tLmgT<nMQ/dN^t `aj4TYNlBL1޳6`(&K"*v-g G:uRE琈n b-/RLfeVH%-`EއwWt`wj3OX&N gx5#kѦ׵r5oc%&j ?Εdn~z离4mZۭ{v>Iѹ4L k^*2,LfIRazvm۶qm?r`1Җ ]gΕw9rMrXů+ٱ1Lr @ "}yU'QaCי\M*#l*{!e f'I7=,$PscbJ^7w%cIVR8v7HeoS<6JNp2e`Zpa4M*àn!M`Y)RvVS;+qOOkם}> H5ٸOb#w2:I~:IaR Cˎgl20rO^, 4~Vr(L^0uҁ! >5lUzei j}lFsePu=r)a)%m^sX7"£R 98K jlbC1g@z%|NeaP€^I5I-Gw XVq}8Hi4})y»t]oBm !3[+˒De/W޺~||#O:>9s'/㞻d|4^0 Ro}ۿ?1{gO|cԪ GHtg3F0i\p8}K.C|KB>u/[ ʻv>,:h [`.80w4>:2:X4Mݶ:3ٿ,dR%`MT-Kn7t ;A ѬX(vL>up-]cY}ܹ4%99¾GW24y:Υ8Z5d{'RV@k3HI6S"-#O'q_⫙, ) s,i3Վئ0HW2u؞ 錣\|:̄5=p6kpb#.}oI'+6YbMohtSx!4f80^ąwmje4IhF;p Z: 2{53s3 DAc\[oa},Yv'o[|exZg B?Y(䛵 ,Bo|3蕆;֘iL\yZ?-dz"VIeB&юӝ) I C"#VTQcdd {A+ ]N&f^NDR_C)&ڵNqѥdeփX o#:\YhGj<Xvl5v~=LJoFqpHeS)zRw]i:Wf1p*`Ja H)[?lMZb$kXF.Q"zY4mi=L\nqNJKi24Py 0 )CirM72k_?U,R΃K&UC:h&[b*7[ xdkSW3Xla67AmGnjй/_463NiKu ҹiKJ9 BNbOw4 V<ӗlPj=2-[E厏 |'u]&W!; ,&4pn8o!kX͍+?De ^O|Ci]tn*Nv-[πNT&EJLoܾŰwV_JI.d  E1M]g^FJkA"Cf*5IfőY.5k, ӲkܹK릾瞻?a}.5[mjtdH $P**ta VrHI2g9)b-F0!,VJD^hch_bQdsK) TUo؅PLff4 oEi9kY6w[fA6uعs svXI$sp`FK*ߝn ߂i} D1!4*eLV\HL9iXX:p O *J+E ^:/LHԢۧ/2X+P?p?.4 v܄1WmDҨ+ݩ*HZAزX{MJSg0-K9vڭW v+a4U ;z|bx sUMVSOgٲe/axdi6n|oY Ľ+9:_L:4=ah )N*r-}V݀_ɗɗЪ\ T,'V4iPe2=3C.l @h3sJGӒL20P,"{uudxxک,) jn4!4J)k݊rkHH&G[VG }rv!C\B>=̽{l05m{1# fvcNMWx%7Gz֯{M-UeJ IE%,Ԓ4s?C:z*[Lvq$;džJHkW3[aceY ;HYşKP p@َϝ;hoWvfUǒVX}YCg=wu'V *=ǥo~#O|ҹ6PgD~)X 4S3e)E ?p=wpPE΃uKKk]v$ Y70l%#S25=M.0!5}1q[+6FƠ^!\.9YXHj200ޝ粤TVk+ M0SĶLqexL8WcV~lu<ʉKѫ&< f93t#XCr~Kd|SQuhMmr4Q,A6g6 }yGTa1 ޱWfin>ܤ!B6kA+4* snW,*sH7 vI-wchKMi!ZpɁ>nڅR/$*sMLJ"{ݓ UQ,aɎffgcBhւ ﮽fs䋟Q(\U~}PJ'LّH;=[ei97] 6M /~~ QP.ruHs)%ƈ}\ig$[$|Fg/4xq#*e{ْz\2eKcZMC۫BTAZX`-B؃N}幫k_'ʵ.g1"GΩaN:p.dd-Z-\gsr8W0$ʯXsu0 eřǯVe3)0s򑴛곉lkoB9~S5G4N?XG@%p8&(]`D L,ZN奶w+#Lk_ >= t05[4Ճѡwv?GW[6^Lkd#b&-` ؖ}fs6eu8:??j6M&<3Ssٶ;Y k)l2>>dMB`"%%uqax Q'?YIMl\FV2fB:Ww5s|c xRJzie&-?@զިld2XE!ffflPv\o>5la]9;7 .;nd2T,d=TU]v FM4kǼx G=vz̟V(!|Y%-5 ,YIt#\uh9"IA3|'.g򥌏 ˴׫i #O,z9:KIݚ֍7(\oS`ձgĴ#0XT*J%N,֨sclٺ͏lf]HWA^evv(k5[ .e| ǝybKBg_S )ΓKt avB-(@11d}]iÑEvz9܂n+͔nfEx~vn&?8SkaF4 $*ySO![FǿsI*2 IDAT?A\1&h4NJ4vh)J)fwO!S*qˍpֹq nؘ,/tcaٗ[U =g,2$2Ұ4 Ґd~ӵ!υ*c3o0h0t^YoۀpֿXh+]""Ce=n]"hS%Ǭ_gˑk,[q(2gR03;Mbْ ] nš#ײtrv\ =Km`nr@b6ep/)6(Ue9uVZ"P"dm\*fh4T jrܳhF:Km=Y i!-ZK§0r?x\s:9sx;t]ct׾qW02ޭa| l9+-iI,dlgG8ѪR($h$0m{]E>5ÿ(ꯔ'kMd .nfLf *9ڍH 3Fѳ%;BÒx@* pdsyi#177K\j;vsȑhdIf ŮߖU4k%ӟ娉:tZg䔃(|WaņHQN0.WTL0Aa4I [.q8Y c\g'sg_&c *%) Gy/PE-+|{o`u&;."|C=! PQ"KÔ3@زlq#ozч?&'1 six0]}CPyi/<g+2O"ŧd{%ZIJkwէ%Pձl˲H$i)&%f&~2ȉBdL-DFW;6R(J"6No~7^8LrwE/&r@6 N=1ڄitc{a&<?Jv4 s_O utJ4%6A""&L6Wic:vH#W;--MtP馬4"rwwHe\jPv?/b$\z1: z>3+HT@A 8pهP|I3yg3`Y8Rq;UjyH\aחGuJ:zak7'Aw^.TS$,\O~u18TX2 >Y R0}Uy1?i|^4@AbY|c/\/bi}@_fGv#OXk`&"{f׶LF6#D[ɕ,sd]P]U̝?{ּa ?R㑔#EtixyT:/XvBiHyXyxToE?]>(3a+&<ڥU>e\q ~q6~ @>t,dL#e3NЯv~7{1>Zrt uܳ(qru7n:7Og*Jj&}~~P0"[JcD&ͷ|YC? qʶ%C1^S2@[}0vb;>Hq cwSV?_G㜥2.Uzzt i 8!Waq|)X}"3%쿎HLTY@GmzN(j^(~l i !108IJ)Ea$R V{b~=Q###Sps] 5auӝR+xz_B4L3:Ǥ6JqJ{TCflƆaAJ񓠄ܹ@q>ŕI. L-hB FZݔNeٜ[p+kq_lYa[M}M9gϚu+`fM~)-{f͚M̳? MS5"%eTTT0a3f΢:^9 7~9xxؿ/PUY4% ӧ7pE+( G@JOo{??w9E0 Ÿ‹?#ֳ"TJYY[AXJIiiUޞU(nr LYW_p{|Kػk;'{/H~-*g[y/BJl0EP$(Bbck8;R4"u/VDOuRr2Cwr+_^z =d~{Е睅F(ڷ󝅡Tlo/;<]HJB88lfx0v).,%3mVmƏ2R?ճ,=mfOQSFKmLuf\fH/ɯAVmNgw0g~V"P=8]'7+ bÞ(;ioEވxo2hGI?oaMyI !tU䟕GNmσ7&.6}MEGe3D@(e |D(.=+*{4hzh44 @ *}~O2,mɦ2aB Oph*Gi3d3{zS|LƢ {52mL)1-I['gc H.n}4ǾM]lJ{#C3T0/1uFh#@3E:lY.ƐZ$ӣr䚥AȞT9og=e!t܁zJ ]1dfyNG %|]$El!Q[EHq6ι׀8J_9ۦ1~60CAkX&;M[z_$BuRҶ&>݇e0iNN̈́K"HiBuQcpm3d 16C@|&  1mM>9 dSZH:Цe%Zz<7a!͈xp[ XTyN` ќOg3ndM9PlPlNfs?XZPk4"uf8 {E;AS5UL|MN @MFܠcpI2_@fj@EIV<'H$ε}TVVaY]]TVV9`xiNi"}i!QwЫ.$^!mF&H) cHJ@Qp@^ QRfi'(*. Fb:]I&MȖ{1KH#m cc"]d4d~Kg*0hvyiGQ]iw!)u{)RLZ*2"PJN (@Zg2h秵05ezpS8͇ LLVaۮz;קBWڊ"}}-6 J``ʪ*bݔWTL40M0ߩMu@ q,->nZŵI -o%WVHi; ("JF㘱F݋ "MP\5iGAƐ1FRHi ֱBӞMuyyI S|c$bW1ǒ#:JpOKv|vyM4T\Sf_~ Koo7OEw&=\sd1;}v IʣҝMҜ21M]i| B8QJ2 )\KmT-BZƉϚ;8_EKb)K3>? 8y >(z b>Z[ EBI͓9j$b1.8B/)hi$Y˴F0DhJ_oMOŨPt^{;R써PMh'E˜4 ~K h5%3*Hh8Oretʚr<1qҠ)c`$b=> # 8 2g7] <18l9zò3 js{v4 Q<1 H7>` #ȤL ֬C݄2ΫK!$ |=QcJS(裺xDC rp0EK^ )lo ?o|GeضuM⢚.;@Z)DG ǏBνnPO<ȏ)ˠj%6-<1wHX~4PT|(2$*z-W78 HCwsյ0S&c&Ae^{߅iZHtl@/@{.n;F~>tJŦaY  $ *6 .BDDz$}(H6(e0JeD:@w ,+Rq1F+Yjl7~T >7m>Y&5*D _A>4y 0<Ɛ#is:gQ=wϾ*z8b 4׍3f ޴IU̞:.z2~3(X%GYӫhɴ|)S@v$'öm,r$bDHNMAĎ\sLKU 9rD(+--§ERyvf~v$N(Eh p|a!.EX^Ah hsڶHv|c+a'"/SLq2?:G9I~'Z#{9O5/2-L!;Tv$c!PIn)H x,XcHh$>G"HEGƉbԩ, Գ޶NhG I+/L=OJoXz ~H3(4޲xGc( D˩77m*[GO\ yٌ| ȮCOY.|#WPf ZPptPrUSFXo~gBR䗕 {@X-3R{Uڶ=ySm#9G IDATYKVބBEط72]Giyŕ!0M2{yö-ie`{VBdJ5x6 wh LT @,l4R^s)z-G_`bF`SHl.>H0\E<#IR>b>Ŀ 3YTl wNLx$N?N8öz^Ć$B"n"-%34@q6QQ#bh<{γNlqAP AΌ-zޱʊsmIzG(ٗ Ǚ1y4UeϑVfLLJo80Rp?<5Qsy3yʳ@>ef;inUo=Bsɒ\,wyV.crɧ~0ol>;hW7k/CȯcY6?yvjCUΝ?\tWJcs%=EdoZ1'yq{u;X0՗e X=Ole֣D&..[@YI':ilbRnf1 f9t5LXGn<Gɓ/\Gwu"^x0`W? ˲]/73;.OmHS7.`#JE4L_ \[i"!?} c ^]Z5/ƛ."<d,Z]|Wr]ϣ*i}1{| Spђ.Xۂ %^?q\z,Jqlw`Zd> d=PחrIdrPs` ZŘÛVg* ix+}CU"h  #`ÃݘfS̭M m<.h?waЬeGMJ,MLR"-Ԣ9=e;,2GiTME8?!y5 t`xz"݆he+L(vlr0kb;n /*DQ@ X_PsMć,?6Bfxcq%ضd9SɝR?eGňL`F6l; @g|~#W?;Cg^' i0L>y,;usAJdӶW?%sXa~}~Isw uInڽt a[6[;{UU( <ǣB8@Lf\1?;yY"qcE.;a< %}[Yp {30@_cu3Y>}{uq}~vnEJɎM:љZ4uI Kl{i*JByi1PqM(e |:S&Vh;t–CMLhS7##XN.ڻ8[_]P Й6M(>~Mm,_ϞC|{9c=Ǜ{=uOd}~ },[8~>_p]Llw_;MlxAӲ??y7d^C Uean`#w=)%'zپla֔,UK]uwe&zy񕃌(&aX|珰C5i_{Azz+;71~^9o~!5F~<&O5o8:挱tFDzUgB`R.Fطyvy(dt1,z/#bwּcvs!N M'x'wzL7RS(y t5,ۇ庍LݤSa'iĴl,3a 8TfrTc_q?TU u uoL+:U9+Z5RȁmFӽL2t6 4:A4HD-E:a*>7QTHi JA0G Wc-ù@S4hw䃂{c6Mmi˺lq9l>GZ[Y0k5J=غ7?>u !%|gwrtێp+~W]<&͇o\N87-ͼOX\,_0"ּOclUl<19s'qۭmǷuI9W>x-7ߟ_bۮQ}q@P_޼PYQWQߺH9s&>¿^Mw97 xgw^D8:ߺlTMyit>5TŽ-3=( ܂q@ /l9[/ϗߟ{7O Y_u- <$ӣP:Seobi#MXh ]2/gr$ _̜<Ιq/n>9y}97]|7sx5K2ͫL.c79m~!SZdI| {xKS*Kw> >`P璥3v_H݄2ް+Οc祿$%6⫇8Ň߾X`]-MKIձob̛QË[(׏χ~!+ϛ-C_Oe$_@(J[C\kW:LJ>޽:JI$XXNc᤯d*Tl,pN*Pkx=ScS^=EMķo]eGД>thAei%Bm椱}ƇZ5r&H 1%[V1#4F|42s(r5ނq(2rs" Gj=~"TUEQTodb)mԯ7woGhP ;LG->KN8BEAlhPBMrߢ0$сTT,}"G ]! }FvxkE[x7jT@` 3L3s8g2ރelww}/tC1_2\rJ&'A?M/U&UAW0BW?Z>Y| yӊ9_[hM3mr1Y񭴶s䤣?MѨi:o:S74xtn]y5v[Wroajmejr4r涾 5l}O|! MgPХgUO"z=:{;5A&'9S2ou*$$g5.i Ji=*[IQ?ё\^)lȲSؼ̞6>w6OhjcRJ1Ź#=Ϛ2 46u1MpW{`(|~u w-EUUO:wB@pdu5RJ>KXqQֿz(/,gL}Ss9s%uy~;k<7;88L!M@-` grv*؊PUBQUTi#mFc~:^8m&zp9ق8waW@m+H B)FMEQˈ ut5{=>oBUUT)( PP-PD8 NgS86-L´lic&G0n{ig-BUXHˬM@9*q#yF"`_+f=ԕ>Mց&Vma l)Jq|,ϔA 0"WT;$'&.D.MN&s4I9D'\k "3$͝k$r|)ę1gǻ@6H $Y{cҊy[ \c!ɗ$BWTF#gogջホ>_~m`I܋gOsxj;?qEz^*g=OtyWf?'5: Tq[1{Z*UzG3)To\Ϊ g<8CT8ԃi94G|KC!#?>2R%}tdɌ?-=Y0k" q*rTtx.㊒ѸAG Ua:{Q^hJ,y-l6"'>7sM0w_ďx[r;>pvʊC9J´5M8߱t+H8ϯ/]aV=&xf~gW]8SӅ׵W_|6O[GGy2bgtQ;Yl4*9eyK9  LRW*[EU$RQQU%ZHLN/>߱ʉW߀Zvl䩟+"Ъj%ZB"O˱wkNagk"# E%up(nSaKule۩m;=i̎ߒز ЃaX v)=_aWaeH*}B.&6+Ȫ ۥ|m;G{iRo.{8 4MȅݜN+M$.p ֜hR9H 6tpC0ϽWf6H'瞬%eH  5TE1ywcj]%'V\qlʊ,?gm_y7]4(}C%t q/q3XGEXۏqxiqd=|F(B`ieys'#|:;?> MUyfUGcs7/m?Fcs7?H3k*n/nƲ%{w_ckp2!qg򳿾O| MmFKm[JJbOmKYq݇c شw]83HM]lv@rtܸ<=Ww`قzΞ]CyI< 2[/gxg3;ݒ8gNo9ċ[10vV.4UUx}T Q?.;{'1gv0q| /Oqٳ'W6mI~u:.\4x !%sw2H' 5r©wt@q.?2Jl!U9NKg&Սj TLՇmv!edkW"UA&сzwŐUOjPU(! ](R8j`hHEAt`!Q\P$¥{mh,%u^('^sS\y1vV(3KU1x,% E3͑=xk5{Ctp:#)z{E/!4Ĩa{׍~9=4Цx{Gޠٷwmoe(TfA4ǹ)3d/6SX9{:!sgE!^oy>[J3N&/5[܆jv"tM%3ټ(C1ϛmUE*~{ϋ/kJyRK|׏3sL]'yaA;,] *y yg#+L#Бkfϑnz"B~k:*5W~˴R[{a?a?|O0mR%]Ô{48Czq>zTxe TGaRX"7t"w@yIWbߑvΙSGRz Ei+G|?^s?z9szk&f|K0L 8E?,1PJs{͟m\x"񱛖siH)46w埯%;ڞzΪJ#A޾l~v'0x@앀~јݴx ˖޷+Π9•5ȃk=͗0k8,>8J7-b0{xbEpՊy\Z+Ksy\{KV6;11!*Js}){y9΅;0rO*,ɛ8;?/O{|6r( >I5 hld`8ot'tM]@H0]@H^WAP0t[x)v1kh?EQ>*Bŵ(/Xϛfn:هLq|/! EՑU %WuAYEQU'NPUHi%q$g[hخАr4v9݉:eVg*h¶ڑVv|maG߀ŎOnwHڪ.&T磨*Bl[˴ 6e%6*9kV|#YP}S9?Άsi]nXSsnڂ9$suq)~OϡL ΡdЏG ð% "ET'}Q_Qð% qV1* $ʈ H2uۿ}}-,9_߻oʠM|vM_aX3}1|yVdȲ%Cz[g[Jڻ9ap8N8 _o00'c0SLӦ(FI$dƱm;${Q̲BDC|7Ll& )h߸GWe/m(3 p>ۖE{MPg`0)=}m3k7_ϏVspp8NȯGHoѨcE }!- 4k]4GecebX&e94eaAyre3+kbM"'p.;t -9aYH뚊 8{Tf4BU-詴PC-#ehpjef%Eq5%˫ti!#=Ҿ`NښJ ^4UGtTݱxV5Eymeb$XD H`&bTOx.\1d{&zlA!E96uj:U>?/ sH/=Rdh"q;:ўx]Wu5e x 7@&;OÛG4f_=Ng&1KE˒ ' 9Bt/Eya#f瓏p4W-\s N A_n<0䞱*"(((jXĚܧkCÚM5&]hvӃ! znJ?Q]F.%nXH&)*Bt(, %-%﫨X A&;`KwX;q+ Bؐ<ݬx)4: &kM˨”΍LoE()|4=Èc$1z0h圈/C*49_UsjhUsSQUTEA*!m jtWBdZEt͘VA 4rf{c#@.v4,_|>G"vט%1K#HӓI 4]CSY>R?3't^}PaOr%OUhnJ1thFB4XGngNC5fL̈c1,.dQI?BI Bi9Ұ8°mib޹8\xoKL;'!)MrU:ibgו] {$SI~0$; %pjXh\VR`)7^C.ZEZaD%CfF=YBw˜^L(JTq)Z{L#av4XFLPj٠Q\"5[J1o֭p(^uCtϏAt_ Χ/#{xnO{ʈ ߙNhɝG|1#XF͜PF)mҼeK8]8 `sGH V#o>I6E[(m4B_ e4vS4(y{kl,W mٖsr0,tǶZ$[a-6NظGk,!T‫ EE B\K|>J-i`jz2 Ҳ/dnHי60/WxꡤzUhsip <{F:$mbĢئញN`1ZQ&t)qLOTVgNO]]#kE}|B.دFQ9gyq'n gT*>4}0zJxnwۘ@t,4y$&37Gc?,yyv$S5z#C0Fu#ſ[ ZT3/Xh΄t61BFJ^)YJ,+(qOWQꙔ)Nc>)޵-Q/>ftCa$M[W8hDžjeboj"\PѨlK˄i_S]ސLal/BD@V/ K@_8>l{:SΫvmj~0ztf<,b_0}0~O}7OکB7+,;e(# O׳SeAQM+:E:c"=aTWyK"BJ_x/ JLJ&d+~o+/)NMD˘˨$W܂n1z/v_F7oY*ިMFLAű,0oJeFAa&EI hY!M؍Y=ćYHvG) *Dq8Xd}c>/hKBb{v iBWʂ?TDbJWNuj\/qz>~Jf(@fV!ӐBSCCICKm5ޔ&.+_ 57;K@Z/׾2֮׾=g+ڧuw=Qvºj5Gp]2}QMXu]"+TהW{4*Ud e=_%i0&nS վ|A(ܩ?KN-\bȳY_ͨwjq%8}/ڇ"lg2"UI,LG )1^ ,R [*eXG-Di\Oܱ`,` z/^;&ʓ|hSN*ŇKLQlyp+`,aU"ޭU(w)|*)Jʕ3YRɄʕu9_h7,c§[~dꗌZ #u~#UX0:]K\DZ/Y}`$ qTb "]7޹ap(Kñ' 3"0 xL;ġ~ I*qDcN9dባ'\'ӐPE^+w%TW^Jb,! 8\eqUI;µ0k(FOMPﻮKDF-"F2]z{FzT@dc#> |ڿrGڍ[16t%Q)@jbձdF qʶڌ~d~ɲo,\ w*wm7K|~5廴Y׫Tb$ڿJR9 yLm"}//i[5b9la򁦏XHuJwWZ̹&ÍF#IaI64RҖ`̈́) .}Aȧ|#7kwQD竫eCQ;jq)SNOl_nWSF޸= v-|:nZU%11+]ӲW*%z>Eݚ?&0zvlNޤUm(K33.D[O&Z 772% ѦTe`|O5*׸ONSJgdm@^ /xL}ֶM(ؿjf-)3czuA1vuK<ۆ|:ͱyĩ%}1YquҚ=?f>FX\5l6i< FMY# u/U~q)W]$`9|W5+>DNgˍ|q{G}D%G"537h>7)ck/-bV_[;KAf6+;VKy*΅[K_{wbeOT۷C&Rv>ZVX?)7VGg%8v.} T-5D&b>V,u`7pqA_?=^@;7oM10b XAAf6*9"ʜW m/R'.HQ% Ic'+OVtS|X6wA5*x'qY"92l|b"@&\"ĄQb6؈DpV<ɰ[}VvYw^.ݿPڿCہK߮|0 u"S;qrѯu|@{Z&=fT͒Swڲ5Etaڑ p%R'88&6,SL+)y(/pe:zl=XsE+"6.BL<%1f,B7mv?iSJqO1Pl.J[_ 3A$[6;x k}_%-A$nD<#xA{=st<)GGLKB-F!.)yN+Nw8>cS~PalWVVas k~*yfƢ/J2-* _cF ;5P0˦)_D=" Iwx[w_j|p[dQIJ8*]Vۂh~15Dy0֍ZK". *MlEN6fwRv͎`Z1<% " Nrm}\UӃ Ɗ:;?d2cJ88j_=o|O0={e;V1H9vBdZ28 bi%UH=OE6%&zhkn14C9P~e~ᑨǐDay>X;caVM6I\Ásˊ@Wv\P7ak s&y&.֊,/=܎Z\4]]U+)v۫x# ߘELrnK/>GBe?WǪi*D/RWc?~گڿ8Y:@ӗt5߹jwa*29$VwQಌv,=ΏbyP=\ٴo/\FBˆc0eKYIeUTD')u\DTP~EM@T~0MUqͶ!o0 Wغ^;T/W\jݛ=fP:d,=keMoYT1򬞼I4FU^ $P\g1R"HL'XYqJGr޻HRƽ!]w#A(bĵ#Cak,7kYli [ڙ^AlrDspQfWpFz9ej I꩸8p&1?&fc0M sm{l)0jGD. U۳)Fӿ/3=7<^MO섗߶)>;ETe!yʎ8k^yNطܲ}6zl)k-8xRw׳žA83%0 D=kt# P)rrrUlvڴq*sGuJp{*)d2f-UK@o*'SwD( ApGgTɚ- D9*[bf+rVۼ#v?Qʓ$·vŊ !LBdsu4aj${wN9/V&B9ujXx88Fr{>̫󝙐{c3&ob5^ħX*ի[8 ocڕUuFͦ(OLEy}Z^ԴR`^7~z*^da 4:,4-ٹ] >ܺV%?4}) 5#$!+Fw5LZQO 3`Q)O+0;m>0}Y]vm|ǔkKAn*W^gk`O.wKO C}KIN$e-c" $I |)~!WcLj/=/a@ͮa7\Gfxm#kj"f4&.כTt-;;>(N!Jx+~\5XHlX%lSnŲ)nOmNbU*8[~%r=t:ٛ+5*$JxEcԞ130~STwd' fbpʹ_/.Sl#]50;>vr 7T M?x& 4klryfLw3d\R)"'eZM}4IDATZ|_>׷/ +n+ p^0\%ϻ'E-!XT2_(@V*^W`eu\t5pKaozخ.E?b)nLk% 9GÃjc97W٠;۶x<n=U-oGr\%)oVAŸA?ֱW9}x*޷V]Iv*^ ۂzRKcvZp#Dն+SX:,obʘWZ0BkP U*K.ִz*ښzh%oa1ub ۫Fok*s>sրgcO919ct7k7CO~&AQkղRbijE[C~˲>4®}D}GJ(*ݶ`[q83;'a4WgyH-5VvDLXn爁fU2?8Z=`Ǒh &b#y2Ō ݫkboAGz<*o¹Vw*X nq(}xK=bgIAnvLZ0dV́<ӫ.8F,;Kx.LK+cV?L7T̮n|Pq*I>)q} ./O~~cùps_ĕ5 ޓlykp Q<',O)| O\Y~e6&Ǣ&qڴ)ZO޳]=$чud!AiaLwUOaH#gs8n.1E`/EQAVlxUG#I#J9ԞԏjW9 cPf9Xo mm @gqbV,T˲_& Ƙ9v|*XQ ay"!kk8§E]K{|iw|ɱ٬o2wY-_"(}]~PC!cDq,8mgxĝ2< ;?nJnYxYЦu%C{=X%_lǷ! զE+°FŬI,`0;F_Êь Jm\4U{È_'+e'IENDB`homebank-5.9.1/images/homebank-icon.svg0000644000175000017500000007224612407562510013510 image/svg+xml Home Bank 16JUL06 Nathan M. Willard EN homebank-5.9.1/images/Makefile.in0000664000175000017500000003460415006363044012317 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = images ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(imagedatadir)" DATA = $(imagedata_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ imagedatadir = $(pkgdatadir)/images imagedata_DATA = \ homebank-icon.svg \ splash.png EXTRA_DIST = $(imagedata_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign images/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign images/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-imagedataDATA: $(imagedata_DATA) @$(NORMAL_INSTALL) @list='$(imagedata_DATA)'; test -n "$(imagedatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(imagedatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(imagedatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagedatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagedatadir)" || exit $$?; \ done uninstall-imagedataDATA: @$(NORMAL_UNINSTALL) @list='$(imagedata_DATA)'; test -n "$(imagedatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(imagedatadir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(imagedatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-imagedataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-imagedataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-imagedataDATA install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-imagedataDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/missing0000755000175000017500000001452011023413026010364 #! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997, 2001, 2002 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.in; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`$configure_ac'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`$configure_ac'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`$configure_ac'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' $configure_ac` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`$configure_ac'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 homebank-5.9.1/AUTHORS0000644000175000017500000000004012166572746010055 Active authors: Maxime Doyen homebank-5.9.1/mkinstalldirs0000644000175000017500000000132211023413026011564 #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here homebank-5.9.1/themes/0000775000175000017500000000000015006374032010342 5homebank-5.9.1/themes/hicolor-symbolic/0000775000175000017500000000000015006374032013620 5homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-legend-symbolic.svg0000664000175000017500000001135314745446344025034 View Legend image/svg+xml Maxime DOYEN https://www.gethomebank.org View Legend homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-cash-symbolic.svg0000664000175000017500000002374314745447712025017 Payment Cash image/svg+xml Payment Cash Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-rate-symbolic.svg0000664000175000017500000000533714745446630024534 View Rate image/svg+xml Maxime DOYEN https://www.gethomebank.org View Rate homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-file-invalid-symbolic.svg0000664000175000017500000000066214734743644026026 homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-donate-symbolic.svg0000644000175000017500000000524314320371751025033 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-life-energy-symbolic.svg0000664000175000017500000001317614745446363026012 Life Energy image/svg+xml Maxime DOYEN https://www.gethomebank.org Life Energy homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-epayment-symbolic.svg0000664000175000017500000001046713113627141025702 image/svg+xml HomeBank Symbolic Icon Theme HomeBank Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-clear-symbolic.svg0000664000175000017500000000316214723031567024654 homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-column-symbolic.svg0000664000175000017500000000425414745447024026041 View Column image/svg+xml Maxime DOYEN https://www.gethomebank.org View Column homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-fifee-symbolic.svg0000664000175000017500000001525314745450054025145 image/svg+xml Payment Financial Fee Maxime DOYEN https://www.gethomebank.org Payment Financial Fee homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-transaction-payment-symbolic.svg0000644000175000017500000001161114745450203027637 Pref Paymentimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgPref Payment homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-folder-symbolic.svg0000664000175000017500000000706214545106647025131 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-archive-symbolic.svg0000644000175000017500000001445314745446136025220 Scheduled/Template image/svg+xml Maxime DOYEN https://www.gethomebank.org Scheduled/Template homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-report-symbolic.svg0000644000175000017500000000466714545110033025157 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-pending-symbolic.svg0000664000175000017500000000117014735017753026032 homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-document-print-symbolic.svg0000644000175000017500000000400414320373334026522 homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-quicktips-symbolic.svg0000644000175000017500000000463114723032117025455 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-assign-symbolic.svg0000644000175000017500000001344314745446153025060 Assignimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgAssign homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-refresh-symbolic.svg0000644000175000017500000000707414722565063026202 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-rep-balance-symbolic.svg0000644000175000017500000001556114745446651025753 Report Balanceimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgReport Balance homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-none-symbolic.svg0000664000175000017500000000265413112554506025021 image/svg+xml HomeBank Symbolic Icon Theme HomeBank Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-edited-symbolic.svg0000664000175000017500000000356214745447520025653 Item Edited Item Edited Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-transaction-symbolic.svg0000644000175000017500000000512314723037223026164 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-file-valid-symbolic.svg0000664000175000017500000000071714734743636025501 homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-document-open-symbolic.svg0000644000175000017500000000335414544055264026345 homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-changes-prevent-symbolic.svg0000664000175000017500000000076314734464402026546 homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-filter-symbolic.svg0000644000175000017500000000521014745446316025053 Filter image/svg+xml Maxime DOYEN https://www.gethomebank.org Filter homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-closed-symbolic.svg0000644000175000017500000000613314745447500025657 Item Closed image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Closed homebank-5.9.1/themes/hicolor-symbolic/Makefile.am0000644000175000017500000001704514736015645015614 ## Process this file with automake to produce Makefile.in NULL = public_icons_themes = \ hicolor \ $(NULL) public_icons = \ $(NULL) private_icons = \ hicolor_actions_scalable_hb-document-new-symbolic.svg \ hicolor_actions_scalable_hb-document-open-symbolic.svg \ hicolor_actions_scalable_hb-document-print-symbolic.svg \ hicolor_actions_scalable_hb-document-save-symbolic.svg \ hicolor_actions_scalable_hb-account-symbolic.svg \ hicolor_actions_scalable_hb-archive-symbolic.svg \ hicolor_actions_scalable_hb-assign-symbolic.svg \ hicolor_actions_scalable_hb-budget-symbolic.svg \ hicolor_actions_scalable_hb-category-symbolic.svg \ hicolor_actions_scalable_hb-clear-symbolic.svg \ hicolor_actions_scalable_hb-donate-symbolic.svg \ hicolor_actions_scalable_hb-file-export-symbolic.svg \ hicolor_actions_scalable_hb-file-import-symbolic.svg \ hicolor_actions_scalable_hb-filter-symbolic.svg \ hicolor_actions_scalable_hb-go-down-symbolic.svg \ hicolor_actions_scalable_hb-go-up-symbolic.svg \ hicolor_actions_scalable_hb-help-symbolic.svg \ hicolor_actions_scalable_hb-legend-symbolic.svg \ hicolor_actions_scalable_hb-life-energy-symbolic.svg \ hicolor_actions_scalable_hb-ope-add-symbolic.svg \ hicolor_actions_scalable_hb-ope-cleared-symbolic.svg \ hicolor_actions_scalable_hb-ope-delete-symbolic.svg \ hicolor_actions_scalable_hb-ope-edit-symbolic.svg \ hicolor_actions_scalable_hb-ope-future-symbolic.svg \ hicolor_actions_scalable_hb-ope-herit-symbolic.svg \ hicolor_actions_scalable_hb-ope-multiedit-symbolic.svg \ hicolor_actions_scalable_hb-ope-reconciled-symbolic.svg \ hicolor_actions_scalable_hb-ope-show-symbolic.svg \ hicolor_actions_scalable_hb-payee-symbolic.svg \ hicolor_actions_scalable_hb-rate-symbolic.svg \ hicolor_actions_scalable_hb-rep-balance-symbolic.svg \ hicolor_actions_scalable_hb-rep-budget-symbolic.svg \ hicolor_actions_scalable_hb-rep-stats-symbolic.svg \ hicolor_actions_scalable_hb-rep-time-symbolic.svg \ hicolor_actions_scalable_hb-rep-vehicle-symbolic.svg \ hicolor_actions_scalable_hb-view-bar-symbolic.svg \ hicolor_actions_scalable_hb-view-column-symbolic.svg \ hicolor_actions_scalable_hb-view-donut-symbolic.svg \ hicolor_actions_scalable_hb-view-line-symbolic.svg \ hicolor_actions_scalable_hb-view-list-symbolic.svg \ hicolor_actions_scalable_hb-view-pie-symbolic.svg \ hicolor_actions_scalable_hb-view-progress-symbolic.svg \ hicolor_actions_scalable_hb-view-refresh-symbolic.svg \ hicolor_actions_scalable_hb-view-stack-symbolic.svg \ hicolor_actions_scalable_hb-view-stack100-symbolic.svg \ hicolor_status_scalable_hb-changes-allow-symbolic.svg \ hicolor_status_scalable_hb-changes-prevent-symbolic.svg \ hicolor_status_scalable_hb-file-valid-symbolic.svg \ hicolor_status_scalable_hb-file-invalid-symbolic.svg \ hicolor_status_scalable_hb-item-added-symbolic.svg \ hicolor_status_scalable_hb-item-auto-symbolic.svg \ hicolor_status_scalable_hb-item-budget-symbolic.svg \ hicolor_status_scalable_hb-item-closed-symbolic.svg \ hicolor_status_scalable_hb-item-edited-symbolic.svg \ hicolor_status_scalable_hb-item-forced-symbolic.svg \ hicolor_status_scalable_hb-item-future-symbolic.svg \ hicolor_status_scalable_hb-item-import-symbolic.svg \ hicolor_status_scalable_hb-item-pending-symbolic.svg \ hicolor_status_scalable_hb-item-remind-symbolic.svg \ hicolor_status_scalable_hb-item-similar-symbolic.svg \ hicolor_status_scalable_hb-item-clear-symbolic.svg \ hicolor_status_scalable_hb-item-recon-symbolic.svg \ hicolor_status_scalable_hb-item-reconlock-symbolic.svg \ hicolor_status_scalable_hb-item-void-symbolic.svg \ hicolor_status_scalable_hb-pm-cash-symbolic.svg \ hicolor_status_scalable_hb-pm-ccard-symbolic.svg \ hicolor_status_scalable_hb-pm-check-symbolic.svg \ hicolor_status_scalable_hb-pm-dcard-symbolic.svg \ hicolor_status_scalable_hb-pm-deposit-symbolic.svg \ hicolor_status_scalable_hb-pm-directdebit-symbolic.svg \ hicolor_status_scalable_hb-pm-epayment-symbolic.svg \ hicolor_status_scalable_hb-pm-fifee-symbolic.svg \ hicolor_status_scalable_hb-pm-intransfer-symbolic.svg \ hicolor_status_scalable_hb-pm-none-symbolic.svg \ hicolor_status_scalable_hb-pm-mobphone-symbolic.svg \ hicolor_status_scalable_hb-pm-standingorder-symbolic.svg \ hicolor_status_scalable_hb-pm-transfer-symbolic.svg \ hicolor_status_scalable_hb-quicktips-symbolic.svg \ hicolor_status_scalable_prf-advanced-symbolic.svg \ hicolor_status_scalable_prf-backup-symbolic.svg \ hicolor_status_scalable_prf-euro-symbolic.svg \ hicolor_status_scalable_prf-folder-symbolic.svg \ hicolor_status_scalable_prf-forecast-symbolic.svg \ hicolor_status_scalable_prf-general-symbolic.svg \ hicolor_status_scalable_prf-import-symbolic.svg \ hicolor_status_scalable_prf-interface-symbolic.svg \ hicolor_status_scalable_prf-interface-theme-symbolic.svg \ hicolor_status_scalable_prf-interface-color-symbolic.svg \ hicolor_status_scalable_prf-locale-symbolic.svg \ hicolor_status_scalable_prf-report-symbolic.svg \ hicolor_status_scalable_prf-transaction-symbolic.svg \ hicolor_status_scalable_prf-transaction-dialog-symbolic.svg \ hicolor_status_scalable_prf-transaction-transfer-symbolic.svg \ hicolor_status_scalable_prf-transaction-payment-symbolic.svg \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(private_icons) \ $(noinst_DATA) \ $(NULL) ############################################################################### gtk_update_icon_cache = gtk-update-icon-cache -f -t update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache in '$(DESTDIR)'"; \ for theme in $(public_icons_themes); do \ echo " > $(datadir)/icons/$$theme."; \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ $(gtk_update_icon_cache) $(DESTDIR)$(pkgdatadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for theme in $(public_icons_themes); do \ cp index.theme $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: for theme in $(public_icons_themes); do \ rm $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons update-icon-cache uninstall-local: uninstall-icons update-icon-cache homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-clear-symbolic.svg0000644000175000017500000000703714745447464025511 Item Cleared image/svg+xml Item Cleared Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-herit-symbolic.svg0000644000175000017500000001267314745446533025476 Txn Herit image/svg+xml Maxime DOYEN https://www.gethomebank.org Txn Herit homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-file-export-symbolic.svg0000664000175000017500000000622714745446262026037 File Export image/svg+xml Maxime DOYEN https://www.gethomebank.org File Export homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-forecast-symbolic.svg0000664000175000017500000000677214745450161025466 Pref Forecastimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgPref Forecast homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-pie-symbolic.svg0000664000175000017500000000600514745447114025315 View Pie image/svg+xml Maxime DOYEN https://www.gethomebank.org View Pie homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-locale-symbolic.svg0000664000175000017500000001070314545107355025106 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-dcard-symbolic.svg0000664000175000017500000001527514745447765025167 image/svg+xml Payment Debit Card Maxime DOYEN https://www.gethomebank.org Payment Debit Card homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-ccard-symbolic.svg0000664000175000017500000002434714745447731025157 image/svg+xml Payment Credit Card Maxime DOYEN https://www.gethomebank.org Payment Credit Card homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-edit-symbolic.svg0000644000175000017500000000740114745446475025306 Txn Edit image/svg+xml Maxime DOYEN https://www.gethomebank.org Txn Edit homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-recon-symbolic.svg0000644000175000017500000000616514745447627025533 Item Reconciled image/svg+xml Item Reconciled Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-rep-vehicle-symbolic.svg0000664000175000017500000000654114745446763026011 Report Vehicle image/svg+xml Maxime DOYEN https://www.gethomebank.org Report Vehicle homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-similar-symbolic.svg0000664000175000017500000001143114745447647026061 Item Similar image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Similar homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-void-symbolic.svg0000664000175000017500000000763414745447666025375 Item Void image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Void homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-category-symbolic.svg0000644000175000017500000000574614745446230025414 Category image/svg+xml Maxime DOYEN https://www.gethomebank.org Category homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-changes-allow-symbolic.svg0000664000175000017500000000074614734464364026211 homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-import-symbolic.svg0000664000175000017500000000116514735020037025711 homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-rep-stats-symbolic.svg0000644000175000017500000000720414745446712025515 Report Stats image/svg+xml Maxime DOYEN https://www.gethomebank.org Report Stats homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-add-symbolic.svg0000644000175000017500000000612314745446405025102 Txn Add image/svg+xml Txn Add Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-bar-symbolic.svg0000664000175000017500000000443714745447001025306 View Bar image/svg+xml Maxime DOYEN https://www.gethomebank.org View Bar homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-go-down-symbolic.svg0000644000175000017500000001070013650772306025133 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-remind-symbolic.svg0000644000175000017500000000473614320477250025665 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-future-symbolic.svg0000644000175000017500000000552014745446516025667 Txn Future image/svg+xml Maxime DOYEN https://www.gethomebank.org Txn Future homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-rep-budget-symbolic.svg0000664000175000017500000000466614745446672025651 Report Budget image/svg+xml Maxime DOYEN https://www.gethomebank.org Report Budget homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-document-save-symbolic.svg0000644000175000017500000000430014544055213026324 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-stack-symbolic.svg0000664000175000017500000000450114745447174025652 View Stack image/svg+xml Maxime DOYEN https://www.gethomebank.org View Stack homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-file-import-symbolic.svg0000664000175000017500000000630414745446277026032 File Import image/svg+xml File Import Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-future-symbolic.svg0000644000175000017500000000552214745447562025731 Item Future image/svg+xml Item Future Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-progress-symbolic.svg0000664000175000017500000000467114745447133026414 View Progress image/svg+xml Maxime DOYEN https://www.gethomebank.org View Progress homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-payee-symbolic.svg0000644000175000017500000001200614745446612024671 Payeeimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgPayee homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-transaction-transfer-symbolic.svg0000644000175000017500000002040214745450221030004 Pref Transfer image/svg+xml Maxime DOYEN https://www.gethomebank.org Pref Transfer homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-import-symbolic.svg0000664000175000017500000001042214723041134025145 image/svg+xml HomeBank Symbolic Icon Theme HomeBank Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-mobphone-symbolic.svg0000664000175000017500000000444114566374235025702 image/svg+xml HomeBank Symbolic Icon Theme HomeBank Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-general-symbolic.svg0000664000175000017500000001121114723032623025250 image/svg+xmlGnome Symbolic Icon ThemeGnome Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-standingorder-symbolic.svg0000664000175000017500000002744614745450122026735 image/svg+xml Payment Standing Order Maxime DOYEN https://www.gethomebank.org Payment Standing Order homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-document-new-symbolic.svg0000644000175000017500000000377614320371244026174 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-reconlock-symbolic.svg0000644000175000017500000001021414745447613026365 Item Reconciled Lock image/svg+xml Item Reconciled Lock Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-backup-symbolic.svg0000664000175000017500000000564414545106370025120 image/svg+xml HomeBank Symbolic Icon Theme HomeBank Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-transaction-dialog-symbolic.svg0000644000175000017500000000514614723037051027425 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-rep-time-symbolic.svg0000664000175000017500000001104314745446735025320 Report Trend Timeimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgReport Trend Time homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-auto-symbolic.svg0000644000175000017500000001030714745447416025362 Item Auto image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Auto homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-interface-symbolic.svg0000664000175000017500000000454014723033352025602 image/svg+xmlHomeBank Symbolic Icon ThemeHomeBank Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-delete-symbolic.svg0000644000175000017500000001033214745446452025613 Txn Delete image/svg+xml Maxime DOYEN https://www.gethomebank.org Txn Delete homebank-5.9.1/themes/hicolor-symbolic/Makefile.in0000664000175000017500000004720615006363044015617 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = themes/hicolor-symbolic ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = public_icons_themes = \ hicolor \ $(NULL) public_icons = \ $(NULL) private_icons = \ hicolor_actions_scalable_hb-document-new-symbolic.svg \ hicolor_actions_scalable_hb-document-open-symbolic.svg \ hicolor_actions_scalable_hb-document-print-symbolic.svg \ hicolor_actions_scalable_hb-document-save-symbolic.svg \ hicolor_actions_scalable_hb-account-symbolic.svg \ hicolor_actions_scalable_hb-archive-symbolic.svg \ hicolor_actions_scalable_hb-assign-symbolic.svg \ hicolor_actions_scalable_hb-budget-symbolic.svg \ hicolor_actions_scalable_hb-category-symbolic.svg \ hicolor_actions_scalable_hb-clear-symbolic.svg \ hicolor_actions_scalable_hb-donate-symbolic.svg \ hicolor_actions_scalable_hb-file-export-symbolic.svg \ hicolor_actions_scalable_hb-file-import-symbolic.svg \ hicolor_actions_scalable_hb-filter-symbolic.svg \ hicolor_actions_scalable_hb-go-down-symbolic.svg \ hicolor_actions_scalable_hb-go-up-symbolic.svg \ hicolor_actions_scalable_hb-help-symbolic.svg \ hicolor_actions_scalable_hb-legend-symbolic.svg \ hicolor_actions_scalable_hb-life-energy-symbolic.svg \ hicolor_actions_scalable_hb-ope-add-symbolic.svg \ hicolor_actions_scalable_hb-ope-cleared-symbolic.svg \ hicolor_actions_scalable_hb-ope-delete-symbolic.svg \ hicolor_actions_scalable_hb-ope-edit-symbolic.svg \ hicolor_actions_scalable_hb-ope-future-symbolic.svg \ hicolor_actions_scalable_hb-ope-herit-symbolic.svg \ hicolor_actions_scalable_hb-ope-multiedit-symbolic.svg \ hicolor_actions_scalable_hb-ope-reconciled-symbolic.svg \ hicolor_actions_scalable_hb-ope-show-symbolic.svg \ hicolor_actions_scalable_hb-payee-symbolic.svg \ hicolor_actions_scalable_hb-rate-symbolic.svg \ hicolor_actions_scalable_hb-rep-balance-symbolic.svg \ hicolor_actions_scalable_hb-rep-budget-symbolic.svg \ hicolor_actions_scalable_hb-rep-stats-symbolic.svg \ hicolor_actions_scalable_hb-rep-time-symbolic.svg \ hicolor_actions_scalable_hb-rep-vehicle-symbolic.svg \ hicolor_actions_scalable_hb-view-bar-symbolic.svg \ hicolor_actions_scalable_hb-view-column-symbolic.svg \ hicolor_actions_scalable_hb-view-donut-symbolic.svg \ hicolor_actions_scalable_hb-view-line-symbolic.svg \ hicolor_actions_scalable_hb-view-list-symbolic.svg \ hicolor_actions_scalable_hb-view-pie-symbolic.svg \ hicolor_actions_scalable_hb-view-progress-symbolic.svg \ hicolor_actions_scalable_hb-view-refresh-symbolic.svg \ hicolor_actions_scalable_hb-view-stack-symbolic.svg \ hicolor_actions_scalable_hb-view-stack100-symbolic.svg \ hicolor_status_scalable_hb-changes-allow-symbolic.svg \ hicolor_status_scalable_hb-changes-prevent-symbolic.svg \ hicolor_status_scalable_hb-file-valid-symbolic.svg \ hicolor_status_scalable_hb-file-invalid-symbolic.svg \ hicolor_status_scalable_hb-item-added-symbolic.svg \ hicolor_status_scalable_hb-item-auto-symbolic.svg \ hicolor_status_scalable_hb-item-budget-symbolic.svg \ hicolor_status_scalable_hb-item-closed-symbolic.svg \ hicolor_status_scalable_hb-item-edited-symbolic.svg \ hicolor_status_scalable_hb-item-forced-symbolic.svg \ hicolor_status_scalable_hb-item-future-symbolic.svg \ hicolor_status_scalable_hb-item-import-symbolic.svg \ hicolor_status_scalable_hb-item-pending-symbolic.svg \ hicolor_status_scalable_hb-item-remind-symbolic.svg \ hicolor_status_scalable_hb-item-similar-symbolic.svg \ hicolor_status_scalable_hb-item-clear-symbolic.svg \ hicolor_status_scalable_hb-item-recon-symbolic.svg \ hicolor_status_scalable_hb-item-reconlock-symbolic.svg \ hicolor_status_scalable_hb-item-void-symbolic.svg \ hicolor_status_scalable_hb-pm-cash-symbolic.svg \ hicolor_status_scalable_hb-pm-ccard-symbolic.svg \ hicolor_status_scalable_hb-pm-check-symbolic.svg \ hicolor_status_scalable_hb-pm-dcard-symbolic.svg \ hicolor_status_scalable_hb-pm-deposit-symbolic.svg \ hicolor_status_scalable_hb-pm-directdebit-symbolic.svg \ hicolor_status_scalable_hb-pm-epayment-symbolic.svg \ hicolor_status_scalable_hb-pm-fifee-symbolic.svg \ hicolor_status_scalable_hb-pm-intransfer-symbolic.svg \ hicolor_status_scalable_hb-pm-none-symbolic.svg \ hicolor_status_scalable_hb-pm-mobphone-symbolic.svg \ hicolor_status_scalable_hb-pm-standingorder-symbolic.svg \ hicolor_status_scalable_hb-pm-transfer-symbolic.svg \ hicolor_status_scalable_hb-quicktips-symbolic.svg \ hicolor_status_scalable_prf-advanced-symbolic.svg \ hicolor_status_scalable_prf-backup-symbolic.svg \ hicolor_status_scalable_prf-euro-symbolic.svg \ hicolor_status_scalable_prf-folder-symbolic.svg \ hicolor_status_scalable_prf-forecast-symbolic.svg \ hicolor_status_scalable_prf-general-symbolic.svg \ hicolor_status_scalable_prf-import-symbolic.svg \ hicolor_status_scalable_prf-interface-symbolic.svg \ hicolor_status_scalable_prf-interface-theme-symbolic.svg \ hicolor_status_scalable_prf-interface-color-symbolic.svg \ hicolor_status_scalable_prf-locale-symbolic.svg \ hicolor_status_scalable_prf-report-symbolic.svg \ hicolor_status_scalable_prf-transaction-symbolic.svg \ hicolor_status_scalable_prf-transaction-dialog-symbolic.svg \ hicolor_status_scalable_prf-transaction-transfer-symbolic.svg \ hicolor_status_scalable_prf-transaction-payment-symbolic.svg \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(private_icons) \ $(noinst_DATA) \ $(NULL) ############################################################################### gtk_update_icon_cache = gtk-update-icon-cache -f -t all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign themes/hicolor-symbolic/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign themes/hicolor-symbolic/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-local .PRECIOUS: Makefile update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache in '$(DESTDIR)'"; \ for theme in $(public_icons_themes); do \ echo " > $(datadir)/icons/$$theme."; \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ $(gtk_update_icon_cache) $(DESTDIR)$(pkgdatadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for theme in $(public_icons_themes); do \ cp index.theme $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: for theme in $(public_icons_themes); do \ rm $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons update-icon-cache uninstall-local: uninstall-icons update-icon-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-deposit-symbolic.svg0000664000175000017500000004113514745450002025525 image/svg+xml Payment Deposit Maxime DOYEN https://www.gethomebank.org Payment Deposit homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-check-symbolic.svg0000664000175000017500000001473314745447746025164 image/svg+xml Payment Cheque Maxime DOYEN https://www.gethomebank.org Payment Cheque homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-budget-symbolic.svg0000644000175000017500000001663514745446206025053 Budget image/svg+xml Maxime DOYEN https://www.gethomebank.org Budget homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-reconciled-symbolic.svg0000644000175000017500000000616714745446571026475 Txn Reconcile image/svg+xml Maxime DOYEN https://www.gethomebank.org Txn Reconcile homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-interface-color-symbolic.svg0000644000175000017500000000672414723037202026720 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-added-symbolic.svg0000664000175000017500000000333214745447375025461 Item Added Maxime DOYEN https://www.gethomebank.org Item Added homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-interface-theme-symbolic.svg0000644000175000017500000000532314723037157026707 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-cleared-symbolic.svg0000644000175000017500000000703314745446433025753 Txn Clear image/svg+xml Maxime DOYEN https://www.gethomebank.org Txn Clear homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-transfer-symbolic.svg0000664000175000017500000001650314745450137025714 image/svg+xml Payment Transfer Maxime DOYEN https://www.gethomebank.org Payment Transfer homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-help-symbolic.svg0000644000175000017500000000567314543637523024531 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-account-symbolic.svg0000664000175000017500000001367414745446106025236 Account image/svg+xml Maxime DOYEN https://www.gethomebank.org Account homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-go-up-symbolic.svg0000644000175000017500000001070113650772336024614 image/svg+xml homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-advanced-symbolic.svg0000664000175000017500000001027414545106257025417 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-line-symbolic.svg0000664000175000017500000001164314745447057025501 View Line image/svg+xml Maxime DOYEN https://www.gethomebank.org View Line homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-donut-symbolic.svg0000664000175000017500000000617314745447043025700 View Donut image/svg+xml Maxime DOYEN https://www.gethomebank.org View Donut homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-intransfer-symbolic.svg0000664000175000017500000001742614745450077026253 image/svg+xml Payment Internal Transfer Maxime DOYEN https://www.gethomebank.org Payment Internal Transfer homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-stack100-symbolic.svg0000664000175000017500000000464014745447156026077 View Stack100 image/svg+xml Maxime DOYEN https://www.gethomebank.org View Stack100 homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-view-list-symbolic.svg0000664000175000017500000000471114745447074025522 View List image/svg+xml Maxime DOYEN https://www.gethomebank.org View List homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-multiedit-symbolic.svg0000644000175000017500000001052014745446552026351 Txn MultiEdit image/svg+xml Maxime DOYEN https://www.gethomebank.org Txn MultiEdit homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-pm-directdebit-symbolic.svg0000664000175000017500000001202613113634616026340 image/svg+xml HomeBank Symbolic Icon Theme HomeBank Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_prf-euro-symbolic.svg0000664000175000017500000000533014545106140024610 image/svg+xml HomeBank Symbolic Icon Theme HomeBank Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_actions_scalable_hb-ope-show-symbolic.svg0000644000175000017500000001024714543645422025330 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-forced-symbolic.svg0000664000175000017500000000470214745447537025664 Item Forced image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Forced homebank-5.9.1/themes/hicolor-symbolic/hicolor_status_scalable_hb-item-budget-symbolic.svg0000644000175000017500000001667014745447442025674 Item Budget image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Budget homebank-5.9.1/themes/hicolor/0000775000175000017500000000000015006374032012001 5homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-changes-prevent.png0000644000175000017500000000121213442750270022074 PNG  IHDRaQIDATx3%WYGU&fѢZ۶um۶m~ߙY'K$rd3ɨ$61KCN{yyv4Kz: sPX*]O&D#59'Zp?GWPO\|$ \#m(Iʿ('ZFyzK* tCݻHZ\+dcHo)Fmmh˓z{.bt6-@ck8v7rZR~&,dvn e.k F°4 B"'b@sjWwaZlb$ׁ+ ,eT"$ si+l6"#@1*ź(nWMpᰏ !̽ fCL6[aԵ  !LoC8u 3=+1:+DC(O1o#;`?&NoLLg_E㬻YYY3 ByGȋ}9Q/?C ÔR'9 I1u }M;Q %Q_ZK~9'q]NOs\%kİIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-item-similar.png0000664000175000017500000000130213251166203021374 PNG  IHDRabKGD pHYs  tIME ,3 iTXtCommentCreated with GIMPd.e&IDAT8ˍkRaǿٙ8+db6iכ(ft(rӛ:myhQSv!Km˅D"]!2wl6F1lv;ž}y v!Ou'Iix{zY!`2''Xݰ7g7:}0+*9A$~ N,ue{;ۿg:Fr5=bKGDC pHYs  tIME HBtEXtCommentCreated with GIMPWXIDAT8˭Kqǿhm+몋:y((R:{R|"Qҩ:^: B=u Ԫ"զ)>楃f|aGyNoz`HV eUmvFN?y:މG97PT[`67g{c8K$[1PiIYdV `3g?o `?莰Zc*,F{غ 6SؚȐh }*oVքL58dGC᭯]BX$b8 )lh!$=q^f7oϧP/!S PIP( gKZ]A o*BYQ #͂Z`c~%?X0F뾋7[!F$`x|<ѐ pΰs9>DɕfG`ލ-7#9lvl@ٹe `ϧD୉ һmf.q'bb"WT*/*`XKϯsđ4|iNQȪ=6oK.IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-pm-deposit.png0000644000175000017500000000101612505431134021060 PNG  IHDR(-SPLTELiqOPNNMNMNN4BNmhL[FdT؟ z(ƂP֚\F9w9hXhv _mZ~ۣЄۡU֦ դ UPU1ګ`r!ڳ{SVHȐ3p͗8{ WrY ωCkq tRNS.= sIDATxU`DPBVJxkgD/(WDRxMf~kaAL0 :Ѵgy3ڙe|{vqkSˠicm6jwR4M%9nd=) )\Liui;ewL DFB .E0`c9VNIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-rep-stats.png0000644000175000017500000000140012505431134021031 PNG  IHDRשMPLTELiqOlJymBr:kiR>kNDtCsq{{M{Aqtm[n [op_AqArJztAqAqm\[@pl4eDt[un Yh i"UZo`[[X >rϊ4}!kjRvvxWk|ҭq;tI[np@v˥dM=mElDžMV?a^ADJa8lS8-kƕQR[sMO_2tRNS` CBƢpby[71\ի=DMѣ0IDATxڅVPHD@HIL .I` i]|gi$_]NRV):ggT5!,P$y&[kp͑X>18MI,ɏLm'"}EQ1~$vTy'ѧ & %4'utnbFL%a eZ*W'BPFMi_Pcۦ-y ܭ!Ea!X”Y7h٦!]iz #VA=\`JBeYζ 0_Wj(IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-changes-allow.png0000644000175000017500000000106513442750270021535 PNG  IHDRaIDATx3%g\ƶm1ڨY۶5굛m>gj>*FtRj[ o4ܭ7JZI@@ԩiU5OHM 8ޏ(8 OAGqH#-w9@}GR ~ %"܎ %IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-account.png0000644000175000017500000000163712505431134020557 PNG  IHDRשPLTELiq¹N#Lb|8^M\zVVT@Ff¹v6_a^  IwL JN_žXǁ)§4LˑNơ*t)ݟ$;-˦KH8.w*uK yD Ͳxx bnJ$a7JI!&E8JQ2\D b"{ʄx,`V)r#~ZQ2IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-item-future.png0000664000175000017500000000117613251015156021257 PNG  IHDRabKGD))&r pHYs  tIME 0HJiTXtCommentCreated with GIMPd.eIDAT8ˍMkQ3!Ӆ[QKҨ+(E  UKTh]pB[S`kwcQ!Nb1Iݼ/=/W2#I9ʠ^ ̫!UDBVq"Լ.uDP5[Jb[`Gşom |6VIޤEtBwB= WVv3+K|`>B4 Lsd/SSYH%ӎ;#H*P݁NǏp R|>kƞi)~\.i7R,= 7Ć̾w MS7m8j]GFز#|;fʼn'x^Gߋii1~'zՅ_b5jZ+{;j,"Մ샵J&q\v~'@k/а5IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-go-down.png0000644000175000017500000000156113442750270020477 PNG  IHDRw=8IDATxRQ QvԶPT.PeQ%q/e T6BPd )XOCjÀ: Pv瓦E: Coy;Ѫ=dp/P@DI娬p0.T g0Dd4B0,&çћ;0\7jP[SGqq3rʰٶy:mm|WjUVѡRd E7uxY REY 0ׅ/)8%+M 055FdJ J#WuE%]]),!:33P[W > c KQq$22Ql)nJdѷCbB6rp"b2allZZ˵h: ==&lqP1w"N@&"xMm%t`pvw}@" 7EZZa|| 08ԟ8h;8::Ue}@VV:;;7_E4RRRn]CK4#K = xYy 6AFf**w$7)#8ğ潴]U]R]񅾠##PRV- N.{Ќ,f(-/8.v |R?Iг \\4e ٔ])HS(3w Wޚ8}2U88=Hr`ԿbKGD(L pHYs  tIME 2/tEXtCommentCreated with GIMPWZIDATh{l?3w}~`lJî/m0D DDHPhԦE\Z Bд DjT5 &DDHjM[R`<`6Ƽ};;3aj$f3ߝ[ Fr OJwpP th_._݊il''}qͪ M^!> ϔR*o*exН>!>ĉ MӚ7'%K1Y/-)AJ!©)B=!RFEivjǐ.Ã|k^w2TyDX4ҰqAP׊Y6#LuiN5?Teŷ1iDլ=.ãthU;}J rBCd?JæA[aYCHaZZZB3Ui򣢕3}3G]2. 'sOCʞ.G$W Z@JpPF'6AJ:2&p󯻅#By*`v;cV4W.5&uŕTL*y~_S߫#CHJiR} Pz/t*  GEUF߃HF8ӑbQP9tiڈlGj&"  +5aTaj[ZBF45) 4$t;'‚8p12 CPYJ(Tlqdfs InL| ysR&PL7M L> /at12q(cddn~)hyyx@r7kKuХthG gVжj$b4Cr.A%z7]n@ P7}wA`:P}]۸7jmT~T¯W}#k4{'MP2k77:tmV,Q 4gx!qB6{qRdx#?9Z/Wh>)Sܐ `ڔ>9t6{qH~c h9P4,-BtnJX7Ih \ez.B&+g mV, 8w׍y\`{@'+3+,Z30j: TǗ(>B~XB[y>;qPYlqntb<Ԕ>:=ޝP7hNYm5A8#5*-۳yo'MrK ~k=M|t!1e3JKݤ1n4AծC:bҀ7hqNg:'x$  t̲6^":/(X1eqyIA4ݱc#h["INڊY{ sՍKNFu3R1ZugrbHNhWrIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-pm-ccard.png0000644000175000017500000000113412533125614020472 PNG  IHDRabKGD pHYs  tIME;(<tEXtCommentCreated with GIMPWIDAT8œ1kTA;Ʌ<Ư`Vo 6"BFBQI1sQ\{3kq 1/;iԫ=6^]9~D@DAw 6f `M&}&g*f8&3ea Q M3: ?'[PZEë%*#{{Tc!46e,bh24*ԩ"D26쀙gΌ}ruqA5!sβ4guw|p NݹLpPѨ u|^?{s+? v M`#3:yl]ƨvBQfjSnR9Ubd{}o#9D/?6f K>?~5VsLDHXw{_ ?c'IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-pm-dcard.png0000644000175000017500000000112212533125642020471 PNG  IHDRabKGD pHYs  tIME;.vtEXtCommentCreated with GIMPWIDAT8œjTQgon6j%6QFK;}K,| ADpbch2*XE {93caf7sOo֥ <u6p?V_p梪9wc1x7XlLTw2E=̡u&VUӋ:aQ#%M"Z?ϭ,{hImT)e"-!hϽ7Qr1RQG҄%U1z*çǨ]ǵKxAM.Ʊ~deg2wtmK44MÝ[gyu|ж44iTXtCommentCreated with GIMPd.e0IDATHǭoW; 'c#4TRE JHhAUuWCj+U@B@HiZ(jix [@ĩN͌ O:͙;gV/ nc~}oض]P^iu[Ji셅eҾo@#P{OJ)B0??eY߿K5GmoTsT R;ɺ:voCQ~fvwt|^tT+Oat#CcVZJ(  MaBWp}Qk`ӦeBN/û#[ B4:xzz16 pI`x֚IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-interface.png0000644000175000017500000000123512505431134021152 PNG  IHDR00` PLTELiq  JX\X/V %Ie&OVXT"3͎$M*O)P@@;fidvxr}4Wqא҈mdFl\ߒyxk:`nsi"tRNS X =CY0f^]1IDATx[S@qV*RC)P5@GHE G U8M&V1<.| 2 #{D:$y"xLt7Q$=<@:4;1g=6MY)|t:TF qD`0\@a9U*<:]7J3Qj8[2S'Q2QPs@ZGF:6.@z*2ӋAt%w';.~*@>6Ft8KMۜV~:]&~).m|\ϋuۡxD:xls>ǃK□ʆ{@zЎSG֔VjFtRNSv\.Lcq (GhrOi\% mQ{.5MIDATnP({q*sw/4a.I} 4~pz`BX+-0"JK0 ByFwak;BAI(G8*2 [n<_p_[4o~@nhBucʒqM :hQ\DQC`!]؎-$PL;DQρdj889ٛe1|"fMIHD7wŢQg<دOp؛A(f(IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-rep-budget.png0000644000175000017500000000051512505431134021153 PNG  IHDRשoPLTELiqWQS*N.WJ=-F8NaU|wl5%^bZcdqmlu}ii\pdOAM?JtRNS污IDATxڝC0a jK[?#d22|'g 0ǫ,몒*:jZJVH"e|(1ىLaqMѽ(Hse6N/Luf ?~" =tIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-assign.png0000644000175000017500000000070212505431134020377 PNG  IHDRשPLTELiq JJJȱSSSƭ==='''BBBZZZfNNN^^^qqqQQQuuuVVVhhhnnnEEE7#tRNSj]qck[ WE4.O#ŮqB!tY>1dIDATxڥ `HR,[0iYsv^@WgpGOnM{ƒD3aLy 5!>?\*TzY8ڈa >@um{7/~ 0đUmo&Lge# a7#0܀ҏ<nh,IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-pm-fifee.png0000644000175000017500000000101412505431134020465 PNG  IHDR(-SPLTELiqv`~vaxpXgaP~iwbwbwbvbskWȽ⽸½nfUwcqxb~u`{s^}vbvb wcK쐊vxo]jԿ55￿##9Ԋ/tRNSa -{˱mpB"EtiIDATxE0oBURR\C ¢Ϝv,5Igm"ZVdʍ7\ iUMaI, 4+&u@L:R&@7 *sm{H~8Dߦ((9Ʋb6S]KIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-life-energy.png0000664000175000017500000000354314604216565021344 PNG  IHDRw=iCCPICC profile(}=H@_?*;8dND8jP! :\MGbYWWAqvpRtZxp܏wwT38e ![BCωb >x?G7gnXӛy8JB|NN u"e{ϴuVrMf#<bKGD(L pHYs  tIME tEXtCommentCreated with GIMPW;IDATHǵklTEs쵭k@[mWZ R(^hc *F F1j5DMH4x@Ai"Z.-e-]%&bL3}of%uuu˯yM7l tM+QJDN~5lb Wͭ|eF5KBpl#4Ul ~A8 .WTTi"eMYi9304Lp>㮮׷ۧxa(1͔˲Y6݆iT]UE<H5wtnYhR4778e˖z6%H&Ʉe0Ba t8N;v k+٬شiS +VV !rQԠݮ)3}vݻ]N*f+WRb50t]횦Rʉp8<|𑊊/d2n^~Ykx9旙)asEYx2*-RTJI,jllLB_Yr\3_58 *iYRJRRJsRJ۸7tS:/'~BYJiT5 RJYRJK4.~jAUqë!KW¡V~=t'3(+`R*Qyy,)|u Usg#28p}^OA2}؀d!RJ @|w%n_g{;_"0.S &__2v%(S(簾ny{ӏB.$4-V'y3#&M 2GOO]e))dp ϖ>XRy?_=I܂=d8ڇ@ ,f̋w>]e|YDc0AK*6 _/fK@\]hhO!ڎU0v}IoG=h)?*[ 2tRJ+H\54|jx3& _A !&\!ȥ;@dؙ2G\]7co!=\pQ$c&EpLz$?n]ti=;㷉-́"铇d"AcZdWfʆ N ၒ۶FG _- 4V?}so=ڤknlll®Ğu]?^hmmGGGmWg sMIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-pm-none.png0000644000175000017500000000014012505431134020345 PNG  IHDR%=m"PLTELiqM:tRNS@f IDATc 0 HIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-payee.png0000644000175000017500000000113612505431134020220 PNG  IHDRשPLTELiqܔ#Еb-VGB7ճ|ؒ#sX,o\<{O?4YV*ZcÇ'NkEi0hhDy柦u*|{dqPJ!"NpB0VZ!a3oy룩LIk#nPM};>q:DiȈi1Ep.eFcto]'G[v ܕ ;:s< ؾf 菳1'Py V42뽯&%Jk1ff̹WM49Ǩ#ǙVC3@6Fq4)XYۻ㎮5HN s]MnX:A>q)r"$B#q34Nyss%C2 . 70V |I$MhZe ya2n%ϬFydA=8hR0L@ngx{CxyǨ9F` 6ÙC^^>O<4-[V-[{<5~ % .'bC_M^D/]q3u.q\D(*V5|GDG͞5uxU E1ڽjђe+s%hڂW4+#mڡG]mY9_Qc=P(~hgv)dWnKww/RJԽՏ\@A|ʻ&ockET<d)999!={ ZBL5^y]*i)Y#.bPh}7EF J#DDFZ'SǴRnJB*ni8]8}oNM+.IF}8orijIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-pm-cash.png0000644000175000017500000000033012505431134020325 PNG  IHDRR0PLTELiq^X^Z譝Ֆfbjfʉa]{vtook?VtRNS3TIDATc`ji`PJJi] d Ifp?/@p)@5] -] { f2} 꽾IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-pm-mobphone.png0000664000175000017500000000172214566373426021250 PNG  IHDRaiCCPICC profile(}=H@_S"-v(:Yu*BZu0 4$).kŪ "%)=B4k tL%b&*^! 1$3˘$<=||,sgaSy8̊J|Ni*y#^xwOgoirBbKGD(L pHYs  tIMEtEXtCommentCreated with GIMPWIDAT8ˍkQ?5h '7؃ko6BQ"_`z"J`rJ`)[Ei~w5iwf>̛aSk8܌5qQgO^8oEH)1`hMw[@!`UjtdjJ^OcFJ +5PEhrӭɀ(RW{k8G<x'zkwPM|yX 'u0 h6zJBTtv88ҥjBa߿.i^.:Y[t:|c8r~>d{+v{aJr~)%#]=߇hϟkytΣvH\-[ FIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-gf-blue.png0000664000175000017500000000150114603516776020342 PNG  IHDRaiCCPICC profile(}=H@ߦՊT ␡:Yq*BZu04$).kŪ "%~Zxq}{Ш0 ndBV+B4!BeIR y/?Ggaӛy8JJ|Nv |f>Iп \\5e ٔ])HK(30p yqd( ppϻ{:s6ru^ubKGD(L pHYs  tIME !'stEXtCommentCreated with GIMPWIDAT8풽JQ$_5A"6XB}vIl"VAnf7B6*4gΜ93f=$Z2U 6) AB/`*UDt>,ΫK4՘˜aǟx#/ M.G+|0ҸpܬJ)@sinZTu[HUl/rqdxĤ ?r]segFLz8B,XicV25 ☪/d=V9oqUּ'a8//qfI,`D(be؈Ӫb!M ȥk@wVa|K 'B@8ǎ8W'鵖;z떦;@!+i ~FߔnU>N u"e4^rYbKGD(L pHYs  tIME 5ݟ7tEXtCommentCreated with GIMPWIDATHǵ[h\E3sΜf]뺘(1VZA0 k( mEQDD 7G+* !R+hLj"Msi6&˦srnC!h 3~|37,/ A`PJrͺOc m/Bͳ/Bwzýw[aZ&SjuCLVmܩ?!c==5y-Zۣ}{[{[Lv~xN_uΜ J/6˄ʘ8'. Oq9p5JadBү9Xv+r| pπ+Fе>H,s|<\+RY{%bs8f($W̝/Jmij/sڮg|| jTub} YA3|+\͝UG06Pĵhz\uXL2hr7wulT܃H7cZ_|:*|2(z V1qf'??'yLGY2_gʍХlڥgAC6R*Pu$)ě_ R m"2 BY1`tXB$E D|v 2jB$5C]acaa)fOR'&- ϳu3έ{Dvg[v)Ak7y(I☹Z- B 'B@,]%Sґ=c._>j iq=suQ߳˜PȎr(N*`՟瑨ƹje[a|dڑ~{WI\^ytJFj+ 0 t 󥁶O {{akhFys~S%mX.IENDB`homebank-5.9.1/themes/hicolor/Makefile.am0000644000175000017500000001532414736013575013773 ## Process this file with automake to produce Makefile.in NULL = public_icons_themes = \ hicolor \ $(NULL) public_icons = \ $(NULL) private_icons = \ hicolor_actions_24x24_hb-document-new.png \ hicolor_actions_24x24_hb-document-open.png \ hicolor_actions_24x24_hb-document-print.png \ hicolor_actions_24x24_hb-document-save.png \ hicolor_actions_24x24_hb-account.png \ hicolor_actions_24x24_hb-archive.png \ hicolor_actions_24x24_hb-assign.png \ hicolor_actions_24x24_hb-budget.png \ hicolor_actions_24x24_hb-category.png \ hicolor_actions_24x24_hb-clear.png \ hicolor_actions_24x24_hb-donate.png \ hicolor_actions_24x24_hb-file-export.png \ hicolor_actions_24x24_hb-file-import.png \ hicolor_actions_24x24_hb-filter.png \ hicolor_actions_24x24_hb-go-down.png \ hicolor_actions_24x24_hb-go-up.png \ hicolor_actions_24x24_hb-help.png \ hicolor_actions_24x24_hb-legend.png \ hicolor_actions_24x24_hb-life-energy.png \ hicolor_actions_24x24_hb-ope-add.png \ hicolor_actions_24x24_hb-ope-cleared.png \ hicolor_actions_24x24_hb-ope-delete.png \ hicolor_actions_24x24_hb-ope-edit.png \ hicolor_actions_24x24_hb-ope-future.png \ hicolor_actions_24x24_hb-ope-herit.png \ hicolor_actions_24x24_hb-ope-multiedit.png \ hicolor_actions_24x24_hb-ope-reconciled.png \ hicolor_actions_24x24_hb-ope-show.png \ hicolor_actions_24x24_hb-payee.png \ hicolor_actions_24x24_hb-rate.png \ hicolor_actions_24x24_hb-rep-balance.png \ hicolor_actions_24x24_hb-rep-budget.png \ hicolor_actions_24x24_hb-rep-stats.png \ hicolor_actions_24x24_hb-rep-time.png \ hicolor_actions_24x24_hb-rep-vehicle.png \ hicolor_actions_24x24_hb-view-bar.png \ hicolor_actions_24x24_hb-view-column.png \ hicolor_actions_24x24_hb-view-donut.png \ hicolor_actions_24x24_hb-view-line.png \ hicolor_actions_24x24_hb-view-list.png \ hicolor_actions_24x24_hb-view-pie.png \ hicolor_actions_24x24_hb-view-progress.png \ hicolor_actions_24x24_hb-view-refresh.png \ hicolor_actions_24x24_hb-view-stack.png \ hicolor_actions_24x24_hb-view-stack100.png \ hicolor_status_16x16_hb-changes-allow.png \ hicolor_status_16x16_hb-changes-prevent.png \ hicolor_status_16x16_hb-gf-blue.png \ hicolor_status_16x16_hb-gf-green.png \ hicolor_status_16x16_hb-gf-none.png \ hicolor_status_16x16_hb-gf-orange.png \ hicolor_status_16x16_hb-gf-purple.png \ hicolor_status_16x16_hb-gf-red.png \ hicolor_status_16x16_hb-gf-yellow.png \ hicolor_status_16x16_hb-file-valid.png \ hicolor_status_16x16_hb-file-invalid.png \ hicolor_status_16x16_hb-item-added.png \ hicolor_status_16x16_hb-item-auto.png \ hicolor_status_16x16_hb-item-budget.png \ hicolor_status_16x16_hb-item-closed.png \ hicolor_status_16x16_hb-item-edited.png \ hicolor_status_16x16_hb-item-forced.png \ hicolor_status_16x16_hb-item-future.png \ hicolor_status_16x16_hb-item-import.png \ hicolor_status_16x16_hb-item-pending.png \ hicolor_status_16x16_hb-item-remind.png \ hicolor_status_16x16_hb-item-similar.png \ hicolor_status_16x16_hb-item-clear.png \ hicolor_status_16x16_hb-item-recon.png \ hicolor_status_16x16_hb-item-reconlock.png \ hicolor_status_16x16_hb-item-void.png \ hicolor_status_16x16_hb-pm-cash.png \ hicolor_status_16x16_hb-pm-ccard.png \ hicolor_status_16x16_hb-pm-check.png \ hicolor_status_16x16_hb-pm-dcard.png \ hicolor_status_16x16_hb-pm-deposit.png \ hicolor_status_16x16_hb-pm-directdebit.png \ hicolor_status_16x16_hb-pm-epayment.png \ hicolor_status_16x16_hb-pm-fifee.png \ hicolor_status_16x16_hb-pm-intransfer.png \ hicolor_status_16x16_hb-pm-none.png \ hicolor_status_16x16_hb-pm-mobphone.png \ hicolor_status_16x16_hb-pm-standingorder.png \ hicolor_status_16x16_hb-pm-transfer.png \ hicolor_status_16x16_hb-quicktips.png \ hicolor_status_48x48_prf-advanced.png \ hicolor_status_48x48_prf-backup.png \ hicolor_status_48x48_prf-euro.png \ hicolor_status_48x48_prf-folder.png \ hicolor_status_48x48_prf-forecast.png \ hicolor_status_48x48_prf-general.png \ hicolor_status_48x48_prf-import.png \ hicolor_status_48x48_prf-interface.png \ hicolor_status_48x48_prf-interface-theme.png \ hicolor_status_48x48_prf-interface-color.png \ hicolor_status_48x48_prf-locale.png \ hicolor_status_48x48_prf-report.png \ hicolor_status_48x48_prf-transaction.png \ hicolor_status_48x48_prf-transaction-dialog.png \ hicolor_status_48x48_prf-transaction-transfer.png \ hicolor_status_48x48_prf-transaction-payment.png \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(private_icons) \ $(noinst_DATA) \ $(NULL) ############################################################################### gtk_update_icon_cache = gtk-update-icon-cache -f -t update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache in '$(DESTDIR)'"; \ for theme in $(public_icons_themes); do \ echo " > $(datadir)/icons/$$theme."; \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ $(gtk_update_icon_cache) $(DESTDIR)$(pkgdatadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for theme in $(public_icons_themes); do \ cp index.theme $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: for theme in $(public_icons_themes); do \ rm $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons update-icon-cache uninstall-local: uninstall-icons update-icon-cache homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-item-closed.png0000644000175000017500000000172214734242310021212 PNG  IHDRaiCCPICC profile(}=H@_S;(dbqU(BP+`r4iHR\ׂUg]\AIEJ_Shq?{ܽZiVGtLcb:*^z0AYƜ$%9]gysY>8 & ٴ !VUs .Hu7 <3d!b1JOUM|!yV= Y}e4" A (FV Iڏy~\ `X@~wk&ݤ` |qQ ԫ}8 \-~^mi#onip <)7$?M!2@-н7!0uwwf?TrȬ#bKGDf}a pHYs  tIME  /M+TtEXtCommentCreated with GIMPWIDAT8c`fhbȐ GPc M W]8qL 4f_iixBRLTy4c(Nr|Z˗/ RBgN{ .j *++N۷o|&FBO}stÅ**)pK\PRR̙?zҽ`tL8#&&&F&&X````HJURR*pp:zػ}70񓑲"4 11L^A^Coߺ5ݻ?ona5DNbFVK+3}Τys5,ӧN:L_!Nk\~Cw]Ԍܹ-_0|MksȖCIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-view-line.png0000644000175000017500000000200414734243310021012 PNG  IHDRw=iCCPICC profile(}=H@_S;(dbqU(BP+`r4iHR\ׂUg]\AIEJ_Shq?{ܽZiVGtLcb:*^z0AYƜ$%9]gysY>8 & ٴ !VUs .Hu7 <3d!b1JOUM|!yV= Y}e4" A (FV Iڏy~\ `X@~wk&ݤ` |qQ ԫ}8 \-~^mi#onip <)7$?M!2@-н7!0uwwf?TrȬ#bKGDf}a pHYs  tIME  7$^tEXtCommentCreated with GIMPWIDATHUMKQ=DdCii f\FiQ4 QtѢ_6M_hki٢"PEEB ̒b [4c:@{Ͻhfh^\ N#~/DI% LOtoz}ׅ[0,+wFb,M_s8pbTgT ,LpyWBӆm-^V}-Z\^eXR9SXSH:%! O1hBmȦ`9idOOjXlPػ`9iwJFeSiSrtoŠаo_!i&ƨ>=woqlqsn7>ZUfw]5g$O$Mprm|Z_7iuQ{prmtvpPNOtvquwr~{MQ،־wOy{vΨg=N0Shos踒TdvǣHf%OXsrOωˌخyauO艻ጼWXмͅeqtp̴Ɉorm\ϸ˕QȲƱ߁6xѫ{ȭZqt}}T/z!⏴rHeī‚{t»_qqu°sxw;ҿϾʜڤjߠiZnUjh/ɼ½oPh{Ŀӻ\f[e}_eZøǼZtxjŪWVSjl{Һpqh?tRNSHHi&"z`f+;E%mRjyȳKg?`2^ҾTDrs}er~IDATxWPQkQ Tb { 1k$PTP  `nvn4$O͹,Sh#jcmg]#avSvhʴa`Nvm6ljpψ?chǴ8hks' lf{ ;k`6$(+lDںth@;t\pkc27~.8D ܱczyo?CN\Vrl@Àʫo3;wp7u@k(%(oeH}]5$b  mKfr YCM k&}G9 19= UY#SEd~)"-u& x&+U"#c)aLYXHQO 2o;[wb^AVmD<5s4VlVKxX9A(<:b+88lP Q(ؙ5NB5paˣV$"ɢygi ԁShR" kOHԃycN@j05ҧ[ZQ?D&`Gc{@Js8EE #`q93eh=.共%ǸDj *M81ބcsxgs18HE %8jJ+ϭ ~?dZ?VpuݵHfnâ 8'5%Q% HAIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-view-list.png0000644000175000017500000000046212505431134021041 PNG  IHDRשQPLTELiquwqTWTUWSUWSぃ~ٲEr tRNSp 38IDATxڝ EQ:U P7ZCr^L\/E&<"[XD^_' C@~!@~!hP* OZ0Zv4r`:p'IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-view-progress.png0000644000175000017500000000051512505431134021731 PNG  IHDRשoPLTELiqWQS*N.WJ=-F8NaU|wl5%^bZcdqmlu}ii\pdOAM?JtRNS污IDATxڝC0a jK[?#d22|'g 0ǫ,몒*:jZJVH"e|(1ىLaqMѽ(Hse6N/Luf ?~" =tIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-import.png0000644000175000017500000000271112505431134020524 PNG  IHDR00` PLTELiqNg!_|}yQ þM464Wp*|PL 4WZۤ`T^艋]r8mu2?9ڱΔΝ摓[Ki̕GNϜRܹaԤq-Tf!f'o*t2@r/MqͣfӤzCZxRz4P ZӚTo4a(ױc]i١y8x[hҞ{-tRNSH4(` N.3p~3DS6E_IDATx_pԌTn 6D,3ўgkl^~?<=n{濭~ۿ`#$n#ßp}@T*v:sXw\r$pgk5BQ`çښk7?oki6XCa\QK[-[5:pQC"> +᤟-W烔K5nU@x})a+}#k Η[ΎgϗVܕ|rcT|||<]6\9%s|nw{e~K$*7?({#ܐh3.ɏ|NpRs\^9vHq<7PS|H@wx<3şO>\ ڠ'>^˟2x23@Zf¼tkx Jd:(&&H` IZ*Ɂc@h =[SW[^W8$L7u .u *k،3֯.F:j њLKIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-item-forced.png0000664000175000017500000000102213506144027021200 PNG  IHDRabKGD pHYs  tIME 7D%'tEXtCommentCreated with GIMPWzIDAT8Ő+q_lQ8ȅv4 )_ rp%spppqz+E6<2lc"ly_Oo "` h V !d|HDԸ]mB{ނ I^/G\{NAlFje;yvF*DӰ5);p PN~4]{a [jc%C4HhΆ:L ֏%k0y HsHP"{XS2mmU'' AzFk(*KE /~B`0"Ix -zts#hUe_11, 78E!D'y 4 4D--IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-general.png0000644000175000017500000000357312505431134020636 PNG  IHDR00` PLTELiq'+T} KMrsss΁R#NI~~~ Jρ3_-U HGmBy"J K2Z7]Ä$P%Pm'O#KǍ$BvAucw2ǣ?nSj/Ik@MT_ 1/Wbǿ6.+giCYA4,(ZxXg"EPL7Ρb[Й; D&A4ugN3R_Kdnd4 GܩjVȻ#iaz) R<,*wRjz StKU<'n hy^R-r{@c޵P+ BnVY]$M'*4aOΪjvv Fޯπ`o)WB_xmR#*"J'+"%;Jb* YAUԾc5+(Ɇ܊_kVl03A8sv7nե ssfņעM3;%VRМ8v)ڴ8n_vsbBP>Tw!.]xY"~/1r~ώ RSv@ f$$ ڝ{- ^!8c"~m'ODe:YNSߐM& A&/ {z 1r/'vD{ɲ=`r:)F˪c&Q@rHC@A]ZTn)IU?lh HR(pqqD Ж;@nfzXwcIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-file-export.png0000644000175000017500000000201513526524225021360 PNG  IHDRw=bKGD pHYs  tIME 0,!tEXtCommentCreated with GIMPWuIDATHǵO[e?hy+ ĭ5flqdlnj̜3 /.t3_1q96e0 KtKf7V B[Zr s@lv~/y~~y%'#PPi}SUvMrVX4vCMj!湩伬Mǵ~7P࿥Щ ,//Y?{=uvs}Wdhr 7"u۩hpY Pl?ۀ`ʚ~4q‘033Өjj[ V%n^DҊP`DHR|8O"IՍsb7Z qL o4hrрlTY6oG( kX]6N{};NVɢ(( zQOC[V"+̏%]'OD@dKV'^ i4ݻw&(/.Mx M6K e;I܊ql(Ӭ7'2MtzMά7*5ELT!ߎOѧF]&o0bc0tN强s%-.;Z{?uޡ&"* (m ]D&tU4 >[>8_7uJG*DB/ovUٓ\LfoCޖF%Ţ(JZ^u|cWBN7lh)(jhw9lo-_ƪ(ZE,*VZmoۜ$yW6|]îB7 , K_}fqXqS!шV&No mƢ%BίBF>m>2;vv 5}O'WB7\y$P(^4Ah P8P8WS6@@ 0*D"~o1$@%׭Fw׏B0?e-(bjPCqP:;L.N :c"NF'd-/Z^axWΖ?jA… (,ܶmhhVkq-s-~xR;~Tj½|SDAJ*4=T>|%rЪ8t0K&N76/9==-Z`)i8Y+7}VfuWT2#^\k/zA?ݼm#zއoʐ1c7W})疢vek-ӗ~J+ڭ6*eܵ](+Zj~3(-][vo~_1{K^MǟLxizyſcqpou) Y;o_~]UT,ϴ_rr&)/ჼܺf-WΩNϿT^EU?מU*/v`(H].'3igڴiMw[rXD( qUj<ϳPPnp3{\V R9#ʊk2}྇tK8͹Q>2RNmDݍɹ,Guu5lún%!|رtzx^:y FC1xPȓvbhr| L:AIk_My%'A ߛcl*ga6xMq;a&'`Xi6G0c}SeXJlHPs0vǽӟo!ُTze&M1om0o!$R0$$Q xξ7佴9#Tw83}Hv=N4| M1Q;#K  ߈0҄C阷+P@qp ?vˊ8\*2klpuw^>CM?hqcv(K1^zm r F+/Sj2E_DK|x)Xvh5ZsA@!d?a?}P`9Ury'O/oaq%Ͼxw0t*5 ҽ `!O@UBI+VG?&SGȯ6=?ٳ#ćj`7 #FgooGv"Fƍ/ K ΚϏv}߈z3lQ|)0,#CJtMpbhofRjc.g|+ ܶQב,D/qQH=>}YÒ^@-Ts)! yJ/+SSr.'S&[$_kJUhڵh#/&R/^La-*VOk @b ]<8V=[@h/NctJ|uvQ/pT(wK$S:Ԧ4P1"<2Ш,|YqD*@e93fU '7 ;홶19W ZVM=&eZp3P' >Syt[lCgW72J/@wBQuK!X *B")"ؘl=}tG=/GD(}Qs6QГVWK(9B,v߽Y*Cr.(d(DE?iwIϸWGQ8>E@R pZHdь9ӗ~@$9&GF1H`;9TphzbHs#[8V+2TU@6ҡ;/Rzq O~IhIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-rep-balance.png0000644000175000017500000000206714734243413021301 PNG  IHDRw=iCCPICC profile(}=H@_S;(dbqU(BP+`r4iHR\ׂUg]\AIEJ_Shq?{ܽZiVGtLcb:*^z0AYƜ$%9]gysY>8 & ٴ !VUs .Hu7 <3d!b1JOUM|!yV= Y}e4" A (FV Iڏy~\ `X@~wk&ݤ` |qQ ԫ}8 \-~^mi#onip <)7$?M!2@-н7!0uwwf?TrȬ#bKGDf}a pHYs  tIME  8+ytEXtCommentCreated with GIMPWIDATH핿ka?1"4 PzUsVST'AAֵ uЈ1.nKoP]\I*EġMz4i~p^}>s/@T8|f]#]jIG et* 0sQ5VHX=̋"Փ 2*IlJ|fC''`hPl%XnE7ROFҩ,ȞQQ5*jL7Q5 8@6T_!70*I!OUX~-oJϱmuwp>s-ȰN%/V;gw7В nXmDi[p#RAV* 'ښDX8?p*++iY\_. aol{?t|3s]{sW߹ů-{ͥ9O7A-N Q(}wvz~a|e^"os9ݛW˧E[+IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-document-new.png0000664000175000017500000000162514734243575021547 PNG  IHDRw=iCCPICC profile(}=H@_S;(dbqU(BP+`r4iHR\ׂUg]\AIEJ_Shq?{ܽZiVGtLcb:*^z0AYƜ$%9]gysY>8 & ٴ !VUs .Hu7 <3d!b1JOUM|!yV= Y}e4" A (FV Iڏy~\ `X@~wk&ݤ` |qQ ԫ}8 \-~^mi#onip <)7$?M!2@-н7!0uwwf?TrȬ#bKGDf}a pHYs  tIME  :%6VtEXtCommentCreated with GIMPWmIDATH͖JBA3]o EOA$hBmj#eЪEvB M +Aƕ:0ps@i}7@ Ⱥh/V4Zx),/o 41#j:s t#cRJ6,SӶH՝v'a04cDlⱉx|drs3 )9>.h9\b۶mlOzތ־:."8Nú垃 (BmZ ":aNN|:Do>2 5D}JVterM){%-?YC/ZY20&wIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-document-open.png0000664000175000017500000000114013237031621021667 PNG  IHDRw='IDATxݓ\A v9`p-g8- 8j<,q 7P`RJ7M_#ZpY0o#?~ş"6eGP)ʱ ](8 ```DDQO.̱ >WO:*"aX!' WKk>Gac}H7f;1mkÔЂFLac=,a [u!mPFz0IA z wh50-*yew5[" zO3)6]/`RXi#ZaR8 >o`PI>,8CxM7uNsǶpƙKozIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-item-budget.png0000644000175000017500000000061512505431134021211 PNG  IHDR(-SPLTELiq{^Z譝Ֆ쇻ݿû䌍ʞ՗ŸqmԴ{ȣ؟ϪtRNS(]mTAIDATxU a$P@Bz:w֘?Hą[6t/߭s-OkblJԕG,'G݋ pJK 8p}T(P%4RhSp (xoJ@,!7`!Kk10-(ş 4 =IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-ope-multiedit.png0000664000175000017500000000214613251174642021711 PNG  IHDRw=bKGD pHYs  tIME (2)]iTXtCommentCreated with GIMPd.eIDATHǕSU?g$p `ED):Pki:J}p7^팷T@`/Hm҂%!&H|g9緟=lHbG]<4Lr$KKKty^k,*ܯ5$7P T$ĤכP2`1 ]Q d2Adm 2UG×Gnvz1 d2I&`c B)YnچGo9ԴE@a]?.p9`5e9"gsQ&H&?0TWr8r"=( D`_R܀LFKCȲD? u=nYZ @Mu5&-e[25ŞVH$P%ra24ͼY$Y,3,{<4!#m,|90׮_eff&=?L=/vhe't`OsSH%=vE~i2 uW%IX$KzSJ׋l/dvzPk,vnO0GXm6Rg7yq$%hk޹K?{!ڥ^tXDB`(wX[̢|r:h?JGQh=P nR[]Cd-f*>?GݸjM(}8՛t}n0@Ϩ:}{3C&czjnzylG\d]Y=ܼa,!أ%Xm-}5r|ا!IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-item-added.png0000664000175000017500000001071614734345437021025 PNG  IHDRazTXtRaw profile type exifxmP[!=*# zbn; 0 YGHjDqPz'Yt$ʣO=x1uPfDpۨӍ1Apz*O-kٮG3=H`IrZ- 5;ǮgQj>/Y*3iCCPICC profilex}=H@_SEJvQP" EjVL.& IZpc⬫ ~8;8)HK -b<8ǻ{wЬ2InTRWžW0b2$) u_<ܟcP-X  f6̦mp'OtAG+q.,̨GR+]ʦF :ʗbKGDsϕ! pHYs  tIME D tEXtCommentCreated with GIMPWUIDAT8͒JQϽ{,LceHX(b)1/ h#mlH!)4!M0&;c Tgf3_KD61eg|>tl 'TJէ9OhhW ƐCDPk<@y=ff@>\w|w3*S "!ە<7;Jى"{W`F@@J)%(jft^qY1eyKs+nk7Vr>Hjq˜-BF &H!LH$fGRq85>bH7VIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-help.png0000664000175000017500000000314413526523237020062 PNG  IHDRw=bKGD pHYs  tIME '+PyJtEXtCommentCreated with GIMPWIDATHǵVmlSe~vu}`YY 2 Nu[/b0j Nd"1.KfAC!? XL)Unezוn}T"?$'9?<<g#s -Ue|RVB?%MJw.<zk.dɇ$CN(+/nzr>g*ebb!$wUn\VR7$tX*ח05.Y@$4:FZ[rkBjFzk߀K_CWX:;"[1w"rxrk : tXCjUрoVC}#xh+Bt7aT̴ OM0(,9vYBws1$2dYF"!Cv rtX BOMETeY| rYi-M p#X (E4e&>~ZW,9uSw&A|a4?>׵9;?v$$l4klh*F`Yҽ5-|>$,*-C;Ez" XZW?D˂--Պs(rt;X$!;%$ڐp5յ,}TۓQܸ'kgᇒ.;pNNnVVxWi*LV9 DPjpcr{<x z/.M qeRQX~JJj,n 6I $SE fR 9Kat Wq6C;՚82w Pzel, U@)!-Mes^g RHRjҨE{! &;|sO^Is`h)ھ@M9l7|&j_ ~ lA /0wlI܇55ts ICz{e !Ipsm=/c99H3[JEWS4B)ȖDB( P[[Am6w:7 ~P'97L8cd^inZ v$\-&S NfbK+˟:<%o);PF_[}+EQ(nO IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-gf-green.png0000664000175000017500000000146214603516733020512 PNG  IHDRaiCCPICC profile(}=H@ߦՊT ␡:Yq*BZu04$).kŪ "%~Zxq}{Ш0 ndBV+B4!BeIR y/?Ggaӛy8JJ|Nv |f>Iп \\5e ٔ])HK(30p yqd( ppϻ{:s6ru^ubKGD(L pHYs  tIME ZtEXtCommentCreated with GIMPW IDAT8ӿJAmh *6S4KXV6"ji!h@\&c!)8~ 9mK"F8vc]nIH)3}I8EG %CW:&QM8K716(8z6OND ^9|2 1f"q_%tYrx_I˅ĤlJ~F[22~ 7Qm {gJ]]IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-gf-none.png0000664000175000017500000000143414603517055020346 PNG  IHDRaiCCPICC profile(}=H@ߦՊT ␡:Yq*BZu04$).kŪ "%~Zxq}{Ш0 ndBV+B4!BeIR y/?Ggaӛy8JJ|Nv |f>Iп \\5e ٔ])HK(30p yqd( ppϻ{:s6ru^ubKGD(L pHYs  tIME !1zetEXtCommentCreated with GIMPWIDAT8S;j0=\+^`J~օf-ؤ ^f`nZZ=RJcڶBB9k-1X˲@)}gADG.v#iIm0 ÒRH) <8:(}3֢kADORap/1 "4MS0ƞlP9r D K_ۧB#p`IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-view-refresh.png0000644000175000017500000000167112505431134021527 PNG  IHDRשPLTELiqÿ|tvq|~|BD?rvnlnhxyu|~{dfb{|yYYV{{??=~qtnXYUegc_`]fhcY\WilgÌ쏒ޫ廽řզ󉌆څok2WtRNS-# :>O&m&b(+ahʽN3;Aϡ7=3RS@PVa/ݤ(<mIDATxڝUsPRwwwwww܄4 ^xenz~, LM͌Wp٠~IfyyzQ0p4P%G+ 1E c^Y,hvk=BȎEi8&K o;S(!%<;w\.]f;WGԼD3Vf##OWxYd2>GiХzCJygM种MnF b$~%U79ߊC;kRԷRJZEW[7'.($fRUQyaQy|w{}su7! RmM[+M\|HuIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-document-print.png0000644000175000017500000000202313661233614022070 PNG  IHDRw=IDATx Gg۶oֶmm kǶm۶͗* L7^( *)<&%]q>f)J*-^nGMMSg7G(kjo. pR&V .E8z0lFEW_V67'7 pt]fq]IsOrpFpH}`ae_?╡ 3#a c8sw>^gW1+8*;q|GKFrZ2S۠>|;XELJ#%#HHx07g7zlm ? ::;PƷmR24DyZOppG=57n_ǯcy '! 12@,عw @߯|,+[~L`hf]C}68g88 z>x"P\\M9l.tO 6s̨NVi8195]|玟Dni jyRRa`b )y++CQU[)|dҥK11q8 h`/GUc SR44 |wvvV-IL w'I|3w,X4صw+)-mhjC|+bQT} &8uXY-$"r (s&Q[fM= 5DE QXr)pBcDlhqa&[bݣr\|';mbjj ,XW@DDDXPČY{ex2 Am-᧣1̛f+/""4`)SZ&NISbs,WLY9u5!ܤg N#h>?FTIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-interface-theme.png0000644000175000017500000000564114233252731022263 PNG  IHDR00W hIDATxՙTTkw`wWE! T@lpyKx]pc{{f4s(=u\F0uK ف{Q?] h4^tW@_ o9::'""TJ 8rWLD&lnmUBڵG$tG6)* =k 2t:ܼq̄h42J~"E`J~E J#@KT&lZCm5OU:nԁ 111wl_""C+X}!#Bm.j 4wt%ẁl_Bƒѽlz>.Z{Ouz(.1  ihk8gJ Qe"7$ DMg 4 7]gȨ,42 K8؝m)M1NXQ`n]dɳФ?,@틀PFU^B{u4-.o |9Gizs!hRʤg=U/<B%mr%%`8Ppj;ߜ쓲hAӡ -= Pe"iotB3h `&n%N&>i, A嫙p;VcNU.X磾 Zsiit<}=p|OKhn\nz"V+544,'r=[.ޓU`У,톜%="P+/N5gΜM~atWn ĝ()ZBm]$@mB$plŃw4q!Kp0T&Ji.fhDc%bOAl1"*:YU 39s(p/3]jՊ6kk@?߮8Yl;E#ngp:%@ečS ~Y0t p&exvW<\Ekךq>-=(x TW7"+=#spZD': .1~.,sp)p5 ,6|%V>s+H{H8CMQ uMXo];7Xil9H*?YLOFD)JΖ %1 C{z7A,F0.Xp)ZLsPUU/5PQZڟH5}H@IrMvdg n~u ,o߶cŨx$E` IJc3N; $PKGS:_|c4WCs=p6X؉DǛ&"8p"n=WMGSv8(s1ctd*,&lEj)&4%` 'qZq K,7өTWQ@ǵ:lZ>~ oW".6넽ӄF %SN'S( dڏS<Z尭-i>8yP^ޞ'b@!@f~{ȑniTLt6=|8Kq@;[/{۫_$i<\6.k1KKX~'ׂcZ[)æ-[A$ BR>'7͊pٺ'Wv|d P#ÿ>(,*4*ÎcE$icaL_1) l{`<}3^y=2?^B?,@gN3A(w /b5ݛ{?,^,/-hlԐGQ)axD$c(*)WTr6ƌ7;O dJZ(8F6o77c>q]5|)b;v6HK;+W'V]CQشuOoO?,X3-,0u-N]/0hXXC #2*QYy֍Xf,13g3pY>ֵ'hioF;M2nܴ|> 푙XϧRpF`^n)@0 9~ppH,DTql1OF/5AU]aAgłڛ5,k޿݅gKmx^gd [GClo4izC/c/ |Lv'Uv |f>Iп \\5e ٔ])HK(30p yqd( ppϻ{:s6ru^ubKGD(L pHYs  tIME !v tEXtCommentCreated with GIMPW IDAT8MJAEp4 APBx AЀ,]SݝIU D[W}꽂 oB&̒ /!o7I[)i+AGb\'k,b,2ؑ09eQb^3}}2d:#Y8N<^.<84ݍng*zRMAGZEݯz/*{'IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-ope-add.png0000644000175000017500000000171313251174434020435 PNG  IHDRw=bKGD pHYs  tIME &$iTXtCommentCreated with GIMPd.e/IDATHǽMlE;k;N֦ҬMćP@UR*'"ĵBHą z pAm@(BTUpjA: idqI$Ozμ}Yx6>9`6\쵦clL]V'TJ4KO>³z+$b7[+74NzMӨVs9}SW&4'Nu `'?l _5ni ;-CǞ\y+5wNnl)==܋e%8q7Mu:*Q!Q Iw$BOg-W*%bD8Jm{gkm1p]49J4I=w~~=(.ODӯ=Α6$"Bl۶/dY?7xc.ܯ=<:Is'XD"I#$1ד\;E\OFj%j(Cs3˫k,Vq7+HO ^ utp z(v)UA]Tn.7熺: P,.Q(|/ `H)<ġ-bqNx25uBC^$jo>רy$PL|6j\ϵ pvtȩv]evA^y7߫*T 3$Pxk8J%?ㄵ63Chx ]`R<8{8w$F>8#NRjT+O`IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-folder.png0000664000175000017500000000303412306103403020460 PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtTitleFolders!T`AtEXtAuthorLapo Calamandreiߑ*)tEXtDescriptionBased of Jakub Steiner designs'IDAThZKSUv̌851Bԅ,LX .ta\"1,aAY Kc;W(b؈OTt`f>=\8 ?=9==w I\bpuW[˻}.\L?HΉ#+E@N|-;d6DaV Μ<:^|WlD0Ħy{_8|5K~ (>yՃYy(ԗDn=iv D)A:c8`>Gij}5P&ۅ kM躁!$+51AAAqH&@)sEHBPUZBaUFVaeYup *aHvF.;8l{%hpBår$UZ76=$Fm4,& Ӟ6UR=e:<`_ Yka]IX0Z-|Ņ鿮xàK4\ր2-jAbPܶverc>>X;ɕC\t''pIG&P)]\G M`û^C#uI\rafb=w+fgAZNwdBa !f _f Fv" >pv}]VQ ׄn0 tׄov3e#bү(d_9G1&SP $u}t:hGl,9#$:वe p4J@i5S%@L^`@E"Uk(N'~B %\@뷎4!UX@َ-P )) |(K0!Z?:ևƢL ҩuANRԩԀ*ZTI)A^"RRZ300 A@+p ᐠ1B1@LL܁ZH&*᎙ Zd p֐[-B0C cB$j!pij͋DݏG7o$jHED2YXU(",-v{KpҵכeRXKτfgN03{jR-'o4 _>U*F+i` Cj./*x jA9R >&@@!GݽҔu̔NuaIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-budget.png0000644000175000017500000000113512505431134020366 PNG  IHDRשPLTELiq؍–^ZՖſ兹Ḥ̌Ӳ۬jf»ԜȽḺĶa]eaƌեĞѭ筍Ȇڽʉӳv43MtRNS߇1J (ZaqdkIDATxڵr@h^.Rj'4;D9̜SWr~V7 8;Mɝ%A>(g|#f.Z7s,EiBkֽ˹%O:PUן$߷}8bhIDAToQ޽Smb]ٶmI39>f^enؚѩI!5= ? "gY==s̺*'}ŃQUU i!!X6ı PlR%V\~b${.YϖU o<0oJpgE"kҹZ:H&b\U[7 O׍b_%D{)vX(6IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-rep-vehicle.png0000644000175000017500000000166612505431134021330 PNG  IHDRשYPLTELiqJJJDDD,,,  <<<~~~FFF >>>:::>?>,,,666888HHH333SSSKKKGGG??AIIILLLMMM>>>CCC>=>LLLIJIFFFDCDKKK"""@@@UVVFFFAA@%$$LLL876???RSScdd;;:OONKKL}}} ~~~|||]]]ggfTTUKKKRRS{}~IIJ[\\efgxz|777WWXHGH>=>PPQYZ[:9:??@FEFKKMMMNCBCMMMtuwkmoݸLtRNS1 !7[1 uR,MfT(txsbުzpIDATMs`$_Iéwq#@U-cqRg8 e]]Wu'+gcjT:JS[@׊]fi٪+]Iq")EW$ګ4AWmw'G[v>ggS $P<94I8K0M>8,4??:yc3`lE^Lo -SSTϴ,׿L߲LOJ ESdYn~wZUS0U,bѲV#/J2GJ!\'!Tkc8Q8c0!?z?H_4h^@8>~pGGz7*CE K(! Pѩǹ-5MʬlNxtld:ZG#,cӿy6GC<F_^U#IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-ope-future.png0000664000175000017500000000230114745470421021217 PNG  IHDRw=iCCPICC profile(}=HPOS";H鐡:Ŋ8*BZu0y4iHR\ׂ?Ug]\A]pRtK -bxsx>@h՘j%Ul*) b>13L& nH`aolZ:}H 9A$~ ['ͮ=&;ؓ.#i ~FTFo5wns>9U88&ʔ޹әar% pHYs  tIME5K`tEXtCommentCreated with GIMPWIDATHǵVMHa~d%=DvѥKIKSƒI*:Ģň !;Y4mj3mu:8/7 ']v #q|b5+D>x< %h%` )MnZ46Դ2pLH냹4A AwS)-0g7!J4uOhǻA$o;>vCJ=C_*j0<vohu }bN<\E7DɥMkm;%W03`fap8ZUUU2w47`,Z2aՄS$ s:\hlpCuUbD"}*[ l 077MӠ(+uA.@Ӵ3~3xf@ @'{x2C dRoVNf7Uc9S$zQ^^} "8N|DuY%3C{wu4kG&ގ# B*)n'[<Ota[&>r(l3GV("Ec9R@9SE,B%M_RTLDƫx:#u|_w x IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-transaction-transfer.png0000644000175000017500000000450314723026224023366 PNG  IHDR00WiCCPICC profile(};HP* ␡:8*BZu0 4$).kbYWWA|8;8)H&1܏sYeՓ463˯}!eIRuOTwqg 8 & ٴ VUsI$~όQ/K!W AlԤJ/1|;N>Wz_k7:ZoM.w'C6eW E) k8}4 ppL({s=grhbKGD pHYs  tIME  80V&tEXtCommentCreated with GIMPWIDAThY[l\w`1ƘCV $$mQ*HH !mP0m)C>%RUTWQPܖKZjn m`C^gr{15sa|9,_L=`ד,t.a1[76  <w{34o9CL}b-޻sD/SR%h!5&g۫`%%b_YB2 ,bcՂ(n{:akO@-2KNbAN\eSPwF.{tI2>nlYbHx X>_gwvDUyݍV 8J57a瀿yf΢ kiONy [E?dUAY}5J*C "]`OF F O`(2#n:XM-Gݾx ז`MemԢ -K ]ν)(,=,!) a?%4EQ_Ev9Uk<$UK>m'=3G_oig"aȊ䰫Q;RJL%<\կJO0rNo5߶_AiF(%"7[@_yD3e ,BV$(U2/\U[0#ω9%+CI1| }4 =~$pHUPT7q󘚈sKY{bT8JQ 1/17|HL#q۝5s|˶m qqr'IW''Eױ( mhl`%q@ ]HRNf(2a! s&Isc-9z8jyILEqzRaYg5&t_m |0H5Py\I`<xfęy?p;Ny7ʠW wI5w72Q6`<Ԏ/OyfNT**^n|AX!&H4/ -_aT ?P @&97, v<%M>UwIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-ope-edit.png0000644000175000017500000000202413251174514020625 PNG  IHDRw=bKGD pHYs  tIME 'DiTXtCommentCreated with GIMPd.exIDATHǽOe3CwkHLڔRT15L76 I7$Z c"P $`R,@5eeי]vw^/`]v٥7$33}'hQ)P /zu"ۑ13S LRɅ^M|`v]UUҩ@UcM{ %eYx'worߜ~_It5L*T{EY[Y"hDYWE,tH&wr%]Rk+M/ؼӸݡMt]`vn6' ?|ȱ!T$fk )[Xkme۫ƼX"hTT$T/422rp!k_ߏә&f@p/>;id7-gu9g_y*|>I$JMt2M{G$Ǯ.c&Bbtt@ӈD6&~uى1K|#e+' +_R3Yb]<1^Rͮ5?~;?- 7m 9Ur˕[9H.IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-view-pie.png0000644000175000017500000000137512505431134020647 PNG  IHDRשMPLTELiqBr:koJzmDtA^>kjdAqr{{DtM{_n v[CsNAr\=m\tpAq[Y@pl[Aqli"n Aqh X n[U[[Zo>rϊ4}k!jvRmșxk;ޫnYrAM}tvHVqd=wMV?awDARӎJa8lzџ^_t8-]lƕG[RMO{R0tRNS _tӢʭb=71\AF׫F?ŁDx/IDATxڅ{PqJ08u_q8 & ٴ !VUs .Hu7 <3d!b1JOUM|!yV= Y}e4" A (FV Iڏy~\ `X@~wk&ݤ` |qQ ԫ}8 \-~^mi#onip <)7$?M!2@-н7!0uwwf?TrȬ#bKGDf}a pHYs  tIME  8 FsXtEXtCommentCreated with GIMPWIDATHǽ[Lem= RGae0M6ذ!&M8way81QuKPL,3siclr*+_o6\JM}0$Mho>b%pڷJzA^kok2ed w+g V r9hoC.?rߙ\ZOtDCOW.ȟK$Si9՞4lS{}Khl{| v!ff"\?Jlyz͡ h5ZsQCA.^H1)%%S+n7r8zؾJ`R͡,tevIۆZAl)+% kCGq[jIaJ~:Ki*++q9#V{eҋlo[R9ןۑFJJoQlp1}(m*Ο:<Ž;܏FZ@E%W$ %bVY"x7X, -\6B1K`oSܝ.X E)x|).'K\455S]52‚b15X^Dh4ʗ_|EW9 !G?h UAհξ}/q9vUO;8쪩c$H0sV'`]Qav6V,KOw/v304wmT=H$  bY# Opzc._FDQ$L"IF0MP2`E}}> &&Ɖb9rAB@PT*ǗOMR`6ٍ`tf& %tw`u/B76,h̏f"c'=_`Մ3q*%:AGy~Tuu{!Uds/C |NUefMDf#L=ȔYM@"{k#WcEj AW|SI?*}EIIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-transaction-dialog.png0000644000175000017500000000241714723025372023006 PNG  IHDR00WiCCPICC profile(};HP* ␡:8*BZu0 4$).kbYWWA|8;8)H&1܏sYeՓ463˯}!eIRuOTwqg 8 & ٴ VUsI$~όQ/K!W AlԤJ/1|;N>Wz_k7:ZoM.w'C6eW E) k8}4 ppL({s=grhbKGD pHYs  tIME  tEXtCommentCreated with GIMPWIDAThXMKTQ~ιܙ;36},pQMAЦV--ZD Z(Xk!RYąFH;-fƏr&! Åx>y{zkW%q@+RǶdH_"ki9G4 yJ)yjݟ g{i9v1Z/% 80:Nl~ gcçe +[#iel+q X"B@hm kHb?Jn3*ؒJYI!`YBn#KvJX𭸤؎xA{;uw{) 0^K/plxVm"Bc#bBJ !IHiU`)w&eD|@),"U5NE *NUSD做LLa({AІ+!&FIu&s@U gx*H90Ȃi2=FYj((Q[ FV|PdʦFƃ,Ips ߾DQ. H, !.ugD< <~7d.f16>' 'U8|;׻799q.VW=}l`^A 螞CZkjxD"HCy92x/+/q˼e_v'^:IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-item-remind.png0000664000175000017500000000156714734346131021236 PNG  IHDRaiCCPICC profile(}=H@_SEJvQP" EjVL.& IZpc⬫ ~8;8)HK -b<8ǻ{wЬ2InTRWžW0b2$) u_<ܟcP-X  f6̦mp'OtAG+q.,̨GR+]ʦFMCGLg 8.. 7/{}mČĉ`1yS38<#JS ] fn>f@e34z"h^ [loF,GW \f>Iг \\4e ٔOS3 w t5q pp){ݝ{rCbKGDC pHYs  tIME4UtEXtCommentCreated with GIMPW IDATHc`1`%B WFY'/; gSł3\yA[E?-?V6-R>`!65PBH,Ħ|`8X K\`F-aHۻAaek& wlt o9CVq@o rp!t;4BXW mJLZWh %^9-@7THF՚IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-gf-yellow.png0000664000175000017500000000142314603516705020721 PNG  IHDRaiCCPICC profile(}=H@ߦՊT ␡:Yq*BZu04$).kŪ "%~Zxq}{Ш0 ndBV+B4!BeIR y/?Ggaӛy8JJ|Nv |f>Iп \\5e ٔ])HK(30p yqd( ppϻ{:s6ru^ubKGD(L pHYs  tIME +tEXtCommentCreated with GIMPWIDAT81JQy""˘!@#%x aYYɾ7c -Vį`f~ǕYa /`c$ ΃VX,Иc1B  τa)E' ~- iE[0[PƗLW`:axwq."ӵ6X}ΎoDqĦX ٢y`rַv_К{x;W*[{IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-transaction.png0000644000175000017500000000263314723025156021551 PNG  IHDR00WiCCPICC profile(};HP* ␡:8*BZu0 4$).kbYWWA|8;8)H&1܏sYeՓ463˯}!eIRuOTwqg 8 & ٴ VUsI$~όQ/K!W AlԤJ/1|;N>Wz_k7:ZoM.w'C6eW E) k8}4 ppL({s=grhbKGD pHYs  tIME  .&X>tEXtCommentCreated with GIMPWsIDAThZn@=3G[vW!( D =PUv] 7Q? hC~"A)I{Elybό_$)Jj;{=1AT]%*zwxW 7nnn>ظIO'hFqGYBV{t'޳s@2(`s17Qa=M97NV֓K9(I7B/rUbO3| "pKRA|,=O#@g}` !h TJV<}#4R+yu)y٭hVrt?mXm PjXeO7QW@H-ۨJ ׁtv핚.PF "@kA7q~лJU׉[Aӫ T=uk6PS%\jiNo FkبSڊޫZU V=Mѥ.]gp pGZ7't<'4550"`S֡~"(dxk`'n<$^ݲz;έG>h-> >0f\8,&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = themes/hicolor ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = public_icons_themes = \ hicolor \ $(NULL) public_icons = \ $(NULL) private_icons = \ hicolor_actions_24x24_hb-document-new.png \ hicolor_actions_24x24_hb-document-open.png \ hicolor_actions_24x24_hb-document-print.png \ hicolor_actions_24x24_hb-document-save.png \ hicolor_actions_24x24_hb-account.png \ hicolor_actions_24x24_hb-archive.png \ hicolor_actions_24x24_hb-assign.png \ hicolor_actions_24x24_hb-budget.png \ hicolor_actions_24x24_hb-category.png \ hicolor_actions_24x24_hb-clear.png \ hicolor_actions_24x24_hb-donate.png \ hicolor_actions_24x24_hb-file-export.png \ hicolor_actions_24x24_hb-file-import.png \ hicolor_actions_24x24_hb-filter.png \ hicolor_actions_24x24_hb-go-down.png \ hicolor_actions_24x24_hb-go-up.png \ hicolor_actions_24x24_hb-help.png \ hicolor_actions_24x24_hb-legend.png \ hicolor_actions_24x24_hb-life-energy.png \ hicolor_actions_24x24_hb-ope-add.png \ hicolor_actions_24x24_hb-ope-cleared.png \ hicolor_actions_24x24_hb-ope-delete.png \ hicolor_actions_24x24_hb-ope-edit.png \ hicolor_actions_24x24_hb-ope-future.png \ hicolor_actions_24x24_hb-ope-herit.png \ hicolor_actions_24x24_hb-ope-multiedit.png \ hicolor_actions_24x24_hb-ope-reconciled.png \ hicolor_actions_24x24_hb-ope-show.png \ hicolor_actions_24x24_hb-payee.png \ hicolor_actions_24x24_hb-rate.png \ hicolor_actions_24x24_hb-rep-balance.png \ hicolor_actions_24x24_hb-rep-budget.png \ hicolor_actions_24x24_hb-rep-stats.png \ hicolor_actions_24x24_hb-rep-time.png \ hicolor_actions_24x24_hb-rep-vehicle.png \ hicolor_actions_24x24_hb-view-bar.png \ hicolor_actions_24x24_hb-view-column.png \ hicolor_actions_24x24_hb-view-donut.png \ hicolor_actions_24x24_hb-view-line.png \ hicolor_actions_24x24_hb-view-list.png \ hicolor_actions_24x24_hb-view-pie.png \ hicolor_actions_24x24_hb-view-progress.png \ hicolor_actions_24x24_hb-view-refresh.png \ hicolor_actions_24x24_hb-view-stack.png \ hicolor_actions_24x24_hb-view-stack100.png \ hicolor_status_16x16_hb-changes-allow.png \ hicolor_status_16x16_hb-changes-prevent.png \ hicolor_status_16x16_hb-gf-blue.png \ hicolor_status_16x16_hb-gf-green.png \ hicolor_status_16x16_hb-gf-none.png \ hicolor_status_16x16_hb-gf-orange.png \ hicolor_status_16x16_hb-gf-purple.png \ hicolor_status_16x16_hb-gf-red.png \ hicolor_status_16x16_hb-gf-yellow.png \ hicolor_status_16x16_hb-file-valid.png \ hicolor_status_16x16_hb-file-invalid.png \ hicolor_status_16x16_hb-item-added.png \ hicolor_status_16x16_hb-item-auto.png \ hicolor_status_16x16_hb-item-budget.png \ hicolor_status_16x16_hb-item-closed.png \ hicolor_status_16x16_hb-item-edited.png \ hicolor_status_16x16_hb-item-forced.png \ hicolor_status_16x16_hb-item-future.png \ hicolor_status_16x16_hb-item-import.png \ hicolor_status_16x16_hb-item-pending.png \ hicolor_status_16x16_hb-item-remind.png \ hicolor_status_16x16_hb-item-similar.png \ hicolor_status_16x16_hb-item-clear.png \ hicolor_status_16x16_hb-item-recon.png \ hicolor_status_16x16_hb-item-reconlock.png \ hicolor_status_16x16_hb-item-void.png \ hicolor_status_16x16_hb-pm-cash.png \ hicolor_status_16x16_hb-pm-ccard.png \ hicolor_status_16x16_hb-pm-check.png \ hicolor_status_16x16_hb-pm-dcard.png \ hicolor_status_16x16_hb-pm-deposit.png \ hicolor_status_16x16_hb-pm-directdebit.png \ hicolor_status_16x16_hb-pm-epayment.png \ hicolor_status_16x16_hb-pm-fifee.png \ hicolor_status_16x16_hb-pm-intransfer.png \ hicolor_status_16x16_hb-pm-none.png \ hicolor_status_16x16_hb-pm-mobphone.png \ hicolor_status_16x16_hb-pm-standingorder.png \ hicolor_status_16x16_hb-pm-transfer.png \ hicolor_status_16x16_hb-quicktips.png \ hicolor_status_48x48_prf-advanced.png \ hicolor_status_48x48_prf-backup.png \ hicolor_status_48x48_prf-euro.png \ hicolor_status_48x48_prf-folder.png \ hicolor_status_48x48_prf-forecast.png \ hicolor_status_48x48_prf-general.png \ hicolor_status_48x48_prf-import.png \ hicolor_status_48x48_prf-interface.png \ hicolor_status_48x48_prf-interface-theme.png \ hicolor_status_48x48_prf-interface-color.png \ hicolor_status_48x48_prf-locale.png \ hicolor_status_48x48_prf-report.png \ hicolor_status_48x48_prf-transaction.png \ hicolor_status_48x48_prf-transaction-dialog.png \ hicolor_status_48x48_prf-transaction-transfer.png \ hicolor_status_48x48_prf-transaction-payment.png \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(private_icons) \ $(noinst_DATA) \ $(NULL) ############################################################################### gtk_update_icon_cache = gtk-update-icon-cache -f -t all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign themes/hicolor/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign themes/hicolor/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-local .PRECIOUS: Makefile update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache in '$(DESTDIR)'"; \ for theme in $(public_icons_themes); do \ echo " > $(datadir)/icons/$$theme."; \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ $(gtk_update_icon_cache) $(DESTDIR)$(pkgdatadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for theme in $(public_icons_themes); do \ cp index.theme $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: for theme in $(public_icons_themes); do \ rm $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons update-icon-cache uninstall-local: uninstall-icons update-icon-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-gf-red.png0000664000175000017500000000143314603516575020166 PNG  IHDRaiCCPICC profile(}=H@ߦՊT ␡:Yq*BZu04$).kŪ "%~Zxq}{Ш0 ndBV+B4!BeIR y/?Ggaӛy8JJ|Nv |f>Iп \\5e ٔ])HK(30p yqd( ppϻ{:s6ru^ubKGD(L pHYs  tIME 5@tEXtCommentCreated with GIMPWIDAT8풱JP)}[z}-JߢJ׀1^5C~r?qLR)m=YPaeRزMcdY+[Ázm0pRv8cjϷ~{tl@ab c8v|>W1Ǒ3{h2c^8 M}*`~Mw,%$LtfGM!r]~K=7Uzs5$[ z$|_RHulxSUͷ/*CSĉ#%[uF \ As=8 w&H9"+ 3ܳʢ6ԄAL!>gl`m˶"7ۨL ts,q$ ^qOy{7elן(Gxj2PBN|g5WqFW*ڄc1jZG-ljEGUb[hDX~xc4i#3WF!*R&R&|$`(3{Qm3:#w6ے鞋OgH>;v#{ h+B'|Qt`z<*ôߩ*wV`"hO>h}d;|+{$iXt'И=L_5cEkRLHЬ@W-m&.]7ۚT#Ts.P5t٣%4 '챳2%[iSpo@wm$y6`КB}s{M^[೶h0 2cp_T"(pZpѐCɽ1Rtbl=?3f2ϑ-uiWu8:i5EuAM--( 1TWhΫ}0SSs ]hK:«[YI~2LkϼK^b FO˝囍- 7ZtUߥsDM!2 `qQEOMDtRtx=E׿Gh\%8ET:jt8m6ZaA.#100(LdUo/?j 5I>GY4Sģij2Y)~'#h& БqE?"XNԴ~}$ *barkl5cDŒְ:s EΨ~7{/ޕ.V'Yn-t?*s\Mf=̺bן`+{%ĝ{{C7֘,|cJ[ހ:p=R`- MQ#p  w[ Q{sDwNA; On WʸO &3{6꣺Ø ]{x'=rv![bML[iGd 귏dR<wTHՕpt`?CW3J=o6դC͜uk7J$SrG1{Yaa-'? Uh̾@[phh3y\ qZ9Qz_H6W~)x(؏D  lFaY$V⓷^W>`D%)(̓ݐH⎭hs5}td;"e1;-TzH ډ$x-_o;bs >0>_BC>H+͔wa``EŅ5?w /Fk:ꓴ~GuVprЄ5-Zk9/\<< Xw]$7tLF uGtuu~ 9+WpJ8VDۏ8T.:Zޛꆈg]8L"@{9d8K/9ڢQ P]] ?7apg@ǃu45ޘI"Y@Uau< &&f&[E__/**H ݋_D^2ߝ=]%pkJ<kB p86%AEm|Yըl4ψO8C__R Y~+WV(. B5wsS""^vvv(QpuF-qC[P2a "-zm8^Dʹix0r$J#^{F0kBq!sKks3W--ƽ;pl;:IPp &5I:tDEco ȟ7B:s&TUQ%/$|')R]oM䞥;6`pY 򇭽5R5Pyp-[:g)y) $|9HtCqQ+/CxDo4 JJ,I㆘7A)y0P\5YDD䲈HX맟},&&ipqqoAz%q6p!Ĺ_q| ga(gȚ0ՊhTQPC/e &Ӊ Cդgѧƌz'o615yn9k&,N8z\NB q1]e\k&'˧àhRAk5's#RDT4yW^˖`Xf%ZBHHe|h2B``, s+f ϩI+`"2 L$@94`JԪ.UH@'aaaCee/>g_~Ͽ_|G,ZtNO}yr,fOh(hуI/VV ^̈&,YJ:B@k>*h%#NB.KJJ0wp!!|;&S&Yx\A fl l?!O%ltX9lpN[ۿj0`8F@k 'm!'R&:{'NO>%aڬo5o>}!T'LxM&JBHojM<u5Ԩt vQhdfDa]Ձh+D =Y"!K$a^;)TU_M1C z92c&OE%eKYIg-9`ʪT^T令K=ꤣh2&h+EG {> yP}=sاtݙb@!%%<82;yT,b~'#,ǖUn{0mn=%yb3w TSSm+b \f>Iг \\4e ٔOS3 w t5q pp){ݝ{rCbKGDC pHYs  tIME'rYtEXtCommentCreated with GIMPWIDATHc`1`1LRǦFrXsQM^vb9 pGmY>j1!s~gsrP,?V6%rhʦDn)#\9+qd|使h^%7{ VÐw!aek&P7~FWq%rC/ވPX_X:w ~`g[%Xz10|p 2߶X m+G4(qp~f ɕ9&}bRIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-gf-orange.png0000664000175000017500000000151714603516635020667 PNG  IHDRaiCCPICC profile(}=H@ߦՊT ␡:Yq*BZu04$).kŪ "%~Zxq}{Ш0 ndBV+B4!BeIR y/?Ggaӛy8JJ|Nv |f>Iп \\5e ٔ])HK(30p yqd( ppϻ{:s6ru^ubKGD(L pHYs  tIME  ]tEXtCommentCreated with GIMPW'IDAT8;JCa|  XE l N\)݀اHaiaj~{"l.̜ÙSu= m l i*om IMPt<{:3F55aП&y{@%1 8uƨRC2DIXbd{B$9=wNڬ@JeFO=/IzbtjfkH0qmXd g6pV &ۢak(\S*ljvaПݙ7'j,IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-quicktips.png0000644000175000017500000000114714233252731021024 PNG  IHDRa.IDATxڌk_8bֱڶ:m[cm۾ :?VAA32'hw?1 @Xk{¤F5KˋC#u vn@um6z|r8TF ݤiZtNπdk׃}lcYn^ڀzas @l$䘀ϩ,h &Ez։`BKjA2K ݷ&@.BxsGWKЇO_ܸ}(̟}㗮?RSCmG%p /N QԍĤ>.$$ƴQT#@Mȩr5SAW UI'cD*R(ÊȂezd$jj,3uAIy!$%hJtt@%Y; [_#Ls]m_@p{g8X[ہG" >6u?@| IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-ope-show.png0000644000175000017500000000145012505431134020655 PNG  IHDRשVPLTELiqUUUUWSTWS?'<>3&;VDT>&<>&;^N\A*>>&;fXdVXT>&;mbl>&;VWRUWSUWRTWT?'UVT>&;?'=?'&;舊񛛘wwt]M_Q7Uđ¿S:Wuus{{x紳eZfŠ^P^R=S}զYE[XD[zqxWAZxow45tRNS+4 N%7IB[nMW$`Ʋw݉6gzw`LIDATj`x|g}2܁W UQ k,I[/+TTg_NPd2šFܨWjl+6E1[2Z pŭKS^QlhWW6%F /~w='.r_G85D݉F gFum-^lA7d+J1.i}t*I]' 4/sL1Bi8lnCikwQ75=sTIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-go-up.png0000644000175000017500000000140313442750270020147 PNG  IHDRw=IDATx͕$[Ɵ_2NۨQQhm{w6nrTK~YS3{&_l7g/_?Ѣk̚E6 dFW 3x__q^jiܼf\Y;Fb$L)7kƈ>pd? qc@G<#n@aO@ǏB.Y2A\ Kq9R.x>6ř9Bhjhaqq\x& ߼yz===p:,C%%4*NCةX R&v3hY}n@EI:&@A 0JFKd)dQGUOCK+ YIx$_6x)4yB6MRq%ͫWxdf)'圍"1Oql\T R(8`CC 2#sd鶌IRR9b.}Ξ0^ԏI5t ԰*i*[2ʪr0PZ^Dd,nx/gAaq9퐙X^ؒt ੤M:P?|35=Б7cccK_8ñV~T*@"~S(1Q/\8ԪɸʱȽzwqô̽^][ò˺ec_TTTWtRNSsinygMrCWXIDATxڅQ DAJI"JB;öl@պ麮ijQ0׿'/1JJY{!Ub&1yoe<^Z7JBcxQ Gra%I11sWIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-rate.png0000644000175000017500000000064412505431134020053 PNG  IHDRj PLTELiqpqlTWT{}wUWSUWSԁ~֯޸߿रt|`jsfmsnyȰX3 tRNSp @HIDATxu a*M%R70Kh|3/by=I1Y >DiCCPICC profilex}=H@_SEJvQP" EjVL.& IZpc⬫ ~8;8)HK -b<8ǻ{wЬ2InTRWžW0b2$) u_<ܟcP-X  f6̦mp'OtAG+q.,̨GR+]ʦF cbKGDsϕ! pHYs  tIME tEXtCommentCreated with GIMPWNIDAT8˥OHqƟ}f p(z$- Т&I]SD!A\QJ bEk?6ukۻF yxU|eI4zյ _a m*4u%ӥo$rU1zeTF/>upbR 4"BoRV0oK'm-oש |{ٿ~Ϟ͆{X}hini$*Xtu]s=qe~'.tΎE@m&P,)(BBa"!pum]bpp@UDž<[~x{tMQ{঍xPJQ.83 RlJeQ.[Mg @{[IwWJ)\R,yyLM'݊/|a Ǿ_Xj5J)lf[ؿMLYK8gjrHg3 f"1NkKmmm_OoJ\)q]cǏpaZu򥇾?&#{>Z[q]SOsK&Bc b|>Lg NT,f*V.c[i^:`vMMT]Ib|o+_;i? swmpv/ 1ƛk5,nèpO4au_F{[;RJ{=59>p$̚U+1}bvv0BI{2FGotswz/穛oE*Αc"t&/'GO58IIׇTlRT*R4A.g /3 z{Yz-R*߷v\{ߵ^PۮrC&| w<pɥ<&Y^`4hFy*J2U©T>[E)Є50,"5axx!4"(a"̦RX[8gVi,'e&5璞D7/+p$}yA& DA⠔b M׹n5&CI,DwW7T}:|_o}͚Wuo|f?"Iz{W&F?UL[`?H@oɓؖEGg^[zP\a4M(YJT*Rur6+cW hBCj\T *8]WO]vdh4N\ƶm4 M.FjdƇе%:@ 022:]\n կ55>vǢZR,śFP( A%V^@@J4}ضM\ӛDII!=E!s)rSObߧڿ#޺v~DZn>Rrn64MW/jF54^K<3x h`&: ;4n%-sSh 1躎x<^4]zy{0<XZ>zO>G t]^zi'~+}m?g^}xx,F,'lY<* ǎ! Q, (%.*/H,{ hPR R:} ^c;Xe ׭mX\ŕ wR2=V H(J4 ,:>4pxoReftM $ŲNܥtmʎ9z8A0佟GzIX!jmQf3>* @rj|UH&JRT]P,0QRWpa)'y5 N6mڄ kϝ-mrY% i͕FcXRR_ ?b۱j/%N->͛7O-9dY|>laYyP r\6i4 sds 5ܯ%)=w~ֲʜuk s1^pIF d%]e&''(-B h>{/*e$> ͑&XFobjґR-eb:Z,b0\˲.>jHi.i&''DU/tm؂躎g(f~FSS~u &|.dAggbWkeR#S;///ۇ[0<4B<T|44A[ߖ@GkSl8m--x&hϿxb ۶ij({e!6yZ6 4]C'l&53W_#R,Ytuuq183O>o߹sTjP,b->1ⱦzQVmC~{aǪ*#Clstw/PzttW^~Q*W|x*־g/Mӻt&iJy 5`JX isJ!yݣ2;ppuG?zeՀlV$C#cAt01 AJ /9;4hCƝWiFG_;0utrnh֖BA?/#Qw=O[:qeccٰ~V]1="aF(@*^ip rK933LLqiٶW830Dss3]j۶S[~f; CG^]vꡡsW_ SI ào Nᣘ\>C*^N$i2|IFG8783۶V]B(]ݝD~\.' s_{>C~]0LF(tvuEclt{YfPz08|'0:>U},P(r dfx啝|xgn)@)U,^0嶛nmmW_⊫TrzZLLLP (24\l!O.CF"#bMMxt/$Ilۢs-}{'g&۳g^*uk$"H4x]ҵ]|_,ݰau\T*l|6󙘆I Gmcm E8֖fuqAf_:rdždžPpVw"G[@.5kWeŚ5fEx<^r,U;[r* (0z~hb!3 f&:q<ꖯ:jQ^'0G"DK/vYgUXH8YC͛7HRd9$ۍ]uzH勩jl<6?7@ üw}>Lo -XV*Z+\"vpq'\.;91џ?sJe /0"J%?D0Մ={l| e:4&b@dv#3=v֭rMikkEuCMޜ:bQsEQR)F#QD`O^\.DZX5M.ffXpIhjjB4g2dsR,;0,'i-`5Tн{7_Ran6dd2Id2a6PɸX,|'jYj!NҴpΛo%`M^9o?[-U] J&AUUfggfhhNЙ!N dB d2QQTzMh$ɠ%ꬄBAʋ\%`jr/ ;,ǗeAvMUQeťEv16>F//zF6Fv6J8WtP(䐋Et io'ttvp64H$P˪MuYQrۉFxY\XD,-,墐Q(xjO6:Ǻit5"InrN]lo'YC@lgl0ã ىD.r$ dI4\ICߜKGWǯ0@<^n) 튪j^4.bqh şJ*r).IENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-filter.png0000644000175000017500000000175514734342115020417 PNG  IHDRw=iCCPICC profile(}=H@_SEJvQP" EjVL.& IZpc⬫ ~8;8)HK -b<8ǻ{wЬ2InTRWžW0b2$) u_<ܟcP-X  f6̦mp'OtAG+q.,̨GR+]ʦF_.M_J_K@Α"/Gڣ0Adѕ%GLg Džń_?u62y4T6ְ˿#7T?v05Q%I8?$Ys̘TUJr~  [L{ȹDKhYv Y !WQi=-•;/]1WhF{v 08A"r5mɓ'>?> }ǎm@x=\|p ȑ&"[~~Xfaa0(:M][[>7j* ڑjy% PPꎚڜ:u\uի#/i.EEӧO4]ik:r69իb( l}@שS.@0 =P\[V6o^E/S>%̙={Tk0ӛ!TM#dƹi$rtJ嵬X TdqJhR>Wԋ VN-O+̼{L 63 K}Dwx`z,EUfܹs̓MIT;"eL F 7)aޏ2&He_zjս1b q*\(V,--+s޽1X4(*|DbEͫ{^q-BIQ,`s奍xMwMYH)J\ U'{Yc +dqy9Ҙ`eQ{EU^P>; X=P5//MNݻ7m*C7MZɜL<̾~~\'_啔TYlub.?.?_f{}q6fNT=qkq\U`Nf6:9{{'ء&@a)jx8*;üIENDB`homebank-5.9.1/themes/hicolor/hicolor_status_48x48_prf-locale.png0000664000175000017500000000542013237031621020453 PNG  IHDR00W IDATxՙtf˗Uu9F~c۶ͅm{fyl۶ﶻ'.uFHr>޳k}VbD"|oe> A9*F(s?fW{АWL໿;>c~~_1\Y~CyN:^'_\0=褝NJ6Mon ӫKVGSu)vGGުsDϝ;{H_4c=^ر3.n3lrwҘdmiȟc7_HU4B[狤4IOp ǭu5w6mb~ic޼"܃0׳vr:P{ebͨ`\8KI8tt7P6uQ%ȈqFL霍Ҵv:l=?3s,Q08 UU&̍۬D*1 6@YɫqcӍcEL:9G;ZIJ[1sV~C8 T^4Fmbgf⺮RK|Gh(`@Yx/ׄ RlvǓ !*|J`RzvFqd4rcv7[i1Y0腒s8kzUZVOnnDAZ| 8KN Xk\yc:XYE1.D XJx) xods7:@>$RfosV̻)LOX|6wCUtDKRgQ^J+C@=Vtc-94gT>o~`Se"8Q2iGW5/j>]Noq!Qy3x*<(؛1RSj.L #4I>y`t"8D9,1ѓl4Q^qpUѤ@N@*2eYC3WԢ hzX;#">O'z==C 8ts+C3hb> _=CUJA0 {>Јع~7 "$jRK90[VDhY-NllGvi1Z̦ o߰;<Ťɠ U /UEmsf~k%AлQu-+n5 Ûn~h4ag;sc:s6{m7c37l얀#z2)@@ lسqwm<&4+נb}'oWxhcs m[#!*Y!+J~.cL`yv=GYj5 nm/B雱ݕ()c1F銣5*ziwk3\]Y>ObjmGLw"ꪠcs%̴uoʕ1t^֌3>XdypQkU@^y%L&%dD>r*O^R B##^HtmynEv 1Eގ5BYcO%t|Jw2@hyEM(U1eSgoljuHm<k"=C݅USzmDTf `0kl'j=8;/aVCrWSe6,&_He]Q3m !Ԉ~_VyEY" cqQGFWF 6x}OsY:4;ysjzI)+Z"+ nDM-qs^}ok#5z8?3zǞ8=qn:EhKj$_gu&66SwBkƚ9UkP?mgeog+q巿K48?жnۛl|4 [G~Gnʯ|oA@Vs^8e_@ un#,0Lp֚0`%` "a/h"<3,m R[}RBTo!n{x@ZCFҹɾ(!U@esK??'< ^ c"[ "}AXIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-view-column.png0000644000175000017500000000047712505431134021371 PNG  IHDRשZPLTELiq_7mЎئA@ *nxpS/47"D2"RB?(z WIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-view-donut.png0000644000175000017500000000147112505431134021220 PNG  IHDRשhPLTELiqDtBriR:kJzj4g!4e?kOllpAqm:kq{[DtM{_AqZ[Cso6g4e4ekAq\tjjk[B@pl[{nl{ui"n h X n[Un xoZr>4j}v!q~l{mMKR;@vvxrtXyZma^Be>9RiDNV8?`z6g-]IcsKi`MHOu:tRNSգ f}\dC@ͽUHtp0&C71\ݟF׫?ŤrFIDATxڅR@')J޻"Pb=Dj|gv lP]{=]e?ҋ0lwLMsg"д8V(^Ӵ,2Z*%%1~at$-yAX v:$853^yMK'pŌ ~\d A̟ԧGL-a$TR޼8+*OL)( +**(%$KH[WWsDtRNS)@+&9)NLy~  0LyՄLyh\ND` VIDATxڝvPESww[ B !8H/g{zwX}8lۻa9ҭ> ڻnK's: GBk1ȲoR&~8uZё$h +H3,UjQ7dN @\6`"6Rmp yX(/mA2>Pl1TS`HQezpH`aɢIrS$]KO8Rjwq`sOWmqYͯ zXg3G7nQ >gƁ.Ь;4O3p0IzEm⺭{0dHJA\7倡[o뭵 C]nC`H>3~ؙr¤XbKGD pHYs  tIME 2tӵtEXtCommentCreated with GIMPWmIDAT8˥R[Ha=:7g/,nT)HIEASP=^"2SȼЅ  +z@]ŬYw̭5!D;olÇjގm2aUq`+G0ݭ,vB^UpoP AmF{bʰlib4(Z_Ks[ Xh/*(}WE&Q&x;XsqCVEcNqc}lgs`a0)j<ϟ[0z <{S^P'+8)'"ǹL N-( L1li:GPz]mR$NOPOGN/UfΜG@tA%>!>; BhҪ7ƝU^^ Cg,a~N<(e75LL~'Iix{zY!`2''Xݰ7g7:}0+*9A$~ N,ue{;ۿg:Fr5=bKGDC pHYs  tIMEQ tEXtCommentCreated with GIMPWIDAT8mMh\e{̌8Vub-BptSMݸHY DB .&uэBva5f g`nGs13e9s^'1w>T!"Z.l_<` &#gǬ | ʥvMo‰ى{-ֹ[ڞRyazb͇nOlN,>Y<&_~f&c•u5<Y0?O<)7)ÉyG!YMqN1u {vt_[&C[Cl Yw"qgr[&JxϚUU(%YxqZ`}v$Ru9meDY4nljȐ2DzBʉ"03 gIW0G>AܻY]SJ),C|`O) %ւ3jDZo_VƏP;OJ脝W7?VƁ5P@6 ))IENDB`homebank-5.9.1/themes/hicolor/hicolor_status_16x16_hb-pm-epayment.png0000644000175000017500000000074312505431134021241 PNG  IHDR(-SPLTELiqVXTz|xCCC^`[Z\WuwsjlhY\WnplY[W_b\UWSψD`=X|?Z~qsnC]rupB\WYUXoqmE_twrd_`c^JsdfblnjgjeVXTק]_[x{hkPxhhj}tRNS< oIDATxU@@51XiK_fsy.>;pDz~?%>%!DYn>)js`ܪ.ULHbH+6riM7[ɷ#y0416ÈSj5e ՃWcXIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-ope-cleared.png0000644000175000017500000000124112505431134021272 PNG  IHDRשPLTELiqyyymmmMMM___~~~jjjqqqWWWGGGrrrsssdddxxxpppxxx___...www{{{YYYlll௯lllrrrggg}}}vvvնԟ̎|||䪪ŨܡStRNS < T/-G~kryȢqwQ'Db2fx:e7IDATr@?8KܥFa'_2n:/L#$`h~nEDcxB~WHp!IF࿤s}x: 05)a 0A~_s~`{:c_x2wtٷWlvuGeЅ\3uQ[YDokY0TװMn5g1'2ô77m>qexԤ ?r]qsόi*y#^xwOgoiHr:rbKGDC pHYs  tIME ֆtEXtCommentCreated with GIMPWpIDAT8˭?hAϝi,D2kmypפ1l-!.EHPT ہ^l!EY{ r\7yi*XD#lX)t:S]ԸpL1Vc ) 5^#c79lP͙7p/suCen>wX9^ţ|w&y}S8:)%&ĠALao,&΂[qj|*ӳબRfe}S2ܽQ`,k^e9븊f^9qLM{1F b1BLacxs9Cm/`*ƚNIENDB`homebank-5.9.1/themes/hicolor/hicolor_actions_24x24_hb-donate.png0000644000175000017500000000243313526523261020377 PNG  IHDRw=bKGD pHYs  tIME ( Z}StEXtCommentCreated with GIMPWIDATHՔKTEuv~̌0԰Q7ƕ EV ]4n\1n4BbhLݠA0=UUE 2UNׁ{!PA)ExJP"ʈ dȦW(<lid'4U)7_ ^Ji<^HR;[Yns$~ `#b yzgP<R(MzzRhEM]/R-N=\VDHmkDZKr˯{E~R dj'gkA9^Oo[0b ~[ \'ىZn<\&"` o@2 (YTI~JD#$` ag/~KmsGWIENDB`homebank-5.9.1/themes/Default/0000775000175000017500000000000015006374031011725 5homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-auto.svg0000644000175000017500000003152314735551214021570 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_hb-gf-orange.svg0000644000175000017500000001313114745443740021531 Group Flag Orangeimage/svg+xmlGroup Flag OrangeMaxime DOYENhttps://www.gethomebank.org homebank-5.9.1/themes/Default/Default_actions_scalable_hb-go-up.svg0000644000175000017500000001225114735462537021036 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-added.svg0000664000175000017500000005231014735550533021663 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-epayment.svg0000644000175000017500000020441514707651446022131 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-intransfer.svg0000644000175000017500000001464614745444531022464 Payment Internal xferimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgPayment Internal xfer homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-clear.svg0000644000175000017500000001172614745444110021706 Item Clear image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Clear homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-recon.svg0000644000175000017500000001412614745444206021731 Item Reconciled image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Reconciled homebank-5.9.1/themes/Default/Default_status_scalable_hb-quicktips.svg0000644000175000017500000003006714723042423021674 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-column.svg0000644000175000017500000002003714745443434022251 View Columnimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgView Column homebank-5.9.1/themes/Default/Default_actions_scalable_hb-document-new.svg0000644000175000017500000003055314736213052022404 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-delete.svg0000644000175000017500000005032414745442751022032 Transaction Deleteimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgTransaction Delete homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-edited.svg0000644000175000017500000004236614667340461022071 image/svg+xml Lapo Calamandrei Text editor homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-void.svg0000664000175000017500000001255514745444275021600 Item Void image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Void homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-list.svg0000644000175000017500000002212314745443511021721 View List image/svg+xml Maxime DOYEN https://www.gethomebank.org View List homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-forced.svg0000664000175000017500000000702714745444145022073 Item Forcedimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgItem Forcedpin homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-future.svg0000664000175000017500000003324214745444165022143 Item Future image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Future xx homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-cleared.svg0000644000175000017500000002772714745442727022205 Transaction Clear image/svg+xml Maxime DOYEN https://www.gethomebank.org Transaction Clear homebank-5.9.1/themes/Default/Default_status_scalable_prf-transaction-payment.svg0000644000175000017500000002675114745444755024105 Pref Payment image/svg+xml Maxime DOYEN https://www.gethomebank.org Pref Payment homebank-5.9.1/themes/Default/Default_status_scalable_prf-forecast.svg0000644000175000017500000004267714745444721021711 Pref Forecast image/svg+xml Maxime DOYEN https://www.gethomebank.org Pref Forecast homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-refresh.svg0000644000175000017500000004075014735544553022421 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-life-energy.svg0000644000175000017500000002760414745442544022222 Life Energyimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgLife Energy homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-reconciled.svg0000644000175000017500000003207214745443132022671 Transaction Reconciled image/svg+xml Maxime DOYEN https://www.gethomebank.org Transaction Reconciled homebank-5.9.1/themes/Default/Default_status_scalable_hb-gf-red.svg0000644000175000017500000001312014745443777021040 Group Flag Redimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgGroup Flag Red homebank-5.9.1/themes/Default/Default_actions_scalable_hb-donate.svg0000644000175000017500000001526514666651376021275 homebank-5.9.1/themes/Default/Default_status_scalable_hb-changes-allow.svg0000644000175000017500000002704214735545257022423 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-document-print.svg0000644000175000017500000005736614735557573023004 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-category.svg0000644000175000017500000003006614745442310021614 Categoryimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgCategory homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-transfer.svg0000644000175000017500000004736414745444610022136 Payment Transfer image/svg+xml Payment Transfer Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/Default/Default_status_scalable_prf-transaction-transfer.svg0000644000175000017500000001502514745445016024233 Pref Transfer image/svg+xml Maxime DOYEN https://www.gethomebank.org Pref Transfer homebank-5.9.1/themes/Default/Default_actions_scalable_hb-rep-vehicle.svg0000664000175000017500000001117214745443364022213 Report Vehicle Maxime DOYENhttps://www.gethomebank.orgReport Vehicle homebank-5.9.1/themes/Default/Default_status_scalable_hb-gf-yellow.svg0000644000175000017500000001313114745444016021566 Group Flag Yellowimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgGroup Flag Yellow homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-donut.svg0000644000175000017500000002314114745443453022105 View Donut image/svg+xml Maxime DOYEN https://www.gethomebank.org View Donut homebank-5.9.1/themes/Default/Makefile.am0000644000175000017500000001600314736015606013710 ## Process this file with automake to produce Makefile.in NULL = public_icons_themes = \ Default \ $(NULL) public_icons = \ $(NULL) private_icons = \ Default_actions_scalable_hb-document-new.svg \ Default_actions_scalable_hb-document-open.svg \ Default_actions_scalable_hb-document-print.svg \ Default_actions_scalable_hb-document-save.svg \ Default_actions_scalable_hb-account.svg \ Default_actions_scalable_hb-archive.svg \ Default_actions_scalable_hb-assign.svg \ Default_actions_scalable_hb-budget.svg \ Default_actions_scalable_hb-category.svg \ Default_actions_scalable_hb-clear.svg \ Default_actions_scalable_hb-donate.svg \ Default_actions_scalable_hb-file-export.svg \ Default_actions_scalable_hb-file-import.svg \ Default_actions_scalable_hb-filter.svg \ Default_actions_scalable_hb-go-down.svg \ Default_actions_scalable_hb-go-up.svg \ Default_actions_scalable_hb-help.svg \ Default_actions_scalable_hb-legend.svg \ Default_actions_scalable_hb-life-energy.svg \ Default_actions_scalable_hb-ope-add.svg \ Default_actions_scalable_hb-ope-cleared.svg \ Default_actions_scalable_hb-ope-delete.svg \ Default_actions_scalable_hb-ope-edit.svg \ Default_actions_scalable_hb-ope-future.svg \ Default_actions_scalable_hb-ope-herit.svg \ Default_actions_scalable_hb-ope-multiedit.svg \ Default_actions_scalable_hb-ope-reconciled.svg \ Default_actions_scalable_hb-ope-show.svg \ Default_actions_scalable_hb-payee.svg \ Default_actions_scalable_hb-rate.svg \ Default_actions_scalable_hb-rep-balance.svg \ Default_actions_scalable_hb-rep-budget.svg \ Default_actions_scalable_hb-rep-stats.svg \ Default_actions_scalable_hb-rep-time.svg \ Default_actions_scalable_hb-rep-vehicle.svg \ Default_actions_scalable_hb-view-bar.svg \ Default_actions_scalable_hb-view-column.svg \ Default_actions_scalable_hb-view-donut.svg \ Default_actions_scalable_hb-view-line.svg \ Default_actions_scalable_hb-view-list.svg \ Default_actions_scalable_hb-view-pie.svg \ Default_actions_scalable_hb-view-progress.svg \ Default_actions_scalable_hb-view-refresh.svg \ Default_actions_scalable_hb-view-stack.svg \ Default_actions_scalable_hb-view-stack100.svg \ Default_status_scalable_hb-changes-allow.svg \ Default_status_scalable_hb-changes-prevent.svg \ Default_status_scalable_hb-gf-blue.svg \ Default_status_scalable_hb-gf-green.svg \ Default_status_scalable_hb-gf-none.svg \ Default_status_scalable_hb-gf-orange.svg \ Default_status_scalable_hb-gf-purple.svg \ Default_status_scalable_hb-gf-red.svg \ Default_status_scalable_hb-gf-yellow.svg \ Default_status_scalable_hb-file-valid.svg \ Default_status_scalable_hb-file-invalid.svg \ Default_status_scalable_hb-item-added.svg \ Default_status_scalable_hb-item-auto.svg \ Default_status_scalable_hb-item-budget.svg \ Default_status_scalable_hb-item-closed.svg \ Default_status_scalable_hb-item-edited.svg \ Default_status_scalable_hb-item-forced.svg \ Default_status_scalable_hb-item-future.svg \ Default_status_scalable_hb-item-import.svg \ Default_status_scalable_hb-item-pending.svg \ Default_status_scalable_hb-item-remind.svg \ Default_status_scalable_hb-item-similar.svg \ Default_status_scalable_hb-item-clear.svg \ Default_status_scalable_hb-item-recon.svg \ Default_status_scalable_hb-item-reconlock.svg \ Default_status_scalable_hb-item-void.svg \ Default_status_scalable_hb-pm-cash.svg \ Default_status_scalable_hb-pm-ccard.svg \ Default_status_scalable_hb-pm-check.svg \ Default_status_scalable_hb-pm-dcard.svg \ Default_status_scalable_hb-pm-deposit.svg \ Default_status_scalable_hb-pm-directdebit.svg \ Default_status_scalable_hb-pm-epayment.svg \ Default_status_scalable_hb-pm-fifee.svg \ Default_status_scalable_hb-pm-intransfer.svg \ Default_status_scalable_hb-pm-none.svg \ Default_status_scalable_hb-pm-mobphone.svg \ Default_status_scalable_hb-pm-standingorder.svg \ Default_status_scalable_hb-pm-transfer.svg \ Default_status_scalable_hb-quicktips.svg \ Default_status_scalable_prf-advanced.svg \ Default_status_scalable_prf-backup.svg \ Default_status_scalable_prf-euro.svg \ Default_status_scalable_prf-folder.svg \ Default_status_scalable_prf-forecast.svg \ Default_status_scalable_prf-general.svg \ Default_status_scalable_prf-import.svg \ Default_status_scalable_prf-interface.svg \ Default_status_scalable_prf-interface-theme.svg \ Default_status_scalable_prf-interface-color.svg \ Default_status_scalable_prf-locale.svg \ Default_status_scalable_prf-report.svg \ Default_status_scalable_prf-transaction.svg \ Default_status_scalable_prf-transaction-dialog.svg \ Default_status_scalable_prf-transaction-transfer.svg \ Default_status_scalable_prf-transaction-payment.svg \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(private_icons) \ $(noinst_DATA) \ $(NULL) ############################################################################### gtk_update_icon_cache = gtk-update-icon-cache -f -t update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache in '$(DESTDIR)'"; \ for theme in $(public_icons_themes); do \ echo " > $(datadir)/icons/$$theme."; \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ $(gtk_update_icon_cache) $(DESTDIR)$(pkgdatadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for theme in $(public_icons_themes); do \ cp index.theme $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: for theme in $(public_icons_themes); do \ rm $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons update-icon-cache uninstall-local: uninstall-icons update-icon-cache homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-herit.svg0000644000175000017500000003272414745443043021702 Transaction Heritimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgTransaction Herit homebank-5.9.1/themes/Default/Default_status_scalable_prf-interface-theme.svg0000644000175000017500000003301614700207437023116 image/svg+xml Lapo Calamandrei Create a window homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-mobphone.svg0000644000175000017500000002252614663160500022102 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-assign.svg0000664000175000017500000002631414745442223021271 Assignimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgAssign homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-remind.svg0000664000175000017500000001042014736300217022065 homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-standingorder.svg0000644000175000017500000002256214745444561023153 Payment Standing Order image/svg+xml Maxime DOYEN https://www.gethomebank.org Payment Standing Order homebank-5.9.1/themes/Default/Default_actions_scalable_hb-archive.svg0000644000175000017500000003761414745442407021435 Scheduled/Template image/svg+xml Maxime DOYEN https://www.gethomebank.org Scheduled/Template homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-edit.svg0000644000175000017500000004616714745442772021532 Transaction Editimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgTransaction Edit homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-progress.svg0000644000175000017500000001737614745443534022635 View Progressimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgView Progress homebank-5.9.1/themes/Default/Default_status_scalable_prf-locale.svg0000644000175000017500000024272214745445221021327 Pref Locale Pref Locale homebank-5.9.1/themes/Default/Default_status_scalable_hb-gf-none.svg0000644000175000017500000001310414745443721021214 Group Flag Noneimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgGroup Flag None homebank-5.9.1/themes/Default/Default_actions_scalable_hb-legend.svg0000644000175000017500000001654314745442523021247 Chart legendimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgChart legend homebank-5.9.1/themes/Default/Default_status_scalable_prf-import.svg0000644000175000017500000005264614745444671021416 Pref Import/Export image/svg+xml Maxime DOYEN https://www.gethomebank.org Pref Import/Export ? homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-stack100.svg0000644000175000017500000002630614745443576022316 View Stack100image/svg+xmlMaxime DOYENhttps://www.gethomebank.orgView Stack100 homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-check.svg0000644000175000017500000005614314745444406021365 Payment Cheque image/svg+xml Payment Cheque Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-ccard.svg0000644000175000017500000004440014745444360021354 Payment Credit Cardimage/svg+xmlMaxime DOYENPayment Credit Cardhttps://www.gethomebank.org+ homebank-5.9.1/themes/Default/Default_actions_scalable_hb-rep-balance.svg0000644000175000017500000002203114745443254022151 Report BalanceMaxime DOYENhttps://www.gethomebank.orgReport Balance homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-fifee.svg0000644000175000017500000002374514745444500021363 Payment Financial Feeimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgPayment Financial Fee homebank-5.9.1/themes/Default/Default_actions_scalable_hb-file-import.svg0000644000175000017500000004055514745442462022242 File Import image/svg+xml Maxime DOYEN https://www.gethomebank.org File Import homebank-5.9.1/themes/Default/Default_actions_scalable_hb-filter.svg0000644000175000017500000001353414745442477021303 image/svg+xml Filter Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/Default/Default_actions_scalable_hb-rate.svg0000644000175000017500000002251014745443203020727 Chart rate column image/svg+xml Maxime DOYEN https://www.gethomebank.org Chart rate column % homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-pie.svg0000644000175000017500000000356714437452447021544 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_prf-report.svg0000644000175000017500000010202414745445167021402 Pref Report image/svg+xml Maxime DOYEN https://www.gethomebank.org Pref Report homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-line.svg0000644000175000017500000001266714745443472021717 View LineMaxime DOYENhttps://www.gethomebank.orgView Line homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-pending.svg0000644000175000017500000001127014735013517022240 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-file-export.svg0000644000175000017500000004525014745442440022242 File Export image/svg+xml Maxime DOYEN https://www.gethomebank.org File Export homebank-5.9.1/themes/Default/Default_status_scalable_prf-interface-color.svg0000644000175000017500000004237314700207423023133 image/svg+xml Lapo Calamandrei Create a window homebank-5.9.1/themes/Default/Default_status_scalable_prf-interface.svg0000644000175000017500000002716414667656204022041 image/svg+xml Lapo Calamandrei Create a window homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-closed.svg0000644000175000017500000001420214735553066022073 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-stack.svg0000644000175000017500000002674114745443555022075 View Stackimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgView Stack homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-multiedit.svg0000664000175000017500000004422614745443071022572 Transactions Editimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgTransactions Edit homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-deposit.svg0000644000175000017500000015246514745444447021770 Payment Depositimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgPayment Deposit homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-add.svg0000664000175000017500000003067014745442705021323 Transaction Addimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgTransaction Add homebank-5.9.1/themes/Default/Default_status_scalable_hb-gf-purple.svg0000644000175000017500000001313114745443761021570 Group Flag Purpleimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgGroup Flag Purple homebank-5.9.1/themes/Default/Default_status_scalable_prf-transaction-dialog.svg0000644000175000017500000002514314745445055023653 Pref Dialog image/svg+xml https://www.gethomebank.org Maxime DOYEN Pref Dialog homebank-5.9.1/themes/Default/Default_actions_scalable_hb-payee.svg0000644000175000017500000002504214745443155021110 Payeeimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgPayee homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-dcard.svg0000644000175000017500000003537414745444431021366 Payment Debit Card image/svg+xml Maxime DOYEN Payment Debit Card https://www.gethomebank.org - homebank-5.9.1/themes/Default/Default_status_scalable_prf-transaction.svg0000644000175000017500000003671414745445076022427 Pref Transaction image/svg+xml https://www.gethomebank.org Maxime DOYEN Pref Transaction homebank-5.9.1/themes/Default/Default_status_scalable_prf-folder.svg0000644000175000017500000000150313642557336021337 homebank-5.9.1/themes/Default/Default_actions_scalable_hb-document-save.svg0000644000175000017500000005167114735461204022560 homebank-5.9.1/themes/Default/Default_status_scalable_hb-gf-green.svg0000644000175000017500000001312614745443703021361 Group Flag Greenimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgGroup Flag Green homebank-5.9.1/themes/Default/Default_status_scalable_prf-euro.svg0000644000175000017500000004242014321737236021033 image/svg+xml Euro Nathan M. Willard 16JUL06 homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-similar.svg0000664000175000017500000001503614745444256022273 Item SimilarMaxime DOYENhttps://www.gethomebank.orgItem Similar homebank-5.9.1/themes/Default/Default_status_scalable_prf-advanced.svg0000644000175000017500000014622014667655172021644 image/svg+xml homebank-5.9.1/themes/Default/Makefile.in0000664000175000017500000004611115006363044013717 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = themes/Default ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = public_icons_themes = \ Default \ $(NULL) public_icons = \ $(NULL) private_icons = \ Default_actions_scalable_hb-document-new.svg \ Default_actions_scalable_hb-document-open.svg \ Default_actions_scalable_hb-document-print.svg \ Default_actions_scalable_hb-document-save.svg \ Default_actions_scalable_hb-account.svg \ Default_actions_scalable_hb-archive.svg \ Default_actions_scalable_hb-assign.svg \ Default_actions_scalable_hb-budget.svg \ Default_actions_scalable_hb-category.svg \ Default_actions_scalable_hb-clear.svg \ Default_actions_scalable_hb-donate.svg \ Default_actions_scalable_hb-file-export.svg \ Default_actions_scalable_hb-file-import.svg \ Default_actions_scalable_hb-filter.svg \ Default_actions_scalable_hb-go-down.svg \ Default_actions_scalable_hb-go-up.svg \ Default_actions_scalable_hb-help.svg \ Default_actions_scalable_hb-legend.svg \ Default_actions_scalable_hb-life-energy.svg \ Default_actions_scalable_hb-ope-add.svg \ Default_actions_scalable_hb-ope-cleared.svg \ Default_actions_scalable_hb-ope-delete.svg \ Default_actions_scalable_hb-ope-edit.svg \ Default_actions_scalable_hb-ope-future.svg \ Default_actions_scalable_hb-ope-herit.svg \ Default_actions_scalable_hb-ope-multiedit.svg \ Default_actions_scalable_hb-ope-reconciled.svg \ Default_actions_scalable_hb-ope-show.svg \ Default_actions_scalable_hb-payee.svg \ Default_actions_scalable_hb-rate.svg \ Default_actions_scalable_hb-rep-balance.svg \ Default_actions_scalable_hb-rep-budget.svg \ Default_actions_scalable_hb-rep-stats.svg \ Default_actions_scalable_hb-rep-time.svg \ Default_actions_scalable_hb-rep-vehicle.svg \ Default_actions_scalable_hb-view-bar.svg \ Default_actions_scalable_hb-view-column.svg \ Default_actions_scalable_hb-view-donut.svg \ Default_actions_scalable_hb-view-line.svg \ Default_actions_scalable_hb-view-list.svg \ Default_actions_scalable_hb-view-pie.svg \ Default_actions_scalable_hb-view-progress.svg \ Default_actions_scalable_hb-view-refresh.svg \ Default_actions_scalable_hb-view-stack.svg \ Default_actions_scalable_hb-view-stack100.svg \ Default_status_scalable_hb-changes-allow.svg \ Default_status_scalable_hb-changes-prevent.svg \ Default_status_scalable_hb-gf-blue.svg \ Default_status_scalable_hb-gf-green.svg \ Default_status_scalable_hb-gf-none.svg \ Default_status_scalable_hb-gf-orange.svg \ Default_status_scalable_hb-gf-purple.svg \ Default_status_scalable_hb-gf-red.svg \ Default_status_scalable_hb-gf-yellow.svg \ Default_status_scalable_hb-file-valid.svg \ Default_status_scalable_hb-file-invalid.svg \ Default_status_scalable_hb-item-added.svg \ Default_status_scalable_hb-item-auto.svg \ Default_status_scalable_hb-item-budget.svg \ Default_status_scalable_hb-item-closed.svg \ Default_status_scalable_hb-item-edited.svg \ Default_status_scalable_hb-item-forced.svg \ Default_status_scalable_hb-item-future.svg \ Default_status_scalable_hb-item-import.svg \ Default_status_scalable_hb-item-pending.svg \ Default_status_scalable_hb-item-remind.svg \ Default_status_scalable_hb-item-similar.svg \ Default_status_scalable_hb-item-clear.svg \ Default_status_scalable_hb-item-recon.svg \ Default_status_scalable_hb-item-reconlock.svg \ Default_status_scalable_hb-item-void.svg \ Default_status_scalable_hb-pm-cash.svg \ Default_status_scalable_hb-pm-ccard.svg \ Default_status_scalable_hb-pm-check.svg \ Default_status_scalable_hb-pm-dcard.svg \ Default_status_scalable_hb-pm-deposit.svg \ Default_status_scalable_hb-pm-directdebit.svg \ Default_status_scalable_hb-pm-epayment.svg \ Default_status_scalable_hb-pm-fifee.svg \ Default_status_scalable_hb-pm-intransfer.svg \ Default_status_scalable_hb-pm-none.svg \ Default_status_scalable_hb-pm-mobphone.svg \ Default_status_scalable_hb-pm-standingorder.svg \ Default_status_scalable_hb-pm-transfer.svg \ Default_status_scalable_hb-quicktips.svg \ Default_status_scalable_prf-advanced.svg \ Default_status_scalable_prf-backup.svg \ Default_status_scalable_prf-euro.svg \ Default_status_scalable_prf-folder.svg \ Default_status_scalable_prf-forecast.svg \ Default_status_scalable_prf-general.svg \ Default_status_scalable_prf-import.svg \ Default_status_scalable_prf-interface.svg \ Default_status_scalable_prf-interface-theme.svg \ Default_status_scalable_prf-interface-color.svg \ Default_status_scalable_prf-locale.svg \ Default_status_scalable_prf-report.svg \ Default_status_scalable_prf-transaction.svg \ Default_status_scalable_prf-transaction-dialog.svg \ Default_status_scalable_prf-transaction-transfer.svg \ Default_status_scalable_prf-transaction-payment.svg \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(private_icons) \ $(noinst_DATA) \ $(NULL) ############################################################################### gtk_update_icon_cache = gtk-update-icon-cache -f -t all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign themes/Default/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign themes/Default/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-local .PRECIOUS: Makefile update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache in '$(DESTDIR)'"; \ for theme in $(public_icons_themes); do \ echo " > $(datadir)/icons/$$theme."; \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ $(gtk_update_icon_cache) $(DESTDIR)$(pkgdatadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for theme in $(public_icons_themes); do \ cp index.theme $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: for theme in $(public_icons_themes); do \ rm $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons update-icon-cache uninstall-local: uninstall-icons update-icon-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-show.svg0000644000175000017500000002071414735733102021540 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_prf-backup.svg0000644000175000017500000007646114745444650021347 Pref Backup image/svg+xml Maxime DOYEN https://www.gethomebank.org Pref Backup 12 12 6 6 3 3 9 9 homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-budget.svg0000644000175000017500000010773414745444065022110 Item Budgeted image/svg+xml Maxime DOYEN https://www.gethomebank.org Item Budgeted homebank-5.9.1/themes/Default/Default_actions_scalable_hb-account.svg0000644000175000017500000006276414736213003021440 image/svg+xml New Address Book December 2006 Andreas Nilsson address book contact http://www.gnome.org homebank-5.9.1/themes/Default/Default_actions_scalable_hb-document-open.svg0000644000175000017500000001136614735460244022563 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-help.svg0000644000175000017500000004005214735733365020737 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-budget.svg0000644000175000017500000003325414745442255021263 Budget image/svg+xml Budget Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/Default/Default_actions_scalable_hb-rep-time.svg0000644000175000017500000002666314745443344021541 Report Trend Time Maxime DOYEN https://www.gethomebank.org Report Trend Time homebank-5.9.1/themes/Default/Default_actions_scalable_hb-rep-stats.svg0000644000175000017500000002121514745443321021720 Report Stats image/svg+xml Maxime DOYEN https://www.gethomebank.org Report Stats homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-none.svg0000644000175000017500000000411114673600775021236 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-clear.svg0000644000175000017500000003533214735550403021070 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-import.svg0000644000175000017500000001206214667342145022134 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-go-down.svg0000644000175000017500000001234314735462253021356 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-cash.svg0000644000175000017500000001020514745444325021213 Payment CashMaxime DOYENhttps://www.gethomebank.orgPayment Cash homebank-5.9.1/themes/Default/Default_actions_scalable_hb-ope-future.svg0000664000175000017500000004463214745443016022104 Transaction Future image/svg+xml Maxime DOYEN https://www.gethomebank.org Transaction Future homebank-5.9.1/themes/Default/Default_status_scalable_hb-gf-blue.svg0000644000175000017500000001310414745443664021212 Group Flag Blueimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgGroup Flag Blue homebank-5.9.1/themes/Default/Default_status_scalable_prf-general.svg0000644000175000017500000007125514664152731021507 image/svg+xml System Preferences Andreas Nilsson category system preferences settings control center Jakub Steiner homebank-5.9.1/themes/Default/Default_actions_scalable_hb-rep-budget.svg0000644000175000017500000001737314745443273022054 Report Budgetimage/svg+xmlMaxime DOYENhttps://www.gethomebank.orgReport Budget homebank-5.9.1/themes/Default/Default_status_scalable_hb-changes-prevent.svg0000644000175000017500000003317314735545322022763 image/svg+xml homebank-5.9.1/themes/Default/Default_actions_scalable_hb-view-bar.svg0000644000175000017500000001661114745443405021521 View barimage/svg+xmlView bar homebank-5.9.1/themes/Default/Default_status_scalable_hb-pm-directdebit.svg0000644000175000017500000001662214707641310022557 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_hb-item-reconlock.svg0000644000175000017500000004517114745444236022611 Item ReconciledLock image/svg+xml Maxime DOYEN https://www.gethomebank.org Item ReconciledLock homebank-5.9.1/themes/Default/Default_status_scalable_hb-file-invalid.svg0000644000175000017500000001173414735545461022240 image/svg+xml homebank-5.9.1/themes/Default/Default_status_scalable_hb-file-valid.svg0000644000175000017500000001374214735552326021710 image/svg+xml homebank-5.9.1/themes/Makefile.am0000644000175000017500000000016714736461571012336 ## Process this file with automake to produce Makefile.in SUBDIRS = common-symbolic Default hicolor hicolor-symbolic homebank-5.9.1/themes/Makefile.in0000664000175000017500000004447315006363044012344 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = themes ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = common-symbolic Default hicolor hicolor-symbolic all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign themes/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign themes/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/themes/common-symbolic/0000775000175000017500000000000015006374031013450 5homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_data-usage-symbolic.svg0000664000175000017500000000660414745445304025051 Data Usage image/svg+xml Maxime DOYEN https://www.gethomebank.org Data Usage homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_open-menu-symbolic.svg0000664000175000017500000000573214745445607024750 Open Menu image/svg+xml Open Menu Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_list-merge-symbolic.svg0000664000175000017500000000640614745445527025115 List Merge image/svg+xml Maxime DOYEN https://www.gethomebank.org List Merge homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_list-collapse-all-symbolic.svg0000664000175000017500000000560514745445440026360 List Collapse All image/svg+xml Maxime DOYEN https://www.gethomebank.org List Collapse All homebank-5.9.1/themes/common-symbolic/Makefile.am0000644000175000017500000000730014735015616015433 ## Process this file with automake to produce Makefile.in NULL = public_icons_themes = \ hicolor \ $(NULL) public_icons = \ $(NULL) private_icons = \ hicolor_actions_scalable_edit-split-symbolic.svg \ hicolor_actions_scalable_eye-not-looking-symbolic.svg \ hicolor_actions_scalable_list-collapse-all-symbolic.svg \ hicolor_actions_scalable_list-duplicate-symbolic.svg \ hicolor_actions_scalable_list-expand-all-symbolic.svg \ hicolor_actions_scalable_list-merge-symbolic.svg \ hicolor_actions_scalable_list-move-after-symbolic.svg \ hicolor_actions_scalable_open-in-browser-symbolic.svg \ hicolor_actions_scalable_open-menu-symbolic.svg \ hicolor_actions_scalable_text-casesensitive-symbolic.svg \ hicolor_actions_scalable_text-regularexpression-symbolic.svg \ hicolor_actions_scalable_data-usage-symbolic.svg \ hicolor_actions_scalable_edit-split-symbolic.svg \ hicolor_actions_scalable_list-collapse-all-symbolic.svg \ hicolor_actions_scalable_list-duplicate-symbolic.svg \ hicolor_actions_scalable_list-expand-all-symbolic.svg \ hicolor_actions_scalable_list-merge-symbolic.svg \ hicolor_actions_scalable_list-move-after-symbolic.svg \ hicolor_actions_scalable_text-casesensitive-symbolic.svg \ hicolor_actions_scalable_text-regularexpression-symbolic.svg \ hicolor_actions_scalable_data-usage-symbolic.svg \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(private_icons) \ $(noinst_DATA) \ $(NULL) ############################################################################### gtk_update_icon_cache = gtk-update-icon-cache -f -t update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache in '$(DESTDIR)'"; \ for theme in $(public_icons_themes); do \ echo " > $(datadir)/icons/$$theme."; \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ $(gtk_update_icon_cache) $(DESTDIR)$(pkgdatadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for theme in $(public_icons_themes); do \ cp index.theme $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: for theme in $(public_icons_themes); do \ rm $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons update-icon-cache uninstall-local: uninstall-icons update-icon-cache homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_list-duplicate-symbolic.svg0000664000175000017500000000716014745445463025765 List Duplicate image/svg+xml Maxime DOYEN https://www.gethomebank.org List Duplicate homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_text-casesensitive-symbolic.svg0000664000175000017500000000706214745445631026667 Text Case Sensitive image/svg+xml Maxime DOYEN https://www.gethomebank.org Text Case Sensitive homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_open-in-browser-symbolic.svg0000664000175000017500000000657614745445570026101 List Open Browser image/svg+xml List Open Browser Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_edit-split-symbolic.svg0000664000175000017500000000605514745445342025116 Edit Split image/svg+xml Maxime DOYEN https://www.gethomebank.org Edit Split homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_list-expand-all-symbolic.svg0000664000175000017500000000545614745445510026037 List Expand All image/svg+xml Maxime DOYEN https://www.gethomebank.org List Expand All homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_text-regularexpression-symbolic.svg0000664000175000017500000000607614745445652027612 Text Regular Expression image/svg+xml Maxime DOYEN https://www.gethomebank.org Text Regular Expression homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_eye-not-looking-symbolic.svg0000664000175000017500000000735314745445414026062 Eye Not Looking image/svg+xml Eye Not Looking Maxime DOYEN https://www.gethomebank.org homebank-5.9.1/themes/common-symbolic/hicolor_actions_scalable_list-move-after-symbolic.svg0000664000175000017500000000436114745445547026063 List Move After Maxime DOYEN https://www.gethomebank.org List Move After homebank-5.9.1/themes/common-symbolic/Makefile.in0000664000175000017500000003743615006363044015454 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = themes/common-symbolic ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = public_icons_themes = \ hicolor \ $(NULL) public_icons = \ $(NULL) private_icons = \ hicolor_actions_scalable_edit-split-symbolic.svg \ hicolor_actions_scalable_eye-not-looking-symbolic.svg \ hicolor_actions_scalable_list-collapse-all-symbolic.svg \ hicolor_actions_scalable_list-duplicate-symbolic.svg \ hicolor_actions_scalable_list-expand-all-symbolic.svg \ hicolor_actions_scalable_list-merge-symbolic.svg \ hicolor_actions_scalable_list-move-after-symbolic.svg \ hicolor_actions_scalable_open-in-browser-symbolic.svg \ hicolor_actions_scalable_open-menu-symbolic.svg \ hicolor_actions_scalable_text-casesensitive-symbolic.svg \ hicolor_actions_scalable_text-regularexpression-symbolic.svg \ hicolor_actions_scalable_data-usage-symbolic.svg \ hicolor_actions_scalable_edit-split-symbolic.svg \ hicolor_actions_scalable_list-collapse-all-symbolic.svg \ hicolor_actions_scalable_list-duplicate-symbolic.svg \ hicolor_actions_scalable_list-expand-all-symbolic.svg \ hicolor_actions_scalable_list-merge-symbolic.svg \ hicolor_actions_scalable_list-move-after-symbolic.svg \ hicolor_actions_scalable_text-casesensitive-symbolic.svg \ hicolor_actions_scalable_text-regularexpression-symbolic.svg \ hicolor_actions_scalable_data-usage-symbolic.svg \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(private_icons) \ $(noinst_DATA) \ $(NULL) ############################################################################### gtk_update_icon_cache = gtk-update-icon-cache -f -t all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign themes/common-symbolic/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign themes/common-symbolic/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-local .PRECIOUS: Makefile update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache in '$(DESTDIR)'"; \ for theme in $(public_icons_themes); do \ echo " > $(datadir)/icons/$$theme."; \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ $(gtk_update_icon_cache) $(DESTDIR)$(pkgdatadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for theme in $(public_icons_themes); do \ cp index.theme $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: for theme in $(public_icons_themes); do \ rm $(DESTDIR)$(pkgdatadir)/icons/$$theme/index.theme; \ done; \ -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done; \ for icon in $(private_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons update-icon-cache uninstall-local: uninstall-icons update-icon-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/Makefile.in0000664000175000017500000007077215006363044011060 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # HomeBank Makefile.am VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(datasdir)" DATA = $(datas_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ COPYING ChangeLog INSTALL NEWS README compile config.guess \ config.sub depcomp install-sh missing mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip # Exists only to be overridden by the user if desired. AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ #SUBDIRS = src SUBDIRS = src data images mime pixmaps themes po doc datasdir = $(datadir)/homebank/datas/ datas_DATA = \ ChangeLog EXTRA_DIST = $(datas_DATA) # don't forget to do a 'make check' # to ensure all files are in po/POTFILES.in #pot: Makefile #${MAKE} -C po $(PACKAGE).pot INTLTOOL_FILES = intltool-extract.in \ intltool-merge.in \ intltool-update.in DISTCLEANFILES = ... intltool-extract \ intltool-merge \ intltool-update \ po/.intltool-merge-cache all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-datasDATA: $(datas_DATA) @$(NORMAL_INSTALL) @list='$(datas_DATA)'; test -n "$(datasdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(datasdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(datasdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(datasdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(datasdir)" || exit $$?; \ done uninstall-datasDATA: @$(NORMAL_UNINSTALL) @list='$(datas_DATA)'; test -n "$(datasdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(datasdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-zstd: distdir tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ *.tar.zst*) \ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(datasdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-datasDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-datasDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(am__recursive_targets) all install-am install-strip \ uninstall-am .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ dist-zstd distcheck distclean distclean-generic distclean-hdr \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-datasDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ tags-am uninstall uninstall-am uninstall-datasDATA \ uninstall-hook .PRECIOUS: Makefile # we clean every folder under /usr/share/homebank as well on uninstall uninstall-hook: -rm -rf $(datadir)/homebank/datas -rm -rf $(datadir)/homebank/help -rm -rf $(datadir)/homebank/icons -rm -rf $(datadir)/homebank/images -rm -rf $(datadir)/homebank -rm -rf $(datadir)/appdata/homebank.appdata.xml #-rmdir $(datadir)/homebank # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/compile0000755000175000017500000001635014556763366010403 #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN* | MSYS*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: homebank-5.9.1/INSTALL0000664000175000017500000002245011413604274010033 Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Often, you can also type `make uninstall' to remove the installed files again. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. homebank-5.9.1/doc/0000775000175000017500000000000015006374032007622 5homebank-5.9.1/doc/dlg-pref.html0000644000175000017500000005257214775771207012162 Preferences dialog
HomeBank User manual

General

Program start

Show splash screen display a splash screen when HomeBank start
Load last opened file load the last opened file when HomeBank start
Post pending scheduled transactions append scheduled transaction to accounts when HomeBank start
Update currencies on-line trigger a on-line update for currencies exchange rate start

↑ Back to Top

Interface

General

Color the amounts specify if amounts should be displayed with colors below
Color the background of future transaction new specify if future transaction renders with a color background
Grid line specify the list grid line option:
  • None
  • Horizontal
  • Vertical
  • Both

Charts options

Smaller legend font set the font for scale and legend to be smaller

Deprecated

Tool-bar tool-bar style to be used

↑ Back to Top

Theming

Theme

On GNU/Linux OS, HomeBank will follow the dark scheme preference if available

Dark mode GNU/Linux only
will indicate the system preference: no preference, prefer dark, prefer light
Use dark mode if available GNU/Linux: use dark mode when system has no preference, this will not work otherwise

For other OS this enable to switch to theme dark mode, if available.

Icons

Icon theme new default icon theme, to be enriched in the future
Use symbolic icons if available new as it describe, will use symbolic icons if available

GTK settings

Override Enable to override the font size
Font size Define the font size

↑ Back to Top

Color

Chart

Palette Set the default color scheme to be applied for charts
  • HomeBank
  • Money
  • SAP
  • Quicken
  • Office 2010
  • Office 2013
  • Analytics
  • YNAB

Others

Uses colors from the chart palette new specify if amounts should be displayed with colors below
Expense color to uses for expense
Income color to uses for income
Warning color to uses for amount in warning (overdrawn)
Background future new color to uses for background future transaction

↑ Back to Top

Locale

User interface

Language define what language to use for the interface
Date display A date sample is displayed
Customize the format used to display the date
 the input format rely on your system option, you can see this FAQ.

Fiscal year

Start on define on which day and month the fiscal year start

Measurement units

Use miles for meter use the mile labels and abbreviation for the vehicle cost
Use gallon for fuel use the gallon labels and abbreviation for the vehicle cost

↑ Back to Top

Transactions

General

Always show remind set the remind transaction to always be display (ignore filters)
Always show void set the void transaction to always be display (ignore filters)
Include remind into balance and report set the remind transaction amount to be computed into the balance, ignored otherwise

Safety

Lock reconciled for any changes set the default value for the lock reconciled for any change of the main window
Approve additions before last reconciliation new set pending status for transaciton you input before last reconciled date of an account
Approve addition before XX days before today's date new set pending status for transaction you input past XX days

Ledger window

Range Set the default range to be used for account window
Show future [xx] days ahead set the number of days to force show future transaction
Please note the addition is only effective when the range is:
THISMONTH, THISQUARTER, THISYEAR
LAST30DAYS, LAST60DAYS, LAST90DAYS, LAST12MONTHS
Hide reconciled set the filter for account window not to default show reconciled transactions

↑ Back to Top

Dialog

Transaction dialogue

Keep the last date when multiple add When you add several transaction to the chain, set the date to be kept when:
- you use the [Add] button from a Transaction dialog in Add mode
- Inherit a transaction from an Account window
Enable memo autocomplete with [xxx] rolling days Collect and propose memo for autocomplete or not and define how many days into the past to grab memo for autocomplete, if for example 30 days, you will only see the last 30 days autocomplete memo
Show confirmation text for 5s Will show 5 seconds added confirmation text into the transaction dialog
Show template list when edit this will show the template dropdown list when you edit a transaction

↑ Back to Top

Transfer

Behavior

When adding, always show selection action for target dialog this will force to show target dialog when you add a transfer
Date gapto find a target: [xx] days Define the number of +/- days to search for a target transaction for transfer

Synchronize

Date new this will force to sync the date of the transfer source and destination when you change it
Status this will force to sync the status of the transfer source and destination when you change it

↑ Back to Top

Payment

Payment shows & chooses

This list enables you to select what payment mode to show/hide and in which order !

↑ Back to Top

Import/Export

General options

Date order set the default date order for file import
  • d-m-y
  • m-d-y
  • y-m-d
Sentence case memo/payee will change the case for memo and payee (lowercase starting with a capital letter)

OFX/QFX options

OFX Name define what to do for name field during import:
  • ignore
  • memo
  • payee
OFX Memo define what to do for memo field during import:
  • ignore
  • append to Info
  • append to Memo
  • append to Payee

QIF options

Import memos to import the M field from files
Swap memos with payees to swap M and P field from files

CSV options

Separator change the separator for transaction import between:
Tab, Comma, Semicolon, Space

↑ Back to Top

Report

Main window reports

Max items default number of slice for the pie chart of the main window reports

Initial filter

Range Set the default range to be used for account window

Statistics options

Show by amount set the by amount toggle on the statistics window to default be checked
Show rate column set the rate column to be displayed by default
Show details set the detail toggle on the statistics window to default be checked
Include transfer set the internal transfer to be included into the computing of the report

Budget options

Show details set the detail toggle on the budget window to default be checked
Exclude subcategories... new option not to consider subcategories with no budget as unbudgeted if parent category has budget

↑ Back to Top

Forecast

Forecast

Enable forecast to activate the forecast
Month number: [xx] the number of month to forecast

The forecast is based on scheduled transaction, and appear with condition, see the forecast lexicon section for more details.

↑ Back to Top

Backup

Backup

Enable automatic backups to activate backup of your .xhb files
Number of backups to keep [xx] the number of backups to keep

Backup frequency is once a day, see the backup lexicon section for more details.

↑ Back to Top

Folders

 When you change those folders, HomeBank will not move nor copy files, including any current opened file.

These folders are the location that the file selector will use as a default when it opens.
If you want to change the location of your files, change it to the filesystem first, then change it here.

HomeBank files

Wallets default folder to load/save HomeBank files
Backups default folder to load/save HomeBank backup files

Exchange files

Import default folder to load files to import
Export default folder to save files to export

↑ Back to Top

Euro minor

General

Enable enable Euro minor currency support in HomeBank.
see minor currency for more details.
Preset preselect of parameters for this tab

Configuration

A remind of the country is displayed

1 XXX = change rate (value of 1 Euro in your old national currency)

Format

A sample is displayed and can be customized

Symbol Symbol that prefix the amount
Is prefix define is the symbol is a prefix symbol
Decimal char Character to be used as decimal separator
Frac digits Number of digits after decimal separator
Grouping char Character to be used as grouping separator

↑ Back to Top

Advanced

Currency API

Url the url of the rate API
default value is: https://api.frankfurter.app/latest
Key the free or paid apikey for other compatible API such as fixer or exchangerate

↑ Back to Top

homebank-5.9.1/doc/use-loan-mortgage.html0000664000175000017500000000627414575623437014007 Loan / Mortgage
HomeBank User manual

Using HomeBank to follow up a loan or mortgage

As such specific financial operation vary from countries to country, there is no built-in feature to input this, but you can anyway setup and follow the reimbursement/profit with 2 or several accounts.
Here is a way of setup and follow-up a loan for a house, it is setup into the example file as well:

Step 1: Setup the accounts

We will setup 2 accounts:
- the bank account, this is where the reimbursement will goes to the loan account
- the loan (house) account, this is the loan itself
- in this account, we input a first expense line with our loan total amount: -166 000.00 €

Step 2: Setup the recurring transaction

We will setup 2 recurring transaction separating refund and insurance:
- refund: is a monthly transfer of -1053.45 € from 'bank account' to 'loan (house)' account
- insurance: is a simple monthly recurring transaction of -33.20 € in 'loan (house)' account

The optional setup is not detailed here: payee, category, tag, clear, reconcile, whatever to fit you needs

Step 3: Input or import the monthly fee

As input each month fee will be painful, let's take benefits from the CSV import.

From your bank, or a website bank simulator, you will be able to get a full table of your loan with detailed fee.
It is quite easy with a spreadsheet program to rearrange this to HomeBank CSV file format.
Then, just import this fees into the 'loan (house)' account.

Goal: Display evolution, progression

In the main window
- 'Your account' shows the remaining due amount, with cleared, reconciled and future depending on your configuration.

With time report
To view progression, 2 option:
- tick 'Cumulate'
- select 'loan (house)' account only

With balance report
- select 'loan (house)' account only

Et voilà !
You can also use other report with appropriate filter/display configuration

homebank-5.9.1/doc/win-ledger.html0000644000175000017500000001425014737011242012466 Ledger window
HomeBank User manual

Ledger window

The ledger windows is used to manage one account or all the accounts transactions at a time.
It can be the basis of most actions dealing with transactions.

Menu

The menu is the start of every actions on transactions.

Quick filter area

These widgets will enable you to quickly filter the transaction list without opening the filter dialog.

From left to right:
Range : Quick change the date range, a tool-tip is displayed when you hover this widget and display the exact date range.
Flag : Quick select flag transaction to display
Type : Restrict the list-view to expense or income.
Status : Restrict the list-view to uncategorized or unreconciled.
Edit filter
Clear filter
Refresh
Life Energy, see this page for details.

Quick search

The quick search will permit to filter the transaction list instantly on text column. The search apply to all columns except status and date columns.

Selected transaction information

On the left you have the current date range as a remind. The information displayed depends on the selection:

  • no selection / 1 selected:
    display the number of transaction of the list
  • more than 1 selected:
    display additionally: number of selected, average, sum of total, income, expense

Balance

The balance area contains the balance summary of the account, see this page for details. If the minor option is checked in the preferences, a minor toggle button appear here, see this page for details.

Transaction list

The list shows a summary of the transaction in the account. You can use the filter dialog if necessary.
Column order can be changed by left click on the column title then drag the column.
Column visible can be adjusted by right click on the column title, this is the only place where you can do this, any other transaction list will inherit the columns configured here.
The Balance column is only displayed when sort is by date ascending/descending, it is hidden otherwise.

Double-click works as follow, depending of the transaction selected:

The first column indicate the change made to the transaction:

= transaction added
= transaction modified

The Status column indicate the status of a transaction:

= cleared
= reconciled
= remind

Some hot-keys are available to quickly change the status of a transaction.

Here's a few tips:
+ - on an unreconciled transaction will Reconcile
- on a Reconciled transaction will ask for confirmation and toggle to Cleared
+ - has no effect on a Reconciled transaction
- on a Cleared transaction will unclear it
+ - will change the status to None

The Category column may display a - this needs a category - text
this occurs if the account is part of the budget and the transaction has no category and is not a transfer.
You may need to exclude the account from the budget if this was set by mistake or you don't use the budget feature, this can be done from the dialog account.

Tool bar

The tool-bar provides easy mouse shortcut for some of the menu. All tool button have a tool tip that will help you know what action will be launched when you click on the tool button.

Lock/Unlock reconciled changes

By default, starting v5.6, the reconciled transaction are locked for some changes: edition, status, delete.
You can unlock by switching this button or with a preference. You can still move and copy and create from them still.

homebank-5.9.1/doc/frm-navig.html0000644000175000017500000001111314773771642012333 HomeBank - Content

Documentation logo

homebank-5.9.1/doc/dlg-acco.html0000644000175000017500000001303714742663360012116 Accounts dialog
HomeBank User manual

Accounts dialog

The accounts dialog is used to add, edit and manage the accounts of the current wallet.

Dialog call

  • main window menu: Manage / Accounts
  • main window tool bar.


Using accounts dialog

Quick search

A quick search text filter. You can use CTRL+F to activate and ESC to clear.

Account list

display the actual list of accounts in the wallet. The account at the top of the list will be the one to be displayed when opening your wallet. You can easily change the accounts order using the header and move up and down button.

= account is part of the budget

Buttons

Add add a new empty account.
Delete delete the active account. This is only possible if the account has no transactions.
Edit edit the active account.
Move up (1) move the active account up.
Move down (1) move the active account down.

(1) you cannot move accounts if the sorting is not by number ascending.


General

Type the type of the account, as described into the lexicon
Group the group name of the account
Institution the bank name where the account is registered.
Number the bank account number itself.
Start balance the initial balance amount, i.e the balance before the first transaction.
Currency the currency of the account, you can manage this list with the currencies dialog

 If the account you change contains internal transfer, any target account will change of currency as well

This account was closed the bank account is closed.
please also note that closed account are no more considered for reports.
Website optional website you may want to add, you will have a browse button in Your accounts and a menu into the ledger window.
Notes optional notes you may want to add

Behavior

Default template the template transaction prefill new transaction with.
 From the main window, the template will work only if you preselect an account in 'Your accounts' list
Exclude from account summary the account will must not be used into the account summary list of the main window.
Outflow in summary the account will be aside any total in the summary list of the main window.
Exclude from the budget the account will not be used for the budget data.
Exclude from any reports the account will not be used for any report data.

Misc.

Overdraft at the balance threshold, if you have an authorized balance, this will be used in the Balance report window.
Maximum the maximum amount for this account
Chequebook 1 the next cheque number of first pad to be used (this is auto updated later when you add some transactions).
Chequebook 2 some of the above but for a second cheque pad (for a joined account)
homebank-5.9.1/doc/dlg-tag.html0000644000175000017500000000400214330257572011751 Tags dialog
HomeBank User manual

Tags dialog

The tags dialog is used to add, edit and manage the tags of the current wallet.

Dialog call

  • main window menu: Manage / Tags...

Using tags dialog

Menu Button

Import CSV Import and merge some payees from a CSV file
Export CSV export the entire payee list into a CSV file

Please refer to CSV file format for the file description.

Tag list

display tag name list

Buttons

Add toggle the tag name widget to visible/invisible
Delete delete the selected tag
Edit edit the tag
To edit a tag, you can also double click on it.
Move/Merge move or merge the current tag to a new one you will select

Tag name

type a new tag name here and press return to add.

homebank-5.9.1/doc/index.html0000644000175000017500000000074414737012600011542 HomeBank User Manual <body id="top"> </body> homebank-5.9.1/doc/00-notenglish.html0000664000175000017500000001072514736553124013036 Translate
HomeBank User manual

Translate this documentation

Javascript detection (based on your browser): language: unknown  country: unknown

Change the language below and click on Browse (will use google translate).

Choose:  

homebank-5.9.1/doc/00-lexicon.html0000644000175000017500000006321714775770663012343 Lexicon
HomeBank User manual

Lexicon

This section is intended to give you a brief introduction to the basic concepts and terminology you will need to understand in order to make sense to the rest of the documentation.

A-B C-D E-O P-S T-Z
Account
{account type}
asset {account type}
Assignment
bank transfer {payment}
Backup
Balance
bank {account type}
Budget
Category
cash {account type}
cash {payment}
checking {account type}
check {payment}
credit card {account type}
credit card {payment}
cleared {txn status}
Currency
debit card {payment}
deposit {payment}
direct debit {payment}
electronic payment {payment}
expense {txn type}
fi fee {payment}
financial institution
Flags
forecast (cashflow)
income {txn type}
inline calculation new
liability {account type}
Life energy
mobile phone {payment}
Number
Payee
{payment}
Pending new
reconciled {txn status}
remind {txn status}
savings {account type}
{txn status}
Scheduled
Split
standing order {payment}
Tag
Template
Transaction
transfer {txn type}
{txn type}
void {txn status}
Wallet

Wallet

Wallet is the 1st level of data. It represent a HomeBank file (.xhb)
Managing the few wallet properties is done in the Properties dialog.

↑ Back to Top

Account

Account is the 2nd level of the data. An account is a division of the wallet, that will contains your financial transactions.
Managing the accounts is done in the Accounts dialog.

↑ Back to Top

Account type

Account type is a simple classification for account, only to group account display into the main windows 'Your accounts' area. As so there is no specific behavior beneath them.
Most of those type comes from QIF and OFX specification, the usage definition from various sources.

Bank

Used as a general account held by a bank or any financial institution.

Cash

Used to track the spending of cash you withdraw from a bank account (or credit card, in the case of a cash advance). Whenever you take cash out of an account (e.g. an ATM withdrawal), transfer the money to your newly created cash account. Then, whenever you spend the cash on something, create a withdrawal in the cash account for the appropriate amount.

Asset

Used to track the value of property you own or money that is owed to you. For example, if you own a vehicle, an asset account can help you track appreciation and depreciation on that property. When using an asset account, record the base value of the asset as a deposit into the account, then enter gains or earnings as positive transactions and losses as negative transactions.

Credit card

Used to track charges and payments made against a credit account. Charges made to the account should be entered as negative transactions; payments should be positive (either deposits or transfers from other accounts). The balance of a credit card account should almost always be negative or zero - a positive balance would indicate a credit on the account due to over-payment.

Liability

Used to track debt or money owed for which you do not make regular payments. When using a liability account, record the initial amount owed as a withdrawal from the account, then enter any payments made against the debt as deposits or transfers into the account.

Checking

Used to track deposits and withdrawals from a typical bank checking account.

Savings

Used to track deposits and withdrawals from a typical bank savings account.

↑ Back to Top

Transaction

Transaction is the last level of data. A transaction is a financial transaction, attached to its own account.

In addition to the usual fields you can find in most accounting application, HomeBank offers the following:

  • tags: like in the web, you can assign some tags to a transaction
  • payment: small image showing the payment mode
  • info: miscellaneous data for payment, like date, cheque number and so on
  • remind state: to keep track of debt
  • vehicle-cost data: memo field can contain data for your vehicle refuels

Managing transactions is done in the main window or the account window.

↑ Back to Top

Type of transaction

Expense

An expense is an amount with a negative sign, also called a debit.

Income

An income is an amount with a positive sign, also called a credit.

Transfer

A transfer (more precisely internal transfer) is a money movement between 2 of your accounts, in one or several Financial institution, as so, like you emit and receive the money there is no payee.

This is a special transfer for HomeBank, as it will link the source and destination transaction for further changes of most data to be synced.
In exception of the Status and Date (and Amount the opposite sign), all the fields will be synced, whatever you make some changes from src or dst account.
The reason is that the money may arrive on the dst account a few days later, and when you reconcile you will do account separately.
Since v5.7 there is a preference to sync also the status by default.

When you change the type of a transaction to this one, HomeBank may propose some potential target transaction for you to select within this dialog.

warning transfer have some usage limitation:

  • split by category is not allowed
  • import with CSV is not possible
  • use with multiple selection edition is not possible

↑ Back to Top

Inline calculation new

When input amount in transaction or split dialog, you can do some basic inline calculations. There is no usual priority of operand +-*/ here, the calculation is done from left to right.
For example, if you input '3+2*6', result will be 30 (3+2=5, 5*6=30), and not 15 like it would be in a calculator.

↑ Back to Top

Status of transaction

Cleared

a transaction is cleared when the bank has recorded it,
those transaction are not taken into account in the bank balance.

Reconciled

a transaction is checked when you have controlled it with your bank statement,
those transaction are part of the bank balance.

Remind

Remind is a special status for the transaction. Its usage is described here.
The purpose is to keep the transaction into the list for later uses to remind you about a bill to pay, a bill to be paid for, or money you lent or wait refund on.
Remind transaction are excluded from any computing: balance, reports, etc. except if you change some preference.

Void

Void is a special status to set transaction to be ignored everywhere.
The visibility can be controlled from preference or filter.

↑ Back to Top

Flags of transaction new

There is now 6 color flags you can assign to transaction, colors are Red, Orange, Yellow, Green, Blue and Purple. The assign can only be done from the ledger window using the context menu or some shortcuts CTRL+x. There is also a new quick filter to easily filter on flags.

Flags can be used for several purpose: action reminder, money lent to friend, etc.

↑ Back to Top

Financial institution

A financial institution can be a bank or a credit card company or any other institution.

<no institution> will be displayed when the item has no institution set.

↑ Back to Top

Forecast (cashflow)

A forecast of cash flow is available for some report. It is based on the scheduled transaction. In the graph it will display with future style, so with a shaded color and dashed lines. The forecast will only display when there is a date junction within the date range you selected: if we are in July and you select first quarter (which end on march) it will not display. If you select this month, this year, it will.

↑ Back to Top

Life Energy new

Life energy is a measurement of your expense by hours of work, based on your estimate earning by hour. This is an alternative and interesting way to consider your spending.
After you have filled your estimate 'earn by hour' into Properties dialog, you will be able to toggle on/off an additional (..h..m) beside the Expense into the ledger window, there is a toggle toolbar button on the top.

↑ Back to Top

Currency

A currency is a money that is used in a particular country at a particular time, or it can be a cryptocurrency as well, or even something that do not exists at all.

↑ Back to Top

Payment Mode

This field is a dual field for payment and works together with the number field.

(none)

When payment do not applied or is unknown.

credit card

A credit card is a payment card issued to users (cardholders) as a method of payment. It allows the card-holder to pay for goods and services based on the holder's promise to pay for them. The issuer of the card (usually a bank) creates a revolving account and grants a line of credit to the card-holder, from which the card-holder can borrow money for payment to a merchant or as a cash advance.

check

A check (or cheque in English) is a document that orders a bank to pay a specific amount of money from a person's account to the person in whose name the cheque has been issued.

cash

Cash refers to money in the physical form of currency, such as banknotes and coins.

bank transfer

A bank transfer is a method of electronic funds transfer from one person or entity to another. It can be made from one bank account from or to a bank account you don't own.

debit card

A debit card (also known as a bank card or check card) is a plastic payment card that provides the card-holder electronic access to their bank account(s) at a financial institution. Some cards may bear a stored value with which a payment is made, while most relay a message to the card-holder's bank to withdraw funds from a payer's designated bank account.

standing order

A standing order (or a standing instruction) is an instruction a bank account holder ("the payer") gives to his or her bank to pay a set amount at regular intervals to another ("the payee's") account. The instruction is sometimes known as a banker's order.

electronic payment

Electronic payment is a feature of on-line, mobile and telephone banking, similar in its effect to a giro, allowing a customer of a financial institution to transfer money from their transaction or credit card account to a creditor or vendor such as a public utility, department store or an individual to be credited against a specific account.

deposit

A deposit is money placed with some other entity. It is a credit for the party who placed it, and it may be taken back (withdrawn), transferred to some other party, or used for a purchase. It is often used with respect to banks, where deposits are usually their main source of funding.

financial institution fee

Bank fees are assessed to customers for various services and as penalties. There are unauthorized overdraft fees, ATM usage fees, and fees for having an account balance under a required amount.

direct debit

A direct debit or direct withdrawal is a financial transaction in which one person withdraws funds from another person's bank account. Formally, the person who directly draws the funds ("the payee") instructs his or her bank to collect (i.e., debit) an amount directly from another ("the payer's") bank account designated by the payer and pay those funds into a bank account designated by the payee.

Mobile Phone

A mobile phone payment can be done in many ways, pay apps, nfc, etc.

↑ Back to Top

Number

Initially designed for cheque number, but can keep real or value date, card id, txn id, number, person, etc.
this field is automatically filled for cheque numbers, when you select payment = cheque.
This is not a memo, not an additional memo field, and it is not designed for such usage.

↑ Back to Top

Split

Split is the ability to cut out the amount of a transaction to multiple categories.

Managing split is done in the Split dialog from the Transaction dialog.

↑ Back to Top

Scheduled

Scheduled is a transaction you can configure to be automatically inserted.
Typical such transactions are the one's occurring very often, for example: Wage, Rent, Phone, Taxes, etc...

Managing scheduled is done in the Scheduled/Template dialog.
Please have a look at Using the Scheduled transaction feature for more details.

↑ Back to Top

Template

Template will enable to fast add manually some transactions without too much seizure, most of the fields already populated with correct data

Managing templates is done in the Scheduled/Template dialog.

Templates can also be created from existing transactions from the Account window.
Every template is available as a bookmark for fill purpose in the Transaction dialog.

↑ Back to Top

Payee

A payee can optionally be set for each transaction to later perform sorting, filtering and analysis. The payee identify people you give money to, as like as those you receive money from.
Managing payees is done on the Payee dialog. Payees are global to the wallet and are shared between all the accounts.

For each payee, you can define a default payment mode and category, those 2 fields will be used to populate related field on 2 occasion:
- into the transaction/scheduled/template dialog: if you choose a payee, the payment mode and the category will be filled if none/empty
- at the end of the import, if you check 1) Enrich with payee default, with same restriction value must be none/empty

<no payee> will be displayed when the item has no payee set.

↑ Back to Top

Pending

Transaction may be set to a pending status. This status is an outflow status, so that transaction "ghostly" exists, until you Approve/Reject them.
This status can occurs in 2 situation:

  1. you choose to explicitly import some transaction into that status
  2. you create a transaction with a date prior to the last reconciled date of its account, or prior 90 days before today.

Any account with transactions into this status will have:

  • 'My accounts' list: show a warning icon
  • ledger: a quick filter 'Unapproved'
  • ledger: a warning bar on top
  • ledger: a popmenu (right click) to Approve or Reject them

↑ Back to Top

Category

A category can optionally set for each transaction to later perform sorting, filtering and analysis. The categories are another classification model of your financial transactions.
Managing categories is done on the Categories dialog. Categories are global to the wallet and are shared between all the accounts.

Please also note well that categories and subcategories are the same from a HomeBank point of view, the subcategories are only to create a hierarchy in category tree. This is especially important for the budget dialog

<no category> will be displayed when the item has no category set.

↑ Back to Top

Tag

Some tags can optionally be set for each transaction to later perform sorting, and analysis. The tags are most common to those yo can find in the web, so it is words separated by space. Which mean for composed word you must use a dash to separate the words within the tags like my-card.

↑ Back to Top

Assignment

Assignments are some rule to fast set payee and/or category to the transactions

Please refer to the Using the Automatic assignment feature for details on how using this feature.

↑ Back to Top

Budget

The budget is aimed towards reporting comparing actual values to predefined budget values allocated to each expense/income category. The budget report shows the difference (decay) between the budget and the actual expense/income for each categories. You can select which accounts are included in the budget report.

Using the Budget feature provides a quick overview to get you started. For more in-depth details see the Budget dialog and the Budget report.

The budget is global to the wallet, so if you need to manage a different budget each year, you can use CSV import/export capabilities.

↑ Back to Top

Backup

There is 2 mechanism that ensure you can get back to a several previous version of your .xhb file.

1) the last backup file
Every-time you save your file, the previous version will be saved with .xhb~ (tilde at the end), into the wallet folder.
To get back to this file, you can use the File > Revert menu. If there is no .xhb~ file, this menu will be disabled.

2) the backup file once a day
Each day you save your file for the first time, a .bak file will be created into the backup folder. Which means if you save it 3 times during the same day, only the first save will be saved as the day backup.
To get back to one of this backup, you can use the File > Restore backup menu. If there is no .bak file, this menu will be disabled.

With this mechanism, you have a good compromise between safety backup and data storage.

↑ Back to Top

Balances

A key point of your accounts are balances. HomeBank offers 4 balances covering the entire life cycle of your accounts. You can show/hide the balances you need for your usage, for example hide the reconciled and future for a simple management.

Reconciled : includes reconciled transaction, so this should be the same balance as the last reconciled statement you checked

Cleared : includes reconciled + cleared transaction

Today : balance of transactions until today, ignoring the state

Future : balance of all the transaction : include all transaction currently into the account

n.b.: remind transaction are never taken into consideration into balances, except if you have forced to

↑ Back to Top

homebank-5.9.1/doc/Makefile.am0000644000175000017500000000020012460436056011572 SUBDIRS = images helpdir = $(datadir)/homebank/help help_DATA = \ help.css \ $(wildcard *.html) EXTRA_DIST = $(help_DATA) homebank-5.9.1/doc/use-auto_addition.html0000644000175000017500000001052114773771665014071 Using the Scheduled transaction feature
HomeBank User manual

Using the Scheduled transaction feature

Scheduled transactions will allow you to automate the repetitive transaction input like bills, subscriptions, insurances or taxes. You setup the transaction once by creating or use an existing template transaction, then set a few parameters to organize the scheduled insertion. HomeBank will inform you when the transaction is ready to be inserted or will insert it automatically for you.

Step 1: Create scheduled transactions

  • open the Scheduled/Template dialog from either the main-window menu or the tool-bar
  • select an existing template transaction, or create a new one
  • check the 'Activate' check-box in the 'Scheduled insertion' area, at the bottom
  • set the insertion parameters:
    • next post date
    • recurrence: every X day, week, month, year
    • week-end behavior to apply
    • optional limitation to X posts

Step 2: Configure the insertion rules and options

A) choose if you Post pending transaction when the program start
By default, there is an option into the preference that will run the scheduled transactions insertion every time you open your HomeBank file, each transaction will be inserted under some condition:

  • the due date is reached (compared to the Maximum Post Date)
  • the account is not empty
  • the amount is not equal to 0

Those last two option enables you to manage the variable scheduled transactions, for amount variation for example. They will not be posted automatically, and no edit popup will shows during the Post pending scheduled transactions at program start, what would be confusing with no context or window behind.

B) Choose the scheduler mode
You can set the scheduler mode into the file properties dialog, this dialog can also be reached with 2 menus: Manage > Wallet and Transaction/Set scheduler...

With the option you choose, a Maximum Post Date will be computed, and automatic post will occur until this date, included.

Step 3: Check and manually manage

In the main window, at bottom, a list of scheduled transaction can be displayed, it's a summary of every pending scheduled transaction post.
If a scheduled transaction is late, you will see a warning icon with the number of post late in a maximum of 10. If the overdue is more than 10 posts, it will shows +10.


You are also able to manually manage the scheduled transaction from here with Skip, Edit & Post or Post with some toolbar buttons below the list.
A small info icon with a tooltip that display on rollover reminds you about the automatic insertion status and also the Maximum Post Date.

A filter enables to restrict the view to:

  • This/Next month
  • Next 30, 60, 90 days
  • Maximum Post Date
  • All

 Note that Late transactions are ALWAYS showed

Al last you have a menu to copy to clipboard or Print the schaduled listview content.

homebank-5.9.1/doc/dlg-xfer.html0000664000175000017500000000566214624374232012160 Internal transfer dialog
HomeBank User manual

Action for internal transfer creation dialog

In various situations, but mainly when you add an internal transfer manually, HomeBank searches for transactions that match the criteria (see below) for the target part of the transaction and this dialog will always popup to select the action you want to, including create the target transaction.

In version prior to 5.8, this dialog was only showed when at least one operation was found, otherwise the target part of the transfer was created automatically without any confirmation.
You can change or return to this previous behavior by disabling the option in Transfer behavior section of the preferences.

Dialog popup

  • when you add a new transfer
  • change a transaction to a transfer
  • check the internal transfer consistency from the ledger window

Using this dialog

Source transfer

Display the transaction detail that triggered this pop-up

Target association suggested

List the transaction that may be the associated transaction for the internal transfer. A kind of matching rate is also computed.

The matching criteria of transaction are:

  • transaction not already an internal transfer
  • date is +/-nb days set in Transfer behavior section of the preferences.
  • same currency: amount is exact opposite the source amount
  • diff. currency: amount is +/-10% opposite the source amount

Action button area

Use Selection After clicking on one of the target into the list (otherwise this button is disabled), this action will link the internal transfer and the selection as its internal transfer target.
Create New will create a new target internal transfer into the destination account.
Cancel
(or dialog close)
This will abort the target creation
homebank-5.9.1/doc/dlg-spli.html0000664000175000017500000000567514742663630012173 Split dialog
HomeBank User manual

Split transaction dialog

The split dialog is used to edit,modify and manage the split of a transaction.
The split number is limited to 60.

Dialog call

  • transaction dialog: S button

Using split transaction dialog

split list

The split list shows the split number, Category, Memo and Amount.
 you can use drag and drop to reorder the split lines

Actions list buttons

edit edit the active split line
- remove a single split line
= remove all splits lines

Split line details

Category the category of the split line
Memo the memo of the split line
Amount new the amount of the split line, with optional inline calculation
to force a positive amount enter +xxx
to force a negative amount enter -xxx

Split line buttons

Add
Enter the different fields, the add button will be enabled when the amount is different of 0.00

Edit
Double-click the split line to edit, then you will get 2 more buttons to Apply, or Cancel your changes

Split information

Depending on the context, the following will be displayed:

Transaction amount transaction amount as a remind
Unassigned remaining amount for the split: transaction amount - sum of splits
Sum of splits sum of every split lines
homebank-5.9.1/doc/use-auto_assign.html0000644000175000017500000000377014742666501013556 Automatic assignment
HomeBank User manual

Using the Automatic assignment feature

Automatic assignment will allow you to automatically set a Payee and/or a Category to a transaction based on a string contained in the Memo or Payee. The assignment is applied after each file import so that you gain some time with assignment of Category and this permit to ensure the right Payee is set as well.

Step 1: Create assignment rules

Open the assignment dialog from either the main-window menu or the tool-bar.

Then create an assignment rule:

  • click the Add button
  • fill in the text to search into the Memo/Payee field
  • optionally check the case sensitive check-box
  • select other assign options

See the assignment dialog for further details.

The rules can be reordered by using drag & drop, as they will be evaluated in the list order

Step 2: Trigger the assignment

The assignment rules will occurs:

  • You trigger it manually from the Account window menu Actions/Auto. assignment
  • After a file import into HomeBank using the import assistant

homebank-5.9.1/doc/win-vehiclecost.html0000644000175000017500000000600614617646064013551 Vehicle cost report
HomeBank User manual

Vehicle cost report

The vehicle cost report will focus on your vehicle costs including fuel and repairs. It also display miscellaneous information like fuel consumption and others.
Please refer to the using the vehicle cost feature for details on how using this feature.

Window call

  • from the main window-menu: Reports / Vehicle cost
  • from the main window-tool-bar.

Using vehicle cost report

Display

Vehicle select the category used for your vehicle costs

Date filter

Range fast select a date with predefined range
From / To specify date bound limit to restrict the results to

Tool bar

The tool-bar is the main control of the display. All tool-button have a tool-tip that will help you know what action will be launched when you click on the tool-button.

Global results

Meter the meter of the vehicle
Consumption fuel consumption
Fuel cost cost of the consumed fuel
Other cost the other cost for the vehicle (insurance, repair, ...), which mean the transaction affected to the current vehicle cost category not containing (d=xx v=xx)
Total cost the total cost for the vehicle in the selected period

Detailed results

This is a list-view which contains the detailed date by date refuel done for the selected vehicle.
The list can be sorted, just click into the column title to change the sort order.
At the bottom is the total line, except for price which is the average price by liter.
There is no results for 100 km & km/l until you have at least 2 full refuel in the list.

homebank-5.9.1/doc/help.css0000644000175000017500000001110514773771650011221 /* ** homebank documentation css http://webdesign.about.com/od/colorpalettes/ig/Color-Palettes/Apple-Color-Palette.-EQ5.htm #979797 #666666 #eeeeee #000000 #0088cc #cc8800 material design https://material.io/resources/color/#!/?view.left=0&view.right=0&primary.color=33691E&secondary.color=795548 https://www.rapidtables.com/convert/color/hex-to-rgb.html light dark primary #33691e #629749 #003d00 second #795548 #a98274 #4b2c20 */ /* suggested line-height:140% */ body { /*font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Helvetica Neue", Arial, sans-serif;*/ font-family: system-ui, sans-serif; font-size: 14px/18px; line-height:140%; color: #333; background-color: #F5F6F7; } a { color: #33691e; } a:hover { color: #629749; } a.lex { color: #69331e; } a.lex:hover { color: #976249; } h1,h2,h3,h4,h5,h6 { /*font-family: Times, 'Times New Roman', serif; font-style:italic;*/ color: #33691e; font-weight: 600; } h1,h2 { font-weight:800; } h1:first-of-type,h2:first-of-type,h3:first-of-type { margin-top: 0; } h3 {margin-bottom: 0.25em;} /*h1 { color: #f57900; margin-top:0; } h2 { color: #3465a4; } h3 { color: #484848; } h4 { color: #484848; } h5 { color: #484848; }*/ /* h2 { color: #fe9500; } h3 { color: #4686c0; } h4 { color: #3c3c3c; } h4 img { vertical-align: baseline; padding: 4px; } */ ul, ol { /*list-style-type:square;*/ overflow: hidden; margin-left: 1em; margin-top: 0; } p { margin-left: 1.5em; } h3 + p { margin-top:0; } /*ol li { margin-top: .5em; }*/ .padleft { margin-left: 3em; } .toc li { /*list-style:none;*/ list-style-image: url(images/arrow.png); } .step li { line-height: 20px; } .csvexample { font-family: monospace; border: 1px solid #ddd; background: #efefef; white-space: pre; margin-left: 16px; width: 50%; padding: 8px; } .argument { color: #888; font-size: 110%; } .rounded { border-radius: 6px 6px 6px 6px; } .mainpage { margin-top: 100px; } .mainpage p { margin-left: 0; padding: 0; text-align: center; } .dochead { border-bottom: 1px solid #E1E1E1; padding-bottom: 8px; color: #888; } .title { border-top: 1px solid #FFF; padding: 16px; } .top { margin: 0; padding: 0; font-size: x-small; } .row { display:flex;width:100% } .content { background-color: #fff; padding: 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.3); margin: 0 1em 1.5em 0; width: 96%; } /*.content h3 { color: #795548; } */ .gfx { margin: 0 1em 1.5em 0; margin-top: 16px; /*border: 1px dashed rgba(0,0,0,0.3); border-radius: 6px;*/ /*border:1px solid red;*/ } /* navigation link */ .navig a { color: #484848; padding: 0 4px; } .navig a:hover { background: #DDD; text-decoration: none; border-radius: 4px; } .navig p { margin: 1em; } .head { border-top: 1px solid #babdb6; background-image: url(images/top-gradient.png); background-repeat: repeat-x; background-position: top; height: 30px; margin-top: 4px; } .left { float: left; } .right { float: right; } .clear { clear: both; } .gtkshot { /*box-shadow: 0 1px 3px rgba(0,0,0,0.3);*/ box-shadow: 0 0 12px 1px rgb(121, 85, 72, 0.68); margin-left: 0.5em; margin-bottom: 2em; /*padding: 2px; margin: 1em; text-align: center;*/ /*#005C9C;*/ /* background-image:url(images/top-gradient.png); background-repeat:repeat-x; background-position:top; */ } .gtkshot:first-of-type { margin-top: 0; } .content .gtkshot {margin: 1em;} .gtkgroup { margin-left: 16px; padding: 0; background: red; } .gtkgrouptitle { font-weight: 700; color: #000; } .concept p { margin-left: 16px; } .concept h4 { margin-bottom: 0; } .note { border: solid 1px #eee; background: #efefef; margin: 16px; padding: 8px; } /* table */ table { line-height: 120%; margin-bottom: 16px; } td,th { vertical-align: top; } table.ghost td { border:none; } table.lexicon { width: 100%; table-layout: fixed; } table.lexicon td,th { width: 20%; text-align: left; } table.lexicon i { font-size:75%; color: #888;} .hotkeys { table-layout: fixed; margin-left: 16px; } .hotkeys td,th { padding: 4px; border: 1px solid #E1E1E1; vertical-align: middle; } .t2col td { width: 50%; } .widgetinfo { margin-left: 1.5em; width: 80%; } .widgetinfo th,.widgetinfo td { border: 1px solid #E1E1E1; text-align: left; vertical-align: top; padding: 2px 4px; } .widgetinfo th { width: 20%; background-color: #DEDEDE; font-weight: 400; font-style: italic; text-align: right; padding-right: 1em; } .widgetinfo td { background-color: #fff; background-color: #EFEFEF; } .warning { color: #c80; } .i { font-style: italic; } .u { text-decoration: underline; } homebank-5.9.1/doc/use-reconcile.html0000644000175000017500000000465714330022550013171 Reconcile
HomeBank User manual

How to Reconcile transaction with your statement

The reconcile process can be done quite easily use the existing features and as so, it has no dedicated feature or dialog.

  • Step 1: Get your statement
  • Step 2: Open the corresponding account
  • Step 3: Change to sort the transaction list by ascending date
  • Step 4: Ensure the date range will not hide transactions
  • Step 5: Ensure there is no reconciled transaction past the statement start date
  • Step 6: Ensure the Bank balance of the account is equal to the initial amount of your statement
  • Step 7: Change the Status quick filter to [Unreconciled]
  • Step 8: Check and mark each transaction as Reconciled
  • Step 9: The Bank balance should match your statement end balance

Check and mark each transaction as Reconciled

One transaction at a time:
  • change the transaction status to [Reconciled]
  • after each, ensure that the Bank balance is still on track with your statement
  • if not, try to find what is wrong before continuing
    you may have ticked the wrong transaction, or amount is not correct

If the balance are not equals at the end ?

Here's a few tips on how to manage the decay that may occur during or at the end of the reconcile

  • change the filter to [All range] [Any type] [Any status] to help finding transaction
  • = this icon shows the transaction you have changed
  • measure the decay, it might just be a single transaction missing and try to find it

Finally, it is sometimes easier to go back and start reconcile at the beginning.

homebank-5.9.1/doc/00-whatsnew.html0000644000175000017500000001027314740747152012521 New features
HomeBank User manual

What's New in HomeBank 5.9

For each release the complete list of changes can be found into the ChangeLog file.
To read the ChangeLog, you can use the Help > Release Notes menu from HomeBank program.

This page only focuses on some of the changes.
Older what's new in X.Y can be read into previously on HomeBank...

New features in v5.9

Basic inline calculation in amount txn/split dialog

This version introduce a basic inline calculation for amount in the transaction dialog and the split dialog.

Also this changes enables to empty the amount field when there is 0.00, to ease new input.

↑ Back to Top

2 new icon sets

This is something I work in shadow since many months now, legacy png only icons deserved a refresh. I also like to draw in my spare time, so most icons are complete creation, using Inkscape.

This 5.9 introduce 2 new icon sets:
- 1 colorful in SVG, named Default
- 1 symbolic, mostly inspired by material design ion style

The new colorful svg set will be the default.
Go to the preferences to change it, or toggle the symbolic, or revert back to the legacy set.

↑ Back to Top

New scheduling options

The scheduling function was improved to enable recurrence like 'Last Monday', 'First Friday', and so on.
The design was also changed so that we are close to what you can observe in other tools.

↑ Back to Top

New pending status transaction

A new pending status was created for this new version.
This will ease having a specific workflow when you import some new transactions, but also enables to mark added transaction manually that could break your balance, because they are inserted in the past, and so needs a review before being part of the flow.

↑ Back to Top

Re-layout of assignment dialog

Several changes were made to the assignment dialog to improve usage and readability:

  • re-layout
  • listview: added icon for 'case sensitive' and 'regex'
  • listview: added tags column

↑ Back to Top

homebank-5.9.1/doc/dlg-tran.html0000644000175000017500000001521414742663702012154 Transactions dialog
HomeBank User manual

Transaction dialog

The transaction dialog is used to add, edit and manage the transactions.
Please refer to the Tips & Tricks for additional information.

Dialog call

  • main window menu: Transaction / Add...
  • main window tool-bar.
  • from the account window-menu: Transaction / Add... / Inherit... / Edit...
  • from the account window transaction list: by double-click on an transaction

Using transaction dialog

Type of transaction

the type of the transaction, between: Expense / Income / Transfer.
Transfer is the internal transfer of <v5.3.

Use a template

Select a source template definition to fill in the transaction dialog fields.
Starting 5.5.5, the list display the 'memo' field if it is not empty, otherwise it display '(no memo) payee / category'.

Transaction details

Date date of the transaction
- the input and display is based on your locale, so the order can be dmy / mdy / ymd, the display uses (strftime %x).
- you can input: day, day/month or month/day (depending your locale) without year, or a complete date, with 2 or 4 digits for the year.
- if you input a bad date, the date will be reversed to today's date and the input switched to warning (orange border in Adwaita, may be different for other themes)

 you can use keys combination to change the date.
 the right side button pop-up a full calendar

Amount new amount of the transaction, with optional inline calculation
use the top Expense/Income to change the sign
(transfer Amount) this second amount is only showed for transfer with account with different currencies
this will the transfer amount in destination account currency
this amount is prefilled only when you Add and if:
- the source account is into base currency
- the target currency have a conversion rate
otherwise you have to fill it manually
Account
(transfer From/To)
account the transaction should be attached to, and from/to for transfer.
Payment payment mode for the transaction. It will be displayed as small icons. See the lexicon for payment detail
Book 2 displayed when payment is cheque: select the 2nd cheque notebook
Number (Payment) Payment mode direct related information, date, card id, person, cheque number, etc. see the lexicon for detail
Payee payee of the transaction, see payee definition for further details.

 Entering a new payee here will create it.

Category category of the transaction, see category definition for further details.

 Entering a new category here will create it. Example: 'Wage:Salary'.
the list is sorted by type and then alphabetically, if amount is expense, expense category will be at top, if it is credit, credit category will be on top.

Status The different status a transaction can have:
Memo memo of transaction.
and optionally vehicle cost data, see vehicle cost.
Tags tags of the transaction, see tag definition for further details.

Action button area

The transaction dialog enables to input several transaction to the chain. Both [Add & Keep] and [Add] button will add a transaction. Then, the behavior to input a next one, depends on the button you click and the preference you have set:
Add date will be set, according to the Keep the last date preference:
- ON:  date is KEPT
- OFF: date is TODAY
All other fields/data are CLEARED
Add & Keep All the fields/data remains after the transaction is added
Close Close the dialog and do nothing else

homebank-5.9.1/doc/win-main.html0000644000175000017500000001424114775010223012150 Main window
HomeBank User manual

Main window

The main window is the basis of most of the HomeBank actions. It is the first displayed window when you launch HomeBank.
Closing this main window will close HomeBank, after a warning if the some unsaved changed are pending..

Drop files

You can drop one HomeBank file at a time(.XHB) to load it.
You can also drop one or several files to import (.OXF, .QFX, .QIF or .CSV).

Menu

The menu is the main start point of most HomeBank actions.

Toolbar

The toolbar provides easy mouse shortcut for some of the menu. All tool button have a tool tip that will help you know what action will be launched when you click on the tool button.

Your accounts

listview
This list shows a summary of every active account in the wallet. It can be grouped by:

  • type
  • group
  • institution

In the pop menu button, there is a 'Show all' option available to temporary display account excluded of the account summary.

The first column indicate the change made to an account:
= transactions added
= transactions modified

The balance area contains the balance summary of the wallet (all accounts), see this page for details. If the minor option is checked in the preferences, a minor toggle button appear here, see this page for details.

actions
To show/hide balance columns: right click on the knob in the first column header
To open an account, and show its transactions, you can double-click on it, or use the tool-bar, or the menu. If you select and account and open the add dialog, it will preset the add to this account.

tooltip
When you hover an account, depending on the data available and balance and overdraft/maximum settings, a tooltip will be displayed as follow:

Account Name

last reconciled: the last date this account was reconciled
amount until overdraft (overdraft amount limit)
amount before maximum (maximum amount limit)

Total chart

The total report display total of Spending/Revenue or raw Expense/Income for the selected date range, you can select using the gear icon button:

-- Top by --

  • Category
  • Payee
  • Account

-- Balance --

  • Account
  • Account group

Raw Amount:
By default the compute is Spending/Revenue which is based on the category sign of each transaction/split, it is ignored if no category. If you tick this option, the compute switch to raw Expense/Income based on each transaction/split amount sign.

You can define the default period and the X into the preferences and change into this main window when needed.

Depending on the space available, amount and rate are displayed with the legend, also a total balance for the period is displayed. And of course a nice donuts chart !

Time chart

The time report display month total by month Spending/Revenue or raw Expense/Income for the selected date range, you can select using the gear icon button:

  • Spending
  • Revenue
  • Spending & Revenue

-- Balance --

  • Account
  • Account group
  • Global

Raw Amount:
By default the compute is Spending/Revenue which is based on the category sign of each transaction/split, it is ignored if no category. If you tick this option, the compute switch to raw Expense/Income based on each transaction/split amount sign.

This report also show a forecast, when it is enables and in date junction, see forecast lexicon for more details.

Bottom transaction lists

Scheduled

This list displays the next occurrence of scheduled (automated) transaction and their state, please read the scheduled transaction usage section for more details.
new There is also a menu to copy to clipboard, or print.

Future / Remind

Those 2 lists are filtered display of All transaction window, showing respectively:
- any future transaction, future means date > today's
- any transaction in remind status
In order to keep consistency, the columns choose, order and width inherits from the settings you made in 'All transaction'/Ledger window.

homebank-5.9.1/doc/misc-csvformat.html0000644000175000017500000001637114617647073013412 CSV file format
HomeBank User manual

File CSV format

With HomeBank you can import/export some of the internal data in the most common file format that is CSV.

Notice: meanwhile CSV should uses comma as separator, HomeBank uses semi-colon as separator (this is most common than comma)

The format used for the different files is specific to HomeBank, so don't expect to import files your bank should offers you directly, you will need to arrange it a little in a spreadsheet like Gnumeric before.

Below is a description with example of the CSV format that HomeBank uses.

Transaction import CSV format

date the date format can be:
  • y-m-d
  • m-d-y
  • d-m-y

year can be 2 or 4 digits
separators can be / . or -

payment 0 = none
1 = credit card
2 = check
3 = cash
4 = bank transfer
 not allowed because CSV do not support multiple accounts => will be imported as 4 = bank transfer
5 = internal transfer
6 = debit card
7 = standing order
8 = electronic payment
9 = deposit
10 = financial institution fee
11 = direct debit Please read the lexicon for description of each payment
number a string
payee a payee name
memo a string
amount a number with a '.' or ',' as decimal separator, ex: -24.12 or 36,75
category a full category name (category, or category:subcategory)
tags tags separated by space

 Starting
v5.2.5 : you can change the separator for transaction import into preferences.
v5.1.8 : bugfix: import of payment '5=internal transfer' will be imported as '4=bank transfer'
v4.5 : tag column is mandatory

Example:

      15-02-04;0;;;Some cash;-40,00;Bill:Withdrawal of cash;tag1 tag2
      15-02-04;1;;;Internet DSL;-45,00;Inline service/Internet;tag2 my-tag3
      ...
    

Transaction export CSV format

The format exported is by default the same as for the import (described above).
But depending if you export from All transaction or choose some options, it can have more columns:
from All transaction a first column is added and named: 'account'
option: Add Status column a 'c' column after the amount, and before category column
option: Detail split lines transaction with split are exported as extra lines with every split details
c is the status of the transaction:
R = Reconciled
C = Cleared

 Starting
v5.4.3 : you can optionally export every split line
v5.4 : the c column was added to the export

Example:

      15-02-04;0;;;Some cash;-40,00;R;Bill:Withdrawal of cash;tag1 tag2
      15-02-04;1;;;Internet DSL;-45,00;C;Inline service/Internet;tag2 my-tag3
      ...
    

↑ Back to Top

Budget CSV format

level 1 = category
2 = subcategory
type * = monthly
blank = month value
category if < 5.4 the category name
if >= 5.4 the FULL category name
value(s) 1 amount : if the type is monthly
12 amounts, separated by ';' : if type month value

Example:

1;*;Fuel;45.00
2; ;Domestic animals;1.00;2.00;3.00;4.00;...
1:*;Food;17.00
2:*;Phone:Bill;25.00
2:*;Water:Bill;50.00
...

↑ Back to Top

Category CSV format

level 1 = category
2 = subcategory
type - = expense
+ = income
category name the category name

Example:

1;-;Food
2; ;Grocer
2; ;Restaurant
1;+;Wage
...

↑ Back to Top

Payee CSV format

payee name the name of the payee
full category name optional: since 5.1.3
the full name of the category

Example:

payee_name1;cat1:subcat1
payee_name2;
...

↑ Back to Top

Tag CSV format

tag name the name of the tag

Example:

tag_name1
tag_name2
...

↑ Back to Top

homebank-5.9.1/doc/dlg-mult.html0000664000175000017500000000311514736461243012167 Multiple transactions dialog
HomeBank User manual

Multiple transaction dialog

The multiple transaction dialog is used to edit multiple field of multiple transactions at the same time.

Dialog call

  • from the account window-menu: Transaction / Multiple edit
  • account window tool-bar.

Using multiple transaction column edition

  • select several transaction, holding SHIFT or CTRL
  • keep holding CTRL or SHIFT and double-click on wanted column (see below)
    (or use the menu or tool-bar 'Multiple edit')
  • tick the fields you want to mass edit
  • select/fill the right value

If you double click a specific cell (column+line), which is editable, the dialog will be initialized with that value.

You cannot edit hidden column of the list-view

Please refer to transaction dialog for description of fields.

homebank-5.9.1/doc/win-budget.html0000644000175000017500000000643414742664207012516 Budget report
HomeBank User manual

Budget Report

The budget report will summarize your running budget and will display its result.
Please refer to the using the budget feature for details on how using this feature.

Window call

  • from the main window-menu: Reports / Budget
  • from the main window-tool-bar.

Using budget report

Display

Mode Total: will display the total by category for the period
Time: will display the total per month for the period
Type specify the result should be computed for:
  • Exp. & Inc
  • Expense
  • Income
Only out of budget will only show the item that are not on track

Date filter

Range fast select a date with predefined range
From / To specify month-year bound limit to restrict the results to
Until today new restrict the transaction to today

Tool bar

The tool-bar is the main control of the display. All tool-button have a tool-tip that will help you know what action will be launched when you click on the tool-button. The icon appear or not depending the context.
At the end of the toolbar, there is an export button that enable Result or detail of transaction to copy to clipboard or export into a CSV file

Total

This is the total of columns of the list-view for: Spent, Budget and Decay

Result list / Bar chart

The result list display the computed amounts according to the current selection.

Transaction detail list

The transaction detail list will show every transaction of the selected item in the above result list.
The columns visible in that list are those configured in the account window.
By default it is not visible. Use the tool-bar 'Toggle detail' button for changing this.

homebank-5.9.1/doc/images/0000775000175000017500000000000015006374032011067 5homebank-5.9.1/doc/images/pm-fifee.png0000644000175000017500000000117713604617136013220 PNG  IHDR(-S2PLTELiqwfUxxZvbK~va~u`}vbwb~vbwcv`xo]voYphVwbwcwb|gkjogaPnfUvsxb{s^½½Ƚȼ wb## 4477~ik￿9 :tRNS "-Bampz}8IDATxc`v~Y>6UҳVqŵ M5Ź|A c#u9995Cc A U1&$8<:>:,8$V((lkC U@ "`CD2C $Annn``* `^N r)`(  vvvvvR BrP`b`c+ \VV2 M*$\jIENDB`homebank-5.9.1/doc/images/use-favfilter.png0000644000175000017500000001365514617624232014310 PNG  IHDR=>PLTEĿ栢Я᧨hjj챱xyyuwxoqr儅}klmQRSfggrsty||bdelopLPRabbsuvJMNUWW]^^nnnCGI|}}=BCX[\,239<=r￿(+49;L{gH֭tYn[q !Mbȡehхμllm̹㴣9ˆǷϜɳָۮTJ;~ϙ`ӹ@wþļN?nIDATxXپg&1($WM(!`&Xk,׺}nL4FMdS~{wfƂJ\99s g+ȶa$ vOȶgagVd#: mw!d9X?!+NaҁcG\B6ðKέ́|l7ۻW^\r%'̉}?B{;O =~C B) $ӄvp $G^˷K\{u|Ǥ)HCahʸ̐oCy9YgMEE(D~?Ќ$<^iah̎͡s~K .n]G[iW[ǰߺ2`D4S_hҦ#vm@4E9{y.;η~C2J\.T<-ojr"WBȦ :xt"ߓwvC",6=dw}޽5 WsD!pi4= wL&`.syq8JPS|6'52|Fh9kq%)#9†PoRܗZ_?ќο-@^}U[ K+KhTMe ܓ7/ՅE$n9Taqђ:R_:S5P]r 8vvüJpa>K;;mtTΝ{8_uRTR:< jZKڮ69˨#$rFpZjʣ 7&+-5g֔B6/sc19A"431zEig""f4 `tt֨GCm[HXv8xķ/K"=!i#hKMTrTpV[rï8d,udm2D+nCZE13Qr_u#GR,H8\?:lCeMCZg }~dRd eB&2|鷣/M!?=wxr&ʯ^qaznR=@PwșZʉsr.E'.f3N^,[Lc.j FwWL2gU'&'!Ctv!|rhp&#ǹGj8dAEl|jGZg.?h꧱q~^z5-ᴊ.Z6LȔr+#`9dǢj E 4i4(_c*Zt%s2 qhhp0|hsR!V8(h|:pwxlHfTsM@.TG/ ̎A&̔H .;R)*EǘdHB|З5%A#Yֻ<}_! CP2^2EᣐQ?PSZ@8X}~E?:̕Z 21 3g(0}6<_g '.}_B?6(9~v}?E]{=&xv3xA=fȚ^|.s:MF3˺ :aQ /܁(X!/GB0mE8]yф(+b} w]H6C$)(>q|{so"Ej,R(@D} t`kR>huV!}R>8u hZ/ ʤ)s8LLCTGkHDrU@@fh6/5B Kx'y @$xpObƃ_ͪ*thUWgws% a**ѥV<[ݐ|>A; G:֥Odgf~+'2]a?",<Ĉb\8`1:kvS;ÓI"a7ctDgm> .h\X@ӗlٛLX7W +9HR‘X?eHj>,w8urgn$Yyt%sU;;0 . >J:iOh88`Zz`b4nzq)mڼ,ÿt 1 uQƩJ ]~#*KO|%8oϹ^|'6Fz?@]./jpQOt474IENDB`homebank-5.9.1/doc/images/dlg-properties1.png0000644000175000017500000002306014774772452014560 PNG  IHDR*xPLTEyUHſ߉ofuwxѭX\]ޒٚsuvacdprswyzeghlno|~~IMNnppnqry||SVWrttuww}(03]`adefhkl@EH[^^{YMgijMQR{|}CGIKOP>CDVYZFJLOSTkllÿ;@A,35/68jlnzzz#+.39;7=?'*hii􋋉#񦖑rjyrmd|uo "IDATx\GWlql"K MN\PV BEH @m:wL1`:8bb srqRrJ B&ڿ4;;[3;;;$$$$$$$$$$$$$$$$$ k&,/e,L-E&㓎@5#1Syޣ* ; Tޱű Τ+_[--P'Hh&UͨJ\*ޕ|_y$+L>UR^TugT3 STJפ^%s,=~*\T}\hBZ-]_}_9S/^yR+ eON2_٩WS(F]"˫*Mz 2M|R򃫩o~:XшߞZRMBrs;jx SVQ ~zLQ9Q3 +UWMzpʪULQUۉk.غjTpE!Ә*fQI"Ⱦը۲Bt1"A٪?y{;m']\norrcɍ'Uͅ4*fhF-H4WUVȁί|m'cǮݛTzD.hVZ1rzTUSDBGtfd$WxM9q8eX2*L]PRQzT Ui l0BY^}9E)>sh쯎 NtGzS5baNT6;WE368j*%.{o~1ʟڬC T0:d9̔bĝj[ZH~O\U6չ<1DɒsEo(* U<@܀`)WATEZLUu]TL_<`%\?[<O[Sy$$$$$$$$$$$$$$pzs5Qp1"|A.)R`3ؗUzmnWm3|5J=?=S_& Xt4{$ZЍdTh h6@N `ɞ$Tӑ!tO``WH C8 =u@]Qh] # $w%4O8l]腾á#ӽG .,,g{gL$K˘Iܦfv`b#`O X3bQY~Jk8WBԭ uM]'"O-!N> 'o]'+OPu^K\2)LuEu\{aI*QvdZ1ob?0H ځFÛ TnAĞ1aTbG]NCdɿmAIFi&^ϸw<ڐ}Pt xj ]029") ˔_ZW>"Mu i`@p7ۂF? `nB3HV2P`΀/l/^92Bǘ]BClC] q5aHĤ\mR' ʑBJBȓ[;$+ĐƓMRvHϤ!A0fh86{S6 }I 4_qe;_ T*УVS9WQȁ"| Çl)`G(ğ!~Q-|T׀1,XE}ǤkuB̮s(\;'À-!G +d-]jd-WqC8R$pZi]4->c/ \:^Nr-Q"TA] 偈+pf䔪qR}!*~ib,S 0}4]'cHPK-b `4O_zBHZP 8Teum9V#.9-K*N3+A`oօTiǹ~>.B$sҗ&L H|,KTU. .?Xp4=X2\iU} )1Lҵ3BI}RkR1}L16CR_l>/_D=wC4l=|) 1AT <}\'(ȷxSiʄxHFO'-qh;ILȫ84$h! D@/r[)Ta ;85/d"n53uft]N;)YOTD&-:t:ݴ.T'PE!h")ũ-MsujSgHTEs<Ϝwҧʔyd4O JB5Xhs&%p°y"w# k/Ȼ6fa/7 \t*{ӳbg/rG B~1*?2ͦ Z -wHM3 }9TM q:9 wGCUOQeU_5*F\q!>vu;8[Ӭnv>Wsr a*k<[CU.w5ܹύyPղUH $)>sh"= iU2geIV#LoIDEq}Jx| T`601D"%ڜ?+<6wwE&ڼ> TY,of!9l|O?|a "w7߸'MfP[İYyMJ ~,]iUv8GD(õŽvK uHUd&IMLz?U}tO_g6W]؁Mbչkm_$~Vs+g7ug{@*ey-)O)^+CCByGSvh[yN=7apdZY'-(Ú3dhZ:]J-w s>)ohT-$B\Fk揳fJ:|:o^Qϳظ?kH\=ٵ[:6<gAwS][r\+^BHj7yTKS8Ţ6Epj{MRLr'9fsp檎9-kpp+spWT,BUS}u&,U~ґ?=sZq}y9/H kG:U*ynvZ{uQ[ ca_aύI s`6ŜYlYTy(݃(B0'ηZ5 u? vg3bpU[-įdY{鱟Y`YYE:~vf}N-^v,ǦY69˺.U*qU~։Ū.S㺹qށa01~X<EݰŖCUL|xnyyJrx~ΌQ.x#+np6)Bbl|S蘭QM_dwԕU66>O&nJ(=s T9̬nЕCagWu$ۺVֆd&SRJYlT( xE!BGJN tt4X( twrS3G( J g0#KY>U5W|AYER5S(qO1KU0q ! vUx%!Š"+O&co pz@m}˪TmyRotWwr 8h\(h}G]qCUR%uu$비ڢC EQպT[ޕ:.UьZ8Bq_\U7Y ]նwˍ#l i` K؄**͡z DxPV*PUu{Ђ|U\Ѩj >էo`:2>n$«Nij`>HjTETS&߈%Tq3 U5WAKF΀Tg0`#ج>c橂~P9 hO0dC UۋU[go#/lk|0.SvTaQ]o5*^BBb.UKp%{w~5bݭLv㶇Vm ݇v>g^7k̳@BBBBBBBBBBBBBBb^Gt l% ^w{?&Rh|rIMW%t D;5ʫ*,*s / l΀/]jٶ^Uen sPxԪ $S~w:nA?GJO|NL\}ϝW?*G@RY'R нW׮ lDkC?4nN6\*D?c{˂*U;@08f7'7*Vuyz`Z,eȵ&D_J8 B>\pS͡jW)-sXkzqV5Yze1@#Ay1&k7L.S4si\V U5rCUQ)\ U &-*+E'(zcP W1T8H;G U٬;VV'+i!yc /=ɷ UIc h@ \A`ɴ5!aD?b ۞Y@E1t+l>`5`^$?wsܱ=//xbE*j!EMTs+|:EGq{$u+ Ne@`@ zĨ댰52 j,)A,ml?'ecU z`s"UA*΃o>d/lygUDTfUyZU†K.qfi;ߟ][$ b?ǯZyfnfa9!aivu 1cTDd#TgC4/4]R X46 4JGԼNZ-&tVyG)^SEvmOtѫzEjSWR^6q-+׮ FGYAurUurxEX9^ú!K媿Q~ΗMU7P,-%rv5z(őC6*vv&URq˪9Es%!돔믘|\b9Uoi L$Zb z?R*|*"P['Ds0q,5F. jBk=zH۝ʂX^ 󡪋GE+ԎdChimAJ[B1T\uc o4Uex뒯/qQ<9;Xޝ!GeY} g(`p^ ר"unuW`aX݋ޣinœU)UP) a~nv-YU,CZR<4Ň=)^Cx@SZFABPgA5prd2c YOZbRx10jh[}P ( 粌_f02Q'0@,:`ΞPdh"VKVrЩZiڢVj%E'Lb9ji.UUQMsJ4q% jL5u;&-% Vl^ k.tkA :zAG_E?o3{`HIENDB`homebank-5.9.1/doc/images/win-main.png0000644000175000017500000012145214774772452013262 PNG  IHDRxPLTEKv=$&yUHؖwſʵd(չݴighǯӪYӉ}Ƣ{wziղ鮯|ܪҊngh፪ꨩͱЭwϼ诩Ĝ{@gߡa\]ʞiYFCIoqs{poRTTx͑麵ǵ|x穏d~Se_wwZfyϮj+*4qͰ[{}nsݟ򬝏TKׄsYh=8:ʃܹ՝cU~VoKJqq,8]䠠iޏw^aG=BHOhif6̚]oe͒͆ԯ6N`ìv;7]^CoZ拸sI};uh ^弄="P0zHr4 T ͒lU.f@ԭVNNZP5*66jJVIDATx XSgOI%x!# <4r Ʉ%-S&ß] PDC-0Lgֿ:Luܦ_GDZ$ \9DbMl60<A׈G_M*P;!x4*S=>iK!t~pB.H;ON$I(< ZR+bRWr;mWy'^L(*7%VF ֲb! =@2_'ʶ<=d)422oQ%OmQaDʶ #d#dMlM:r< =Y}`=}<:P$gia|qӣ@JKR7=<zhOs_'NJGe GGy(5.E:I3 шD*f@sy f1SȑVvwwoZ?GZk?##Cts`{KdK 9ދGrOH!X&l*=Ѭ7+|MmMMb',q I':oo"fI[YQ{wn+!!GWevǯdiLB 2?Dzܼ~ |y qd^n]M8#6rB9a#<+ˀ0*> jqu! -O9rӗ'6'Ɉٻ%qÆ-GJ-</6\-XoVP(l\nf*g~!p0g8?Gx|O}hxIOw?sJRd|Ť:M372rߺ##,̙3%}x/ʐGћ7㱦](IH$tb.Ї eJE@Tl,߰ed2##[w~M&7-jOOZadGGh'r<21$d qC~!!ALϐ766N|N̄G [YLq1Br‰{KĒFl"OHХ &ҙsϙHP<˗}Ҵ}?v&fwm?"j{ sF<:My hnnvq 6Q J;*wc#aⴴf'4LH3E7IaYj}$a ",Ѹ[䑠"-z-%c-Z5e#a.%H&ɽ[n=y~m&(xtpz݌O?x<r"vri&(HOlFV-dV`#p,`Ut{c# xjzwP+`g#n)^DŽH׷E2,*vfs9F'&$ȸ䛵ĕa#O%dHGϿ[S/oU&Zk<iȣ]I<.yԅh\ @ΪDdIdIZtgŊ{Aq/Hq}w8N; n>qt!8mΣ?Db` Qvq0fGc;)4,.="yXdz^`#G?6*ZAZZÄ ( N=*hކ@qG#Ck\\C*UHI#k̝;oT||=&Q8~$U2ѡ4v GYj EF[(ͮ.OfsK3I5®RxladҰҊҌҔҌ̊pRdqҰ( YT# ʎՖ6HbdR $bI}\[vǻ5;%;emytDs}ilwiqxDcy4xGq˛.,sarfmQP$<9[xd=bfY_gfdύ,(y 8J >Xn M<5KT$!~:ٶ%>>v%ģҬUHR&G0CF7Eǣ31ݍrZ֚+XBGAPWY@wу%e% )rZI#GsN`u/Ey-ylڈ|[WжGϣmڈGV0 Nղ@xWWW=C(%p[j%^X2KV@×_ oS'B qx#n#=N,DT֥x-1|u JZulja'QW^ixS )fǴt\# Ⱥ6@< +hT{\5_ ;K ң\Hy7k5i^ĭ㯝JMSH#xv7)ޞ̅SɼJN[Р9^n\-R&b]r.*jrG)xv>ڽ~0TG($P$mjH\vԦrC!%ۣjb&3h!uT:cĕJmҗH Y{X!)Grަ >4 mr^-Х3W2+D΋Wz }/X[E\[X^J *ƄΪ(o2۴ [T0v) K/m*жGfHV- qܘx!d!Pܭ|3L ڗ87#ȼjkWQ&#N~0P_ۏu!â]Y&eFEx /ny@WY_q.Z' ?0xBcTӱ֚X&='N9yc/Oc}yG/#vp_@>֓#?t2jHH Yǭ ? /A0@AvHlґqx\x'S$Gx|@o|+s޺>181z ZMT1P$9 bύGJhZտ3.!˫Q3h?: 揾<rl}+/s]*z˰8 EдMDa{D/ϋZ֚͟`_:vsY|#c_ݼ˵Em2YW_f!{×ѐxG6;WA# [MހcD2qé(DUGr||H!:{i_PiT`c:MIՐ,D<&!Njǩ,DHrRy=?p =b? #sKBw/"ɺʜ!x_=hͰ/fnQp+] 8:@lG,-\y ,ܦ 4'!X'nS@T]z@j@9IvWЉ^IU/#Mؿ^}mͭIۣKQۓݧ]xvTGKԕ<^״ {suMG}\ٞŝlݵC;xSY#657tڿpf\a4. \}OÿUr 1x^nm7M][wB 8@5~k6A" vgl<"oEF׭ L*bSt<(d$DYJ8 `(;z 1 @pe#* ŇtL8SQ> 䅟Nx/K:uuԕHlς¦) MV&7y5M];xK2շi{Tzxޏ=cv_ D ⅞`2S ?Պ@S{:{Tzx\~a2W;rl,*m# n'0y#5MJ"*,:ѕ"vG5,CePȌGWqc@:p) Nޙ弯_Wo) nM8 y󛚚wcqܭI7]Ş>V#GnG8Gvu`(ښYXSMyeFW968+gG`Bc/-}yD@@|krp#n3!2(IR223أ3#[_Ʒo{>gGލ]S '#Le*,]i0gjcЉ)AڦؓXxdCJD-G$g9(_ĮׂD|H9F.zA!V#YޏdU4jBW  Gwj,|d{jitwĪ<:'-O+Fq+# ATK\_?zyDoZ $;!{瑟.AmpDvmh+y[/c=Yi ǼUQ66q%٢jPvBx h'HUɤZ$5Y^ѳ ۝YHqϽfo!^,e]F1+U޶qN<:.2ϢZ|>vO8QQǣt7u3&MvvE ~>[ MvOOgS3iboC>#.VWx[hK4iI[ف}R\QsK}07nY 9C4?tC[ƣVqt`rR|r&ɂ6 %D3-C18R&s>ß =#w GKGыD,GK;~~QKmQ-FI*}"~&=a< Bm3;dI !A Ӝ$7q[초CboWY'_;W:KGt_hi'%a﯎:8<*/d^-nZZ-Got/@:"vGn7ڞ^twÍV`UslZtu~b{릅(ulzb[L`q=SqY7WXN x'O!c`0?o>Tn6,%B2#9st#k(~̈́{|0@DYj``$&*dEIL]M8u+HQ PʠZ&1!R)%T"pHu={X.X5| !#8*>sRo!xDhے%e?7%KB, _d "?˒%!K"%K\%y?  9:`q88:rA~Zb%z =]>ssCGFUXzVƝ'&1')m-R|FqM3.Tzk|s|գ홰*!g(<Օ6 gxphDNMF@zshPo(m~.`\\B|Ჿ?ce.k5Y?,\sEHYOڽf8*]ys-kjIn{%7% mOuP]9gC\8#WWUw'tHRT]:ʣ_MU'_Irihic3Fr_yD^šk)?f N1gJ%(µF`kCc@Zq:!lǥY>%!#D3GHG|q%|%Pf,9?1Cc=VôLYJ1}O <)}.eF5GBYODIYdǥ=!=<rHN]C?`">`9zyHV! , $9U/ f"̣n?͹q}\| ثx Z )TA88(GV̖x nB8f-$$E)Z:*#voK d&tk 5sIG ${4{ _=7Ey *a8&#,9x~x<ܮ E)tr`vZ"F-tHu$[. upۑ6 4f+ej,^EQ*%<], :d|*xd7<9%R wf #Gp^xxL(Z\Nq|tȭhiiWJZVtv9-5L|Ju^t<݊㊖VC6í[n*d`EJ:U'1ޟQPT#ykuM`gz̄fa+CB;[>llۊs#Cɹ`@0>#yH Dl?,8.+H$-[یlMuW1YT86T a> ^5Kk3wByw A_>Gs=zW >Ȧ1k׈M<2,ŠOE>xX`2cֻ]iK-=G 8(YjU0AOU_ٸm Mz]AY,5&iRt꒵+ĤZ`7x< >ýk,57#շ:)]s@!fB]n+~)̉1[lYh;ῧi>?Y qȨ}ybV\%Z?_-R}*_z>c cޕ竝* lh?(+sWFt@ɮ[ugI´]qda/==m6ۿ-GWW{G#d=PNr+#{=f &c&G1r=܃읍(W+ge[ `.)Yv ."8 ߘ/c'\w^e`oߴxU 8x<75w^k|jӼ?ܻƟѝr%y~~.`yD[lpo e`89bGAаFAq@ڢW(;R}Z>OK{=6#08gzMUf) "W|lMZ^(^,6kxlqL1va)Qb$ibTﺮ8x< <2߶? uChACkam~iP4>&$/Ezjy?~ c d.?\4RXs--%2  @rGwKڣi)ޗ0%+˴rG:CSJO;;>='^w3RHT0Ry8$*<tFx(džM{v!oIh,S& Qz\Xj|J?qiw5A /X˞7ƚBl{I#GՅy,Yuә# 2R-[S#KdFM1v;T;Uh"xG,!Gi&9M#L%MYt'lLa,m8p)'Qgx]{YLQb+F4?w}s`l^+gy4£)`wg#xveۻJHOcsJ9o8p%8TabWbSG 3s7ܬ^鮀Lt{4|e4, t/c?:qwAdOOČƁ5?:aG{,oYFLnKʚ 7#?TOG c5 p]0>1 K0 м a$~c<y̧y"h 81=^dq|[p͛d 8f,E5R3*dV$(!TGsyڛTcaEg`}>C(ayCxw . J:O .7 :q~ C)1Q!u m쓇t@vhxaxCR /FEiM%1y]ʊܴ]%Gmu7:kyة5)x{3 ^ -}z>W/Ћ17G(oH+JF0qV%yD`pz.Aǖ}! e㧾9vԙZ( S:Q+F]~=}?30< a.> pey -8;nxuc.ПAtJӹtufhmsґv\8?B gJ0^XY 5B50wӪ@nQJٰ*.[ 3H~؅] Ǣ3dTM )Qo_}*{oLyr{cg;(Cy6]5FQu> /QoH??rqum#zlLJҁzM )>f yGpE> ASjhuz< Z*̱?G׻0h"J5#k3DH?G ׻*hDZ]hR D؛ew$F*^\v\HarA.R ׻Fow gAڞq azb#u擔q*]yzx+YMQ?\;Q 4 HnASو^Q~ml:4X wy UvăG|\Wex0q2#oaX&h|\3RwScGE 6m&?xm<|x])׻(cGx8A%"E#rC?`K.aC`CjRU"%.Qcp5"W֞20&wU_ʞ]` ezt$4ƌWnˣ5r 57k0jjvPY͡񰴵vxwNyP])W4wW_/͘$N^H 72]>P%W<'b =?0'z #s24CP?aࡢn0ΣB$*2%8ՙY({hՉKS,fn(0S_g50zPT3 aq,$)'y$DPГ,cMe:ֆ×db N8xrR6*}nVuSCg$T$"'c}]ky<ʩ}=,F_ppo,||X y 94Pv#ja}xu,y⏢I4XPRR\\R^@],9zGУXʼnOO|]?Sͪ rqN>''7z']W iOb-)kF/E G$$OA9t*YG=O{(80kmyS'%;c}ymSxx8OWWOWt]H9Žp_!~Փ7.Ct9QyB%'6G4NZkGt&8Gn j/o_b`=m_~+ >޹1I<Щ sϞ>}t<^AwCG>7pG8Po.F A+౿a#yLX1t=M S(u0'";qI_ȆOklꓖN&i//b\.sobYX2 87ExA!E0R f\1IĬD !0 L_aWgXX 7L 4vp?T{#7> 23cF(&XI53¬Jd^ ?.Z1-^^}ziÑGQKJ(,q:,7#PMD5"OVsqh dP4k*֭K#I1gwE 1◸?qQVeG4LG̓2Q ͂N[,1#׮o> CwOnmu͕,IZWXY=o~sd#4Kd!s)HĖGPqꮫKkuiMPγϧP6y~dmn}t ˊ;+Rs-qC,7 rw~|awb?'EH0Ҏ"w#FyWmb%(y 2V!QTぱ34(x9_sx" ~vNO><7A#B ooĩ/u=^M)>? NOv~'o8w>zcX#("pYW16ycU$0yݩ'OELp GD*<L,ԃ9y&<^) _ؙYl͖haz:gr61X̮x/"d{y?vx91`"z}/gwN0^Ea?OMwYL󏼮w1_⽬#B -ӥRxutqӇNջ#=nt'H+ l 7n]%aޒyzۛ<+ BK>(}13{g1:{S3cjCWBs{f<*|ܞ؞b!Ͼ~k#JBʳSS_^yWxpB\gsD ߔ%Bo܅o"Xnq->mEAl_| +IJ36$** e}19a%]qCdžF*<:kBq?%Z:<%UrI.2S\Ӟ@3'$!ZG>y䙽K^OJNn+ȐkpYQI{iAI=EKJvs!!c(d/wǵziubLi` Ei!X-’nZv^+t^8|3OJV~^";7_xD3JV3w n~PV툘'~zkxi:kQ+ā4aľd) Κ"pXY٩PwwvVo\!7=vNJCxM; ۂY{v~mwɑ;'`;sKsSTwF;{ pc6}úKÃ?Z>h+{vX`[6^~m7ww^'Ɲskb"{@7NrKxeۀCG聺E=kϸy+֊x<2pGϷ_g#w~g}vAXQC_,=C7+vI=^Gc Ig#㎘wzm~m0+g+y$8BAӬ+WNwR#Sy 뙭nZmYG]|x&<7 &IUZsiK<"! _c0OA{*tsIbEAG ~߲%\l%ڀXǠ0f~/c XHE28GNY!Yty 3X__8KYEdmP m <1 :lu_r6q6e]GP/ȢbKEޑ$pwg͗+Ïe&{OHao,#XK]G=1mg6fcf۱l!{'qn)sqYGYJSn|PfHǣh t8FSOZ(bCmZX`O/* qqMMzf|*ñoHcel5 ȣx xlkh*3h (j3F9:Hқã!nBPI܋Q9ѽyi~kbC[GJCl@lAcclHZJ%QTlyxLm-v`u]Lqp8ak2[|]`্Ǹ>k&q3hlnxd`+p#HIrтp!0#!x]j hDp.>UM}$bc#82G|vN 7GCǎy;\ם/&Ʈcqze]<1ՎaGtV%om3LԼL{c"Gܞs :隆Dʆ&:ލӳ510~,j]z3Iy#呆 zq*6Riv. 9 tc-kha}όgf{!{2y`,mL<1ZjPk|SejhsxtPiGIVNpZҞ椼y2G}wEiͦwO&?C#1X<#q63%hML4W1\,bXޤ<{7h[IxUi`2rj{v6?p;ѦcmF+ HG%R :\ dp`#DΜx禕W%xX#ƪŽ5y_76B@N6n@a[DN6Cٕf(;WYʿY )S5)md<ۭ/ %$QXO%VN&i&K4kG35dI09n٤G"I7}|y狀,GϾsJYp6wUQ$qZU><#hQIaH"Y< :y uNpZDgocDa#leEcyvIʣW<8t7K;Ǹa%%vY<mGj`4 к-ǢS#Ҩp n_*h>NH9Mh( %uђ2ʲ< C2*9?^}С40H:iTɻ9}wdVg㷷eIE{äkI͂<6ãFo7BÑ4 hh}A3 qtBx4hv4xkm>CâVIxImIGrq-4~BLŤvq`уN#i!H[ ~|[ȣ?YkJ~y хmǀr#XHHx7lUgCG2Dx{6ang`-Hi+n* ok2TH$Y<3.9u@(cl#lHom;xt D@r8yp!}#gd9#'*X`DY[jUl<)UDb'k| ̓Չd._Lb9NќZ\rYq"*:V?1/_^ȕWIIr9<&!X&5JpthR|jƪlcJ1$_a%ŘK3H-Q`IO$( Z.=[%-3@8۞<&H@1:fyRw^h$&&Z"/p)IKCũ2B:N+7sJJr[aa'L1% I\QU)8!H^ݑB%γl%IUYBpb f&- yI_W9%=~tcBqMO}Ok:uH_}bZ9G7],RJڤzCV45U#<§Wfq `dνSs*KWtunzDSӦISdykS˪S-3-P}jQ]V_SVfq4)2h}<thD]b:@Q Xsr yKQ="՞RgG5$ $fQP+j k2lkl&;M8)xMS[}Zh}.[S+MPluc͟jXAxJ$ xBr !\{eًG_]~G`If>H ^<;<U]5q 3li|`3Q5UyΕ4 T@hASDZ[G\^ ܣU<xPlVY2&U$4Y2 o L<%;Jȕ%F5Q!CVcSbڅ1"I]&CBS btSm l;GMM2LlXR](Sf񨀪s5rU$"Wnm*PLBNR F^^FZU qR@e&_ǧ7 t! |h}6;4 JC}gn> <^`F^Wd +@O`>$M,Sx<8V7זC+a?#djy nkG{l=p`~H<>e1bi(u5ScYddd1"PY G|=]91m g-##,[`Mݬ}Gzؖ{oz}V*H0HO<V%}&n;BؚS8wDQ\[+cR)w$i.iWo _{x=RJS޻xwAM]_H,aDQ:< -a Hқ$`x"/8$Ң2 X22SV˝R\soSE_&)]~K}t^K}>coM ucf`L>+c!W30CŝJA%cGzyl~5H)א0󸸔K0d.g}<ܘuQNcc+@Gz@lO1_׵H$OC׃ H}F)cbdػ~@ūx9N *,E?ADyU ǘGR'Ohi3@:ZKiLPZmA ލT>csuI$yVqptLt#ߚVxjhH%1Lj\6>Q>oFYs7՘m ?;{4Vvm}jSIq"-CokYT&N9mqգ=ਜ਼Y^OC!eZӋ8f8666^[5#@#?DY$r&,jۻQV[؀v6D$r&,qBRG啵b-ҖP/щX?BUW(7qk㔁Ql2׏o!Qa e%ϛMG6nTW S6*njcỴަ }s3x:?9Hk/Ak'Nl3嵇G=n38>RvoY'}k`r:y37OK}TL@yA5 X 3ίbS \,Kz33$ra)\,~lgaSSMQQc\S:A -**TXSo 4qBa3gevCM+5-@Zvi;4H&ݟ -Kla#x_KRh,8גaxB)QD 頳=-*ҟW$msG3m2=6ɝxۻ <vUk/EML"[?ζ[ٛ֘FinpF5ۮF=wtyqhCCU@k DcL?5vaDM~gqD.n?|JI;FǫBO"WpvWE"%\Qd63꧚c ,'$Qs"̒f SɨOpEt9{vBEaQ]D9ca ':iH5,HFBH)0n&v_ynOǚ}D>Rw.^  Qm'}ΒX)4E?x5H @ƣPPXCqL6UZTsL:icQk}ݒƣ~~O*m3mo!|k<9 &t> \ox27/?KRZ "#7ic17S|ќ<R7<:Q>mp}CA"C1pm(qL>jgcu]O}x/s_S1z9n&}TΌ G ~qX50 s)}ϩWΪ?dee YwBse= : ED:N>6G5@y]2"USY O 58}$}O : .Yw/ac).&:Ba5E>rZ\^3T'#]K:_^/\:u4|T mI隩0 7r}ydbBT+&61ݫcOq!D+f>}Oh> |d^d{ L> %P^ui8NO^rXwN5׏!u Rҿ]]{jHkVkkdoIޯn!}cIٍэ)1b.7<󼌼rd6vK -!,0)VAy]e[ 5M},;X/P3V"9XU.Qb >Ӥz375J0^֠:cԜ1a86k8jIMx*RU{~hb3ׄZ(r$酵طTJ(Sѣ@R8DnP-] n:iqݱH|=pEQfGw:rrgpĦ}t NՇ;qA>2~k2szv[}`9jUe~#`%ϟa^+qVeNe!5Ϸ0,)Z|>NBZ6]a_<=͎~BLtVQ_D'ݴpN&@IƇL>uW, G8df6"2DKg9owaI'u0l]ȔXCxh5.$gXUO@{Sě=ɂ#R_A #s(H__S~ªHS}*Ŏ)zgic;;on쫸8>잃cqZx?#v8tU13leq;Cx`}ad LB9G8IݯFsǯL}4&ro#8IHk⦹ۨ@=fHdz'Տ*?oR JAt} Jk{QIւ}VBaʄ dziܕ/"}Tj&RM9(7r@ T#F  ڗfc S&SM2)C׆D 7I|sk]7Mmf0##=VA ݍg X.l7.OA6;KNy1_?cc@W6+sG { c/^0Ɓt .~ c#~Ýo^(7B&?^.ƀ3INrr] ?H-DRʎCr>{X>ikT >*'E_Blx^jd3y4_̣0 ?8?}<>^[>l򿗛Kٰ-;AШ* ?҉a'N^B'N6ǝ_@_G֯j0 }X0i'q+ ѩt T @Y<͕jzF4f  :bdBodY ֵ+z~ @FlD&k~+OtxRhH@wO(=]z +U?t"9e2BTSRMJ|IvN%6f?%u39|~84}t7D-=i,^OwO1yl`YJ|ɖu8,<s4O5fA+b L] \7"a} 9aa!ܸ_A u3m)26q!#A7_ry.%sD 8/r7X^8>!*1|ʵ}ZgN&[z<:hn$`E2[xuƛͪ vd>x)n)\ayx&>ǰ:t(_:q܇ko\|;f4?g\.XEъk&.pH?IqɵlS$<9|_vVC<~ÿkOFS]͑p ǥ2PH?2eH Z‘x{?o"˥竺Y(є?.ܯPMu>esOTpJT >&#wS?8kQ M]mIG/RŹ,vt_b?t>VxxF:Y ^6cX5{#' ID2Z8k)?y%>9<ׇ֖?!V++)Eʺ#e|("V Jahc+Ʌg9D-5GZQD6K7=8bJK"BF*Oh{"Q<nS(tznVfAtq5"ܽ J}]G{<VGB94Z]M1 i,񨥈p7qћ0lM\Bncz7{?qG'ρܡ@-\‘NH8}t"ɋ |tyo`y>nv_쎜LG6o?9y M(w/i 2uhSyD-BȅX@?ԛbKxXNZxZ4i4aiu5\h ~e1͗s_evkm>ş8Hį͆azv,ˏDHVOg|/3>j#E{8xT?-*ZBLjv>W)Ϝ ,> )鏚oI6ROMCLd& xn&& |x{O=.gM\ oFd{T 0?\vWG=DOyGž4|:ajvWyп՟7N_ >db3 U9q&p(ct|>ߤt\Ah94Đ[;?::jy|l(D:Se(z33sN![RNn6C/ +V:#OpZjf; ޚ.UVv_U5!Xc&Mx'cXzS @`3MKUq˟٪s;5zӸ4!wsF톱8}a=4&<7APJq d:9Xo|d$qU IsZǞS{ lBFxtNԪMဏ QQhZƍL"rT \ʭMѣ_ex>{\=;Seh.!32:u:y|9_k/QM\8cۏ'f f&OĎڤ'8Iܤ)t HhZKǹOȥ;Եצ>kM9_;UPuvhϻsT.4KEm1 s)m>^L!q6]ty1cޝKF$%Yʽ s"N|)ݳ^"q[z?84]O5ydPb6uj~~!#/_sNOC_GUI6L-(CիSVحf_nve_au߫%}cb}[Ɛ\j"j' YcTKRv%i=q 7ugSҙP]ǡI=r<@Z@6>V]0ґeȺ=qIu]JlϛAlT]c~{\1-|>JlWdU7'mXtO-3ɾQn<'fByD{Yx򣒡*\l"Tl*(a>$ۅ?zGDSL&cJjWe !󻲘]f_MpM)k h"Z4,Ak%]DKHSVW.^#XÔ A gp7#E-,l%?HC cXeePJח!${ =xBh9RnP.|s apJ16ƻod3bq7Jg$ܦG:e`JmCz ph'/R}'#l`y>ޡX{c]cCѫk'6>urQQcq*(F>lǚ|BJqwgP`R5;ZNKR;͇*X;XoFlcWjljjjt_?G/7E^cr8n㸻 .Gaf(ބ|tsf -8NH}?iPTu{uhu3kK [ڔ"XޮHJ<6.Iq%qGWaufTBHyL)U\ef k "Y'u+`ǂ] ! 㶬Ǹ׈\WEyWW0Rc7?3m+hRG.V.^%՛*w3>4[Hkk1NTGE夏t*3Xlj$ݫeM>}-;UI]Hg%}%;#bH7koo%5lrE"qX[e֚kE ^ >(Tdy cPX;JjKKy R>mQD+a>Nw$G݄\1>R23k8 r>R+Oef:$;IPJ "ҕI]U}$d|Þ@H}{G)o*bS\~Nr 1>I2-t:F@_S#c\?^̟ '5ׇ։P^:l?;}X#9i"8>΃k _m6ØqIP3ѕeB 0L60\iB޵bɝrxZ6zl M9hW] P]uR{4p~=6LukqX{c\cte|v@Prp)']E& 1,~yØ=gB)x9#EǸ/%́W#c͸R{C(MF(2 ="{Dg`t?PIENDB`homebank-5.9.1/doc/images/win-balance1.png0000644000175000017500000006775614774772452014024 PNG  IHDR Q/PLTEyUHը谝}j꫊ogiee١uc|̲Ԏ\snSϵ֗ħd~çw|Ư鷰~{uֺܸswπ`ܟkԫWguuwt꽿aWu^_bкMLT~ّuҤxZc|e^oloqyЈĩҵ_gsㇳru|[O:5FknS}qѲpaq{ɼÓ>;wϰj}Tnu͠WӿUliİڏhS^ŏ݅sv=eίahVȟrCSqh\`\$"2ޓ]ȉغͅ]I9?xKUФ!7j}צT݋q?aҟ#DpEF\G]y̳߭^+N:kB٘Q*XW$6lIDATx \SW&W#1&$<Bh0P:̑TAA:32zӣtL[O?c{Gmmo=s$@{eS^k{o Ub.X4f ̂ *`s00?g9f9 P ۀi60gY CsNR9aX,(//(OmP 䞲U}A[CVj:\3# qG~]ɇ;/[[\{c!%B1%a s&ڼA7D"FT~;gϞ=w4vmYIE{ 0tpRWuG;/dv6t w~'# B!teO@R1 Qܳijmml\ڸtҐF-[&ELjdɫH] LjvaBVX4Y-IKh,0_}4;TWS"]lNZpH\3™30䗵67.ݳQR4_nt0t Γ90A`Up٣cZr>`I+cs؜F{# R/93Ba K܊?+F/bji àe\̌Qƀ!^W\>Jf5R{Zd#`r򏀅0473HLm ÌHI2@, mCefBR$ CHa1l{ʬ'A B v0aOIL5Yp ֠j]ӴZ43h.x~ Ef%|Ld F1XÙ3@y=KG+<KZ p` YII$Q PdBn*uc`()#`d"͎P Gr Zi~pǝ rGHܺ4M~ 0PȮbbX40(23tc`b12W*x fˈ˗?:^_>.-.*Kfii)f0p e {$ U^| %!2#!p*GI+G4,TUJ UBʄ6L7 LϷpgOp$0Ә,4gk뾹0Afv!m&Ezk u~,1u醁J>a`.M, ~`dU6(n]"؅P4`򵷠"ÐR U*jlBP ,%{j#ej,ŶuG NtcN%00[Pf00˸lT r8W)G$wVilA `Tw12r$ ϲLu ep}#SFȡ0B7%0"Oa^*<v˻-.L82`dv`OLIhCa6ƺcm60G,2EGpі,խ:(=KTUM2dyhljb2}ruu1|Y{2TwM^GɨKSBlHdbM{y=BP!2|;t?" ĻZtIj2 f4=?r}mfK<բL/*(ReMYyY0%6 !:cPԨAALwq pG^ P󟤖3I2c_r9yC*hV"OZae*^3<ҞW+IdBLq׸v$oka3ҵ5PhgT$뚛M]|\nG~t n{I]Ȟtm]f \JoJTT_E,tUzW'CTOIU@^^PyPYIn${KT`(Xe i̘kꋋs]睯YS#yx\Yܔ"pהQI]*GJ2Zz}&l5xIRF,.ڔ13{q ,]nֻS0R{H{t?!nMOZWyz?,@0_UŊѣ`͞ \P>w"doRo )It?¥$nt%[^`|[=o@ŗ7)Ixq[8 Wwdv Z[ֳ2AgΫt´(|>Mo|;Q<,(aИTax\i0FY. aƼqNS-ʄ-882G*ͣkqK]OS+3@ bl9uvS҄aJ>Z5}F[Pdcmxj(>P^զz-=Ȧ^uq=e+/C>>tGu]ҭ2@3c  λMV$+%0HG s0X f-Ar+񊮡JMR;p5q)IHk>ߨ^TVzdeJoݿ!nk_S;~l7ZM ^=B!GKTbn0ML2t]z􈂩V)Nl;ꅾQqQqxW7m_p_Ba_ :4!:?3`k9.=KUXIe0l@}ŵUUUeaЭD)b7PUUm pJ(Vs7m)M>;?O72Iϕ y[ B[WVÐ&PLm%U{Guu J K&r+h|_ٍ0fZY~0V?8w=H:\ר4՞=qhP+d Ub=׻GPs OSiԁJ+W'P(,ʢE|*S-*T hCXY,C> kyG2K[rc CM5W#un7N_P41zwI`"C7NyJjF̸\] i J|9GGXB~*a*^=ru'T+/%BH&硭 `m }4R➄{Bw: '?$4&4Ha\N`BW`iPP y@;4_\okK `*?πX q("b`G+b} W˒F/yA0 3i|Hh&漞I@04V%:t@[P>i|^N@#T/Cps`B}4j ;# .&5% "j1P֪b >e p9;;c47ϝl~\"jI]mm4NtɖlKs윝l$:L7Dw}n \=sg['ۡ614ifbhcEx h7fF@'AƳđp:ș)h^L|V֡Y ed> d>8^`:<}OX3_I*  BQOfӶg0bptL;Gج .&-جaX 3/{*dCGS;2ڠC%Sb>dJz-MA{a@1BL&![L->[R?c8/Re5aӰGa jg?]>4_GKh紽aFR)} f" Q< hyi 54B<(O'+82Z.>s0L}>s kߵg4e+ݜ,'@!y|M90 $|!}xxt*Z qħJRo a:5TX;dG?Rdyᦏ Uu b.l_@Ɣ}4Ȟš*p> Ӣ!v 课ō22x-=4/%n3h wD؂ ])|I䌯N8!LSX=bdHX ϲiҽz^4y?vst-9+P<"r$uA0({ut1$~Ï&vBat͘e5 $/zukڽ77ԟP\IyEEi+ b(TްP)|I}6|$qYnuɃykCߡU\zC24 nªC^j.l؊aDԻO.a4jˈrO<h+ z{1tj@cΚS+WxW!mId "XE3;Fx֬ab^V!"`h!m7|VZZ) yS[ɆhӐƇ̋2S2 }>uש#`Z{<|𰥿Sѿc/.|2+V8=Ք)Bg D6D;,0>`犅 oס9!>~DA.B? 0Жc-G FoQo°rZ^C0Լά˼ʾ`xW.'\|l2Ya_L+Flܨ#{ N>|g`8+ nvt q˾T%/R{^,}$ bjܮ a\lQJX' &lb %v,J\)4\k,a0B0A0kGbޕX>Sz?Krw~:,BkB}"#2|d_<=aX][ KWM[șsx{* g*;"0:tMa f]láC+?9`:tol`NDdaC@ˉp( {D{>`I*/EߊO:*&Xaz>ץz ߥ__{e2޸̺3T\nwBZVgudc`*FODx?bl|V`K!!x):2K+sm0SPƧL08ps0 fX\T%$;y &d6Yycq$&1vȀl&X6j(޶zR7c5=H:iȰ۶0ja/ OhaJS:leq)0z3 O39EV89C reގxKgbQȎQI&ih0 L\Oetu詉T}v-szf`=|^= }_iZA!x/=k[_{؃ώaÈa0J)NPJKKno,9(4(t;l5G?E noξncшסs6D %}^ssoÈQR$'۶[^oӽ\{~vӅca".]٥Bݝ _f:Dv,. |wУuN3°黾7lo`öN }ᆑwٷ"Jםz^QE\Ⱦ-KsԩSE pmh 1ЍWSfeH7{"x<0(H$f?ڶ G+[t,l?aޅW7X[u>R[ŭP($L&3M0}B%|c:s0Lft 䜦V3'Ҕi||:]OS*2gfeaea4g̃?~  %$b"K¢Ⱦ ;""X@T@EGTQ@Pŭ Pǽ Jݪu~ձ:L}N=&A`Qr9w!B'{MFl44%Mu Ls>kyYƠŃ J>i2IKƂ6 8~KrlȬk\eqss-@mŽ;XY040=sCm9z,5#53$oΏ`n~~;N;a1gU _dẴ_l/*xQi{h}ӄh,ޕgY- [e{jЍ7.ܬ& '+ 4)b<ՂgMXe>+S< D1e!?Rf"^/@6s񙓍Yn+Kƻ 08qƘN"2şi_N!Cn/[, *dܮ4XtT {\6QcgAdEepA^Ayۼm D/SԴlSzI:ᮌA$pz9~|k^oSs"j׵ES_- uhPCb4׃=3b&xzи >^ߊ.?@`{Oha+z;,T cc#b5^a*H'[8iU.Zל^ӉaXubԌg^<"@t'_`O=,glbʢr}w>{,C`)cHlw+ d9'+n=CCŃK/I/~.?X~$ jD Qܮ=e d,f)2} $c"ˆ̄آ 9`>WP\ڝ`(DŽmi00+'WOEC0dopxKm8z(Y^I^l2۪Yb`yG z+n\QͺSYPp&];^[ P&@RފW#+W - F+jffS9`e0&30̾W͝[Uud/ſE.m->h}ЊK:1 ۣgbVz ?YyČ?,uќ#;pjZ#.^[G]-Y+anM-MEBgr6U`0J,?Q?A~22WL²`@mGեd56&v7 i ޹2#ȣPwf 1 Ebp/C<8=&EEi m*cE:0״89ɹcÀ4ٸo F&BNl-D>&飯n=0;E C9g^dྤ'+4L\=+?ii0LX21 A3c E; Ɖ=` n&g?3+$_ a0 3i'e< 7i&rҤ$ TnID&j!߻e 8f7ځCB'C\\T:j1o,`N6kڂԬMl` =%w3}5 UBkh]Tu CF0\"aߢ=>xGˑuޤ>5g?oPрa;pMb,~>id>[w4بhq^XFo`1G1k&cN?+ Cs'BОaO˵vC$TCB^-UrisÐ[CcuKڏf¯2M:)5uRjáJdzu|90_\x3~&:T?.eڵ&Zƀ]QGobh*O98!E=q~|Am+ =p6Hy" Zbh{Ә9 &bn&5ݔT? ]gk>VՆwvSA=G"Nl'ؽ%9⴬PŞF;|%̥Ya*Cearա#-5PMM% CM[='XC 1{;U??h?\X^VYt!BuNFg|.2Eí۵VDU]OMϠKJmAqF? ɝ9*5[o uC#C`;1 HK[̴Z+&l:YhLbXc楾gGqWdr)?Av`g~C\`JD`apPy澽/m'0X-cDX SVdbla^) |(aZ[aOVodTBάic$u &QY;skKKX;rGM8$ghG&p%e 񷛡k7 8OJнvHDj "ֹ".t 4gdZ*5΃zϬaH{n.[- r^d|b/^0uk 0 ' |u=rxڌ + `% ^d/:u /boF;T垌v;7kZ@$/XF%s գ19Q$ K)4k[0v[' 0] 1 N DŽ<B!2fgpc*g 5Na- 3/ [0X%C}3f#U`ɑ'x3g)-?^>G!paGxƻ驁C.0&$Tا@z 0hJи$إAu)`kDGE8r 0/ JdυA 2A\ZHJA sUiI^&2_f%]3k4͜t{}pM+e"ņVaRW=)8 aN.e!" /rCBX8<@R*.eN."aj. *wj1n;p];fcQ{ `#e4ƤȂwR rsW_)xWu| O̥o`.᠙9=",ז8!`݂:.hTxT{c?R2 /4n G˃:b1nY.4V{feWxVhI7&d#  ;" ʚ,9owCmcigWGA@ĵ1 ٤g)/j1k`5bPj@r7a/ ŜATs] OV0L/]C~r-GոMOLI޵+HdncGuᝳ (Cr]-[}9z 0`ym' 0Idܯٺd}w\v;Ucx!(' PXA`AS /1&&Q鵶 Ǻ?l(5wU,KULZ\*vk2溣I>g3 k/BP r3E0|4{6Y|\gxłyvƊ-Vܳd_wNoɄ͒}l/63) #KV,m՘K0WyFԛ{W7 T-mmm*[46ӵd[O9$lRRAA_1T*NמFDݥ}%Y%͝,3ז_(ƟncŞ vlj0L22!,K$Kr?#qwtdE̔& h X4ajI{ 'F (jP,,5:B"t) !D~o*v[`ؔ8VC 0 Wq,x>g Wȡ3#,F;Lf6?y՛>0*/P2mϠYiG 8D2LMꇁ[g!x^ zәv`VX1{NXOt ?Vt낧4_3\5ͺ0cwwci뷀(Μ`zfr`OFqbA4S{uR2( IqoXY0$Wn:Փaa>|B,9n c6o>L@] \hi0Rj08 S4/:U}h"nB*/`R=ne8aͧ@=AGz*6b{>T?"u2$r1C||a%w;4yFXDM9)ohhj5lE 69k_f_hMac!,x^I!viR*s)]C%dDܸjAށJ4*ZƷګ>|]" =n-u 2g ק_HQ>, /P*zM7ɲ]2,ф;d[^-XxS0Y*ވʔ9 E//l%`[K|cqn1 w_a 0+ό"st9oksQx w:*'ȅvn8w;u6 e(wWfCxM` w{掤5ӏ~l"9_#fDr랏  =0a8g!K9.C,BM[ %ab/ C%{qΔ86q?NV@)G4|Eycy&jbDvʧIiMa8YGP_2_t܄dH%K0wIYR RGՁ-UѮ*5LةAC|oSCPQk~_=?8 쳣,{A,8 'jjE&R u ]aqi`$c6pٽOo%J4۹;:0t 9K;(MKjjZZ03.Ź;=kv'Mb.a۰Ds~]߆?^ %Ǽtic m1%YV Rװ%e߾pm:n໎~}ߕQDcC_?a,-j)%H 5 8 ;qSc',pxZJ0Ea^ a(쇡\ϟ 0<{;D.e:c{0aj}%S 0`e]BC쌯g|  $ g`X!P=\># $u*5-_-)ap@}s/ 60!'M6EQL"aga‡CL6=K[c3fιصy+63!)Y-:xZ H Ks-rM!J$"J$NA;Kՙ8&iq"/MHa8LpPaYH&[ذ ^.1n1 /ͬݿ`}.朰"m# :aJ44T0YaRQ*C[r_W ղyIu i1W_}"Pncu];IgG<1 UV:bP{h0 xhjh"=- WWwᤪes)HMz/H#ЁY@Bܪ<u i x0!!*KH-ẆTm8dV;ZԀR}h JIY#;,\'uЯKp[`:vs`Q.7{||2mwދ24CÄl$y+ۂqokPCYSo0V]xS#B UGszW譽xD2&0H[`0woa @ErHƩ=<] ь$ {{ ],\: ,6! К% ޹5qe"ntlGGHtBH"Sy * .[((X>|k[[TJnU*ںjON] >uf23oν3s=>*M}`5 N=>4 6v)#bcPeOL26\}#s*m\OO}fK<36:WUM,!Bab 5'wܣ9ף%NtQ(W JϾxOx+r&ꘈ_Ҡ;% #DQ͠B%Dy(, Gi׬Y̖ 0o*ȤV՟dYުIh|_bRiK(+3p)<+*k9l!H'"1 !qNJ N`ag\}S&+^jH w5eS#0 "YHXpq xE0 ;n͙GD. .TvgoEO.S3 Ew'R#}AܲIaC  Cw{3 [U*`F>p+Ċ-QƇ/7ƕCurݳ:1 ;·d 4 0\(dQ* ! H͊0cQ-s+8d>l =8g~37K_#Bx^*݄RхU/pO68 $,k;!_0 @VPdy?|ѡ."TH9Qw*`^IeW`%taha,a>CR s7~e[gl!|eG#mHd@lH`&nrV.$r9c  C_MEY10v舠aKj"yn4%J*1E/< #UtۃH@ O1G@͌Fˌ@ (as@80IL s1a`q֩t@3kԉnBօnŴ2BCw(PVL'a@h,^Azfy_½DSK6N#g (,J;$UO*FY n~Xn&L%# Cr)W%,BxI'`]Cq9۽D=AethV`PY3{᭑-253?5ÀpY'Ǥx^DP'YW m`*ꄗ8YB9Wx< PE5/|Z<3`n\ 3SƾcZ:K m wo1e0_l@^yЍo,-;^n dH-szIX/tqf$ &DmaXY?}5D7KYۯ`Z`j5nsp:<_k" "brqR\9ͩrrUYiZn {fGYlqn]: ˠ2 }~|8 O7YVvLTseӍ.O`Zy 5oq㴟nPCJV rxEx^awH޸_6eAiyo!n 0Ha[&"SemY qCe 0 0 hl[4Dv'AiiiL$N ؚ"՚Mɛ^ld1p؄?0mؤ?Hڻ?Wkss9uX*Ual5 u{F0TtS}N|c= C lB~W#f~~aZ{MWj`9 DD7<]$W;kvȻ6u6WMtõٰ$h{7 Fw5n30 ɯu[ j l:TEuHB-3Y3G dˌrA<3a#{0! ?v B&gj4PXBƤҢpH@RuJxj9(GK|J#r|6q⇷5AKw'ZM $H&Gֵ^$;fGc k<>ٚm}򾍐V2hp{WkQ!]kD<-~xQ ǏEFGF|$L̙!|X-b1Lٓfõ К1 zt6-3$ı6xC0%2D0ry򴖝1a؆nr?_^#x oDqSo\Oz v $0yE>xY^I7-toكgQ덞x+|t[Qs߳kfW8e`OMMq"O Wx"I=Q) B8[:E^#JFD̘k:^)fPL4̖^DQFԽJ;w7sK͓J0>f)pWLx sW~M͗>y/`pSt(SA=a#߿4iZF ۼ(Av{_K2JUGR ~v n v7lMF)H` nܘxCHxt/ 3o\@`Ån?ƥۦJR-' F7/ A70HC?#H [^nԞ F#ȐA7>\:gHzho/ CeχMY%)akvʪL"ݒPdtl?Wp޵Zm&t!|0p*7?;&3QExȤ3}lU0˼S :R{`H$ EʉBHI'mFb4g鈃#da133]ܫ`ЍÕSkKzl Ғw\f8Q [3L%^ ҹ3f̘{=#.Sg³%ѳ2,AXĹTܹ0)w\p9'=J«( `KOE {N85DࣛcϓD! UDocl8\TX|~ 3IBpK}v{u(γnt?Ұջ7m}.cS - 0\#< _Ͻhuk$?6xhq}, #< 8ZpQH.QIO=>IKPvʴ Egb,FԔNWZbb_Z07nh85a{nMH~Vapc&w!,¹=It#ntOEugoqĄZP&=MaaҝcA\K0YCWpއapiEO[+clIJFX 9RI\f@ʆO'xf=i3`Nk;@9n"8!m+OpO97!).6FPF}~0꫒j+ڏa< }2 eZS—s-[`;O?.~&6Dƥ9 ##0 q ԛH.&'A*&x%@`9&LtzĿn =W"~mӣe$85'Bv~?&ߵ0R>U?/G[`mM𽩩UʏQ}DtI$F!\܏&%pr+|V0PP[,C,G%Ԗ N6Wٙheʘ )p )OY+c "׿J4o KUYKwqaxG.hF\P C0$k.ɏdCo!"yt/kjB%Shv&nbJ Pb8Gb c{lKh#9 I0<{ "V" D|#'h7D~3mfFfe%A,owΎTڪ'@ ÄG1en촻)wcyS.lNqMᴱ n.b 1e{~ ԬLO-:x`:M p-ƍ[+M_25Štg'bY@d = *a`!pT"@.@FT6w4/6V&_m7p/>#S_5ex=:iJ?-#J]gx iRt#M00GX,Hb;#q`Ѝ㛘/C9Ыo-u<K[2sM1u4T{W^?ƶ{ BT={! ;|q$z4x4p $W(pˠn xJs|Y+56T0ތ#B]99W{#/7mze`Ѝ× |sS,p7_x%J$ٖ%70ZR:k[tv_.>5}v*$ [ ]@ὄ6Okz'Bx O [pZX> @xGsZ} X-qc,miiB?Dȳq^[O}mk7l2*gȁ6CT*J ̝K#>oH04J\|SrO!s@*wt@)Sbk)kß%ȥ៓Wm ^>Zf=<}_B@r-kr_x)|pI=~x[ʹ%~a˔~"p%E),r~3& l*$[7&Y I&*SHETYY\V1Rg3 na8@ð2eMa`R!ֹ]$񈕴|] ZЙmashWꟖ.bjD0?0P5À#%Labl$T/rD>”E)Ba(U<ĜDv5@}A?nv72glW_<\F>s(t#1U0gU<,y]3 KTrT!b+1 W mDl:M)5#ޔ@ baC1{utTp̭խ@ٜša#",7n^FAM-DXGprMuW aSɤrwR4U92gN);wn'!)zan#?9 ~T0@EuWWHNRuu>z[3+ D<.ArHᯮ^ M. gWcK$kBz0^]|;fPvBbedEC+`݄ WXQ/]o߂/1#Ttq7C7AyrcXx/uT><߼.> ȁw݄i[1MOf塓0U}B_6ˠ[Q:hBz'0toAkz`ߓ&L1iRtL+aRV]Thcj`Ѝ稲8gqH< -7[{'WKgZӟk2R3hŷ{.~rܲ%Ph7-!a}rW3->^7ݒ Y^B„-MBZ2FgY`3o`$* )Z+#톸^`*eoN|Z2<JԠ86rժbڅͽub sD<+^_t$d0'^9`ud<9M_t&^PKE Ppn 4etFDP+G)s "QŻztDqBܣbG1|ʥ-5`u:s.N|yia07$-a>23#׭lTaAΡ0J]T0Jgar*KӵCOB}aVoe|ne1ς'5gKAT@db5+1e)g%"y$̵예3)Gbn.MĚVwx%pe뤠C[e&O2̋1 !Հl b6tj7tt@ZVYp3d<67bޱO'"z.AV/_OB^w|dEiBHLZ bzeљ%U'T-E$(<)cTѐ* 5Az60RX|e"{,"׆ C߹0ҴqCD> FDƗ`I$Rmd$v*B;  8?&Q>9ag͎tMd!ڦ3湖Ls~iK?T0̔aÎڲQMı:? #%:) pFAtACW9갈 )Mj*LaLM0`q4n.03ogE% TD֥1,i 瀓"JJFĢp~ 6Jjiy'" qn5eZÆzu0!ڡ 0PDߓ*>ZvP=f_^x ߾M6؎)ޮB-Z!HvHY4 x0XQDO]?eX0`loxY;0Mf1z0᩸p, ڊas,:VϚàaX0=/4~DRL3Hs!҇ KՔ1Nt%::=t@Ov 'H i$?z7{[yk U#KG'~N'δD!2+՝?} M76NdDdwp h(6j;~3D6o>R\me @Dh1QMkMJ ᑺՔH+јT'-ZA\x.1GpȲ7ϡT&(ej]<9"j1%g";߼7y'ߜ< ,aIL@IxRv/yJJK;g` wcmH\9A͌ۈeR@t9 -{A=n&&&^q-t31#M3w ҘԉK S,' .,~QM 3VM&ߞF oeЭH!Fj`R1)!zYGz) 'ts%4XЛ4VO 0Fn|8(%\LkblTv@Y foÆGYU ìtdt6L\-:>ːQPY>*;׭{osC>{\/YM n¶,}`It+ 0 m1Zem2_o {g$=ㅞ[FHǚo1t9!+lH+&Y[ǢamEA[4 2`4AzIENDB`homebank-5.9.1/doc/images/hb-ope-budget.png0000644000175000017500000000105113604617136014141 PNG  IHDR(-SPLTELiq{^Zqm{ȣԗՖ՗´ùº»ϪƷ؟ƽԴʷవ箴qtRNS(AT]mO!,IDATxMB1Ezq> $g)FJ2KT~)[jo ! X,'c(F(d+r(HE$S'9!\FCSbg5EA1@Fi5ư\&A 53wнE"-QTwsIENDB`homebank-5.9.1/doc/images/win-budget2.png0000644000175000017500000004420514774772452013672 PNG  IHDR3tPLTEyUG嫬ϡc(~suuzН年yǗּʪıŶ"$rxü̴盶бpgʶt|zzpqoor򌗪y조¸Ӷඁ˷ˡymgjտڢ|tzGKSwpl;mnj«vׯ糑}[qpOhTV`٪i[dv͐B* 285^i(i <)H6/ո!aX|UOmnv(u/'"AAa cc%auA*2Pq7]'^|>|RwvsM ,HyVA~Knw^]w7=j*hzTGNFѦ\< ${l": yCDЌ i% 2[tN  N7PeZKK+RЧQ@u!I A{YVl(-V: j֢K]2kz/_q?| @@1,&EB s?c,uTK C[Ƚ{[ Ƹ5] wM\A֚bΖ8--+cU I@4g`L2zuJ ڵk3|z]pp|MD]\Y9DgLָ+ϑ X;"e}% Z%aPxV۵dh%:dmLE,i(WRdGFFDD3Q\8˷\sm+:iCmmH50\iAd k. $ ~$dDMF"!):e.YsxM\LL {f|*uqVMpP@wH_zW$ Қ306-ȰvvԑǗm]?l@P OU1DSdȠX[[ A,,e|N2(ⶫWvw_mu a(@_EsA:qJOOpaTR%e\ڼ%#x;820wahDkd_R(&<LRS󾇈*NJ^ud/ Q>k̃WSIcdz_Oƭ3H&*Nʺ^ud\./j|X5M12dt5=@{RND52$#)R_ <@_m.⌫EISSd "(?-oa d(zGANWh,PvGM8J} #C֫"3'qESdlބizGm &B'}&2е>zTgF1@r=AFsWD>Dƺcg{%buxhdK~XlLPіy=]ɸ,)R3ɸ /hC"d&1H(1g Xٜٻ徬i>cZd&0dbn&2AJ^u&]|vDJOF ~ 2&|Df| IdL;H"xgx7&AW,lIM.]Mi<+v[MƖE>uT2d ]rcEd}i;XIEt$M%h;׮ϳq<+$ɰZ%2 /~ wr~8=b23|FzGţShiۗs+:YJܻnr 2Hcd:aee%NWr4 mf#lζ~nն)Zg?FhtszQTd|eMhh kq>FI@s4Y^`X0 4nË$"QAý@SeKȵVρR e2E#JOL :lOr*6,F7Ť(<ڊi5Ș=-rJSN24a0d=pAlCC'A atxM2 5Rt{V 4K[rf]IߧޏoG^=)o9O*@ޏcXS u _9i{fȘfC[p}Ze.Ʉ1s8f]vO$p._}r: _/_ro!_.O}7yNWO|bI/ӉNl0b K+jݢSbGhu0h8+P| = (-JA0ξU茸X}?*iG{{t:Q9NHc ۰ԧ؜~7q2MnHߙ"&wxz#V}SUlw/ W}L?2κuEtd'F~ٟ&.n2yP">v,N\HpNwp)NOIAVB nvd$3}6l{A87AF(ط@6kZb~>gg*as}HCrrÎMVh-۷~ws}k9'V?!6{edXbup@FX >cd>'UJ~{tkY&nUg}nr v"'s+B#G|2澤^'? PHM&O'#՟Z$QHN2riF:Q>2^Wj&&gzZ]XVhs{JBO Lp0Cf~ SF)?7>Cm8*%.Us88lu> moMEIcx >;F2 Y˿{cw}Ԋ=uECr'b#BÇ"۽yꂍ!@zMݕ.W/5ʕ#y@ē_1#dadыWˣ7ɥ9x&oB2Ks3P K$!7ߗ(1X)8ΐ܎()Ώ$Nc=8­YWz&%x3ry|Mhik-1Py~rJUǍxU<a=+E.|LߣO:QIʭ8,C`1_dI.̀HO!ָ\.''}%;+ !vH?頻$iݕ12Z$@$IޥuN|AFHCP?'*Hc7;;J`2&fhЖ>7'ԭ)Qh{OnKd} MBAX[(!Hb`3j 9U65nc`JD ou%j8gj-VD-%xVx(F%*KI"q6 E$p \˶Kq;X1^&x:F&:/QR/dݣI9D2OhJ^n 9q}|"+.6hS!lڥ٠R;91@{ (vrDXbԭeǤtB*N|Isʤ;VV_ˆpgx^~͇U rU{~]ZR?~Ci=|vַtM6)"VXtLSf'<𺯫# M$3LkSZ JOV߫׊@P񲭅h}2ܾkp37Ð3o^ zb9+ 1/dgES&86!gj)NƇtRgz~rFG\2;t(Ju5s d"u"alN֪dꨤH?>c6 #\[/M-$CkDod$dq GXbJl,%Mk12!*}~Q>Aˀ!2V )v޻Ud|2R R?LIvͮepG%9aIC6dH-rnA dwe'̴} P.Wv2/ kIJEDъ9Q2\RNmdm]Lɀ5FL$>Q6Ud(L&+hbPeL-edPq c@|猸Μ!*ks`Ss@e{L+XTd(L!cJliQ+eBخ)ŧN͸pP"U dکsVQ?Td(L3f KGE@2 iAdhXXbPBvSSbngKWCi}BJ H>TnnZ 2~{.P?!*) XT4),f5yaq2i ; Ȋ`M֡O|"d@E%DMŎvoS9]?Z25kW_}UShf,- kAef8ov8: SXbd<?8 zrc1k+8=oei^ x<`w:lpm7tnm;dB#g'<}“/ 59GWg~34l~0dݏ՜@N9caKJ0Or5`m$7Mf;4a>VS;5q2N? 4c\ 5v|smiqh +9?sw玎" /`6p^Pa$Yb8K7Y`U>#A3;`șCWqC}A\)=w3pJ|I~eS(3dNYֶ38 {(qz91J!fon\5YZg7y; ?5EqńbwrP>6[Z0+&,zlmy->+On;xivbTMKʇq֙~Ysp<{?k>8Bvl9 9]ycwXfhTb3o H{%2,.yV.|M DŮsֆ4P&{"MONUn"2&& 1^!;~츑d`nޞO^B-M"nvxXokk8.Y"ZT2?T[C+>ao$'ZTC/"ǕK/MXMZiqoON$FekKdb>ߘ~pq;Oɥ~%purdHsb|w4]6W>ϯ(hi~O*(H--*zW+]sHH[%HȘL{dTn l;;փp{*22rid|TښQ4[2ZT2Pg*%#oB96V]r׹͐%>Ñx ן=*ޗhUYPId׺@^,>uktG"li#\]M12&ٲ9Ѷ^ܭ,nm"Qp(SEP2ھN$4>_%)4IJ_V & <$+f~ؙBEƗՂ~̻4Qd|&PTd(̲ 'na".if&*2RfQH:gMOjALol9X_|!a'̻f_;@ˢX D~2"6 O  Cn]UUW\g/fW0O.oȩ?Lnr;yqOg<iBDp+Rp-T3NhB܁884 7q5eGSZoᐥg|2u)eY=[湦"ݒ;y]QYiƳ 2x6y)3=j|];, X}lZNsf`u먅pmk lU#P^krNUd$/DkC5YE*PIEJ R%XXqB2-U2ۿUW9ȠaBJ) l28*2^s7t֥v/uc.{)QEF7 sy ݗdGdt!dl~~j0R-^p%HE%Øq6d͈2uK&4 ,D%wMҰlI*iO0L@8͆6 !1&m%egK2Zj}ۚGSZQe 2.D,~h?2l !KJ:u!0Km_IÕIZ?:RIN]ȝh/,M=)(_gasϰvIeE{b]]]~;yʝ=Y;-|2Gf1 #vI*Ą8Q2ѤMp@)4%â>鸮EA6DSLbjNRLhVf$S9XY{@vbC,j>@pod3prϞE$̷r;e꺰5(m3fNL`T=*61ln3Y9$g\h2Ey4wO69652hÂ΃C|y&4WKOâٓ')=_s'Xj|ylڷ>M RbOyEgPM\o@b\\χ}p YaEoI8瓒ξyk-OXT&;3Ǜ]%KŲ{$ æ!Ybyt 3\߬d8/2Vڱ픃]n<*J>9d xeZ?:b6&r8sL1nEc@ )qO ̹cڲcɢ! 8נ 9-6eG ҁIvZ]~8鼮na:|c-`"Z+ѫ o.D9nOO5{_2N8x%'|zgϞI,Vݣ&ޫx  N"?*4:P'<qrE}\~˅>㨋8@r+$bm xi@- Qxf,ho d<79IF6'{4W idly.8 fdRʚzubyq]j0bj LvQ8v"_| ׯ' dEa_Dd\r:3 d 2൅ߊUW}y_Тag79EHD` C#Gw871xi)hei lr ȈQx£C"EgB]V(I,%"82a0cH}jX*9<c(|ϭcUx: v[(/$+odE%>Uɚgsurʪ迡Y NtA1 MM*k(r lrR8 dljL_wFdzBaR,X9&Fu_/K gEԑ2di} i63fQ_Ksumqb-6Gee76ĀΥ|Y 'j2Z]>Ǘ1&/%Ҵڀu&&rHQxD/ <š@x4vmSF@JMOCJAJvp6o.ikfk{ҁhd՞7.mF3B\ %n؏WڧK8ܨOaTidАNS~NkG-?<>1SC\ZY:Dٕ>YȨN~З]@^ ^ sC:#]ғuؤ.%]97Ȁ58pp0P9y8M| p`{J΃8'/##aBjJU$sۏU}T6IX8ݖ a|"y$W| dW(Bf!6==V=IÇ[.Ad k#Ś Yg>\ZLCdcPl,1<'؏K<hKmE_Ip /$ ٗD7@{+.XA)%;x*а}:큲 OlG8"hJCF8p_!4,$gQڬDؑ B'^ x[)̓Ck"@ 0v8SCWNnE"DٰxpX q+n5q 5&62yV%rk9~a nC !ᣦnWTVe >↣k0UƁhh- }u/恇#8_c9qHLTK 85Q MeY\[$2m,(隮:ɺջ*cZK ԢzYY+V kcm46ӯV03iEF3=@ޤ%FzȰS 476G+F\w wzjS#Jgdp2z:չO餾4W{Қw'=:b CϚri_dg ೎}aT2by0wd{TÎGF!bhl C_5q۾&BMƙdiO#>6eNASkKev)"fn59ȸ9LSVY67M'$(tڑhrHQKӕf677FdX2Zm`kwk` &XU=l #3*>z9G*Ks4USQC` &h%604tPc(N8S=7g LIOMJmeb shhB`N13Ce#3#Ss\gAƾzyL|cKdTVUFA^ݐVxz 4Ѐ:'+ $`d1C,5ұ`b"vlvjD$.FbmAetV[&l~,'e ()*Xщ[rw#6] g7Z:EdSo2S,Tׂq#pUɪso36tqhm}_2}VH?;f8 rݺvOFwBQI 뀌iՐ "ab8@2* HG#2.|V[ZN)[ՙb٢*:`BDLGs3dD~Ç%U5úgς|[WMj|dخ^_֚C1C)J[P̀T!4XGǡɨ|__g`wm(oВ JBrgbȸ&ys .-q Q&QLlW$#Lqe:E]CJVIEL7$bhU&+0 ''y v"D)j5ddI`$&s$ N>>`)i>S=jS3x24z$m du[;]v.V^ "fl%͇)E252XyT닪cFwKz$r$cihq[K̷敥>e CM߬IydtdGOf۸FwdAN_Z܈&TMHF04kl>b#2 Rgk<:0pYMg]C1'iqdi"ba CO&K SsN>0JYZ6dLR'no C2E~~2> #+ %-)2?",. d8}J7-T_U}qcɛQ\l\EY^{ץ*8n3<*i) FI Ow q;-&XE j >#Tl8<[CfS2Q5+t\ SD1ɱI#o8i&r\aN'{#cW R7{*UğDEl$3 u"oNXIf>#|KF3ruG9pL )ܤrN"P6׫qKdo\*>-SSJcTO,L\[8Ecw^xBP~EF07rMբzJWu ?xswb{&$p?)Gn)!Ȉ2,I&㹮<Ǫn:Q! .1# 2y?q{[UUU#}NպB1͏0Em D6x[Ͻ%B!!J^ݻ7'20 A"HҴ# e" )|)){Ro(;qcxywКű@ڋҗA|Wpy [oАQ<3dS{Fcu),£/ gy9.eEg|=&'O(WӚ\B_q k"(E?yթ1v(&9{dl"t3&E!Ds07k2Fjx} >߅P1[5|Ջ8K5Aq 5S d_tװQnF"̆n%ٯc; /l h> QG qQȀ~Fd94S(7mT''䰍OeQQ--/dOhQ*Fc_>ږq"hn2^:NB"2 86lv XxЫwK$4@ yyD`7w1ߒ}ᡧս)U<ᘃy Sxw,CnP !1j1^Fz72?J;P􎌢ZaWj2~\sI|whh9eJIŜhیLI\#A)pXiT 1~Gjrn$ Mb,#4){'D~ُ֩.w'ŅzqL]P3BoN,Σ.72Z.Y^1 [;]'-{͖z/2V dIڑA;a4t5@AZyzl6r-oѿtBA2 2>Bz}򎿛̌)cqCvCT56k82KfsvdӖ v3fQbw  _i$^T} _ 󽯕u?A -&`^>P CKxV:.y2 !Upf[ #){J,?lY*)adX+ ¥CN;puuWUjʟ 2\Q$ $ 2 ,, ,Lkܗ H9X O Ϭia6:YȪEŔYzLg;dw0{>5}dR@i*_&vskMmF8kO{ /N*AO_&{pt Pɸ $K6nd9mn|5Tz [ sF f^{*$ѫ%[LNi7irnA8[C#7'q`?,O$CpߛX/ Z=Yv,dW;e{v073㷚\:w*Lo`;Q%bELǾ X%s!}Vv=x!C]2;',p-ϵt\I!MU@V63b,m d/9-(pXE=Yi2Bha[xYH-F.{砃!Cg'îd( ޖW^4Td%E6l'L crwRͤ8 ]m(ߍ*6E#<ʗ7o4s56+ؠS`+w¾Al: 7-~~1`I-2DQaxgab~ WZga6 o]S})5'heNwm*hn:^^3bF뽡o^$۵kK!|IU%Ơ={,_-qT=GGWaQ\qăGP^y YThsT6`PZC/#OJUU#lKxa^'`M耮 :G_hMFi}?7{2F6=lSҟ˹D&"gP8)d솚/e2n%q19+pwg'3>*XYGOU:׵J޲Tѩ1SɨV\,If~=<:L]֌2؄ڒ r.sf& }ҒYwC`!RO=}"wc0Nq)[ l:b,`׼7kQ -Ɉ v#2 Ƶ. j_!mĸAN(s2M!#*繻ۏZw&9LfEFP +We6H9_Y9#y~<ʭ{oB@ໃQՊ`9)_a52_Lq3d#XK1C}Y})9'4rlH`xyD-ݓqb V7dq>pD̹CkĥS2#R-N'#Í{'/˥-)&<n.u )+2A0:VMF30Cz(gn2&c'נp5(4GZt'\l|i6n$/lh_e cK[2H?q ɊwޥTeo cKk2H.׶t-yiOe C/2a dڭԶ0X角Ӆ57"$;]\ fxKJY:X 5yxl2@ P((ʀ9e2`2@ P((ʀ9e2`2@ P((ʀ9e2`2@ P((ʀ(5eL)eMA8/#+" th ow<2\QJeXDdOiٳ kzyt eUa z[a Q=yaW ϖ2la9eMGɗq@Pe!-u/2lӔ^ϾTw_>Q5Neo?Z-̂2lkΜvVeGU(2⦌ʰ*ע\'͏>P2x_R$עݲ̏(\OStZ ʰگvDoy6S5ehQSⴧ k25w=Tq3ΰ̜ eBTeȔ2!x-#urp`ri me52Fc(_Ro0e]G)c乸o42pu8οa IENDB`homebank-5.9.1/doc/images/pm-dcard.png0000644000175000017500000000076413604617136013220 PNG  IHDR(-SPLTEGpL=w:v6s,u'i-m-m.m-o0o-r4r-u8t8u2v2vB|(UU W[\c"ee#f#g%h&i(i(j0p1p.q8u9uA{@|B|IJR`hǏҘիۺTmtRNS03QIDATxڅU҂J(%u8:c}7XpF?(D,sAVD#_^jբ!Bܟ6Mvb:!pQR}ȝ0ͶƳA\IXB$Q쥶8 <~_< >QSu$-k`r1@<џIENDB`homebank-5.9.1/doc/images/dlg-prefs4.png0000644000175000017500000002665114774772452013517 PNG  IHDR4-lPLTEGpL5/*㌍㠡䰱z|}jmmݍvyymoprtux{{K璓pst2䕖Ékno΁$+䢣tvwuwxhkkors|~:唕ruvĎTWYQTU}M妧LPQGKL4W[\Ъnqrfhi6^ab7倂G=ade~v&.1cfg/585CSCE"㞿(+햺!%~0x,p>j:p3kvqRtRNS@f*ZIDATx \SW{KN414g@Dba_KE@}{aXȀt*nUQZwmVtooiywg_>Ϲ VS.{ɗs=?=@.ih/ZbSIh$4 mNfA*, OfgD$B[&=$N?Q恶"tMB^QW7+O]m/o]2)ؽ[(Sz;y嗗؋ԆhC?)ڕm[PlC{KW?w䕥1.l6 :~6hx?qA9KxEF_'!-,l\.~]x7~r ?ګ0=tka ]=AǔWOI9a"僫OR|䕔>:yka_}x§cp0,*,th))o׿ܘRxBַ7&q@-;[\"Ҝ~|ėزcώs'F9fy%rKg)_9{6^On}_H=o xiӔs~j[/R.rrƓ?}gPN{١Ru*kv~u͍1 ȫ,x< W);3롗v%[FٖproӾ슺`NdJvP[>h|^ 8[o&RmB97)NqV7N>uWm㗔?*}/>84=jJ)\퉔 )\_櫔)|Pʕ(h'|.&&~^q#峇gGW>;CfԆ` asM>CmGg(_œvnۖR>;B νp2|th}I9S@굧N*aNhW7n>H|}nų->N${ˉ{<#o]x+eipƷ?vr$Bs֋GigN iDkx m}^z) ~Ro$*O?RK=OJd߷v{h،v jE vЄ]]]q~uMW$ۿY_ҿϭ뿓9vůn/B$o/ZH-X3H R$4 FB#EB#-Rh4y3 ׃n8Z34G^ fhz$~ǀf,y`M".E ڭ]^Q h:D匱>pS;]I}i$Y5=)-sڿa|ͱCRf6Kv{ 9B=D;!KaL mc󮎢LZЦjMx>JBQX5 ա|,vhwm$RWHPd善FB#HHhZݔvh A:?Q__f:xyoͤ-Eh?b՛$./ ]yo1QNjA"c?x(oД1: gL؀ *pBRn-ZU<"aMe֍c0g3C * (f XVg-Ih>O<{eq )2Ae {PEFʌA(*-vCHjq9!=B}U;̅ezg[!Z*JfWE ]ܼDA(od JW62S XEċOܘWnSwDA[R~fϼ@`Kz9(3a# X D2q2aZ0}2z- 4Ԍ|iCA>9d\r{s\]4VF6Ih$4 FC{7SFYh3ڞ/Bz]=9qb7%ݵk !c+G}"o G[*jPȭ9 3{B>?!sH (p`4@ b4<@1P `vXh(6҅A8j߄">LW|0x"  cr& {AtX(q?5W/Vhj!1fV5(9?pWūh4%fDQDz}sBEF♲jmCqoIjt'%1\\:SkRk\⎣66BhA}55ŘՖOߙ/^hSbI(3"ʉ2@)Dը:Xӕi+mvC])Lћ3DcI4'QɘA+߸9S &[ znNKE/46"n1aG4&Cا6?ɓB3xHrl ?H!>h0"pEـM(4%2GdH*mBCYvWy<Ǹ>)5ɎBCcj5'aHe4t?آ&j KS4%4fm*p3j QVDoV2iA+KN a{C$ KEY.^qtAL7ײ N+_-C l)L0eZSbr<3mS\iNSm;]m ɲ'2О_l_dAJ-Gam\Cy)[Vɪe"WVmdtJȋ`Ȫ} i]_4U rlP ,_sa]ԯkb:3 }404ޟw_`j7F?05#n7wyQSB)_<I%줕FFB#HhHh$4 Fv/iknԤdCc}7}ܵODҹ 4ާO8XL&-I,>e02d4;9Jwh {G*ͨsJ^<{GFdo y_-f9;k}"HtcuHDsOHg8_="&k2"Q<Y;7s];b4YIDsKLSEOI7x\CEn+$ i3J%mO ܠQDV5w^ F}cކ u'MMlhSS-Br6 [ |vcWX M:57 #^3#c:Ah]'tT"(\;6EfqOxu#?nk҄D?Gas{D2[-Rhe4WoIj F7HwvŠ0LJ*hOo6ٶ]* )&*e2ݛpxDˉgw츺}#."UnDK` fV2eBQN9qc8TDBH(! +Ls!WzM|\4`2-.hT2w㺛_[-q>c-AP\CDjڱ8Y6Zp 0*L<'Y,rz@"fc * c&>X^e푔;z%K.r8b+ B\#.C 9 Kk}aM+hՔ@WLe&>$,7 ഄy (UTV/rɀ'h߳ug+ L hivw$ߑ=krU5<'f ۣQFJdl/RIq^UEK%V1Nat1S0-3Ψ겘X抓*8I*OBqDG3ڔDMsi1^8)c^r{pe#ar*#@$})3ڨ.W 4VZeTeK &/;g0b xRpGG@!9&eb*۫0tǨ Ř2rV7K`:D@%RF$i !>h.G`Kcם9tT𡥕BNUXhQ!(S[ppLE,83 Aқ,[;X/A0q!I"L4Dl t;cqI0Xπ$L4ღ',\C@xP?ſOжn[YC,'ʆt $SC2 8kCawN5`OTLDRN@rr!FkiNp9'0I hLnvRp>h@ͶN;WTs5Zxf9V! ^*˺ݭ"}*a 0| (Ц~ m|1jԴDʓ"S¥oy<6LE2Rߥ)mDžj,Vsڣ/ XjG`w[by0p* ,ť3X!Ր w%Jv'aL{s|Bb`Ƒ.FgfYgfљunYbzo+Y>V? Hzɭ@6Ih$4) Ï=r@þ~teN![ ^lQ [FY34eAv_,Eh;O?[ОZ|Ш'_ q `j @SCPuIc)r 6ɺY%7;CwN D}F=tRTʅ!\x/C7 u7 UJa,:Ѯ34NG&%y@hg 8dtOZxï٠6AQ+&@Dfkmeڕc'; LhR{ϊ)%iu<=ښbyK&4^W`6 'Yc ܡ^ 悖mQPL{hbKNpw yF=,Qj#eh%;(!?FLgO[X"e$ئڱ?{.Qy&dH&ƲrNfSJrZq3̼XC2r(rE9ssvDP¨FVPz)렅rz=u|Gܔ 5qʳ*E,*j,ה=-ܚ URWӖwƄz.{A @|vM"P &yՕv#g7~F ܙ ىvpj|^ w}aF6 GPCţyVX#~Jt MXazJ-21nAshoOkjS2vBט]<&np pHj^a"€d8ep+0Q]$%bW* 1487!3C`FJK>嵎 Ua@&F"e6@.|42#%UIBTN54s@wUQأ"7xFa~9K*h6sRw0&80|d弬LSΦ5aBŢy6ʋB"kTI^&|/ i4>ɔ;.11P>*C(Pouơ6y4G"f*0kR։qTzZsV9t@B lǤ&*~hN9MɨT0 Z~"L=%/ ط9N{Hh$4  FB#Hоh Sd=_u}2m!uϑ6P&OE74,z3՗y L-K6b@'(9,Acwi%}Q E̝zXȰG>|SW_c&h4v/+fTTt()4Q?^fo*Z2ޫ,/I9P=j ڼwiˋ4} Q鲚5M}e M}UI@6p߾}I.bҎ}}`m?h~y~lb4K]6D 3YEv;̎|/b F71mG:[3{rˇG6Gbw/)C;; r\yw kf>O`AL(M.'R0.@L0&c L  c2ef%&+w،1dۓFK'Х ]GV*4ݏEQ\5mB7^tIBC-E-Uh`$+}QCCew _דeիCիqltF(m4wm5/nfTڅH>m?E^Fb?PД+j|Ђ3F^gR* &UkMQsD^fnDVjazR2ȡmC~p`0 R5FIϕ~'Bj+*pm@(2KŬUw mf^WC==D#_<~OX{":d]xאZ_7ofKx>zµnls±%Kj8@d6澛4q GrY&E23Dhb;e]tC B,tALJNqݬM\5"eI"Iu4TI#tL^'k%V5l 5eL{@묠PwJa7@3GJJKknʬtI2סr]-A"\q u"fT{#h8 NUi.I' S+l 6lN|uО yؤ[R7BKB]ymLj}/ ;8@Q"[đQAwMrJah?*A{&)Eb"fE qSۘ ,['`E HGpl-`戀2We'r{C-UU;8cQ%l!Vbbqե;91nfKӐ{[4yr3Zv4$.|aHiHԼ&8U9`k0uEvePeZC486S`N땵4Ҫd\ne(V$)D~eqeZA;WZYijx0Qwh$=X^=ڥj~;n͂Ǘ~Å`\xϒ.@%1L%YJG@D JLS:ļlMWHA_Ԅ6 fQF# (!2Zƭ( p mVZ;T0ТJ^7^)/oB''8̌Q`+%Xў􋺚YQi*2͡-߳A 5yk^j$ҨɈ(y~$򞐤#9H\|6B\,§+I&2C Z;.jBD?a0C F|@phʄ,5ͱ s~&8&1}Ɂ QwRQ| y1&Q3%{舙31h Z8AsCKJIi qM0m_hUI0"NIADTvH\%bO<(Hvˉ4~w8w}J{= 8畎uFdغw!WB{"Ki\,tx6Z-7iH H ι|"39I J()=Rl%لeDX܀p\Un/P1?(xg{D[7$XfdDYtȇƂfht%#^_F -i:+o"i5W.RʀYCseӤ I]Iͅ!0DBǪ At 4tv; Cv,OzrgeGe-hLq[q8Η˥z)F`m4m`h;y˸$pwbKP#eS"Jʋ@Éi1{ J{.AeTx. J!U9Qd JG7Swd(5q$DqtY QQy H`CT;[!JA/@X]H#Y; S)nbGg }8}3y;A4;}=/cw; >YMi7w\uţѪחE?8sLkә[Cvo0a,Ekd4J`41Y&ڇ,AK|;;&0?(<:#0 ZvM};v܏a( fv}+8agM, rDt AtjYRvd?`a=*>9\Ǫ$Wv+|Ml^vQv=cv0$_aUeoыigUBR>7BϝGn'us!q 驆(]u(*!(Tg0^E~N'Ҭ SM)|9.`e-AՔ狲^. {Olip> @n ,(q}OBL8(Sה%1902:ޠ =GmBWBx%4BIm͏il"o4 f9&H Fj!}JX4L[6swW.?D 4"[ ^jfn>mS\ǃhcq,(u%ܶ~!.?>w^FLWFŋ3Xǣu&?,y9# ~UTh n^V ƉAW03 NlLaTQ{ ~KݛX{yKLHr AcEB>?s5ws<~u7K9ol??j~lnAdM"B /8>K@-u}UݿX8”D!$ouMg+WM0C!h;OQ{uL矽_@vD$H4Xr @\q@f=.kRz  / k0D4{YH QġcĤ3AR4D.wpu^B,E٢B:D#v޺<@ϗRXohbS"˚Ӛo1fj\aֈ_hu| ]9En]F.I6RjBX5;X& Qs2--  "r?ǀd}@]Dl $y6-^r25y_ ڽd'uQQhU`-ESs+ڝ"~s>2oH.MJl"cc5HagؗPjƎlsnYv:D&1…_ pk}Y;Oؾ;@Wr‘DUM%pF"DV ᓔ`[Bxj WlpڞOm gu}dg(鐺螋2F|5-0`1(+nIs!"6\$j2SQC4f/ά\';{"<R%%Q ʮ0uȊ˼~=9u(NUSh''x18Ok&CgQ\ڙIA8- BJq\)Q~OYF5w!'^+>w!b0F= I /QVqkZȏ(Y qW穅C`s!z) 2BwىA"GCh'VEG9MZI] Ք@t끀xm3a;k1C͘|')n+VzV3szhj>N*Jt*SdB*g^A^?"dhrGBjWthiZf.rLY'L?%`A% "6VIXhHIw#k}.:@-jgvob﹮Ƚ5SB^y8PTDh-+40ԣ5|"[wɔ WgO8e\ȬR,JqmS$FqADBh_xBZ)՞@ nɮvi6x;{5-\W=DdzN6 ncح6zf?ĩ'j'?YmtIENDB`homebank-5.9.1/doc/images/hb-ope-similar.png0000644000175000017500000000105013604617042014322 PNG  IHDR(-SPLTELiqDDh1\»ҳ**"Ͻý½%777:::,,,---000111444666888V)8999;;;===>>>"$%,,=2D3F3F{Ȝ̡\~,tRNShjp|dIDATx5PDS$Uj۶6}ƴa)I!60+ ܈R[d%"&"#L^!AlyGD-*>ٺA len{z9A".e08 .N<`@@M8_PsCN>OmIENDB`homebank-5.9.1/doc/images/g_translate.png0000644000175000017500000000053414617624320014025 PNG  IHDRשNPLTEGpLܐJ.tRNS 0@P`optfIDATxڝ DA-T^aGL>!ˆA=dUg {j>jbvw<&s3ς 5R * kƔV^quC%1S `ͯA@4l'  dZ m_^Wd0O7HȍIENDB`homebank-5.9.1/doc/images/hb-ope-void.png0000644000175000017500000000042113604617042013624 PNG  IHDR(-S?PLTELiq$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ M~tRNS23MYZ_`c_umIDAT(Sm kDڤ䴈ax$ך%W3F [c@ 9#eAIL={pl{swv.6MDI}'nZrIENDB`homebank-5.9.1/doc/images/dlg-prefs4c.png0000644000175000017500000001656714774772566013675 PNG  IHDR- PLTE520)J8K;qrr4uuuxyy{||%䴴oooF쐐ؖfgh@湹jjj+䓓_``ñUVVbcd?䭮[ZZ]P矠\]^ORSV7ߨ9<=mnn1墢JCe邬hꜝBGHILMklmP~En`156N*uv?rRA-BB@c9Ś4ټ%SIc7Dr^uYC%'(N?e&H.aLGe<~z{D~S7n_ve݉Fdv[|zbTois;ΗEݢ+کpLBBI]\oPِ%Tdּǟ7G_FCBh!Zւ'(se,O%B=K-D WD曻^;syWϟ?9Dk^G/p= Ν;jϫhTꩧ^\bjn܄h@x~w\}!w<3ZpppM j7ի1~oLky'sK[W 6-tZ뮻~h='oڍkl/]+v-]*ZzQyUKX̽4_?tETu'ޜ5umY۹qhAhskoYk*nK6yhHsCw=riv{:q⟏vج:[@z:ش lVj] M75Ɏv.ic;e/S&.JkdžkZ~ضuGd ; 7[DZ[hش0hl]}eZ9[cĆ6VnZq;himYԴִE͢-;wjX;i^AZjт<=sZӹkohQ@ZC[UK!#"H^u3'Gwq6 kThscskc#ls;h`D5Ekӷp;!g9solk7lZhlm+aKmNɒ צq[7~aj~ivZZeGmD[mEGZ֬i:zxۿhAzNP/<^}rsΝ{vr5{jN9u~艹GDNZ&Z6Xp-rѵ_Φ;AprQ_;mܻ(fPhqKt1<#s\lJz{&5wpњW{GhMϓ/=.B"D&ǠմeLV Zh ZPiQ| KKLddx,YZIq jq ubOs"ɷ\y{i5r)]fܬ_,pZ^_~XKCTT tۺ S"Is+0RPc\DZK!S:sbXGɦ*؝ k:L>M*@LtQ`".v:!sc0߸5`zGo,Rm !fNohx_L`M3%g2h VtVL9ܣzatbPJkr8,NS#2SJaW?:t7nQ 'tl떔RuC1&8`ٲ#* DjąY+i#D431J _a;^BESxRe]Tdz^cQю54O ]~,ݭly2yH;[h1Bu؍E D< OZM4;.-,pZ~ 21=YW R8GrGKgxkL06e`8Q5Jهat4QVfNJss t[u#Z,(pnGMhaA"ZԓODBICuH` i%xy,$ֈ{_J lev#OD XJn)"5;5$Ϸ/_ߡEP8B-D B_L!k Iu :;BlU=[mLDˆᚰ4s[i#uubYJ54OGLb tv6A/f5#\Hв t.fVq9eh~M 6js2߶Wbm\d,(Z1Ke)gHR CԡSHJ☭&Z> 7ZĒPASj'`NFj$VFU( siFR`FPV3fqPFB>"V%AbES5/.Jc쳌f `m^ʇzءQ]0[4ZFK\U0w`iNca`#v8)I#iBiKVhaPCauG<9sT kAYJPY&PAvxi S,f(b3^zN-}N.@+Dhu}AP-DO+哴b㟁V=@9VCk% ܴS>v \sҒ\9.JOj|kwr;}}A8! m2ZȆׂeZ>sԒ3T2LYp'yy RZ⺆CUxZ]Ϥ{=.} 覲&_ujzNZR_O/ ~n0v0n4tf.V⾢?ZԴjZ:y{g,IJ(*|`Kfjllܶq]c2\ӲSqm; W26A B%[ŭV7=(dzv;@8jTjZSU&fnĐj( Z`|QtϓB47-D BZ§o5ߺf .W"Zs|߿Bњo20/vߒ;ueHlW_{@- Z~k3[+8Zjs[-A& ~@KZmL"jzRH_[vLZ^yFI˃JFXniU->d҆ ~,*asT2ћ R^S63 C4jԽ!BڥUx sYG4 q2G$jLKz-io FՈh o5Ou}xYDk-p0њo?wً5Okņ}93\%〔h<& dyZL]YRsӾ$ ڠR>ewOk-XV%$)!ڦh!Z[kL-O~ hog[|=,@iU- ֻo.h3*g?RVįsj/\FC6V̈́#NZj>-8 =WyHy}"QUp}Ϡ# B*A~dߺ馛~Ё_yM+zw;>8*Bo}* iU-H_oYep^TF"Z0Ғq~qr}q)?mRQFGWi˨Cx+- )\ΰۅ[U..:h-@.o>期ߒQd(d2Dknet%]Q8$E&\rw/GKnwD[[GRiխ~k?٦O3@N'tgBxqy2jЅywi~[h4HɂpXӪ[b'{'MyZ]mRͨ>#șBU"{G=|jKd7EDžKk߲:u{-bnݖvޠB-r}?틣l~BBjD B෤Bgy-ސ&ho޽{8zl~k=v)1CiV. ZU~\ LIoyM NcNnQ: ~72 緮~v'=vˣj<^{ 0` @o.dd1e-A J%P~k!--8 $:<'8 r_bSԩ neH3K[V6>R"A&i|>la 'hU-LXeUm.& & wCc#,/ TIl@ݚ淤>e.9xկ7[!&Ӏ n a7\9=H.jȬIcyZo泪<KV0 ~ >D4F-D Z(~KSi[2P(ش֬~Di_fDk~ 7grKU)4N`VlroGW/B~nȸnP7ﷶM- MCZVhՄ4!Hp/ -j3w[~aDl E) ŒҶ}Q7%6#pI][MW9l*EJu^d)C&y-_Y6- =53ټ%Ft1JZ[o[@n l ZڄAtmcd6n%u[Be"[$-fnaZU~ H CYigyg 4Dͤ&]}EmDga :(51vyQ bxd0-p43 /'^oQ|pt5-D BE$u ^QIENDB`homebank-5.9.1/doc/images/59newicons.png0000644000175000017500000001026014774772566013546 PNG  IHDRf*PLTEKNN콽ikkcfgUYZvyy-24`bcCHIUWSqtrqRzÐORSY\\tuu{}}cŹRTP]`_ūguVש{>wnܛF|?93 40 30 $PC!S]sCbC62_;h2jVZZƏ5EGGG#T ᚳla5,VJ㼮Z bCBetK>dlA~rDAp=#ڃU#zBiǙ(5|>_Ʃ|S/Y eKޞs a'yJm;YM(6p%o޿sssF \Gj(n%1p"kʑn HaZuRZ($}\٣J &8&wRF`HBe*5\1OkSyKKR.^|_ڲzX_.%Z!AcYZ9.3Igu*.kO]Xrr[z-zSwZ0x駿yOO~t6R.tLLoNTSq ?rкj%!) fmC}xN:SHFKQa5(Pδ̴ ./.1h1&16pEr R% |.-uLxd͚6߹ v=[veH頇;Ϟ=w8PIe%JAs}jt~ۦOM\ra@M3k֬ɏs)wڵQ40яW(/6R#BA44Ra%QNKʱlf&S•Φ\wXWI&bbbLjIeeFћLEʑ;T#ުͫ>OEUb8uE;+/ 1HfJ.D!@Õx 7=EoӶOߚ 6lx|޼)Wh4&Q^Dnu%<5 ToM#z>f(G KXT SnD295[+4RP>8w;vJW)e @w#r \JdGj+s(GO]vwY8rvVRl|EVx󝲐HO|xZ=@4?J@O2T]ȡֈ_fOߝQ3ɦF VOrrH̶XE W8N\Ay16+QL]e&,(ِ3\e3AIwɁؿzMN-S@DIDI fejS9jx #΁g3/jV0 $+N%OSHJ (?2k.fzER&QT¤\X{Pj$ʱ4PQC'52;`ɕ999޶{.˲zq͙&^rj5ZV!XZVT>?Z=~ O>q8_<\T%y> ʡ ,=},7ο$|VNr`qN>|.HQ9t7QpMs˻+ğ7s\@<N"Xb,,V-JLe iL3 Ap4*(k0ZLxU+^+?1+{S :*FHְJ;6F'xӯhwMML^QVc ;w\®?o| @!z:=A9<^Ϗ SQRY:ʉYTY u&2FJB*Bj ,mRGB-W%3rgR[ W32`DDžRlbx|Ӳ3:pS+h{]4ĚWǿa=A_R3q-VΆYH *jD!E]]*rE ==ߚ.a?/ H]ǵb 4^=ŭV/x09H9Od)|EyWbo޻_'&2:La]$E\Zs5 ctN;Dz93I6o#m65S̍%ebEΞƱbʦ;O"<9L,wâzԾ}K fKzh Xɜ=HTq|>1&m3oK/p_weWSl\0 J r9L$G2MZ`Q kr%{{(FZ<^TFg寭͟clݺ2NVynm玝޹c$H 5=g /gk"@YLGe`S8-k /A/\FLм ky)&:ܠ2b2lP p ~ ޲xAfX],…ɵ ^g GZ p=JCw\Dm2F`Q2t2]+'۲ꘙЂ2 2 V\&ae27Q^)E,aozyWʺ˪RB2nTçlF ʦ28V^v&dDeHk-q0/_E"ܦ1 QSd@+/T f]||&ɜ9FS cW3568:z:,s'ŵ@{!IF*Aٟ;E!!)7eҴcTeMhfWeV= }}:qJkW#ܺ6Ƃ2tSy5h/$w[[[DE\2y92U- k z[[[5`ՃU-^]SptL#ؔD;e$vqq\)COLTT(e7A*

Ő$(s 01y߳I!LL| s?ٿs nkdv+1!Lz%IBC#P&eL9@]ЁŎbc&iMV$ D2WKt>xXg2 M3.[^z^"qezHfRR. 2 vz71L:/ l IdTPfʠ$ೇ`K%wg43lv}ն` ,eIJf3t'G擁'U  V#7ބ5K/!AXF2XOa>WC5_Cl&+luK.`B"jé2D$MmzղNIgpS]]2"enCQkqVh1c9X\J K/Y{d)P&e,&&C`UЍ*`m> u/ D@ecQaK#Dw5b̒J_߀IXf 5H'X2%Px/@" ~l-;C"z8aR!//o!,j\D`zAkƄk~>͜+/&hLoO':F2Jr@Il(V2ĉ$mX `2"uŔ !+wK d安G #~ãmY2)ֺK%;JU}2ִ@B:Ea%qf7OnSKJ#:U :7%;,WD_}}}v-\@sԳPWzzwX+N)3Da2ŋ[G w-n}v0.2ZB>Beh7jR Bň??g1g Ki!aVA_2a3jJVTt,t}~*'2PҡVdC(xvL&h:j箒nbrvpao>/amB b2@DFLD?CDѰGP{F*ZDpG4mMj/x$4G J_&zT޺c+L(;s_5An]S+R^Ǐ1}'F'D30ih #`Jy!hx$F1}!LO'9_>ΩnkT%{ &Oss`j*_WzAh2ݲ\{Yw[#yI9lPƃӒCO r@+ []( w!.53kjv1.<^#+:‚[ fmo2Z0jSqɂ~;RE9,(CR帋R&$+:E5e_MVNCdRg;R:upܻ=X.;~2h #T 6ĥ2/s/J72D15ռ`׏7$IcvpPǂ ԘRcCh р~BaE`0'"`ydHȉ + +3Y PI {B) P`S 3л J2gЌ6 + C@Pdƴ\ !*H:Gc2߁g5qWIbLm26jy^ٞb"x{o01p% %Q +S{A"q\ [S\3]VdUP\d(ngW05@T] ""zh,*Hlc LDz M@2'>63:/Sw(dKM%*e9Eq;Z/@IR#'3@\[ l dȁ2]»!de3qlLePAigm#Pɰ+\/SʙqdU[Y QYA^r_FYL<1=(]-2p/"沯A.wŠrNB2&BgN(k*^A\F0oy5Z.bJ"Xk %6%Q9ȭNemnS.n?:67&a2OOe,@Wx@6+ʁTbkXGa2_DT܅g,-}!BV./cQ2**G򝁘Ƌ>* LԖ‚\4,ɊHĢi,Z5ubCN&%k>c% V\x8ꅴ{ hK":q!( ̠o PUBN-3GPƟMPȪlPx[U!Qic͇ ځR৒ }sKAjQCU߽k=x 8#RˠQ(@Ζ!eНz*O[awQmǹ} ZokKZ8ռ^]a!`0WmLÌˠI(M̖13x}hpH.v;l (3d26^˺Hˎe$^oiυyNҽwa7h.@FY)3'C <Add2bATt`+53߹Vu 70g2T2| e( 2h`4EANLJH{[xNZWܭZWȐ"ȏW52#Z2p4ɢd0Xa3a7:[`0,Na`ʮ3CbXDQI1  )aRp$&퐨2hE@bEm7z7`UIE_YgqԋR绔D`7"d-gr}#_Hc݆BXNS1Sd24շ D![DNNl{("`91`J)L>Ƕ`ڣ2b9',d sjҏu5BҮuŊi!ȶҟહâC ykzߵ.Ȟow2$&eE0=t@.%+q_̖ +R+. ׶b2D2fGH?FT2|;y[;Cz?BaJd跱ֿ@]c?Lc'푝ߏiW>|Se8-?=vv'\ưZd .If_POPPa{=y *C|jLL<}}섰}] s"Ŀf[(k;Q#yTt;vAcnZL {@ѯPT$:G`]eأ2xInySvCByMDdM%$26GcGCkd vLQVa[b ct.=2\DܭOZ&vI(2Tf|8׽}Khl-OL$D&[e΀ x_'J8!Y҆ˠL5;|Kwvlkd -"cy|w5erkO'Ht\twHѮgaȣF1}f:,e_7<O9؉ˠ2Bq#HZpZ2*p.Yue;=cOyZca}:+gؒW^vV]aZP3ba*p.....d Y,H jpppV 2, +@>md.~Ȗ4L,zH.ٗ S3.z᤹`pԍ@"|8!.Y2q 5@ 5@D˰L6GXCX\k6i[JhVpQ}&E!0I7G KƄ G6~T&¦, cw7_ etAI y>\0$?R -'`K-# AF u~:'\e[a}vgK/pJ97M=YW P9$_<1U7|˭[nm):yÖ[a\Qwuv=,ֲ.22$d(vLr ^[J'/dƔD|Vq'U9ˏ,u Ft 7oJLd:L{]qQᄏYI|o9?)C[ױS=UV\d"*GуYIN6\Տɠ~;KWn͑3|p#s" ;ʰwaȠ{]7s|?Ȑ-Ee8Z$埔̸yC)Oٹ2'}b\6HƦ, j P#PzP|2ϯrU*idgvr6o|: 7s`=u ؾ1|A{nY]e[4:Qʥ)\܆A%D+pSe zF Jo~]8 , >9$퍙;&}N !:E9>mj+*>hک=ӹsz_w$J$6=>T Ŏ8 ^]A:G)Nm.< dq129ݏ@&*pZ lW)~CDkq*dj9EiUO1`X3k5y;0+o0jclov@!ŁxO8 mF{*ځ@0,C)zl*VLcY[hSMn0#cX'2P~3["gZ&iorbH^3Qtfc4fbb&#HX@7:( i p$ V\EIW>@.`2H4oh:k@n,ݶҺ0 ̎xpb8G *\/y!C8qk@K']ZŏD ˁT KP3p9aZ!˰_/T [\1$WPEH3g Ù3onu+VLLG9 S2Z1;!Cɥ 5LC#ۮ{5(7aJ9[ zd@ǽw^\6~-<(7aLsM.Ì0ʦt2`ii8ŧd0'/ bִ lt0͝~|xz,Td s#џ67B r /t8V]riu:$C{'?HIdp2ݘCMZN(~/cjOp:mKjf' ȐD2U܅%7s+U N6 j"<ӑAi=0pjr) lzeRly ߚӥΟfWlVCz{}Lܦٯ 11El콽޵co:6qtR>I <gz2HCg,gBpUH,Ct$ k0ed&N̘I^ NIhi:]Ds ~[x`N2@fg&b rB9%K漄$)>1}Z 6"vXΙ>J 91=0EAA4:˙%Z$$rJ(yNe( b4R "RpCD4: !@ !@ąQ"6Pg2_PRxc^MR֮sf l'nL.G JC%$q%9ɬِ,bc w}оCWs@D$G?T^W  "^N>~,O{%Noѱ'u]3ήUH /ߖݵ )`k٩m.;n#y2DXQ%ZJkN>ԘKn鵉1'OFipk>>.=RK/QM{Gμ믟/Yk#6Rq ̉ʠ$Pι,@ƃk$aA_ѻ`)s& ]D=N)vi/E2d`ym]=vpʳoߧ,CLy\q{XdqMg=o<4΂;/-]uƂ.o ^Npcpg֣%ʒC j)%HPQl:n! 7e n6V|mz ]jC _ ooqeV+Ke8IZSOȰ^v*L2yŻ +R'(ait0$r6 .mʀR+!]XqQ_dh K! sC32Ap0O.fPj2 K6 +Ϯ;j63ԌpdYa72" Oe( ;{M`6qJ%%>U- с  70<HdK 4V4WOB~EU,{ 5Hz:`l̘cb36wI]ѠKd$\-{Z衵 ȱQI dht6vJj  cd`AhȭV3<,6R$>y Q-kgT !O6CDkF[ VIVD/\8htV 2E`$H ڱ {KI[p8nsbghCpH|/ݭgtfGnTLz9Y*:u^ h /d VB+WNCCNЉ9/|֘/K 2rz?7]zrᲟWϾѻ i{%umxFW;?|$ }0(2uyANQ) &AK )&Ā 茥%̚2^w@%Fƽ?!9n;t͒5PgW E*q![)E$7ʜ d:zgVf3DkdXt;2+_@M)9w,Bμsݻ3n祍&1eH"}|d&dc N|HVdx}&j~9 PزrI [ GϞC}2GN*C`Yٵk,!,@b1IMS G0)á1 [>Ad 3H6q{W=5ݟ t˔]=ލ/|WKQ8&S? 3!0/8(2.lD+꾐|S6hjyoDypQqV]]4"He:-r_Tiu֊IFd\L&h!fẗ̰́ #Yt,} T|*cz&T-ˑBpMaJ`^5r*q mh-BR&dn`Vd`Chv*b9=K{kCh-Ž hk mS_Q)ȹNlX&RB+#K"~j0պ'Bx$E4rd ?93va4 .CtϬy͞yQ?s1:6)Sc].T=he:PHYh-– (gɉDDF !$twWG~dȭhCC[7Zؓ K!jF;%r$| OS9{ÅOex<)AQS޷F:ŤK.&+ř>'ui0J`W@ tP4 \؛TCQG3,:T qưPI/Cm˵ CNC9A%SZf6[3 ^Kh&n{2̼LqoӦΗޚ:_>\ք}W%ArdɝSEV%Mn*e8{gEKGvi]Gy{Aޯԫzv2ˀ(MW1쮃gAȢp`[_٦=iWo+k:^a%csdl#ŀaحOG ]>z"j ߁ Ղ߼ˀݐj6X9؇z:\4rN2ny]S-;{ԛ:ʻ}23 $ !Fc:zLӐxrڳuj mٚ UGZX>]ؾu6x6oVw~?_|c62Nqi5xBH8?YKqq$fxx֕nh~S>r2L̷ ̛F *ƗD'|756?Ѭh[|Zʼnd=3Py ĵv-~Is@?A&aI%exMmU,3"L2{IbeP}ͺϹF3CYHkEP+CBYȠ՚X9ř\q|i;/1H>?_626мz'ZnX/F]&@Ih0I?Tf2(B3kLqo"UF2|!r!y”sT)E}[ׄ5!+lg |iv'92!qE2$["H:L]X'@^AA+-Vx0f*>!XBK-`NCVW 35otؤ?d(3KDZ"{Y !2_ {հ`2\`Qd KS6^xZD)陛Dߍ+{zy撚d)îF3(5(.ZGvF/ у7f?, g3U;#1fpO oNۣ,; eIuA2(eAAц|fٞke /ef-sQy;2܉q9CڝQJ"i=PIȠ˰Evs3KvnĮk##2/K?6/)ѓ,2Qt8Tc>2qv_22X6T]6̤׉wl+@.h[F ~t03AƘEP7*Yf;(@,ndY5E!؜MiQ,l`DZ#R2La/3y*"'/L-ڌ|<^~q%UV 䒿#1%C#m 驒ţI/gjU1Gc;Shbj jPyINPhǐN{p) tu- #ݰ-=۠UN2[;8xgaq)^)6;/IU*-US!wdmv㤶QM$ @UAaX-cۏ?g/C>s'$nΞ)9^ZN t|V$N w;fwq!NSL'!u!,q~RIt`C-u zg݁;nm]!џAdP2! x|E9S|:˰*Ep0d;gݹPR켓>d)L*{Hg24oєsB` = Cϖ Cr߯v[~y:z֖dj=D 2 %i#&]KԵ4ԘW^i7Z@-a@9--5Xj OkP2ȘIr41-GsTHx𖧮dd dxP2 %А?Jt`*3PH':+ R2L&%4|B@*$B^ Z 4- "}VG~]4%ټ _sk}6%j1O/5i2s~4End ז!^̭m]g#+{2qbC.rXʔR,Һ~P2=-Chk51]ZWESIg5 ߛ4Q7+x;!C56Ksd#CFȐV47wۏpoz e)0JH0d˟)S&Z U:]t^UxK@ te?(1>gT{FK vCmym'62L*C_}W1@vl;7oy?!v:2h2WB|uZ:z-DwzFZܩ'dqz;|svA MS~#j$W]zrzNbk<8-?-92\dQ?Q3D-0Z!uVuɧ  8*z)jbB;@^Qfx|jwLuX:,%{u-">ELzA L.!2ѵ@d&o+MWycT 2MH>Tf…z냅\0e;UZ\Hi\&pXʌe͂"ɨ]l< N1 ;|1]/9Ho˖%ϔ16Yc踊 EK[\MI2p^}WITzsl͈M9 gaza]I$>,s1b%93 IDR ]o77xJ.+؏G*ѕy]k8>+:ۛmADSS% C`J !>&ֽpjAbWܗN, ҏuwEIj%S2L$CI莁وzc;[!RICbe]>_7^>w6cb`A9p:\zs8sqt-0C Xs1w:bw \HL|vHtDt'PT#c {rBeqb\p];0o-bf81$o :;m*(8Wؓ JrbVφ4nC/rlru !P)O !dpbT2+_svSZV^ n  Jr4~VA6{D<:htc̀624DB\V{{`oȹ3:J_1_p`j2|#pJ~ivzy˯\p;8 ѹ@G; z-d2UMIYA Lȶ ^a5ʿXc2*Cz Д! ^j-P$ ! ] D-AiaL .p<ep/2Ǫ[|D yE܉!Id <@|H><Mh h(4qάx?"dK jIʹ[sB)߄`q0o@|ڲG[@CnQ hۑ 5@Ct{S I.3qjQ3P~ݻ*T atWg,{ܲFdwiah vXHF$_jATt2/Q؜8ngW0ӻAq(3܃5t nfˎ{t?Ɓ‡be0@d V!FcO$v3 ~coPUw(Cex9z} ӎ{2̝;!A G㎚WDc+g]+I".C=Ƭ \:„AD5'/L | 3hAxU4-URK[,ͻ%!67]o}a) ҵ h+`Jo jti=_ ,U$$ɠ9[<\  ? \OyP2Ѫjjjt-=\(dld C} %H 3*32A1咑hf!yAHAa*"J ]CívXq(z-hML) 2@/p3\L55*k? wP[%^0p?yY ALK%my7g9:8:W;\:I-]_W!E/R=5C޹ Z!T+0mTߛ\yD9X8Ez74,Ώ5 Z0! RkRPifRA?Q˥m≊KՈ(i"NK7@4U>!SBYb)V4 )cs /JD^~\T4 Ab@oֈd Ȧyigނz㊠t:3-zKB[Y؉N ǑN+l-,ZsqP{6EEPtdqV9ZQĔgWBoedHOtH"/)KKx/=7m6FH_ؘapjxU-kK%^%)V dL"ƹ T)%BRSF%n#}M9d6fDp6"mN+K4ą&͢M0r0VhXij ݧO HÏ33 ~*03zLڔ*\V AMaIx|-A1RS芦͠,SiRVS*a4^ t+5AJg8vRT5@MHI5 amg0S͗YBݻg;3»'|n8}-TgҼayWpKɗZ% j5OOSr|F@ųnv鵭I9omf~5Fΐy&T/!y]hJ'=syO~)zБOyi [cѮ$M`R137#1'w_hǛSH)u>;];Pr9Prb{!ƅzf /vu=A;cb'B 7A#—>~ a9?!M_}]Rduvk`, xg=Aqt vݞVClA9VWb#w |" 5l@ l,,q3p<5g? j ^#?/޺>8jr}P}tUEKƱDuliBx7ǀH|=?`jnD.wH"M)}Da*誋:tv!gC7]#L}ld=NrrS|>%eoYw/ΡJkkc*6$={o5Odt6>Nw*vt_@W.J/4l   :=XI#9rT6pg082E:'UVU[EF±{} ?ަoȞh8g'Qnގ^UAnkӛH 8v*;c渁5Uמ{ɽM$ކ^N*, $$RV,ˠ.Ew nw;HCğ7u}lO.|7Rq}8oTm)T IFM^ ٪8@΄i}Ro^z'ڈ)/.l6?qwГ ދuzy&v>9-rQo6#ަkɣ&深;Rf—{w^m]yi#e)CYL ă0 !H!% )E41 hTк4"fmi[va_qK7}ea#W6MmĴMwV6ls}k6l5X'B1{|]%?6/ǻM6=끾 7۾d1ߖ.IfUHϑ J<"R%YdIBpPtv`u0[koms~\Aܾrqöqmd>^X,SQ[׽0lS5m#6`>͚m~MYj$v;{nMsO{{g1ZeK<}Zu倸;;s 3oǰ ;85+V[.AW׃%0 ɸC6y<}an5:6Gm/-6t!?I<R f~2Kxv &@TB8mfʫmge'xT|ۼ AL F $azr7% mɺMpŽm߼{K@".ոC/BNyy%m&ZIR$AobCm` @4haU+e8]'nMuQNM躈+aN^$iz-t7s*:a6e3µ.Eq|9wJW{/|sMB7Ƽ]Fwҡ6mӱa[+ )Fd8pf-|{Fqt.o |AX|ÄTN7-Mj9䍳oUݓח:ސ3epTmK,;w%99Bȝ|-ZFuU2 'F6x(֫f&3d/wW8GHz%td~u> {*iXcS6jhMIPM٣9[FgH^w<~ow!Uov``°`!+ "fl#VW귴(VɌM$fjAaw=ȚvjB1wmh8GTqD'ћ e_= u;,UHȴv3q2 9VmG(/?u|>wJǽwc1mNFp>A)WVUz($}nɮ- {Lwi~@9ѵaUs M5 VB~0C3mCҲʒ>ɋmJĝD*IENDB`homebank-5.9.1/doc/images/win-statistics2.png0000644000175000017500000005014714774772452014614 PNG  IHDRC%PLTEwc)KvyUHýҸߴׯĻ𠌈xyy¶}pgu{zʉ~ߏ̴nuؼ툙nɳpzzܽlorXę̘wԵ䉏ʴծ˼xұړg簎zrԪppΞTTXddhȍQ~՘谉lRue_ղ∧Ҹjev55;Ȗ0ܣO^}PzWa$ua]ϔu{`ADIvDZkav~gyӢ黶(/0Ll쿠>G`m簝(D{mwarVB8ܼtCngƕh\&hYOTx^Wϩ*Y5f]zڋZ$%djN3^$՚I*Цj|ϑ,}j1^NO2o[aM"IDATx XSWs',@E@!d2VvⰯ"Cׁa(S@ yT:XFG_]N3Ng;7 !,%7_{=$;KRkiR3$=SKd^,kL-5CATj -F 15֠SK 8փ>ы2t.??5sqX+*&Y@ #=ho>6+PZ -_QֹWJ0Y{BZgPH ]LSkCxi%~bmMPM0Drj+WHs *H94 x/K'ݜc5v^J-Lr/dH!l@4;вGvhщs1d9J|b{ewp_Vɤb+csgw5Ph0J@= Q4 H4rSRR-IKLJPd/C =Vy/6(dhɯ0D܂f9w73'7*+wd ]!;$,p 2DNn.x>2(gn+$fhv/9'[oW`6ءВb*,*cK#Ⱥ }3䢲ͧ~HS5ǘmN}ß>P3|Ͼ? CQF7TɗͲHve3 J( HZ4C664@`3摵{v0Wr E<Y<1!͐#h>``36@bv1VQ0ː&]9:QHl֐ݶOMM5dl; Y!M<ۿO UBvǠA Duw'`.!2]S!9*xAȤE2Dvwwv5?߰ر<~ YyW|qn=K4a-&t.\c[)?s 0C$ŤIc e2ǟmϜ i&ւP !C-ϐ#3.Rc+$b46s (̐2_,C62PÇsG 0Tx1bG,gVFt h*m0D4_䧼]cM5/djg( | "E_B\%D3)A+QA ^q!`HP!L !6>mgP.yrdXd9O'bd2/)hLHz$5bcJ ɆHм UtA{F"qJܞi JE?)h8^C }Niڋǿ<}&Zx{KuBv("jgao?,baȾClm- F$3$e&,H1nޏxtB%ibL40qnJ1wg~ȄDW-%:!'>ǫ#*:*y*ti7*=)+l,cHO&]zzqC^A5IU5A~Su_C4p`Z^̲@7^@{S|qzokns3?[_Y'2cH{+xjl=1c5CKjU]e{X>Y=)\Wqnb0-U)PO!]!]]`(l/~R4uPGЫOrT^ڞԔ%sbV0:f֎ku8|mذw<)WNbx |& (^xi«0@\;|)O*xWoqؾ{9Rh5BXfRSKvWC)CSCwۇ)YAؿx]v8聇KO 䳩m0kbqB,åԄbie츪dԍB+R^.u,kzr仸1')+}t~Rbwd.5Vn|O~bg&1@pnte]$hW!^F 0 Yu}wNoO·z:3*eչ5~@7hw:r>WOYk7 fbW30'!;Iw1SٞS%mrB%eŋI>8t  82yMyCtn  Vmj"27R|N#,lYoyAشqG"Fm멧:y rsʲʢdYЋ̂Ku!jbV,V > sC{zTzcT}K9d`ʏkJEu$}nɝj}1?X1_S* W }q{iY]84l#ʄOm^=y 5B ]r#C;IԤ@R!3TR$`h 0T0œ ݧnZvwʎ.Cz&hFGD7Z.^WRFp`T@8C{"`g60Iv" 2FM ^wpIF? sXy`7K䔟9b_(&N]pOvPeϮZ ji7nQ C!> nթ4+ihk_rzą*r˯ߓC WC0'е02[Lr*OIkt.͘*&sOMF  xM‘u1d\|_S{' Lb"Qt"}£1=\8qE4؉z$$k~CP`3-2د*ɫ"-$pIDΐ99BL Y2!Wӡ^5c~FH$ޕgf$^[CPEi)M]+K3Tbh I0TyMդGRk7I1PD XII0` M}>PL6rrsCϮlKľ<ф|`_ oB2Zɔ$ ZX1L7:+a 䠔BcpoS5aT;\ 9 Q(@&\n NMeNjDEe!k,t_oM̪潪wGY8 L^d q{;Ci ~Nܐ߀!x?|Tx9 [`^,s8? bZ3xY., Jå?*QTOqQ wxip9wW5UvCtP0剭4`z!Z%Ɇ!ECh[KH׉[A t ?:GGЫPX1m^BG #bL&qufE6zx$j/jGBAFц5:J!I}q1P(ʋ4la'wCrӧ2 &55ʤH*% ˯7l%䪷hy:{fP2*IY%R IҵVC56j(Q:jTI?ZhRQ2yR3jp>gƈB ~]C}CK6A-k HnpgaagVWl(b#C}F?K!UCⱾ4!ëKGa:3x0GQjE dñJ:%x5hץz:yi06J񙌺}"?ɐ+Rb;ZscX^&YB_aewxeء3!<?3j ["rM~ZoIvI-Y.Tw-Q (Y͐h6C1 ~YlYڮ[m. wtYR$nacj_1ź1 R`mv|Wg iIbjTF8:~jJp؉Ey2t+Gk"JC(,8z!`HG|WeY(U3j. ݳT}~v| }!g>uRtĊɪ:HPiuUrePĒ3f:K1"8ٻy2`/A󳂘{Z۝+=MegXcBVhɳ:{HYGb>z8046uh;>Qn, nB]F8:D8u{׏EV˗nҺ.exյzӂ 9C/\ԕJ0i(Id@hC"~{Cl^G͟e~ LcZ? Yp;uvn=~ UZ xe VfA GX+¡Oy!qI}/a(gg3gx۪ρcCilRř l+T`Cp)E>=؀lv2ܡQ{GlpNsHm-(ػCZHӜ yfft;t>:j2dfgE♽>`~1'b|5x/ǩ/tomO&DAcވ!ijC$6*K6:3n-|JdRXߎP`gt(8vh;Jr. sCp@ o:_nٯ C$H$ >:^(G0S04uleؤKR`YЋ2d[0eA^ qڣ^)64's5E-Ɏ uZ+ QT۫k ` 4׌5\ScoTI#"7n: `epYmM1Ս5E/| 2ao8%p%lNGx?A:_pO+ e,Wkڒ3< v7me.+8s8ʿ9>(KPK;dLЁ,TɃo:Wc!m3"B7dHYv%cE.l=9w2F$0=gaiVu4Xn3>PPPZj nIYd8D}A,&H{B7|+ v鞃9zR Ov@d?/ S 1 gQ|'VR' *˨~'bvҝseG6d^yO >;` Բp:DC랴$O!̿A\E[?nKgl.kw33x{W92#%>uQ1|!X|t{kuچk~Gsq;"NfVv!DSӭIe 7=gŒ~(̩im{c(=zG{(T>GݶWQϏۏR٣q2cmN ,C*PXh⼣A+S;渇%7\!Z )H LkRYKyZfHU6Y' jTDKFִV%c; 2H 3R6jTDKZA4Q!5C%/S|j< |so?O\___{!'OuS^d^uQssIЏS`7~_8&SqtNPB4< )No?BX+lLP^9azge&CPO(i #x蒚(-iy\\`)z4["e/~ \fg|XO jGxY *fbhs_i g_&e(0hK$*+y6G-;CqmǔÐoRf~f gmL8v?y3eh9hA |1JBKEAtTmC\ZwK xu)\ "~Acc, 0Xyv0&1/hZN6jQqk*㩆+ϐ 0tgjy?՛kSGdhn(n.)\焒dkYɑQepzpB,ڄsGOL,=w622D(=9Ǖ#)B$cͷ~ch?ճcބU+G2x?"wlln뺕FŨ2P<'o<{%;2%CQ5F-M \+Ҁ!ⶋevȠ2Ij* rO< ANK֣|n@BdX-?CΩn1 Q?nH? "7gxh{#"XCfySEI2wi=.y5 KU~е%E]z! B#)#?܉(*k wz)b;ѣbgRVSUVqmW\}I>=v~Wݸ0 $VݼBKeIi  N[{&iOӳ@]mKR>PKrسd I=4&vN3ΪL]/~X,?Sw +q) ~(ӲN_Fxh2L![(k.hw bRz7 [ C͒{PW5@ ` @"1hLax!#!EPq@kﺾwuu^Ǚm]3ݙ;w3BH~@=ssmMsѡ-ɗnjMeʵ=_=Lj:TWUߤ\3e3 Z2wn5uVtȭE?<X\RŲhI6Y*$ګdr2 qV2'= 1,̩=$'JeTsjAqQFC >S6cfp/V)#w\! 5/Ws.AL*C2K )-ahq :0q2_h*";?(.+ qY:ECI=1, T.Y⳴lc*3Ґ9Y;!|v!R]Kjf$=nm9ӣғc)2{s_1,u8*#4þ ٻ&?"%)2puhݐـ8VU_saAС E95@-+J*eC7C|ġTL|W&%:ԆU@*2= |X,PxjVBmAma>|_!)!<3P;V͝!!1* cCa!CaU{<'֟*[HЎ3k ba!RBJLq9?3H'O+.uD%ПI_~2;YM QC\)/ phJXr &XĎ~q(j*!lXF|ᬮ?D_PR_C; M8a;x$R髸ՈCJr}#zɳi%p2&0ySóiZ;C8B*dCI,AԸBV{@s]7zύfQ{E!*=<؈`Sx996r^K%݈CZkc2SY3*ƪ-/A:WTq`!*/6%mOX8 Cy':qH6_G ( A9 c WCM4~H5+GޡQhCG=4ZeBꫪCPO̡B !RϟD!*3J!W 8 Oq6Fsġot&<jfˢʁC׻מ8+>\_=z`>2sU{HYv'77A[>g-)"!㳢|9dN6.cX͢b ^ 2 bGY3C 6p;DAc0 $&!b A°rώhLhub@7rmuW-jRҗ;G+0)@*n$4@@.^zN^W) 9|D!W}Id1~{)o|?Jf쐪Z֐ 8E Ss$5ruc';BC`pgfˬm">/ܰA=҆[ofZڮ4&=Ub9v21b+jN#く;F*@۾ 7oSm[PMAO j7@PYѡMځC_h^jvΡ+/ڶ4)FV܌?.CQIF*&ϓm#9E;TZ{aC)UHPaPD¨A RŮE~7Cٻ_Ŀ^謾irxS$/AGz+,}xLWK8p:K$@5An? kJAմC>i<_kȠ f;к}k6I}pGW7*[t?a{HzCuC/SiJ?V.dlm}8ژ:$=?y3zȧuA8C7du~D[P56Ook2hwL @$:jWl /zsYF:6jF6ds9TX|.a"tfcYNyvWӯGkJkX\pL.QK ; xaM(<+le*ġzz~n͹buREFY/q BKc9)^<$ܳyCѱ}hI@wVs|MSF%N %D\+!!!7:::gC؜+=PӋFshlSӬa(v+أxZVqtFs8,ꪒӫ+bɁc ,Q3pHwӳ;x *!22R<c,&\PaRsysh#cGZQ܏cg.đ XR-wt9l;tH'JJJ*{MsH!08#̤Yݥ ġOCގ#CY 'z]1,yDn8!b5W7wcz}& AHp(dz BWuG}d}||;D*-;KZp(ɏst8CC|=|羢8<;B4IfE*df|I!*/K*ުyP13.s}b|`\x>r]8};ppV#yQ0c# :>0uѨZKl})$20XA4|Ckz2T-"CCQ['TTJj75t^' EVJN6Pppr2@i!?FWPZwK;˦D7?Y>x8XP_fr1ñeŁJ_|V&>3qa!& q?bCG R^^.c֍L1m68X#,X o}lb3m؏Dݵ Y퇿}gC ~rzEܑMqqs2n// qu,ޣh'HvK쏱Ct_L^g}*5ⴓCgvJe6Q(CMq5z9PN_[41Je4#[kkG;jù_C N͠o?-`m'kDGv8^L'&YjI^21?,`t'$MdoquqmomCi^1{;l6+df3~dD] b쐻v`ge]Xܑޤ\]c6x1Jc qhEِ=*~&xrZԋ͆ؓkfD>>Wrc>' c!`wy]?U"[9 ^xJ.񍢺{ I1S8dyػ\I!`D׀,/bhk؛?p.qTxq٣3 9fʥzw "}C)٧'/!R0uӴC3xMOr >٢d},ݤj \焙ϤC;Vʎ;& !HJ%Xfn,2s=c%WŸB5Zyz6 ='ϿǴpQEtl_PDjbw~B((!lxqwwNA|qGPN| '—Bߑ>WHud ɡTOÛgqqg/92ӷ =j[&|7Is%<8-/CNHNrL.)zL;n4JJ݅'k7 ]1vh`ɐ76WmoyBzmSNvf:tט z2!66n;eI*NT~Ùp8'as. ޱ3}Y_xYih惃Ji}21ǿ(<C!o_UyDhhwOG _(0´WC+INŪP~Dv ʄyb|{yoXRyatp𹛨C^'^=5=CM!~!^8wk:Ռe\qi~XYN!F !=IъaɈCm9,7r3q/wM"תu(VFV$ǵS&f%)robޚEg21xPnWiۥ͈́:v:vOcv@kKFw9A bP? _ ch} `бUR,ð~C穣bsGC]Vp^ ڡ:@@Zꐻ=+'̄DK@]U#DR6EGiS[V]L+HUdJӮ eԙng3Z?u;{O̓sw;& ʉrvX>2t2 jBON S鰋:UQHZbrtOPӍEFҡ{!% #Q($T|w믿G!PB}`ˤ͐QN`,PV5<|UP:Q1R)J)`#dC 4v`݂L 3hԒO Y'0oɵ n:HgH4'0E> WƁ^FM)a\CiC)Q e,2R1ːK 0'ȐKR !(.-*^!Đj!J\j}"j ɹb((֩"7D B!9W,Cɐ}Z5J(D2ִdffV?!MNpRP0Ҝleðkm)j{X曥p%JxWVڊ/s2%8Jlyvt@jXNj.%&.X==0o~< Npsoľg~v㯃k;.&dX!| xg(!׌"! ٗEsxUbIxծ5-9Y3άg|C?S??=gw}{r C7 ij.E)+F^[=whzүw|Fqv51!bk} d֡"C[_*0@3 ^]%qιAMȐE yw1JkeuvT+Px0ypaW^ 7\hhCyo]͕ v8āt s(ݫW\3e!vZzCM好/v-߷r0+cUu*56َҚе۠§ZT[-dZTD٪5&+_ XFSx6; 4yo=nԶj.|2mن ]ynS}嶑ښS:Ȑy]T..I7e &ezѢⲌ,%#ev ;e̿BO& %3/I)Yv t2G,\rvsulzMrR|\ Kw).<d'CHN2R!L57,3Ük=Q3w2 $gZ<ˇu'P8˞0qZ!_Cݞ!vF 2T⭤ Ep)c|#ue> ѹ3w2C0:~竇Fz[Wphk\1!J{sd+fꇼ4ňlùRA&3;# IbĀ!R!BM= Jbā!3Pt9 ͐)F )A|uHؙ/`Lp&ԉWV .4(i ʰc=$a~Hơ*w\TI1fǫj/`aȐKs 9U4{ŲA9TB}ΕHYC-Ȑj Cad5!i8oJ1#%i358RSPw[׀7읚yA =50rk8fYj /0Pv)+{3 VkjӌiӅ8qiwwNCeHZ/LJ|d(Kel[-}j:!.|rR DG>[70ӜZ=gVPItͼ.ӱq$/VmPFOMsuDd?St #/ZWƑ_Rزԓ=a8P^)rvݱSt߃KpPNpZC~:ȧpܣ k.8u5csg  NO 2[ƛƗNe[1!˫DȐ\ ߺ gmE4}ܷ}e1RsKwRð]c-Ey1uG/\?s1ԗW]8ס/VRwݯqQח[[O=!/q̹3DwtMX}[,ŋ r`hMMm Czʏ4di Lwo^+q1#aNEw]'LcHݳ]Pn,`4!y`ڸ'znS!O~{ܜD5ІWti.'競ccC':?ri<9Ww wY8v/Fgx0>owϗ  vVCΨ Cpi?dF#>P (b͸i0GϹR]R|[@Z[h P0dYnc:[/q^(CA5CIۡah'%2\ JPB< ;-̒gX|nMQ++S\sJ;C.f>'T QiZMg~X&uXi„!!6B0l$⹀jY*904 3c$?*` .%2c%'!Qh|cjd1KW:$ 1^5VY"ڕ]u. T49i|GcUk"22D C)Z /PaF9~CJoL`RDm!,Ӣd3 1d&gzDB Ztu$ !~DoLศ3S  d7Nu@K7D(CY/D5 IP6N >P༟0!Xc8v; C̨@{:mvtzQaTP̐;(!zO gb+ Ө]dA zlDfhjc~pH,dĊ!$S=F_i]%}C!/WȬFFߖ#ʐ*B>r}0EiOp肊v1MP0D搶Әo(&SP`7V^ %I_^^^njo7z:*C VjFj4R %Rh5 Cf!F"[,CU_S-(+$ ΂rTCbsP,ևC@0t ,CGZi;C!)Dߜm!V5+Ph1!DZ4;B!36g{w"7 `x66UP6Łzw.6ؕza1v6.pܙ[٣~f%kѐJِ_h~XmCқ9;EpܐWAJ}Vf3 Uِ,VP۳&J҆ +je5]uCƝP t8!?G.-DCX FQ,h5,!*iUdlGOC=t? r>VZ ;= mMh Qg ݆gpLB4VEϢ!zGEb[^~_iv?Жv='XHЇi'A4[fϰ~npF mwyFq @4Փ scUY|AZ̃#^l:ht9Ynmh(^tR_7u< =~iLmZ-͊&4e4!(! A AhhBCPFC2 4e4!(! A AhhBCPFC2 4e4!(! A AhhRuCA ] 4 Ao@IENDB`homebank-5.9.1/doc/images/46search.png0000644000175000017500000001226613604617042013144 PNG  IHDRl:5PLTErϛ𲵲35:KŞȊͯۢG5:Y<8+07I2N^wS59A\2Axp;cøaJDϨ@6F7:PU߽oq~fZY~it4҂Nś_سْgHwQf]¡1XUSkbre۪۔EO]֚TYӬ~ջ>j蓾o֠bШemzaճÃEFԺByi_&ueI΍ldLG!tIDATh\u !8F7!P# ҋқ U *uy"M TTeb﮽϶l}~ܙQtWx9;73sνsΙDȅ$G !3)ګJtApz= -G Uc( >{~E@ ;Cm WAC=s2d.P oQX}D#PAMF3K=!yAk?넥J u? DNiwv~n3/o>K=kf+-""ō b6Nrxc{*bKmw'n]A$DNf4hjWU8ᢲ*ZI@gsGpt?_ Eq+H1i,K㱃kѕeBU`c?lTDveJF͎fsϧ{"$Z$.Hdzb[EAAc01 S &rgқV[ϟxB l6r2Aj֍,X|q6 `uli;Wjj+m9[f{ ,U<22vf6{*f3q%7]zhi@d^9ZăZ lCUǍ=Sm%mm%\A8l]qnL{S" h `Æj-ԸjsDq.ӼF[4A8\vPSgg]vУ@Ԉa u@9Wi1?\s-` ZcxqED[ !=6.a|)!Rݟ|gpj,i /;Ow^*zq;0.mMx\Aܝ6f;;㷴<5  ʩ(X{w̘((}AP(Ɯ5 ,]/_l "4x0G'ړ )hHETi5eI̒|Ug6<-ੁj-O 8gʅ`QӹZ#FE)=ᰠ`6TH4@k%)]YrgIPЃkݦuhH0P1u7F[Ndg2) jtK(m5_tKy,T"[ KMg > ީ}JwgP[C߻ǀJ9!{;3 pUpv 9G -Q#Lpl9x"Q!sYzzdz'\cZSڈ7f>kRae)X"(V!? +c"P2WOnJ43ـ ^X $eqNࢲ5M{͊ z#p;`@e)Ag'8f%ڞa5b#ak!}a~S=h NZ,^,`@~#HZC N- Qkd DIV"DZ/**Ef֟UL`=""3ϾKXx~'Av}m2hrv^S g?/G;ówT^,Y8laSȁ}NΧN'YAll^ ?Yk]Ul έ_Aڶ9C)#5AD@( RWitΑνD.D-j( I'X-:\CV ;JM -+Qٷ@M1۲Sʟ/}Ҵ:ʝ ˁ}/J8\k91A(Dgؕ X4{a.w6e[P= ,DiZX]Yen1ٱs2 b,=]DvͮϦx+0AYiZZQWNXMxhܺVkiA@t7---C>P|mk/؝Eӡt%[@;M1帵4gu>48}b>:;zuGQ-}GwXĎ4ID\(PjoKlmiK<:rA Cֶ1|'irb:X;iE{1˙lx7޶߉aՇÄ[uLVv%@|ٕ P?9~2I߸ӫn5u_X w×CWF X[p̋)^O`FwROؘ }w^oHruH؜BgUylBvu(wK WE̠V7+ˋ3dbDYA=rlM1G.1߉O4? joD1aw+NWsj2'Lۯ҄ ux}*05=UXik 匇{V {Dtb~ѽs;B#h~],H 6P het^jh4nAt D&H7~ ġO'HNK̽)Q7:EkĤ9ATDۙmOjhp7#=%ŁE   G#i!˼@F>܃Z@SŹX?ꪅ@FF  2 ׌geg Jzl <8GG8&@8ĝ0r`h;S0􍖶$qz#&ōM:m0"}KJJW.i8 uo,;FI 䱆DOvm?V6刱Ʀ 1mT'׭*%W35>/ wb%KV*2L_"aUӥݱRom>b",EK8T8+aiu8˜;TQE7b7سօIpe\j3ҷa hӚ+*F;'ӞĔDžu25bz ;b~ zݖYNhSY50<p0HˁDE@m.%Ghv^.~@˪E#RDF<4>P@׫ Ub$^79#TaƏYKnL'5t.uW5/? d뎼- ȴb$G{lVHN >HǶ823JemU[k0p DHO.IO0<̍q2@)A4DuOBXwl\&<* ?3jJ]1+WA|D0'aN3@`QM?ƃ9#pzH@Aؙz$}!a1< 0L |D@jα![HsrD(D#f иbLJ&gB]=iPq/YܤA|[Mz ah mI,-q9/y 6h TGǥZ@^Xl1$ HZn,lz gt(p#"1Swj7 raIntA%j>x |rU,x?:&e 1 v_{}!䙒`Y=pQ!Zh9ZrQ@4CI)\dK8  > n/}5mϱïSɘiC]oGqf$*3#sQ`2}JX 5o Ʀ u712uCus|ֿ<<קUä?_99#IENDB`homebank-5.9.1/doc/images/dlg-prefs8.png0000644000175000017500000000667614774772566013536 PNG  IHDR-t˔WPLTE5204e*?Hv⵶5Cq3z}}-p­&.=l1zMz_cff/sU[__6g2}YoqrQ}=AdQp|М~9i+lsuvxzzkƷ3:?(c=gJog‹pć엱Ԫ޶(:R6c5p Nvrۣ"+.)5A3T~0fOjVu^|c{ŭ謹ګ(Aa)Cc,Js&O4V4V`ju~㎥ĵ˒sg |IDAThw\YfFI!(!H =tY@PR"v}M,Idžc2%`ޯ`k |{ZP{zzCGhz؝/oP||ۻieooaPrxߞ9Ͻss8p:2UԵikŊ {tZq+ݻ"hy-j/K@ L+W~'[itm=P 2h=Y\wxxW 2ҹQA޳/<='*8Ƶl*3=?pcm}%ktr5]=,0Ś/GFf`L TTXVfWT83 `W~>j'SZ `n#v m\QGlyd3<80z\?/?rȔ*WF;7vp4W=7Z:N0FOFh쁴ݥ7h 2=hE޳oUS.xy,M؍cK456\Z1u,4X Z5ذkl撆 jK*j`qpӕWf}xF& ҎM; biн K|t}߽3 Tҏ5 * c/vvZcC+ ͩ뽗ƒ ]_JUXgX<젫w0upp-ve5vgbX,@-;E_^iwyvo7rpx]ϛ\W(:V|,4lM;(ZnS L -򱷣=s! X͜ytKGM^Ab^: 4Q081cbfb5jF1h,M8ՖN-to9@90V[<~pjVk -,}bm qNqzBl.s&T4Ԗ_w>bP2Xe,8zzk.F,FG& ]ӀՊqK;LT+b(īnͭ3Lੌ:(hT57/p͉ƴ炅~5iB܄emplWekTآ r[, 3ǔ)0t*x\ݔ}%zOeD+sQY-8)sӺPgM2X6trzIj:۶vFX22noh+tZ⹡ued\Tmmm2xkZFt0ϭ@)pV00H2!V\8ZC jA-,Yk-|/0 `0Gx<#8n/GX,a 5bpm#产5_K%Bs]kuU*2~54+E$ r#B ]-}$Q~g}vy~nI}~672Պ [Gh]O9gB]PARu9HyĺO+wߘ(!Ah3ACYz+[.ZN\uOu,3B3dC FR;O"b |.=d`0 N>3 )8 y$xXv6OI&f#ưyσ S{7'8>"n&gZ!Tpzt9)!qfCaKyQff T~oZ>]:Q]"u|%TO ֋URi]K*9p<4>]KF8IYtIqfnqDT$?җ(aKH"Hr.|",[8+[KdR.$F66:M)@p顬2E!fpj6F-DH*9_:*Y.-"R"FdWRB=YIiU 됏u|Dͭ17DחG|?sW&r~ xqw,w"ϙG)Ga~-Si3ړq3c5ă`0DdXɶɦet3c ?L2et=ب虉~hM/P jmZxO\-B`^rtӚ8WZZ'_l9$I $d#y7!$RBM0(MrlsZLhZոT}݄?IX O$g"CIBpݝrHAъpp9᥊( aS/qD ~(J(P6IENDB`homebank-5.9.1/doc/images/dlg-prefs1.png0000644000175000017500000001216314774772566013513 PNG  IHDR-TnPLTE5023*?y{|kmnprsvyympqrtu5⁄]aagjk57{}~}E朝4d韡twwI桢8K祦dghxz{=哔3i4:R$VY蒓X\]1{-N甶5;=MQR@f0w:_h}펶SWXHm(;~9]{rGLNZh|.s9fyUbz+35BtAFHEJKPTV([)aAa*i,lIi/uCrkt넮$($,/;@B3VRt?|JkA\lsꄤɩ!O\ft,p?؛@EF1Ozfo{_u|ʱ7S{1l]mr{ Ґ.IDAThxW4BR$z-Vb˽⺎+{aSL!@R6tBh6M6R7ɖvX  yg>7,l\5Gkf6 [/~цl]/9˃+p:޿Bfz#5M ƽ֌)t?gǖO]Lؚi-?Mnf*m/ʼnP|FoN![3YyBۯ<"2zh\[d̞8rz;?#Fd- ]q)^S]mT={oܘWh[Rv4f؊8;-ڸq~塭0PX֩-'[§~D߲6#lYw}y{fں[$'tӿ{ҵζg-ΪE{sr>_rnoW؂EfQH/5T[֬YƉ-:S*n~ΧE=9]ܢ!gJ +k:grrιԵǣrxvmEQ 8QO bƵ'C탘aCkz!*?l##bwkcƕQop6p)5mm\vҮI]!g+^nD^k%6>muqS OVqְkki'Ԩ |UP8b7p5l 䰶s7766y+j[x70؟3e+l/g{?~uH_v{.vavp4pZ7.قsK+<`k^sEf+oe#uw?|**Eq! ;8w6^ 7.ٺ7uu가7 E{C߃eHˈi$?tUr%7t}J­96svmXٽg% [7[͈U> V֯`k[GG&Z])Tɖ{ޯ_ TN nId2+˩x(ϟnf^/'dr?1uϟr!rx2dku( Ő Sx~dk~^yW~NI9]("[ߛᅧoKE\[^0>_/l]ny/{qY9![}-[^AfqCV^zz [uZ6V"@ (X,&/5AE[DAc};63_:~ծ]O7;|-jw{:%NBAB$# %jhB@2R/%XB', P⹞}9N&lFI2D1ס C*fJ ܪA2f㶻ǀ5¯Rq ~Ž"<_x1y[r[mm-glt0`@tJ䉃թB ,ñ9`P X[2ckS0:&G-VJu& 0bQU^lِn9@-O;sTm'y򱪎XWb0wHiO&RY%E@]WD);m"uQRlKc6uGByuV5(E68.ax&_rebu\>`Nz%M k }[j6eQ 5F^`%o,vQԞ5$΄ڧdѵ$B qy`R1;}#p{O<٘֝AYJ>9&nxrZ$DHjl\ݫ-ݚ\)R϶zK6~UJ I[ ƟXe{e]0ct.MRb^qj|rC&_]SN%Q*<03)"'mJ,l}|ԉԨA[XZgy9t k_*ڭQ'XosWJ SVyJk'h|0a {:ish #!gyng+h= :V[k-[ʎJ 4pzU4KZo+|` 0ZBNƻϴ`fkʕgֿreЖPϐ ԬZs~#ڒupV@#%VsP&lue2&p'>kId\b83gJ2#M6AqAj5c1njl$b:2 uV9eGC#l LIH@RrAP0( 1,vݜ r"O "ȿX706U@ Fc}T=eYe$c6nM^w"?Ji=9Mnt|/DxY+kk%S? ȽW=ųe~HF}:BB %` VbpsAqay/p!S amy.B_%``NH^#N%xd.W|C4v̧ h+6 lM D+OXM&Vi=3!ϕ'-Wb Əĕ1=Mlɕiv{aM:20%GٮtM%¼NuPZ҂Z0)hW%S!2mc`~vneu0-m-^+Ѐi>Lƫ4 N0 2A780'-CIO묢1HL&#=NlLi-pk{,k0zUv.-MKPL э 7J!BҖF*93!iK+O- d_*et./6) ,F!io*lHHEjMK֒J@A - xDTB\~Yۺ>ېOK`Y SW:ś|L<ٔ4TgjKdoM!U1;zZ0I?[/BϖS%1̗KǓCv\/RFh٭VfkvgWϏK "ev0gYR; ![lr^z^i]emi)Z P~1mG,,sukvRLz[屶 ,s?+1*hgЖ29^'VƋk7nfJ\_Sp$sOa&o&$Gg xz ]:@$7NHO6[?$R15(LHxB`d$I!bB$e骾W~]R{ۣ׏Q^pyjc4kržԼofʀRѽw{Ȯ~vᆥ}vϳhfeۻbƙ϶ۜ}ƽ{zyyql]g|prswozYn|\òվ١ٰ~Vikwq|б~FOdSNKe[wͨ佌fqr΢*/5ƻEuÕtͤҡ`z`\\gaⲉo膻lQ'FxgM7I˜]ݬnH39H;MAh38Tͷvk\f̕wX]Cq0OmςE Yuawby5&d!b$$ht)^| g =VG9Q~_Nw?OIDATx TSW3@S6eH&Efo6I!MA E@VaA*XҏZ3ZQVO9w_ ,-P #w}7BM 3 K‹LS9("u!TIb g s46L_k 8߀é2eH- =~+?:s)^,s7&[Yc7<#! ^2X^9&@F $&ia =*|2TI6E1e0-r9EBvϦ-;UȀJ^g%+-|rȶSDPl*dET!U'rGյIi5 ;B b|*<-BgqX(P^k{ѐv2>$¡%/ިt-1$O"y+2<>Q qä ^'C"ޒ!X;XѸDT*%$2$rb_ם>s>z ~B l3rQ;CDnc%71Y:t \Y4Qf2`Aln ۂ:xSPrkL7=ݕ`Ӑu :Q3ruvT*v'CW譟ߟ~E o8yu$OK`Ue-sY67pdp4 oko2lڰ SȀ <n]׶ͫTcW 7QFJW4 xoAgSM3F1/Ce_{ J' Sct`-aF2Lt77 R # )d%m/ dUPu4S=C<{e4!&2P"ddtw w-p4cn7(\[ه^Dbk 37U"Opf_-{0.Y,uN8Œd Ω :cm ӯV6㑍aH$|φ ˹AS@vT 4BrMn xF:D8LC7:do&e8ѳp ,ZZ9NbE>LU'FP 2غ+eFs77fY7]Vn,ёe]&l1QN.%&d7'Q JtQ82EKέeUKZU&(2DZj qLb !@Қ2* nJWॲғ"ǒt Ev24-sFƗb220e2'qEF0FȄqxsHa×.vrXYz CTI[@ fY6:0[ȠR0[[IedLji43""=F6FF6Hg4{`23+$ eЙC0&bLg%ZH8*j p@7pSy R4qtL0R܉DcnL;JG=ڧc ਌)LbµYYlVEHL߬UZ;.i7]yZ]:_6_Q,m][RKs`ͱPC#O2P/C+-` 1%u' 㨻y'I`RC 2-jާ%CehTGV(dh# I{4//Ib2h%oG E-!lDaApeM Pd,x5&|`^G $GjBfJ~f*/|&9Vo*d,rf1o3 ]F{}h6=LL[`h>,&Q03p!..WA(d)sۉ &f1/NA14 &&ʰZ3xZz7U (^ $xǏB-a8M}n zx6^o0KGOwƒJ9$&MwLI?X#l,ghAQ~Gn xZoN#K M&eB@Zz2r,9aT/0>'1N'H:@$.X)"N7De8U /'kPz_wcwR:>|yǫ̛zA 蠖 xcGA ^A*b:7o'_v mm~g' xdAJN/z} \ i9j`؋!mda){֣蹫-Ȫ!;L,Ymy7 b4>gS ݇ߊ믽A%h\3Oi9j`WȐsX}bE]t*ʵz/~PSG}6tr*d4Fݣ2T2 bC7oeR+! pPEALPv">T 态E Ch#mz+K(`NpFxnL`&2.k]T_IJr*݋9A}U&Tr f/NAr].}Zֈd ?5ׇ@[rV(ȳncr Y2x"YyҮ~ -U?~x0 ~NvSivT6'4>"Î{ Ѣk1Ж_)dv úڎ/&+b OX2˚G#>hkZZ ޺m3 yL(\墧SLdX-XƇ3˝xO9GYly_f& Z]'h(|O9ݾ7x8ڀӖۡ{b2L[ހeZӱ$f)Zrf8!3d=^2P2ML|gR{:E%wqa΋ J X`W\s̴329VRohm<;]JMaW外br~h}C` V2;Y]2gO =d.9+pdl.wWuPf'( . 8;g'?+L9Tx0 d x Zfah@P.y'3cXn~; '3%<6f|=l*Yck ! gr mikaH Y 7߬)`=7%lSОy|ӅUY'A 2~|CS~`N>UG'Z%K6bdp ux =WN Xr-iwB"\d+iˠ%@7Z5wQM\$$! (d  Jw%T,>QAT@VZWRzsjkoOkuuv$dfoL.Êg]mZ%rn8{`EfWȳk&x*\B%gS9Rs? ]pg4'kL<_RS1vE5~4so25?˽W³Z!U+Ŭ](g`YH'4X9jdOJD?2T嗙2=:%z7(`Wpmxh3w^4ؘBȠVTy5NxkC.s(x `Z?d0|J\^qCV˨ Ճ$oQF <~4Oe@w+֏{-yWG,A';j3ɖ&1Q"CkA(<EH w,ѧ;IW [歆wW$<O% K]'CSP3 00B`ʰ*b*W^P8!%//Ͽs57y )kT:p7wlY9gD2MInX_(2):[ EOV@ X0#銾v=f9jE_JT%`[à1LRuBsK2|s:`{Lt7מ"o\:oRxYQ.9pjmζ--plLg/s|)~?~)p@-7>q4]pG&Ɓ2zωtDTӄդ<4e SDŽDKٳ+;l^rVñE,ɰ`oڴ f?_=τ~ ]|v6LJ a6`x2X5)׶1>\>{qyЏm1:-TJfXQQ~23|z_~ck'K&ew,9ۻ[ 6Z3i͑ga9> @/p ҎhxLHc7·,0<46W&UpL!1azYιRfKI I9. 3:ccR~LL.}QJsVEqqq)9qgs|!!pᏃqwSіq%56\! yA0*љqKaZtW MS> 9#k! Cx ACRPd W^nYU"QcR R ҡ@x>)uZB mΟ׃x0?2pA>L2e'"{i`uI1$3 *.%@prUh70?'| >@Uyh*lMIu 2V.ΰ ?_5 0d@u\*d1塩ek":Q-Tr`>AåNePd=*dGw Uf绚aٚ2:.7Di).qJBS3dZm:W2K/lYek5Vg6 (ϫaT e( >q}WndD 0,Ԅu&&ˏCT󨐁#&¤H!G24YQ ò5dC 1M:2@j萁:T^'#<ۻZN#8t }vh֍ fԌʾˁUU?=e :Ѯq5¶'2ػ~BGovu1aV7uՇiŊsF{#OdDq"Ӳ5Haq]1nh``Lח랕8!b%D"CmGDˁ 5F79ôl 2X_>hTc4ad#C8*dS1Z]r7Z=V(e|PɛUfexdY/а= +>}e$V)Tm/z}DV-ىЄ.MͰl)\p};zV25``O9g|^9(^ uDȐ|i8H3`,,F2p>e _DUg8&^,Vy*ˀ+k<=U\ZyhF"\[' leٿn;xL\X䋜GodTYQC3ò5=̚J+[|>\1<锏5A=;u};AB!aٚ1]S3drϰlMA!DLt߼u/< a/n͸kXQ95aᾑN0Qp oHB^`Q8,u.0<43l(Þt:GG&FFoVi(3|ekFjj]s# 0b[;1?l[Gi^`ʢyk}vbZ6i'F Q˽\}7<5ReN5.Vm 8rx)B藭?!Uՠ<44\LLL,2L;+LJʘIo2L? laEC3OH)nBEKyn!v nІ\vHHVh^59ox+C>@~ٚgsWT7R``D?}/}Љlehrew*?_)6?NW4mvzoh#t2y_/A꫋246ݙo@D8 &${DOM5X m 3m FlP|Y AmVq  oW =ew |Ū_Sdx:?::Ğ qs&̡g0>aZM8;R)xBwsfK3ϡ ɀHQhЈbʘo bW2DM9YP5 :OZ -Xp(v@ӆɑaW"Xl`z7 jWiB9w(ǭd@a=:xCyF #jo&\>b.p FKrc s8>!R> 8&ipa v#acjcBG2h.3DCa1=~dϖ`G-v&v| jt3Q<8 iA:?JQ4 gZ{qK}A'ҟMDpi Ix?uIaCฏ7Hv >DcDoE>nW &4 DҜڄxd&5:<)ӍW-+Oo۶M: ]o6a澗(H|k5|ٟ*j,B{ˤmҰk]VyK g&VAp:ab]}qqZ#Ebw1MNW(pvxg]}w|gwX>8eͅoc_=Y~ wTA3&+7 Qj{zjxoݨ<}o,Xy?{eM@jNnՅ]hX՛TaV[dүc woFDP6Ѱ@N~!{xqke_n}/塷 }2ȃs{u~ǥk{^[i"kCgMMEXmߢ ssGȥѸzp|^)%$ 3d)"Iۤ 3)2{w‘v,JU ݑajXՙ|W&=05${9&~!eK=K2|:E؁_V>xc.zc;2|U>ZZ۷^[|&$e Enf-CQhP#'T;uL*ÂDlsrZRADrV0e~v ;b,puRaijV +/4dwkY*@A'` S%IRK @p[TP?GLs8G! >D}T7 '2 B' *(O2LcdvM4M? #gLC )d\ M7!`5\"+`Ǐ #0aAN <$Ntdx|ٖCO'<2vMU:4T \n UHN"1_Ƥ> t qg|o ːӞ+0n|5 )AJ@=dX׫?SS%nn'2xQݛjYKxW|b1T { 1Eߊ$b~3JWRUՇ[r Z64NF*p2L|mzgގ?|_V-P Sq{u39wԗ^:s㎾#MZTLSvgT';^Id3L#CѲ|$!gر: +~杏E؇+^rw;_=n}}W GU_r{. !xa^jp1u"as7nj71'6R^uuB}5Xnm"AOb1b;'2B'4Gk2wnbI [漋?Sі՜_<+amJ|oc"2)Qf ,"Ǐ |"CÑY;nH>&ϱ~*n$…'#ùc/nurl󝏱ڽjrO{GդW.xf:Ȱk^g1KnXrNJ }|e˽vݗ\Npv❏+JV: WŇyOd4h}"}niX>_D2Z^څS؇?n]{=#s};@MM4րL5h LH<'2vXe W;d@NF#*d xʁM4@OF;N4|2_@.f! ڙa([>2X"L tHtȐpOձD2SW׷Q*2z-jjۯwUz]vAA+}J5L~ XP\5i&Ҋ~u&9C"~ 2QW{0pn p}-xU&\`)kyiJYb2XϷC Zu9ڲ`eGk챊P[,2=,Xp+ o '[jy&*v'ڿ- d-A0d88Cl@A9<݁vb5T?e0h4A7V:-1o KɄ%T28Z:8]k. tXH7@z]Y`Y(1aN1\*VbO\P0 e2؄ZUCtƍŽt wt##V+ ab;e6y2 v!@Vy@h,XpH28@R &CK¸aGn\b 3Z)/3d8ʭE{SVob'gHhi˨kG!!w\;" !cNvm \(_7(#' aDC4 dj 3p;$sF2JF HwE 3u0Cv%ߖ!{y5÷jA4 ACւ3Y<1i(Il=,08rg3aQsci.mPwKőN=0TmCPP3mz v-?1G$1c=i r mGM\ OY+XzvraVn٧R^` e8dk&*%.Fb| 33Re Su%Xt36Kd uד=DoNHuRg[3aS^1.Nc&Fe2tYu[t8uPEW:gmЕo!׵ɤNHu[Ov]"srFa/X?U,ŐY'gZ;%$*OkeS;&h $ZͧRd*CXmobxgbzkπ nv|=/ E30 o: 'duMc@؛]8v8NOx}}+IV]IJdmW>ÕQIH5ᭆ.U]R}!]}")K?p6YS$ӄ'ylNt4k$󃜧 $BL]KdP|#t$ea:10D2h^Yt9: 02D`ad(b5!Itg h7NTzɀ e7d.<bB@]X4+ 2SI\MpE0ɀ 4 !͂攏W x Êa0@@ &iփV`!)Im>_, )Ăm[nn 8{g`NQ&̐d޼dOF0쏏zz5f_\梔oG7pp(RU9MVxMBarnc|{{~qxXW\k0 RޜdKE7c ?7AgXr_,ónaU ܹi5#->v°2*~ŌqG d7` ?G: N;Bv<|֘@}ނU.:ri, k rd K Ԝ4MEuu; %9g{oOU^_2͒?BEŪSk{/e4&TxX2p(=ȝ `@SC6݈cERĆPZ_r/z_x5ť$]n&U qZ6[l΃w-WAZ}I%  ѢzZt+|@{ ƌ4\2= c٨B2$BUhdtl a\d:Mee`x*C3$FQzr@7A2[^HAC#U0B4ѻ ƌ*2ta. ?o{uݠr2?H1 e]ЅR„۞^ai{:/w )S¢hac]Q؍$nީ,|}K$.(E(.Hv-w$əB&<"GưxK(Cu[[;yi1iE rܭxk2c[THP! 6(3Dp3_xʐ]ؖ-z{>_?m]Z;71K"ܒǀd;{]i直.!SRexַ9&ŝOwW\ Xzj$.Bp dc6*8GmJ9sǞ%n[$'79X9|Dz;H1E4]nSfG6Qf,R&}\RfoE%4lRhlG9>H"e.t23# ƌ+$ԏ952"lHC 0"&mc  ڨB|2Hql`tc\d=J1fMxd'ȦRv ad0$<R̀zf@2 $# Av5Yc܈[w;Yp1)=/CE 0^<{pj =NS5}S $‚[6:ߖK77b"U_OS*03"e(>x}yp .(vn .Ǐ4p.b=+ G? cԆX[0]H~7;#W[Mo /WgˍVWͿ`wi+>>ZY1 z| SJNgS5G@hUuR䜅+=idG'%y0 pS4Z'K_r2dݯs},o,I6=ap +8gjκHf 8Aşޯ~<3Ȱu g \o#yS_>4l600fǗ21c2SRyepgR0tG "ze0m*ъ-&˖"Zi?u1ۗEoXt>J,MM)kb#|a =ԉ1IG9k]?p ֡*cU#iޒ'0g )LA<2by`u,j;{/&:/a@.| h.5$4xT96+#66ڙ AcFt?J}gՑzSz:La62o#\}JY88;a|Q6^ x>ຖYI5iuVjTbʡKP ZLCKF)}VԨe:prw̅g,]3o-[%xQЭx{i0$.PY@<~`Thۑ6 *5;;$fdd23(Cә C< -<-0vѥl]t)zH4.$3G!i#n7ȳC]0r UKr2)(CeD2J%p!md> CC?ړNre+VHW''&/~0ЯmяȀ_lmOa% JA(Q" DD0,0a_ԟ^f\ j $ JAF%BqIENDB`homebank-5.9.1/doc/images/45topsending.png0000644000175000017500000001643313604617042014050 PNG  IHDR!j<PLTE~#«ގHv{a:ⲶEtdCXzDhBq軿4:O9W0@]볒kbzV>KA\w_H:eJWeaRQU,6AAAmvޞ.3tm9>5{;m[qyOai9S7sv4=u{_g"_BɋŌmm;[3.mf3o}sVފ8H,E#)={84%KSc]!jH]a'2X\k.?Ǻ_@ 91Ijtj+b ;o[ȕLh{j(=V"ԏɻ3~Ƈ| gy{]n]̋ ^>.|wg .VqvTEX؅!/sk{ ix͉Լ. -wIoydd?wv24͜Wl&Q%BYJVRFkx4M5[PJ")RbAMRPPrDDN$oITo`RU$NE:ť1KHFIq(!L1Ij!ePJ BAA k)+zWVpmRA #HQJcR# "R7>"?!s.g6 N|zJ|D@a_ uvOX0n|C@3ԭ? یb8~C/!Tr2`%OɹR$>auβrCXQ8 !T P4,+e:U`h:U`ĶբנYU4䙞] b{ !%~A<!Yg.tw|Qm̩0 t%#ahT% %$d$0BůuV"dTfCTօUaJ`AaF ]3QBpG~cH3HRFV Vڙe9 @R]Lr.z<5/(wd'up;k^YvQZՊf'wD/8 5 ]=1|휿X2'7˨ jjC-<ʧ@|6.o9PōvÊTOաB͍n.Cv5`tNLgXgMߍگw"F>d}ړ 1B~'i!CÎnfi7/>ھ.^:Z]rѯ]iWkPbP;39g!!RRk*80&=BWHM0<& A^?k<nB{!BK"c;+ovwwIfm$ۣLܚbZwɍO=Ǯos4:׋%MU(Z)mQChTejQi44q}! Eyq.Ŵy/$DDp8:탚۠Z| BvD|yzl"$7.` Frׅz=z:\'b”|A mDxEHN!WEUԢ{JTP jYIRfLIE+PJ>"jKQd@_גץ(ΚuklPB*V+-+t7UMOJA g BEJ?K<5pT]Tt>D $C2+?vvP[b[Lj%` J`d9!zɽ?ߚk]SiMRoe 2gsq~`cXi^jC}A%ҷohNlH7ۄ$`~*&TS`*m`"Pe2e4Ș7|bձ\s'@C#3#cxU/ѵ9zpu cێ>eժk4ORCcΜ9M&ߧid6N9"O>i8وHHGj~vʔF$BvktGH#BHGgdBs6RE p2&Pi(t\|w:Qc}=KLXᕵA1uK<7N󍤓`(r>ZB>i@$5!Bo* a "}oI2 "i[ ;hu| ml; # osqՔ)#SM(%ËImI ; mcV%ACȵ"[]mZɉq!!Fѵ2"#!I$lEy`/x7ePB̋q BG&Dx8> BįZ+!I tվQR&! Wjb4hoe0`2,&8( l*K6+iF=5[¼hnH5p=9NtiK1g5i?MX/!zFnlϦA-p$5ߕEӦu#dŻA࿦h*I2 Bįip$7 OV GhЄmJBzТO%$v {JxB拉/ύ>zӇd?-ozKOp=(-5}4>UGdH@~^pj'a8@T! ,-q䏮)w'LAҕ5qF)pmN"-ʘUԬRnѢ?>U-X0g8B1"5G=oD_rYeplu(>'o ǂ[4GZxBڰ]:z=Z~h⨿*\_~ɢږ_ 56r~!B&ꯐIǴWm'dLz.c!s#އ݂GGVd@*MD|*([G` VƖC?ceEW^V[z~ÚWDQ `? 1^d)~PM" /J=iukf`&BXz I>ϸ]'#g֔c1݃粨8qIpi.yH޻o?"4!2w8<*i4!!,sdA!E}yd7hJ6;T,ty4~  dKHC8BFvur4}?|u05'}2ilZYVoVz/Տ i|qf!q2寍CJsN_%rZ> !#_ ^Ly3?U}}NWfɇn^OOף`;vm1g`$$oS05<%qq;fc޷I.#ה!x>~jP8f?3 C21~ &>!}aU1j ; ;.N~;Z4L(zÐ[ꐑKת`w!TOuEs;TWmP;E"JDNLjQi2aMV1# QmԀ%3H\t2|rvNz5: w|hIYiXv_O(Yi{'lJ0B Kmy( 0>pO!߳W[LKX2d7qFp~#8 n!%D[CB բ+}457t`7`!b~(!O^܌_ J?%y}r%k_;t^u *qn]M{S\BB?4tBHtjduQus7Y _dQZYqYVïLͣJ,zZreT]W8tVV[Lf5+﷝9s[aV:D{&XAJh)|&ŷM:%#S_'7.`><2ug{[/@yһ1~~w^LBh]qЈ(jo;1N úCQCPUkL('s_ KU#Ө~Ghn" Z/wsɯAՐb5 {tBQ-,8B4dD&ddEPx$..h#3%iTI{sΠke ]E?U9foXAib~ď=|u3 X1y7ќW2f:9hqr\:{Dȴ1ÔiA׬ B׬ B׬ B׬ B#cC:Ib IFIblH}(NIqh~H)IENDB`homebank-5.9.1/doc/images/pm-transfer.png0000644000175000017500000000110313604617136013753 PNG  IHDR(-S PLTELiqzA[q9u1oXBY_bh]ZmkkM;v:t0HQCLA;vMN_^MWTTNH e(h)a#@}ODGSTJ[dml1szx>w5!R39CW~kԒu}Χӯճud7tRNS<Qf ,!!PRaee HfhL": ՘̗ 15|9xoy$Rnq^6``*jb a0*(m F;'=O1k x(W\;IENDB`homebank-5.9.1/doc/images/dlg-filter5.png0000644000175000017500000002746714617624320013656 PNG  IHDR64PLTE50nK쟟Ѥϵ~؉oop~~bAk_\i_ZPů֔wiuO`{icd;bRXtJČI˟yH T Fʺ(HQebCPlPl( ئ-zB)6TTTpvJgئ֮^ߗA9kzlq(aۊ g8f'w5_vDg;{cPl/fY$v(YkG,ZkhI2lW.VC+ ^qabY%u.=@&iJa P澼õյWE[jOY۫䐁] ?3312ZљBFBf m,ϖ\iOHN&5V'$Nh3 lVByBPp6 m\`a}N{W7n-J{ا\qp~mԩ|m݉r9^sz|=!p|4ˣ77>|@Zۨ)1O\wu!hbu[u_,"l{6 mN2t;O.Ŗz4HpS m$ ˱,g 8[BٜS{G;3(DzRf5L/@%gM@=sXsdbυPM[@ۤ(IOsEAY^ tDA(b m+?תšk՞Ma@jq@T;¾r,6qԶ£bƘ)'7N֥t..q/}1Ń ol N5¨V9sÔOf!5xR ^w$i;Ȣ-l)4Fyj7o1-z +.sQt(RURG.NN&(];@n3څ0KKf\q9$/5܍WohH7"0l^^4Qls qPj+&˦xJ-Igs1^6];=;!%a%wײ쟡EA~Ba;g6F]#HO`KcZsO(I_&Z "]{AMQ`Ksu5 IOYEOBr!)Z(׏FM>?WԴN:99&++(Xj IcT.M!?ɰm3T8vgkIl Fa` `BJ{@l[@;(Ʀ.fJo !AbM*E2]J)0Uaf#KcӔb>b waJ gTD<+Ö2ٯ[.\q}tyk L._E~\m5Q\NCG.?: +JK-Y5Zhb+](Y6Z΍܏an+ 6Ⱥ|A@:J(z~Ac[k#'Ad]Z͜nHqqG3q `cT+k"{E잆l rþEz~,FKk?/b _?(XdC7G#ao G[u 0dP{=hf#F"UIIIDyK "kν "$yGv* ņb[hZ;_0A+D&R ņj2l99o,ά{;.D<TR& vx2(w cKi8/Xm`B.Z+sbi p5j~13cC*fff<$Pl p y8$8+2,Ylۛ=f 5,Ψ.ՖҺ d[ޟly)wZj"\̖+m)n-4ޒ&sleZuuW-$zm[ljBwAT^=aWm'Wnc:؆=i-D&d<mV[lҞ_:bSu^gfHKiv&6t]}o @US )#)3My Eԋ)6v"~(E26W4Oo.چKi]ēb[`gkՓ6y8wDFCI~X1ݵ3+Ia<-jXM!700W29prf46vilh ))\2 t6O&nC˸z#o~+uM]iۘ&2arͳYW.7w#TJbo#@[yڰ-v%A"Jʺ  3p;غl[0-gNٞb"''9:";{tvGwEdƣt2B=TW)UH1=uWPFXaWᖀ0ko: ņbCPlۊ5.R"GDSX۰T5I2{7|wc` /ĆUSThj4 KձN|Sb_aHY' h" WGMaC' !}_=+L>؜ymRllpxo1-"zzخ9+ؼ_}kodEr&y|@m(^ۺ 6.l+{4N F![][HdS[1I3(6&P0H}w>&AeT?Щb):J6 m.ۦ<50@M躺q(qb spv$ BBcFJ7MH4}V]>L,\'i_s Vҗ mQGڂPk#fԧ3XFu6ĺN)}9IƹR/~l ?}RҾg5m/7cle?ðUL-xG{O ]sr.V}9dYZِĪ4d *])V]<#l#ocG.36lb) 6`NMtc|W 9d̠P! #gwl V\rB&dgl'l| jINyZy* ڰzVM*G >B_CTbo~ӟl -fc؍thnfr: M?#}/L 'IG+Ajkb[[oe\o,>WVo,NX]A'# mU\gu붧go$)_` 6SnIx?33!0b4obs &ܺ4zy`D _?8Ccظ%.n-7Ob`_o&10,ڬ Y5:ǽInl偍O24U#؈M; &o^Y+ $G\IDpH c"IX,z8+QFk%+jLdRCݔ#+`ՙ{iֆZm1c+Hbla}5D:OQl)ٍ 5yHS6%Sڸ3Q>)It@ iB!*+:Ds&`#nBFXo=Xшoh+7T86=u_ >)hybw:'`bMIv cC1Ϸ]MX'::cn]u'oH^h'6M( J:cwYRlϷo:߽O0`-YwfՂ&pxmnh EBŌF -䴨{/Ev&_~ YvmQoaS@/*Z[H*  ҕT@z䍰?{d2@4'7{VVobۊ;0jteuib#H+*88! QlRݽ 3- zHjKt^(â--lsݸa)5 "Y? SH(6;O&͊K3*u &׏~_G we):~TdԈȾX~ޛmvFkdR^=bXdP?Cx-Ff R[Ql?߁`M@]~`Q`{)M6 yErYzŐ=5{CjŁMQ{:;#":cI=aaL)Z&ZY 3#t4""H쩩kHcT 702`ڔGPl(6Eo1̝ >@jp%=PH y!f~=E6i}d/K.ܰ@ }#{ELsPVS::p6No4)ǩoǤ 5-H9]S% g jj2O564B.(<0D:m%Y|z?&lgYD$~"ak"m'6Etx,HҘ5'#ls-x:#=;x7"fضP#ʣ,CX@M#b'$Rd8l'IF訳{lϴ零s+ʪD!U a}洰B0 2yt;d8?jl4>HRlªI"oJ~`Fwl[W qw80sg%ݳtֳL㿝<!a[|K/.#@K˄N:;3(Әe%ڕ%|1ҒF"Nua8"/UGM͠ŏ/W7,&K{Ψqr~V$,Ul\Vʞ}$"6Ql(6 Ŷ`ITK@Kc6+ڰxy/<\$J06U͹e6N ['N]>&Z8:dnݾPRT#"~|M H-FB֦ܴoZ|6%!=vozB&hHI#:Mb'NXhˆVLۤ5P72mk[ZZQlӴ#yAs^%20!(\£g^ yp dUIO~z16@7N w+S%*. l&7z6> Slj?~?#_/땧b_=lN'*Y-MǩX7!81 v^[G4|$}W!SH0ŇDq&oZ|vFx=5 U3QQGG; EFAxp~(&T7Qea!9s'ֽ_i k3{OG a Kpn$iç p{ɌSY ۹/l,0.32˜Y$W8 '2`Mp>"%(#@'z7iErOh]Ŵ!"#qpO_ ߻ر;?(w̐$XJtÓ#+Ϥ;Z-hlkwnf歠Pz}pUxۯf?+/y(~;۵ -fm66PNlXPQl_Ko6oj$z+l/~ҾxؾތdZ  N{䂖uk g G޴$DȎ.c7<~C$>njo[m̛M[A7m큻Mo gBYm SyZ| A$ب4}7[--k{l$%mcTy06W MYɄkm|?k+9+f@Gzh{.WkSo6[ -_J"JXDGݾ6"+,ȾX n+˸`L? Flk[Rk]~&> "3+bZ3+k Z'/ s7 V #آ:::!ou )w]yڹk3M &}"Ԫ4nd[eze.-0|Yw   Ok6=S`- zz\_[ҡgbvGE`Dg]<ƪݸ 2/LH i*HH}nr & T5c oS{'$ ҤP?Όd,V›(05%Hۤ2׎m[Lo)/ lsY֦L!cM{ '#mʒM";TIf"ݴc6d&- l0 !I7 #LF6]im̜ &#ŧ/13&lW"R5 Mqud.R`W \B%$ HK\:\JV#H_B3FV(7Z|,ք1alH`-G 0rJ?Mg [$'LpYG/>k3*y^pMVOhNK8CFP;h=,2,!澄lZymbm+ [;9o8 S3=}34h0: >S&v* )Clw_Mbsľ4bs.*X2[UXA1ՙ2C4"@:낷ҧzA|KYE &J=-6x=euu@JV\,%w+ݒE-Mw*kuvEhVwi?cY||&ctƍeH5 b&Ƕ;+PEO&`??μFY./l ʎÔz&mqYe Wuj 4d[}v~ T ̠E v|$RƱpQ$&x9a9NNNV`BX-t,|ɩ ;9a,''?R}hn/GmY`#<(Isըhmo%TV4ڤhSņbC-SlTTּlZ* V@PB *TPBfqLjNobVRVQuHY_} @5 WrRf(HS(3A'n$R]Faf. ?D2OبibT62FuE3?EYf68U<@7/pT1֌%Ŧ565nB~ܼaSVN hLfIEylcaZ=A*p̱ۤW"La- l,_GGsi$ӦĶjL2cB^ 4 |j<_nhT6Pѕ6d`ӭi/ף6ۃ'd'EdҔv9$lc.`{ʭsy3e1:wc6 ؔ؋UoZhHf/V~lON(+p~̆ u;Pkq!`S)59OM-0lrRf,ugDu9\)6)_b 6ūCn h`Hn ѠR|OtvIiL2qy ɮ7l*s )PΦhRJ⎺K4MJvsƔ#l6Sn{ h(OhR\UbӘ |T`Zxdi69Yeit.jri$ӐxJChPsmuJcOuE'O@"`$?g$<)J ZC6W|څNk6Cj)ړ]5VȿVSoT j0TSTǂ/tPqb*2:N6B-d3) Sp]yɿ0q=d GQԛ)c$m͸@nh)pIB+bC.אD6bB(EMi/b[9REl\!4gya4)3xY(6.U: jy¦N՝G853ktpHLZ1ONq iʅ j#PQ]zrQZ2ePWWN8=_vy F~K_1YIENDB`homebank-5.9.1/doc/images/tip-accorder.png0000644000175000017500000000655013604616712014103 PNG  IHDReCb@EPLTE567>ʭӝ݆궳8堠լږ˶uܔ^詻ȶM觍pȸͽ9愑Uh瓳ػgF>wvOE-}/hnGWP'Ҥ=w*W&ƻAgд220z+AP8GKhH.sLqPng.^I0a<5`caQ:~ȢTDuȃrk^Ih֟d]TrdHmd;Y,~D/޹6.TBۅOc Pwk%Ty 2~r?C5X"f8yۇ:ғ{y^-\U#>͆~EڧG~@osOs+cK93A{ޥޯυT5OBۼ|GxRc3x>SmI7. *>wd6K bQS :sFPg&eVY@n-GciK;tR@vWϟȄgCDՁ`'Ź+NzxrD3v _rNj-~1cBuΖ˳/3U"!Zf[$x(fס žCֲ9ϣHF}]ZINCIk-԰vV-[ ő<5NN4{m"D<;q1lUٯ_P.SVo$2j2n dRKIpvGMRkÛD̓3[k=8oaGUV7qLf^0~Iސ'g ?4}w۰:a26U<ƔU詶) &)_I۰H67inګv={HRJh&^WQLFx D^Z {FZJv̵h ? ?mm5@{e^@O5PӨ_R=Am[;V$Q3y϶JkГAKDY6S"rz' 'qESlyAóA}˘5TT>a1\Y-fLMOҼ|!V2C̉ h`+=ZPک4{ 𜿺d)]GӓK Bx4 *v׋˂m??UV wֹ$;޿PPjPzapo#@Q1CQ} b2uzg4Q̵cVsTj#h(С6.gPU: y_]@`L2|7R "\g鈣@(0 ]h/}gӺPٵ^mz1ٕj;Qi$"jS!(0<`x%yxmmLUTsfwm^Cx /1M@vZh168 ?kEeht8;&8S<3LSg{Ԝ\Oҷ:^򱦼\ rJӅQOq -|,ݔs3M3~"OUgWY16."Ƽgsq r+{ǫ2+ =76>dw9;wU׿Dy g:s잭 ~>(vC_Rdsp|u`HyP:pAU-tjq<"X30o~3xD uBL=u%x2'!xΑd\F$DFc &zed@<._N ]n؃>3ZGIENDB`homebank-5.9.1/doc/images/dlg-prefsC.png0000644000175000017500000000762614774772566013545 PNG  IHDR-z'PLTE520 vX-4)>3p+1/:<7B4F0y.Mٺȟ_ֳ~js5⨩o&}HS簱ҫO_}샩닳+p롢y삮퐶nqq?JWe蜞~IMN_kꥦ;BGHbefT]\eꝻ;AC48Tjxu숯Z]^jlk#F{|{tƒMQRSWXbkiq39;9mMwurwE4Y|Ep~'*-t5r1{V{y^ϡbt;r(02:hshU=yxBnĢҙԭrۯIiam|2~څv]tmWoˎɢfտϰaYI~䖎oæ#e cIDAThwTGwVR[ $KVAPaBI=л i&^۹{rnV؎+vio>h1 @ p.݅|g͝=!la"[֏`#n.;q*dk7=zˍ㓯$5-`1e[[>; ٲ6åkF"o[~ ֮ޅl١疽n!߱XL_Q޲+dZ{4u3>ڦݻO [vszַ5ׯ:gݻisk?5us2.IUݗKvmWJ .S9!4Gel=̔'?(yg ۳Eƺ^{Z?,sL[Dk͹WmvdہK?ܵlfMoYqwXW]Rs(ဪïZz][=[l #KG)|WN#9.+Um>~jǵ**Ía|3/E^;b q-{L%YnDc8,F v+qrY#h&=!u6jol-, B<5 Gb^Pb/'YS []Sjv"LP![\SlW'?-+84]S]WVTI+cX9}=Q@%f| OE3RY5ه m3^1VP︶뿏oW{簕mh0/ "NYƮ b̘[16[!:,٘ - "їicpྵOA%[Ϭo0 c}$I[e =V[ڎ@8+ciqsQ:M=Lr m I npd[ߢpvX[v-̓D[!-Ӗ1.(3;-,Q&*ծ-55^AF{ >d:ebI}A%A]a݆v+bgq@Vֵ!8cG?O<'ː-{οl<O\lr/e%矸@'ڵٲkǟ gx$eӻ~6{]D[99t-[ւ@–= w@ apEq0;wpn:QQț`y 9bK> e '$jʓ6qKEuEyEa=FFJxxs_FɛXĪ2IX}d'U +Eʝ U+2Wn(oH.kP\Fƀ+S%|%v 9<m<^{aR!wz6VX'8-lzg &_&0x[HiRȹM(VeU9-Ε d߂.Vn[ΦpJh+wŽ?sYW,"7C#҈r8F4 ` ha[`NoD򚃢hu ¡H;3%m] ;7nvvr[آwvlkǡlM? 9{yW,2}?v:7_3TDz5]BVG:#ܻ4.G9p̭XQ(07l[ILh[ <F!CQPBǣt9NDx,Q, O0 fk,M*l9!ikX\4Rfᛲ&}D Ge4bux!jrZM W?Rfզ ӼRX9RUA@g*Ȱ`깚P9!9'"_#}݅w-xKCXO-Cb0}1M*SIN]P|LR銐q4>)z}fvDu/=hզVPlml+Q@9[ dF&*tk~ȝٷ4p+!ּ5]u *SUQJ:-& VEAG iK1V*']JQDVqì[8zDVإ-aR*ԚTT&XA”1xi?.:z /xOflnسδ,ɩI}6JMN1trȾ540cKÉfnuT;IS}>IE%9`'WG>32m Go)[:l4V+fۂ +VEBVBSBGP 0oEHGLUTEI2IGPj Ka5ul $l=dzM_ mLjvwtT&Y\#}鯾mc%8/,Hq* 8Lpbš L!t, &|#-:GcelL$rV%\iUdtBRΉL&Hd0ı7J¬PA4:]/;±l3u$[h b[BNݜ\ֽ ey˷w ڙpѶ⎀,흙K U+g&ְYwEFu/_$prK0>QN^Z-' l![w^LlVQ>%,.Ȗ}[KҢ0, >PIENDB`homebank-5.9.1/doc/images/dlg-filter6.png0000644000175000017500000002264414617624320013647 PNG  IHDR64PLTE5f旳3.Kӂ싌tj<凧áxy}lߪCܨrǭ4UTcfjСkn銥'-4VP}~ϲ˷oop_srmdx^ sdྫྷ¾ֲnihA2ic| _Y1n%u?m큓޹s΁+ ,$y@bbc- *$if{$VqU.G=iT*?GS"xtT xa ڐŀXw؀mg5Z_kȪpgK;V6/"t\l*'[%A[ep]a.Qa7oXZ%"[i5d][lC+Wamgfd7,'pAka_p7|-Hc{tVVl smmAP@]`]SX 9w~ A lŐm' ؝ffNNaL>ceuFTat7E@m~2չC矱r6džd33[Ngm2IIQw%FV9wG|k>,ד}d__`?Vq|57VVl9Y}b{ Ȥ,v]O>v/΂WA<5&YmkEu Ex2[.XQW'V6rR#mÑUZ:g(QSQ}fM%BAe]!-wR+y#yK86S [/]րۿ0AC ltѢL*[q|% JT^M]4)+hi6pՎ籃oa.ya= 3)9 .d{`.]`%`ڴ6hl9ZS$Nolf͎c:y敊gؙ*breڰ pBXjne2q&W|"~ݭ*n"x.aGfX lbα;kweΜ3JwgЫmf{,6' B`dCeCP6MB^S>x5(a͵BYMI(쉻wK@Κ)Hgq&;3cզ큠ˠKҭ+J!;;2׷dPN6M `U0S93OvDg5¶}[2, ,YXuPTw_l][6c0ۿhovE6xn쏟>K$Al $nB6[[VHms,w 6!}`춯E)kiwl0[a$%y`b$. ؀s7ZQat9 =9L9a}S;shl!m?e ѺuB"43殰?ٞʻZ=:ԨZl,05 =+Bj[hs#ǵqO,wuzra.1Q;JnJɡIh}(X:dGwIl8RC}L kۤlʆ)dH-DSSLb I y߸ X!74?f +y&S|8im|qU@XՕlT5 zrl(`hl;DbXA_:heN(\+q"M>Y츫:`RvֲcO$Ć"6B`\̤__l4 ~׭`q]2lnw?[>EW7d϶c!ۿE[c/h7-66VOqQ0) );7`ٰ9 <ފ;3Ɩ?6 %6ذ>ǼPV!񭊟זξUQbG/ӱW68H16,1lDyf磷wxʈfZEg #޳˺vɳkR/xlTO5œIj.!<_ڤukCuG-$R<_"f0RF1d:ulOUA\e ݙv ̥C=B#$-ƍ%Y=bnWW2nx4_\=ϾQ 5  !dD56wJ KکЎRwhQ ?K%ԆO q  4$,4sR eCCm *.cݖF6HWn|\O@+ 5J[3)z<ʆ3T:hjCP6 eCP6 QaX?۸_ a[\,G$aE}ꟊw->|qOmV^g}KΫ{P@(5>nL"a~OUp,Z2~SMū4t1%?+@+iۿn6 ۹n릮 f DIm@Z.gahhXÛ^ʥMNm[bl;wϑu+ضLœ"+7u>0m5hptٲ%אޘ z6.:mUo*` HܾD$l<j xMOS G#`o?!\~h7NγK'W ʆl(#`SXTlUuw:;L*1RVvՍ06>G|wPrNvcpGumPOa"&NYg:MiBeR8x|hC*5]I$>\Z*Mo.~[a#}|ުJg`&f|nTЄEmٲoA]>^^W.6o\y4'=d\y=uqsg1Sc Yh܅?8<ȧe~i~֬9] dN!L`gS(GwSV௠9C;|IԖZf'ulcMEQC7tkؼΛn5%wvfAk"z qaEl^"u} {lWpЛpm 6O* 81$rWy]Uv㑍,jbj[~w,vRxQI'ޝ`-tuWA؈mK/n>>.Wt1+ ? I t۬d~|JFf!<Ġ6BD_aY 66j2&!dRK̈JVM} IK &v-L}g#gíȥ>#''G\ j+FUаMR]U@UU9i:Ya&UNVV4tMp$ _74xB~WLRPT eC&9ԆQ| qWj(ֵK:gC0ROΝSԶrԪa0@zلQcDdAPl/|'r.)2[f[α&$dq1i'ȈldDL tA 3Zۨ"1U(EU## Ѝ-U>'EZ7!SуPQo 3=qs[#2cGْ$䈳#bnDgw׼+tN.w l(̸u"2:!S[[016Vӻa XG3 XwEO ӞR1_Z^nƼ O|ude?rr>;13iV;I 23?߅ٴ);C9[^1f*)Nrr9?"I6B<)|26lԈ<XuΆe;4a$ fRDe^١ޥ̢ۋ[i1AlkK /7;K.sH\2қxfزQŖYL>ܾ4I:7<$\" MGYWO0fmڋ_4$a Vͽ6So!=%IY˨koFїeGlUoC[a86l1&%GiMNupCF1ϟlo;md6SQFKMz4)u#蓏T< "ci3#Aԡ+e el*Mq!Ѥu"l R̦=|?⏙°hI1f06QlRIQݤ-3p6R6Sn ?70l#`3oXy0ѹİ>8 6]^߽ ֆ<e ?L˰o`$)` Hm8"Mvɪ TTUrs|m~3Ew2Vda+ ~r8(],cdXn\Uo1/`7 4 ܷX}3)oU'UzBMU{`VϽ켼0(Ѹ&´kYyj]zr56?,9cPF!4Eș!>sl>kTNq9;G")5vfsC:&7 t)o0Or.]]͜ lNgBBBql?pDi5u  >`X*Y=Fgmsm㭦L6+COYY!liLhU>9-;.п|vd\:-lfu Yac6("6ւzRϞBIlP@AdžisM/2lw7i[r { tjhHLu_ "hp[Bې"6ΊUeƐ "M,6Ջ+ǒm P%T?w=|:E[[[/$f{x7oL;V2||[sϊW.XMF謁տN[xҶdtjU}۪T;ɹIN'Ē`^Ҵd&zw8Xxo}l?KZvw A^+<6dz/UR_mm_~_M&q&}@/%-e;+e&5۷4:ӷvwgylOn2iI_{j!`һnqKg}ے.Z6ϒn_u旪MM "qkgj_rklv7n9lU=O I\o91='lc}*l(ʆl(daSLO m-eCP6 eCP6 eCP6 7N5@ 4@ 4@ 4'bԃ&aE݁H.c GWA~8AyA/7b>^ VqiM. )0D͜/d%Ȥ*/k8+IiaøZE];q(Cp35q"`:N" $!FJXS}%Q: )6!B G:xlv 16VM_M@fɱ)[r8>E& U\,7 p; 9<&~IIENDB`homebank-5.9.1/doc/images/59sched.png0000644000175000017500000001101514774772566013006 PNG  IHDRNƉPLTEtwxsvv|y|}~͈H琒xzz{~~orrdghmppruuK玐-35jmnvxy6䄆%(@?EFVZ[+v鹺28:|||>FZ䔗'/16<>^abk譮HLL[`盾#TQ聫½ $,//15d懯담L咴WIDATxg@I.\8ezݞLv`$眑$V"I s|35r\v8YoW?_z:~)`)kp?6`(?BڑBNQ}35ưfYޘXm;Jﵢ 1V'Xm)1{㌌YAu=@w_uc;4~RV֘W3g pFCz0,?N-A#@:p\A#S5GGh8OPÃwDnrR`(*^Ђ'y oҀq_Y@@DcFj#8 dF'K8q)⯇$Ouo`ȐEa32./.K}<%)jc̸:ƀxc+ B3X7lcD,7Ҙ"6 Pn[07ch16 _=8LÞ*&a g2ݥ{pxr{vah ge_jc|,0Ϸ \z^g/i4;1+\Z[LJ+~ymXnnL Sn&>"aJ{1bC'(MwWVBUqƏ_PL\$?GyQ c0)=27v^lXl]\LsaOpOgF/7|_sP ^tO}FJ`fO߿Xǐ@W"LƆNP0ZT9ؐ @( pky#=!/vr85*P۸j}ƿ=p 8 dHusho*;;JS_7Bxh 8Tp=Z M Ch%am?XfV>@B&cSH_z=P^#)HIQl9_Uy=8<tChxKKn#cɝ:*8-2i@JaIqt2:=4ѸbJ3kJ rEP4~EG7jNYP/Ff:o26E2O!{`UBZ:_))dƽn^ت֮]RF.k mYEecc@7';߫/5Y093L5X.Bz@܉n )w4:B@硈Oytb4|Nɫ̌/~:no,0lݝKc`_ӑRv^&/:hcXϘ s/-&G2'MN/Kv[5^8>0:ڃ )/5=r#㐑p:6"{_O6ZhN}zL_9j+X[{ ":>pQmTESeXSMm 9o)H1 Z{}#c!Sh"f\_st]s8ogQکrJY0^W/8+GWS-AB&*Ģ[+Q4КMrK$Y܀PֆE0'>kofv~$beDh|%.jFslL# ;CjzuqC9j%jD `9AglT:@\Z +v73XZ# _eg`[I}fYa%sO~ACydLb̸4,BB%KȘ߀~w@R)ZиF.e-IENDB`homebank-5.9.1/doc/images/dlg-currencies1.png0000644000175000017500000001743714617624320014523 PNG  IHDRP .PLTEyUH鞝pgә½Şȴ䶷˼俿rrs``g}}}jթ|YLиA~^YIu.n^ZXd~j}Ѱº/QWXiSnڷovpW¬ǻ6..GqMbsx\ŶVZmƭ]FTyiijvİ˪Q+ =I]oo_zs|n^mϡu׶A^yĕZڿǑS9%s: bwWͺ+ CCEjQmW\eCdxu.fT@v߅۲^OP|i_rP.d-/`֮e@.l .8;AѮ.K#E/U0:U+~YQ8 ~Gjq`|ph1jA~tpbF^NNucBԉ/=Th^-=v`]yV6ZQcUW\z/R߷b+keSJPX4m"'N}vliΊ;jYYWeR]Q7Q9'ZL#aeײ(8:A Tp}7xh28i-`E<^M7(3xkS1[A+0%ugy<+n^͹{,p8IBZ_иD87 jI)`v$$}x5FtY"+K` wjW־p斛v,sct%ĖWFЫruV9xPe$Ȓd$ٌl#F6ĭ{=E= :e=:/i{0 j2[oH630H"XȋdA tɒ L+qn!^FuAsg!G/D%.aI``v dڞ@6ON'0eZdf>׿WжTNPBg@װUD3z 5)׸1_/48Opt{q:E!Fmk.0gj0{xzl0JqK.N+3ǃt'=jtd;#^P*;hAMzs΁e0ÖYL^g֛;ΦG0A[oK0@r%T<9Xe|zKk?UAu\oU1lt n* 3Kfu JDgc"^>Z鎲(^g]l_dj@Mml9su?O,avIƠiz 9e  728u(ljgW'`Rs,v|G~ZKPՕ9q\wXausMrփ*wps j%gGHA{l/*5FM } ii`<YFGểF|ҠZ?|* rd[)('G]v ٴֿ6t|ZKIOj%ijC 'NN7CP%[/&3ivT''.3s'p[@Hz;S?3Z#/Rɵjn.Ӎr8lodC#m9zKyG ) r\/d`_[UVxd(6P5\[~Js6hVB}ئL^%4Φe}CsoC?gh:&jvNsGmM '<]T a׳h,AG|{pRc?Mt0԰-t CS">@?Ub"]4Vy AG#(C4V G[ѵâ ?Ԟ vRЏN;o-Š>M,VV5u,vQ6j,+d-CE;OcSG1h"SoV,Nܺ8O^vnIv+&rs%@G}mn@KfmU)Ua>Ϟmk'U_N:Z[nqGJtpHҜ?%@3n̈yq5V3=p5WN?YY*~`J1Od*=o";g!hWЙ/>j㻍}sfuV.D"oǬ:wh~ɒ?}aK6mLJ cw5^ّEϼ*8XYv_]xn*!ߡoLJ9'7oFn޼pfVPt|< ͍:#X廃Nws(&"&U_KuCwo'E x1VW6HQ#oK hWP]erNv?4nPJaTb;Ayy AG+O,Y|^}<hͯ#T#2]wq@@9eU t\`5x/yx<^^)L[#OkoQ@NZb5sJoH8m2j.G9NyckY ꊸe~_#Y[뻞*j |Nw:<2?_OLW>))gng<,&!!L?y$}Vϳ_C+Z]"%D h3K"wL}g-XB~. V5;@yr4/ƼeȪ߈;C.ӻCAQ"jjj"`Z@qmЁ 28z' ?" ^u VdC5|4Sz?%h 1<]E!.|,F'CXSh|bg_.1ݹ iά^ױiv c6!>xpvhQ Ur13uC6ُ "44DW[<$pTuKx"د{JpBPŃ$2XLMeDmh}J~`21YU(PD {؄qleM~k`ܑ@j"=?`g`ɜ% +!pkyB<ݟlW.IhNG 8@+ kU~&E]HLF?>>upj\ϊ VhU7n._}_,"Њ<~jm߶2T?vGe}mh^ΛL|W {W;uI TQk#DQjEϜpN鼬Wf___[hJEj+g"c.F£%4l-/ y[@-N,"PvPU33tsfB7J:+3ETǵĦ:PKvqӼ If͇I11AT%t{MY"*.v62,0vQLc2~xoy,MZƌ}]6J'-N@8Z)TQs ET,jk{3%$\r|1k*c`؋T ]O A!(oZoZ Û`tDJP!h{S͆*.PA\wfqPpq:G:׬#gx4{o\+ trpģw"!, q5͙$K54 9۾6ˋ S-O^h(sVwoZ)κ9-&9zɨJ4u#?[PF?90&(z=-mi=%2yQMs((vњuO*}3.MQ*E;W 'EA#*܀J?a%{ܽm"һ?n"o// TAiY(Awi-< PEjpc踘-OuAVͮmVwglmGo5(?ɯYtMU^=dxhU~DEBP A!(BP A!(BP A!(0BP A!(BP A!( BP A!(BP A!(BP A!(@P A!h/98G:f3cDNcFnJښ=, tpM &tA"F$bz$p∭! n$NFN M%+?+v$ CWh๥$6<@[ I_҂j-'C۾x(}Wh*`=(qzo $8xN v!W;:Y7 G MRRңA3()Ħ%@jT As\{n,C  I7pkۍI!^mb(?f7yGAM0*Jrm OTj/\mڸ Xizhۉm4Oۆr×`Z*URZs)m|bC.b !DXCxtA?\AϵCKh-yT'cN֖Fq\F (j7}Fw[yVVOЎ=(b!\[|55(Ȇ(^\o,+?ҋȋg6Paa-Pܔ~(YIPt1$$6> R0X%6@chSֻE]^A;E (,chr 4<|P BM/2NMYa$AM㔒F!~I—y DJ[2@H&O N'(BB=IidXMTSJ4.WP(M1A1 (T1} 5BP A!(HMQh(7OvP"@P!. Ҁ*“0mTEyP *7P`A{UD h_]Qvxaz_Ql Hܵ9k]mA"u~m4淵.gU]W6'j!h?Ap_[*ͳW2'h0@pɕ9I1ǃ!h?AU;r7Mɼ%/6\?~C{Ըd/W>8x.J/V^ {,00˅ɪwnqX|*WWBpX*$hA!'UD h# A{_ A{ i@DMeYx"JS4LsJUW%061T IENDB`homebank-5.9.1/doc/images/pm-ccard.png0000644000175000017500000000066413604617136013216 PNG  IHDR(-SPLTELiq((')((ꌌ'''"""##"aɌ~҇֒ڔۘܜ޲@@tRNS03QIDATxڝW@ufwQ'!Ds?&RC(=|Wr-sܰB`xVt]W^.Gd@x? y -N;=|[Hrڵf;C<$\ .HQJ몪:/  {6F&IENDB`homebank-5.9.1/doc/images/use-vehiclecost3.png0000644000175000017500000005471113604616712014716 PNG  IHDRtLPLTE5~n~ߵMͺ7﬜Ƴ=͸ܝ¨DZɦޓ״㳤㺗ܲg͙ݑ˸ۦάķ׻ĵȜңѝґ̾øѪผӡH꺦ęۣĥYԴȟٿͣ՟F䡫ӦϬūgwԪzrŨwi蒀β168߳ƌ齝UXf둷|חvѺf^ws~k]krli~X슥Ѣ}ƭb슺TOPw|\{Lc։ҫbЪ^qBVIDATx PWI?/w 5yK01ɰJBa*WSHh--,F@eE.e^aKїߪk}+Kg;u;DvIrs}sΓ;gI&dI&dI&;L$Rx84! p?d2D&Z"wYick!!g"3S$)iqL~lOx੖Sd2G&n}͑2FíjFCЇ&jDH2WΤy}Cķ}^zon}]|u-+pYD7T2,"LJX֭߹ykɝOل뱸U,SRiT=MFU$TΤt>w;?"yioCpX2A%D5 L3p&sG׵?x[_'<>}g,{gD#^^^sId_q&PT^L7wFWj-/?dV<(|¯@73W׿7=gҢydϾ4:eQX_@ՋH:>+q&-J9uYߺp8WCJ"}^w/R$^ME=y.2ҋ<=oO\@;L[OHzU6!ji(h"-CGfHT(e$>qM%oG9ϕ'stɇC {9ݼL+ gq֍ˢaL2WRU~YdH0z]k ޞ3i V7P `gg+E@uA`@&VV&~xv# !%2]uԳ@dzݪ}b8Vqx:-8U sӤz@ZJ!{twRp;\ot*>xXmջ[L1 d|m4886 ޖ]-Uv KyM1eapl8Wbv|p?$2\5~v: _ӂM^BԞqК^͏{ %G#@KTvn˯&f('zUMx yp7W40 4ֲaU)#w`0p?D'h|<(/5# a3W'xWA@r-G'9hcKTj8[(µc5B$⏱C~pBBOJvV"#LprLT(3qQ~By5:hjir}t-T d=pY 'xJ6?SWU) .`k㻿^g̑sKL cرdKBUSЄ8zj3;'d*5Ja\9G9;nj%jRCP*B:y Mqhٓ4xfR7X~bj%l8iR5 ZEY,~[SȻ|*@PC|4pP _˪PruheұĔ-8PKr=a4s)_8V^ Kl@cI6"dZit?':L2$lZ*m$"*+E`!){l]D;8DKF/iHe9)>c DȺW-:,RVb^\׽{ VSA}]jFNէdht)$|TT\m+_,w tdҕE¥gҥXƂMI(`|x sܷ܏:mϞ3i&^Yt2Aػ>4sxrei&~Kbtt]z8W5ӵ2Q*C>L2$L2$L2i g%E̝@ČS(y}9Bքm =KO8r  (d6IaI "я sT1$2ʑ/t\'1+*o=b;\c6ӒJlaE~g42Kp?\m.U lqh6;8o*F#hc}]-HA;nAI=2P%lIJbI;``tOj|>]Eo++:Y]wnJ~iHLúIsNd@'+bvLs1k$DȲV_>|%Zʩ,dFn[MƠ:PCunuCi{p.=JHBVf!&PHamKQlE;Pc0S6!}cvX/9&Ig2M!3H+ 4d䩆;WyN 8>SR{K۩r@EnԁTp=e`-+%|b߾}ӽϠAɂPy@c@0 5z03U}PWLIrv6;#7"{"̔fKB8}zt{IJyM^KJ6鼂w>r6P'# V&rwd7RN )S,]{`>@Zwv!@l 1}>(FPT#A7W= n++܀%5)?]yCk)WY@BmAZ8Z#JS$+fm׽o W%5U6wA PRԔXx۠%m,!Y􋑣JA}W}mH6ca76-( b¦ʦ{Dffu uC79MQju, l-"-h'4J [y86P63҇e$nf_sR3$Ok7Xk,! 8nD9QӦWP'\ DDr? O 1E"E*)',VnbdfD…59 @s[d Cښj:85ZʫCǴYAvz9[EmOx+]EY[@dncgvS^an@ s qlMk-fc|GYO@urژ[lfQu̗y[AН^c-6Y{(ĺk`OT%ceOIMWJ-Һ, @SisRU%@G9;VtG^ 30[q0|)mEV y }' "(,,SgG8K6F V>%0MCMުe*X }gP2(Ŋu9mOL)dpņʢ\+~|,Z+=aMdN[3=LPkm䄈uZGıM{:/P8WdV#VQ=S<tN1n@G@TOvoVL@!Nzhw%Ct~o[: (ҵ7yCW@[5k+-2dH?9+r'wN}@PYz!ܜ}Yrgnm9<>p :DYJBt4v]ba5{&PYāή5A,z0 Mo4r d2X, 2-߄.7g;sǨ<3ȱyss/:6n `XZbZdyttlȞDʲH!Z=ʍp {̂F28kъdh<$g ̖* ƴYҡY"-l-Dm(1Thv@x T9,>O 388,Lgo-*h,Xiu`H&slk@1 П=7 \.I>=\cn<=Q7e6^.K8&U B^]xz SWYȼЏRٱ%T6Yvv"㊷k/~p,|ۆ%06`>&=Ԝ@:K$8~aʝܘ" f4û;ngvlL`'0ow 9 "{li7٢ XkwV9 ®;w*ފr3*ģp (ζB5[̶ƻ]]}bhPQRsʼUzưm}7_Fq⏹dmſv0]ɾNؒy's.NkdoxgTo凍3lj~\>{uYd׃P>LNDJnUC3;}m ]*#u;*>9{zӒv8z82wӅ~6uG-;B,<~Y){vKxۚdiQ-m%8+onKv)Jc>+zMtDw6mw#QG5U9-M@,ܾw"QN;'PBmeRsAfvf5@xtآ|4~_MdT(Nz^Rt <VmGn|ҽ hPEQ)r~)iFe3ſۀGuɋ]wnۮNh;0<\VklxC4 뒻t)!ݵo-Hhz& qbB]gE2@P.ۮDc~m뉳gv"ܿnt NϧFQ!~_y«3*{6XޠoZ۞Ut@T.EC]Î՜ p ꛹}ыԸdko.qqDzS7n _soSɓ~:mOqϭkMMsᆵj|y6 F!nz!Dަ+z>k85nfNioLb/Q4E/+2{ߙhǨ^;D KvՓCX-) q411Q<-|h!@gV*%΀w;?,  Gfx.Թ9ɦI+,O @6M 76?p$™p`x~8'mjә0]p (@؅=^6qPYgvZP\QҮP)Ϋt_kLG8J<{ U֘P,/>L{f LR 4RVƥim/{= ^5$Q㇫ ha9-s0dِ]sm@7ScE B'׷b(p1|ە?#u촴ad7l )oS #{0/hHq#j{g.}Z)ry}ZVu];\0ᏢX)-3{tgVWw`:)Q ՟&]s*|| B.0ܸ3=M؄y HUs$[y,a)'ߍPA1k!1̴_5}b:*-le iZ V+ Z%cvv:;hhF`sl>8v?k(\cƵ[Q`7mڣX+b渁-'eC-Gda/$$Qp6{ K!] \nk,\!KBrkR,S$(ЫjE0.ڳ+Y`;+1LoŞXI93꘱rRIB얣n۸R]s*!o-1qy ^I1y۷vi`Z0ɊfYTQ>18om)g~`Z!EoPZJqbot={\$g{++ړP7iqKR_O U6Woor W} o>?F|Wur_[QZtR]̟^\g\`c}!c MMn wgVD[詹.`@ SopкBa͡[2_C' qH7}V/'d C^JOӸD2(U@ x C@0o ۵0m.&2@(^kQl\.BPVG2_){ R{h2fg|鵭1c-ޑ\|a|>*&C7]diFT\ișC@ k 'b3 c phxZzIn8u:Őw7hC ΣzdztPGboI,öx7TXC7,c8lDCaTHQ,12kV"Yƌι] *g`FPGE`ے Zid2am@Cl2zdDys]Jy ; #i]BVP\cB?MB^$W:kZ{g΂/$wzH^;u{Z7mV g>.f̰$3M\~?/UUȃΊ4xBe1lVa!:4k+K (`0{x`fjΖ즊ar wi-\.- W¢aOXZP|w*2`Lc2p3 &x׫Rr=724 TsyG(mX^~ܞNJ;'~_A!z(o>'ɬ=InGs]/32v3,ư`Fގ!>nE`@xkbSMј4%(^̋o+cgNo,yroȹP -8+/2 i kj[" x.a::ր3; b1 Z|L'SE0}P)kWS=)Lv9(=؟ #VmBLV)dI\غ |;G<?Ix NMfLZ\~"e8_32Lc+dzq^M&Q7@^0'-8Ft0( |,ƆGK얯T{yH76ƻc|vlW؏PeԶErjrI48ўi+J:QSc)]]DlN)$*!wl{@I_hjb|>V_E%3ERkjXמQ!" gTdR#2# iK8wTMZQWƬ^- Xw\殎NMd^{mW OWmX`QBi@[|45VlX$Q_fcWxm*gRWÝ= pvޚ|TS0bŏ%IMgl`*t& h@o}n2U36YflT ! dVNC#" c3y,̊hl @b`pT-`2 a\0s 淀])5Ԡ]GEv-RsUk L1)\ bmX p6XL43*P%PL{U1\:p,ICF!p#b 蝰9(dY>wtC:045c70t0/a:<zz={ ޚGЫ+P޲Ge=Qu|a:t;(Őz2b = a]\zaYQ C\%t@ .Y20@|DjU YHbd/V a.XUM[@ LDDB\)z,%r"`*^Pwmyi`q˪C=&4KmbE1버kfIu2qsL\@NCf3J|$0N8V^HAHM*\Q秞 0KK?py''?P+ CU˕AqđC>g׮bӀ$os~Cy?:C&t)@"N"E$%zWP !4CbR \ ,X RL"l|—{ j?CTSK>wZlDJ` fA311bJ*<,y&Tx߳d\Mˣ 8Cwuq,x5゠piƇD1]`? >[tw畬ɍr ] ^VܭLR˹9Cb/D#UCu`w W1ZѱwV@LK';Lµ)V 1vZXdbˈ.W;٤DK|7I xaBgm$ Z9Bn"(H97/Wgsr7pE t6x#"@czVG!եph*h$HN56 ԀFѷ5h^!d!DF0ɨ]AN*dJeJ7cJ#"L"T;Omba?owܿ%>֪.g's]]=_vv/&xQ}Z\jln"QY!y 8/<_"J_| j:G>-&85EUOt-ʲa5lbri~!PpO>I}~rTVn[?I}zZy"^B?j * GHU pT(7OR}6Q!5I$zݡe=}X<';T-kjc*jf<}u n45%Q,>_:곣LZ3N\~JsGǨUPMUuСU =ݩ$p @5Jpۑa#jGON|ñ,ˎ>O3C(rӖSO ziݒz /vdrl QYw(# :y(8l?wLI5p#D e]CuT/^:tV Mwup촉v4 <@ݡ>ޑ, [Dϰ~Mv5p6E>p~!?zr≹ɠ@R֣tLF6 @5yr5t9X{uO:tjGOO SHd Աj1_A`,4DX?}rAC /\ݐx'Ӭ!U ը.t-8<&oe^D]ͭ7tȡq7 $a'uy^^ m~j}N.=~3whjq LOsM gtM:\9 ?< ,; u[}a <X.9B΃8|Ѝ/AVэs`] k`8Ԙ3 u †d`5t\1z< }a1ڐiG'C 0:t|#adJOm5Cb@dRM108VIB\2 *0).o bBq5(kک`J"(BE?A=25]BG16!u\N VjQ !fo^AR+T Y0_d U\ǯejx jgv+ 匜GHEs3P̠_`twS7I%C !n=C:OɬFƦK3:C 2=5lBdnE%b]C~z'Zu) xo~WG=byJDE7Zg:]'YHeZ۳qU K @h$釀 =Cdb59MXɀmmrC$͟wTD1>wZ5_;* NJr&;P: Wx$\p)+´*@GQ)⑇IE10䒜FhtTb=҅5+yA򗨼Rߥ210Q/mG&ޭpNX+&;P@'!)p˃#AE1.f|I(lTBiuExu.qvbg^e_)vpJ1DM1DA4-_M{?<9)bu,Ũ,k\o@׮Bej[W8x eܾ!)^β`rgV1>D&? -_9n-w8bCt]V@*=J`Fɒ95+ 7PCC [b6f+h&lK\ ?j8FMěaq.!l&c d,*B Q vGJ'-:z CtgbH,K;>4b,w H[6:04dN1DS )躀 0:t!oTP-`| iH1f%2bH?ͷdsq#ҢA aZ2WP E #Bl 45Ci,a #M+f_S1B?a6MnA"=73}:kۏbH(ZywXbwBGf9]"N^E1$n05fy;_ 0 &6b9r2CjB^*Gvm}e3=9c|FC9:HnZxGb .&iW5 bȔNj5dtP Ym+(@Bl7ޞěd!"E=h$JB.Ő}Ccrr-1Lr- >4'P a;ZNGc*Wˬ:))pOXV A:S@'So@W1g\N CDMUC<8ٹa]z7<}-0b'?\@L|6׶65WWK1U `Dþ AI1d]1\6FG*X4LP2/(܊T!_1b ^&?!GN](9 @S1Dlq"Z`H ŪU]!EI#H A=YDt"gE!HadP >}>B A9~ ́zD  ʀ!TQ;Cީ9ݑO`MbA o|bHm{*@ =Q4c[#M ?2IfoH14 ֙\ضbdB!.f@c->Q]1Q)U{ e:!c_{/&ajj]C8Yh,F1A@8teܸC2ʝ\.E}E+̃0XN'V+Ŧb5qWwt0|Xk>Zqx` '1( <=Rd;( H *BjH_0]"IvW;RW8Ati%tcFmw+L_@pT!1xah@m<3.Lֈ!N5lTnE&u'e{E9#Ep!Qؠ/E^ 2^6B :=YQu8OXFW;xo!Z ot .hςR "zZB+\Oq'(pXrJ> 9Lb>: AOq,J}FTP٭T(\BOou{{w72 6{PXV-ڳ`+ʨ$6xuQ;PI-0pqx0H+ oW]=]q˙#u<+_:;}G?qwg  2F9tCot|Hom+FC?Y5xQ4-a On!!}t]`:>l` ȨT>'#2 'ْ0ZC A(4PyȊ!Tӣ"$8(! "KAPb匛Mb`eJOc {bE'"H1dŐ^H18ZC;6HB l.P1$bH|b8|c(ȇ/54.?k 9:s.Bt!@=SI[$w g ܽ%~)݌эma`!eKjڅCH^*Qz(0w_nK}-*V#R4Wٙy'QT!9?`?[2V 1)5)Lib2T{ 笔B;U0Яfk%"b o4ZiHWӃq3tn 5x #HZ.T14 bȈPhլCd _Zna15hP͈!TwOPݗ[X T̃BHnPnaSڄf=/9D4T` <4 4V@(E`0%J4%1$u10,V AHCTKb!JuRRA%\C}PWH$pR[r QξůƏ`4^G !Ѽm@ !%i@ۚ[#[<v"b1Dq1$| ċ!ow.!>|Ox1dk'6=q(>m*=S ”/Dg 1Tz<㠋1dg\do">HG<w֋6)H s )G ga`"u(+D]?n(x !2t ==o7BQ }8q![:whz'%':b ʮRxW@Ph]ؑs!C~>[ugZu {{7Bi!]3i$GLRqT6CCV!me'$j1f͙lԺD?FM!x:WZxI.~LX1(Tf=+d$%bٕy #>qcشp6h)0vhrPK&\.TM3e%d #әɰXlpeb_Y32PB(>ڈ -R @n@+Ј[ <]E~jsA_J bH\b4͆Ő0" e`Yip>"5kjuX!A d1_6~p_ IENDB`homebank-5.9.1/doc/images/dlg-payee1.png0000644000175000017500000002250714617624320013456 PNG  IHDR$ PLTE5yUHO~ofׯ0>ľZ署ݮzYNɸ¿lmkKz٤Wվ͸\^^{ѥz{|qZ_bejuuvlѷ~yCfֻGKOєq˥j1-9֧ՐqTS`sdzͯhͻ¯ϻ酹SZi^]X{rduj_ƸSVu;iGuPn->PEnjfŋܷɛw}A]Þk۲§[SeBݧe껈ak$)ԍH\s~Q5gcƇ_@ipeE@zٝ]HؽvD) c֕oO0DcFA0 D8p* IDATxOG2)b(tE !% 0#[J ^FK6! M}܉<d 8k"`͚Ϭo$fm֬ĭTFK;Jq+0Si ƃhz4Kskgr E>-ʨn4- 58]A?< fܠs2J@r1Ѵ0ja.[-ܹE{kr m8[閡ͥQmG%n4-K0 V/Ρ[ Une!C.Jnޮe/(1ԞK(&-hۍK0 j6!ZZ:r; ٔl*g00 +ΰB93za~Fq,,*全Q[,KbaK}!]0Z'%0TISr[t?eҸQ}{X5}Y»S`($\ȈYH ck Z4<>OӃĠsV2@>cYd{54qXM - ykg>5_ Tua5rJgKtJ^~6ղfm kTe^vרպ|3Hui8Hu;ȵ癘~R?F%PqdQ  jnֺn &S Sȩʗ2zzc#p 4E,xQɦǵXRT6x¢aRh|q)ꮇPb[YYJFcy`420^I`@puWVdsu<. r ~pj]Je)_x59UJsK6NQ%DD*\b#8ueG#]!~T%Y,eiFP}n®'NkipZN3aPxbovZx'b&32UQ BN#u>vh `il868J}PfaF}ڗNr_GE/P2ũ1XW~`[Bѡl`lA< *p#h@>bng Wba2 ߶䯤7`~Xxg0#Q[@"$Ptăbtz(!p;I9`}n^Q6WbGkdak}&>;P($Q|Y6"1^`QlvkDgD > C$>r>E󖱋uQwe9탚F7~Il Q%mFEPa a(ֵu{=;XTzcIX+P0If54 Wp5 a; c0ZƐ0Z bVc;8ˣ\3vQ/z~J`89"%MX[Ƭ0 A XqGpHyG3g! ^`s_xSa+`]$FbTE--)P {12x6vD&u4xzas@`3zC%6`;$7)v?"QfEsL4m7uw6ryi}h?!a; 4Dt M&:]';cv/<z\*s>%pͥT\8Bc|wH{lF}uFPPvlm6eX{5mc{۞^Ox%:MhVK̝}E, G0pYn8QtSI3=Cg$~yaV9 0Bl9䟚"A5$pa$BQArHE7M60>oGoӒL2=b|&`h kC޽5u? f?liIG:Mt5,Bh&]DEI-T#EtE ("D<" u}jٓPiPnrhoF{;>ɳ3 xg;Vj$^k0,zœƮEW2>Esע UYzrBݷ^4Z-s#I uԢ"JKޓ[:I ۣ7v7b`y~1Zo!c(s4Ђ۹{bİ|so0rصn]W$5%͝xΌ1xQ㌗!ɬ- .rGsV#:FTj0PLmhR^4Zv o97ƨ禸}[-` 30012BDiL iv.oe c:}d$\kWC4>Ԙn EP,KxJ]ѓc|m+mE(BB'V&c_&'mRC_q'}(~~#c,@hpryםdqH ƍ2[Â\;OStR6W` F@һj7 \+j׿#6΁uo"`lKZRsW:-W_R7&ڄӔdCieKsVUWZ\YS]W`'VnHOO61= ءRz)QѲ{^EE ޥID,(Y_W يi:Q 2Q}2Ux0A ь"1=+ͮ qXs?:LI(6 ͅnXc`PaR-lW/g\!*i!z,7 \RsoHn|.4 &0,UF&4Fƍå<|><```' PpȄ/}~Gi|E/?,#Í`Rt#4QU00zY)i9Qxn >d鿁Bx9!Bw9=:3?Xt6PބB6Cxd xB-r&8mVĸG#&懠VТmȸB}JMک:JˢU] 1}dIDLbiH}-pʀn 00cD,Q!\c.?Y 6`NՉk(0Âa۫ 0!\#ۭٙc\`oE67'=0~4ѹS#C(>@ѮmboD9(w To\`x1 pqB ̑fr]]{ӐPcZ)300^ eXJ >-gB 0v~W@A !P,`S;ZCmƖKkۄ\ 0xmUpտ։ \ cpcr_CYYS?)30c ox1.06Th(X=vTuSxmo  [0Tq){m*s1zjNF Ƃsh޹4qAKJZ:Hi)4S*lCAAA%XHTp!kAtG4&N0kgՄ?8ό:͞{BBGwνYAa8۷FIי_PEnƙ1 ;_50{NTg״W`[<%xy(uشna<> 00 00 ?Z>Nȹ͟M0SǙ12"mƬ[Ha Nk;[`kr)HYa禆dž;4`N={%0w9A8X_r_>Ugs'>pZk` .;(|Mg/ nmzutyx|W\W}uHv-d|jׯCm6rn ]#?agIXH9q 5[?Gf ~w{x񏆎z[(2_V0*3x]y} sN6>s/nh-A +0K r(ӵE7;Exsm*}ɩS?#3;ڡf= w}y9.3uS6vkJ;RZ/O_|vޣkr_T)H<Թ |'`V$[`6(ߝ3Ï咥:䩪7gޫ:,3Y k@K*hH$ OO$6: E^ׅc޸ט3`Rzi~øa`ˆc 9z\thʇq.Xfx' ͋u5cZ4|4EyUn N0 e.r!Øωzq v$ckU7l6;L:x#VŖL+BJNL{ ʹWJ-}e|֖/6y=I{szLY߿>1Lw` sۏXuxG z@;d|,;S׳<-q k^h3V‹飑XމJ#qdw{1-rO.J451PvZ;" iu1 :W&1M񱧽5C"|-BBCCk! U /rGŇ:0C3;\b i ]z*0E#0$N5HlKUn!aPHo1e%  ! RV7l*صigM~u0Q)!+s"CcSb 'LKҷ 0t##>Kذ@`-}U-Ad2ZLaA%%, Znjk"܎+@bn4STUIob%EA?%1VyAw޶G% Oע:saZt$ PD"iN4YP|t'm2 F d N'V$nZ`>$K60,&y;TLZ6U:! f` (SB~%`0* 3 gz  AVyAY`YR6``m`ej2A]j":+  6BBdQ[aCUY`qaIIGMb80*`h, 7$P`0HT*@\y*|1|N{4 '>69qb=w |{SRB60P`f e{S- yr!B][|F÷}QfO[Gv<$8 uNN!GFU|Gv 3D,؉Y$($}K ey'* ?"ӮxSXo.1V#kcI\BkƄV.A@J8RHc`rBcCi񢹏!0LiԨ&֬1{apX(#9XӦH0"` sD9bz'OLV&qxWC+3"W̭a3 ̋*1V40u-d$ bFOҼ`%8BSaFP6GJZ.;@A6Ǟ qT]H +A@^H~ô55}(JFEx2]~B"15l܍yqX]#\L #ėրm;77]cOڤƴFB(,,ܼ̈́='󚛏U/݊+ad m%yRǔUYj!m };+4o-lQ᰺pH ց r0r*cYiQe;T|Eo~_88“{tFbd F1N\fE8H@=mЃ=G0$p҉Q>{w~Lb녙ҹ'(wS7 oE*>]UJ *B\èE ݧnJbIDAT7VW7jJ$we9n:gՄ&*yr'fϠ'wmj+ A WmOmc1ʌ9ۃseqAOp}ư!)<Ć00lD7=ypd,@lv$,<jq0F> #y`1io>0`8-<0`} k0w_d75Xd0kŕbA8ZβG/q?0`fRd9?rvSNO3/{2`XaqZg|Mw=7{d~ 2>$Ѣ$IPnW=Qce40`oUK-O@-hj徕/) |:þﵛz3[9/ƎK xwq9jo26%`c 3 0\hpg2_gsvldh^[)/- _ i1vIENDB`homebank-5.9.1/doc/images/dlg-prefs0.png0000644000175000017500000001501414774772566013510 PNG  IHDRu&k/cPLTE5.e𯰮ߚ澾\\\۝bbbyzxاgggỼ}~}åUUU3eooo؊rɀjjjvvvR֬EEEHvsss[^9a{h9juiftsuoJ提;\;=[Wtꆷ^53j|d/9ihzz:_-l=m윻333MMMGDNrxBھfyEٯk1w_}}؊_):|(JB̛̗Pc?iED{Gpo[-VhнlllQb#KYYo'm Rݚtү̪sl0|&O=KѶEٶ!!-a~Ly=zMѾxwƤKɒ˝h.zT3CVZX]]x~Lܽб\Ysodu46IDATxw|GJvU]u )VmYUly`}Ɣ0%^PZH@q /=$r)w彼y1 >~,eY_fvwv<1q-|ԛЅ:Pń\f Og K.fPǷϚ/:orS2y(,9y/Sų,Hj8kRthi4U7 4tSq1dg-?Sw%o6c8+խ\s]nK[fi"k?:u==NӏSgg͞=~ʟ K,?k{zGzkԨ{5f흻wlݻjZgo֚Y%=5'%{]6+k\O¶E6>vI/grZXֹvکcRnno:ATt~]޵kdu^fck{RW50M]9&y;cg<ܬk[3;gjVc=YKgԞpb℅֮&iY}BC9]z6$U)98/>~_l88Jk:A,`# g1nQU߾W^\hZM,?_ L"jF¡f0}]4(Ђcʋ UF-9Rb䗚yu+ĕ[XYRbnsH^:rkIaCƮ6MhV v$qJcCUQCl%r\HP!S]?[ZnR%'~Տ[[7,jHD擟lkv4U%PfM?LO|󣏷jXiܖ_Q o'>GvduZ-cW$UJIyEwL+b~ˏx㍏~џ<8q֬;x*Ո9IJWcǞ{<_8ǁ&RS!Zo c/ ?=Guĩ7PBX`W|"֖÷?G3ŢXlVX¸6ʳ;?s現;đX,f~i?fZ +"Døw?TJW}/qu}G^S1c׮]G'LIKut:7ib$'4U5,[]4q$DSVUMnlDLn6cJÔ)ʪ4q}ciӌFiiڦMkx1|ZsiPT:F j5Lilr?,&\($VT3V6cʄ js~M1.QD>M0`sJ(^Ϝ=+W.rʔ 3LXln `fy LGue m^tds}܁o$} `M&>jy7ޗ|#k'.6U46*Q-VKX2i+WDUkkZ^GTD7鑨BU$\@Btj7,CD"r)Ѫ#W j%jUpc8J /9@/awP/ M0b\.9%%}k!Dh e8K{`v:*uJ% :i'.ierMQN+s)Pb;a& tBB(e*XجQk[+2hBZpf T:E$ъj=:boOyX4\TX2iY Z-vcWg)j$9.Re"l%ěWAfT} 3aJoMvFnatTFI!-GH+ksħboIWXq Tm;"ի: kf(D)870 쥲/R^;<_ #hZ 4miFvML3E`@:KFŴ55&" c 2BxRE Rb?QKcQV D48Az+kFAzP԰X>h&_fz(+9085pe+52àђp5\Dq$BYr*K$u@XA3IBi.:`TF'Fs3P+M Ir^MAUR\08@Uϛ4N,. he1`Ԟ2FSs$ԄB ^S}POJi./ğ=hCqގaA3I.Z+*LуfłU9*4DLh6+޿@5\;=JC3jfHT[j%{5p %<\q/81 Y>JA9o$u5C_W[RE@撖TX/[ j8[U]R.Q&}i) ~ysB$:j%7[';y̽>o΁_Gr.kL.&oNߎEܰɰ}kGL ܷw] sW /0Ça+rux@0V²u ر<3ob_0 xG}[[n9:M.RQNnذSOjqs$DAUNTAVʭ^8p,ZI8.V|BMalJI#10.{E9trW&0Xmr_C\  z}*GTirLFW.I#R.6)U w4> |2?>6յНVz@J!y8sI>l@ktt0ͬ]Ȱ!qĥ™ zr?%ņC=8 >$@|}!<E T $s d]ɑ\ZHB<ΔK-y0Djk$w ɑ駷v՘h1\9=߅ә$*6ҿۺm&rڿfq; ǩI]-shB?kֺE-Ծ5PH30Lg,B&hPh)` !1(bI"7zH 45MA3ީ: pctS8Z70We~H+Ve]NԽKUYbʃbr]$0jb o7?2xjjh4\a\yկԖsj Pnq %f`[Mv$0)g}uxQiݲ:JYʩ5 *r-&AAᩨ Nn0+ͱD$F;Bv74,?vgG -K051pZL:\`bx:IHWrقUaF׾c=~LTШhZØ05\JѨDTɑ*nWADϔ"D_GЩ*D .b4WuЙJ9s&XPhTADk 7ޔɐC[Ff#P5$2Uǎ!?ȱceOHR],ធq?nߣa gT?5M ,.%Z Z#iT&wޙ9Ը +ب%qVb[`UVnH yҌjt]Me|`d@IϧK.7SS_#C}5\i55kui$~ivxT 8%{pҪˍ᧨fnڊf6|r5O*7X[ҟ79o|TɖE%d*& :7+*ZPJ$x( &Q A {!}DBk줱Je]?v3*DG 0JKg,^H:OR:SJ)4kQSZmll;} Ө; WuPUUP bsΧ. X맽mj5`6ejZW )봳u xjK[vԭ?mgMU]ݰo=^i CݸXWQTֻɍE!PTUխ4>MoSl"QL]ITfhS1Aɐ $+wVvBo{ޚN㦾pR%ZRٵI".ҸJĤuU [zoOL cjJMJYuKM!I,Nqleƍ[2D J3^ ,+aZZKMbBrj̾bXvܨFpuѳ+"n|U DWlΰ6?b$v0O-:rd٧SB@Ppv `_ # 4lDWvV;a]U.v$m&*u«PڢAEE6̓_ ͣ}͘i_|kIhLКF;zB~<&I*k_ d[ F+|;$8=f!V&݅. VޟOHEnvnnv=JldҋBW ./Cͱa\Pїi(5$H eNP5 P0-Im\Y7֗{ 8&(1@S@kPMVVʤC*p² I7ק0 95Y ě o 8ݒp:NdѸ\L( Բ BˇS$,fnxCR0B~<-I B˪tDdYC̛^&Ңc8j`opk 5[5Ha S1:YNҝ&I mR3"6 7"1*T)ŏF""#nFԑ *kRX|sxIENDB`homebank-5.9.1/doc/images/58tipfilters.png0000644000175000017500000002133214617624232014065 PNG  IHDRzPLTE1113330000//110///10000/222---+*)#$$('&,+*,,,/00...+++*)(''&.--/..***)))555444(((힞BBB$$$FFF%%%\\\dddSSSVUUbbc"""888;;;ooo{{{!!!@@@XXXKLL<<<>>>kll ᵵQQQ DEE^^^vvvmmmHIIJJJrssfffxyy}~~ڀ```iiituu777:::OOODDDHHH[ZZgggqqqNNN뫫LMM**)10/{}~kĽ``433QQҏEȾq28:r\TAy՞(+䃂§ͨg_ӿ澉#&*13n,sGur֫۴{ٹƼ켻9IDATxXǺ/,˜" ")V,b$@2HtDw;bw瞴~{O/ׯ2+c0s'?}gi4;;Όp !?-}4[A+|'[_x{}>[NFo滻|;>+(k+w5}y16xګ~=n!lOO :^ݗ_ާ"~]׍Lk=qnlt@oy퍀H??|]yNqϝCc5rSyJSZNzN%G/.Vٽc./#.9>Үq<~Avedر~_۽ [X#Kıңg\<<]AFKO`G)г&,%Ч>~ ϟ/~nl?JyG2j ^x߼~_OQn\EO\/* yYɕ#7;bU ]WY.>n}NgPJ.>_/k{:Q{nlwo}?~,Eec=Z{;q)fmOͱeU_-λbT*tqi>^l?vdNo?@>ǟ:NcWv]qλe1 8+^c{ɦϯ{(>r)mzvΑs׺ow+~WV$5..vE 䱌7ӛa䖺tNU_;}bczʚ_O,T 3M]GKmá<oy){wf?#Kr[qX|tv]0#˞.,qY'ZOπcqѯ~:.@lG]QLc˥uc tΑ~w'u?7g9!֏CwF37wR_|RyCa_/+ώخ/_Շ_]mw=Ga歃֮a$󏌻22a\A".)oFUe>~2lUa5X[f}<(%~PPKR> _%Ond"C`^!ܖp۞cD>qps|pJr>DZi lp[l`S۞ΰn ݞPձ| +mKb/6< ve=-\+,9 Brqpt{BwۏRCeڽRNQ0 : PH/PRI#GVp#Y%ʏ.v䑱6[w6w96h*KL(LK֍ P;R˱+'T*]^KK.Hx O+I.NNV4"l%uShrƅt~-NV~lܟB@A(כ+p)U-$7ȍs\ye@bṺ\t_E#/fzÃo/XvwӺjǮ9eIlb86eۡ+*x,imWthjruYcθ$ U9U]{b6pkHCGwYg&Ŭk{넙X|+ƈ!WZaEm0pze&'GlSvAtJ}aq];IEy릎T9aTыx#ɑyY\[ 3l0iRI0ebt'ԝ`c9Titqm8E&z+c7l<#/* X2|${O#TI'{jw e,dYYv mK;[ S$ERؓ^+B# @E , 6@X@I,q~B8X0E Oz7KtF5Uxb H_ mB!ԦʬH<DX*Ju  2!n#d!CUQԫ5`"<0#ל F$Ґ`>U94nlG$0*Cfr?L';tm%I&q(i9576r`ΘߡtSTbLT$ߺ?&), Kgh3 6)VȦst/dgC uFI}ŚS7!vQA"hJߙfl\w/uqFd mF]# 5dv!gcku $5K[߬-j6 /v}؎=CDa0]'MP,b[lFAk/m[ȠIHtu` L34Dx -c$̀s=L *tKLlH G,ʼn@rb"-ӭ @z?e{RHh.(}bE'QIe$QQtC+ks5#2>Al ĎݩI3h9T8hwp^-R4Q*]1=ю=6~(怤C0(*I@2'bvTa$^ںQF2f؀.O8tfĞim 5]u.Mq݁ݭ䴊4tZ*7憚؄b6sxޟ faѭm`$ܪRO_>Di#-pPvͺdlk2&3v;Ɵ11ޱغ6{ol4 ށzu!0IxnqX2$[; /o. lpa,|go^pXY\*<'w֨U9cj霻0l&Cl_͓M H ]-lGM;8$ "yJ5c,MհQ,Nꧣ !I NtZ7"}Vbl]dԀv@qpH2g=(аӢbbiM1p(a(wH(b;m7FcAOK#h(s9w թh2s cIIi.H9[!Oʼn (ࣱfŇlX*;R-=5Ʈ ˜Vs;R2Jre(V];X,6F\C;y|IN /~dT)3rv% 6MbJ)&Cڜ;odT[aiYI͉ҁz&D6)"j&륰niOn1y !`yO. C !v'BfVP;s9wĔY&D=M!SYgU/2. sBb_w R[.hM-E206+T}ؾYKchȍýcZٌ蘞D҅2vXIFqh% `$f8xٗ#C9 *BV*٘;!ƹ) \J?X'͹/tn6Lʹ ܑrR .^Q<#BuU0嘼>$iE-ącaqv<9^]˝w1ٸ-ػv>>払찱+ű96 ]^>Nq = C˸/Ke|f%4pHq,6)[GЗ7g˛%[P=.'fl*@PxZu2P3AL:2*]o @ / ;@5[4FT G* M* l](s- m,,F6fJmVҐԬv%<&ڰP: Q96:*BE(lB a0o鍯ceCbbOE DuCQ}ՊakQjqXQ 3~tX;_=}6A|T ĎJa3 qv$&*a@0)mIQwp1(V9 ;;,Z>[E&iQFQ~/?l;6 J'E ! Ja@ZRc + ܢUw"^mFkUUU3̤[^U%^ B&T"(2C0.8ὶXwhjV"Iw_|P4l 8V MVȹd6B}tHMC/!jC*#^R3mz5ݹ1hpo",AL.z]?Έ\4; 5nXDD7F$ဍjF$ LM  6s+%=-ON"gѕ}<lƍV>Bj\ lo_7exP-gy<_V} cLXxcɢc: 1ND&4g@M60@% ZYT{@Bo@-f4="[ͽ:4?L|uYzwU% 2!رawy'@Q8hX+1׈@Xݥ09Bc5^`,04ڀ:- X=4̗cz&؍=yyE6i3i @{qɎݟZ2ꎥZo4C\{}ïgDŗg,j| 7uig)AFڠlo'aJ ^}<;߀_ a]}>f:d%_-qLsA\s:f3GW˯̠  @&://Mf}͂IERpq~b-T[܂f 'ӄP_͟#t0; Dn !IJ~M78iI(q<gLFswe#TiOOu;h3r9(>)Gs%^sI_Y3Ќ,`#MyxX5aDGRpc|qy=g4Mաh0^88 xf"D*  D$DK p&Q\d=؈B,FA<#NB HnӸJc7s0ChzJ-wK "hdydɯ9۶gzgiI~x-+剤d}O^tPrP$WĦyWb`ijjOH\@cWxCol 52([+{puʥdQY EH5zB!Z ;' m0{hwfmr!-Y] P\wD.xᐵDكǢ@X$TWGOBODb1'g|x qLL,Pg%ᨐ }I.FZQI i1Bە^<сt0f&)mm9JiaiVjCӉ*X5A5`2mK>}ڜ37dEn2,oT c Ydj93u{FOB5S-{8)ƕM0.rgvQd aX{g۶'yv\{i_֨@co8ĞoKjFiFd:ڴ܈}:S&U0a8o\woe/ j +ЇEG(ڱӦbƃEYDq;[;FeEIr|; U Uhyvդ%z\8Xj4 ;m9$PcA N·eL|CZ|{WmjDUzJIIjR՚Za'! ҁT c P?g췞ű[ǽ+%e POa؛36jRl&,S };+P ye`66Xq'V^>luW[]c天|VY/nml?'wʾ{3f;w؛7S-dYIENDB`homebank-5.9.1/doc/images/5.png0000644000175000017500000000053313604617042011663 PNG  IHDR exPLTEGpLyUHyUHyUHyUHyUHyUHyUHƈmdzWJf]i`xqyr{t#tRNS/b8]IDATxeOPËwY{:_!y" βI; =6T=\&īcJa검IYx 7q{R9wa]v^=^skVRBIENDB`homebank-5.9.1/doc/images/57chartdrill.png0000644000175000017500000002624414617624320014034 PNG  IHDRC KPLTEGpLȝfˋ^ajdǜΩ iʠƭ}wү̴͒ʮʹȩzˣ񄃆ťsvٽ򀘵ģmaҺ}սҸׁɡp;nћܶɕ|viq}}}ʬױק捧նӈiF`iːm×ݮADZugöϿf}h͙v}Ü隮đốҽPD@a[dvspsdś{HelrByĘkäۭblÂX̅ǬEf66}cZBvix^gw|ԫjeilТ՛S^rrRP۱ϣ<W 7e%aGr⾿RL5%+@FTW_ŜёNl;|ӪæW(IWΟZL;iޫhVӴI3ڼ^__}W@,[1y? u%s=ܡ4J`(QF uuuY*}/g1č +>=97oo6.m14l& [9%php. CGD(<|h wH-xYxsY#gwNko&ˏw,>jKεGO"?e2@>pO/Nc죧=O p>MVҵO^tD_䯿iQQn.(0WV$pWA0ι/-&_xw8PnIVx7ԉ?Y0l!> i;Wn9%hH- s!L`;f?ECCCo?dh 5JZ09ӷd:^[PG e~%_H,eIWdJny,4L>z-vj?~/o,9}>w^atc|o>~o ՞/G%Ў'[o&$_wDh VAo[OvDbqps>xݞD-%ǷO ~%Nfqr[٧SB%LmMt/zNЗ|忘_vvVG;~eSh֥vVވۻ%G/m9[v^;s97Yey p>fG 2ݸ^ ̞$T_\%%#0ӝQOvil~rhNvyH1]44 \U:DW 5$HzMl dboĔ"6)RMvm)Of LD5#Vr( )4}R5ƶj⃤C|یC ^GF!E8$L:ԑQðX` >k{`Xtii^"ё#Ӎ{3nUmwzAY鳆}pј{2G!Յ{zXuN4 MT dȓ5_#? aWō*!D1 0H@|xSa(p8wei |:?cWJ H̺!$q~_SQ'5!zN֤$0rl8MY=: ~cرo9 5$ZG* DS=ұ1f1`P q+xEttv">ŽHz . Juر:x#da?g_"5gF 7$AD\B`ߣ2@@yٲ88F4Ydd8x2:JXZ4MRma)]#mʔeDB3.xC׆-6;ョZ51 WTRM޲z2Fdmu]@#!P dџ$!Pe(8*N'>La}Es> 8v'wAŶP)t#P!^͖& BNe` 7W1Lg"65 eH*yzX~M b%Z͂BSveCn]VM>%VVLX)d9b` 4z6[54#3t&D[)*_ 0 aJ#Y8BVP *32!ML3!XInjl0LȊd'e)0h:%5 NUgy0tnI JMCtΞu5K`O: #@ jD>X`NUyoϺ*FVV'VuWZ@=Ձo> ONʊ^eIM/[~톴H[gGAb&u)b8x ƟщS=5n B>k$z7O/ It'f'l9r=m9.Dl,rOKn>ˢGx_%1 |B2!hT'z X۽bOxn|B0Nh!ʸ zdi1sdڵAL鸊 d:3$LI&OUʐ 1^C: 'usl23m@vJ$FE>Y|7g.fDly4ұ:J[+A:s8 WHSu{%0-5'TPҩ . !׿+1rv>@;2DHPWys$d 'M6,[{׹ȭ90|WW:$+46V{M]:p~"v7g68rxJy3 !MJƚ\˔_>ĊLu,ms@|r)}lX0ISҔ-zMS 3Y?kp`&+;Nm|,*`ATǘ~oX*E`LHH qr0m@h#-;x"{y @^ hD1h~\.bh҂p_0nI`=ԉּ=! @qrvL OMV$[p k{8kՑM؂:/="E f`ӝYKiNhB!Xi=T]bJ!^K]P!Oհ=U0S ye6FXk%c O}'%3Slԯ3x㥆^ƴj'0^q85hL ji&3xiL0* A,4^W\ P!F+yjȌ!?1e@USPs)DNQu\U1fOf|a.Xhs5 ZH@1īY'(FIk.HR1KTƀ5AiP$ oU29 Fs*53V~WRZ$!I-0{j2%: E&P,xWcPZS`fmlLd bLFbji<UY6x0sNt-2!h?4qL#L[`Cc ̞!1G!$Js<*sq4!4޿uFh^ @R6E%`1Zc h~lͪBt#`o]0 \ia>QKw".iy/3"' !;LG9A- ֪eĸ(3~YNF@%:O 8eZ)/|>ibf6̥!:&18DK]F %0JQQQC8J`eF/qggg7gw 2:;E~#ż| ŷ>Y7ǕBNw uW'`v] <'o#+/o_B[2^/y綿_{el* ߿#o"^r +HUϝDw8nr9p[p)ʾZso#yzO;_ZN^[}d'2[.96n _:yt;#nE"qYf|K->o߿Ó}E`-Gm oۛ/1[|l# {_7r/o;Eyx-6L8{>~=KlvW*+ |hh@?[&1[aUsGw+xOsroGzK)M0]pYs!QtA [ߖ + vy<`)%ON *!%COEB +NHۛ⋄"'㵀#(DQ} HJFh5t.^8p,foRv9`ڷW OIթk@/ g3]o 8_{A9}X=$,/#L@_M`G`n#ۿYݾS[.:0~ӿ;}r(t;`럴t;W1,9ut>zD7TߝzЌ߇MwlCm聯qd/T\ jIM3 C|xxn<3y ^n@YOAŃzuj6@(vkdݹVa% VyoFgFEmTht[xnϔugCGh&my[t3|33Ͻ>J3gCu?'XK耑,3kʈ'>*}62<`=Z=? kã- AxO\y j#27]?`>:`NU#o;2>%W=}znKɻ's>^&d?#bȓ3U?6g K@8e[L!x!e4.%0J`(Qh& X\&C2ZS`nqfCA6G' R턍wA83dbY<+{v >^Yp@ɞ""ŭ&UKu`Z9Xgob{ _Ivx!J,qy/Ĵ'j*4:;=լQ%n⨢MH 0T<$#0ve.EpU&qP;Z(@/%7EC{w&AIS6>TVo &I`uu7aiЎ*R%஘JM-qBobω_W*{zcR5V2)  }>y߈=l T pP\$Wܦ$}=ȨI5pF!ˤP@`CHW8mW~MT &~Vuϔ`畭M9).2Q]V*(SU&z HvH0+ `ޜ7 "JoSn~R)I4d+RYƊOڤJhh;oڼtX d7̘ 6 JM"S ؘ+RUgOfgKe!9(땰Fi*/PjN:d`ci 6+i*Prl32&8XF>^L(yhi95[ s^˒/Jb`T$@,&s,Vux| !ed88T(,DĞ)O:A^ .n* Jϩ&x6OkKnްDS$o{ݣ`=R1pRj'%Ԭx5Hl L༡cnKQQ ~"10^'&Qpum1VMr%̯Z$|SfK^7$0 H,R=4$vWg*HTS(ا.AU~nwz``+3<0}nA b{_*e k ͽ4hR"8Ӛ8t{C}$1AFVVm\1J1x]%i+A@{&~SbV}/?QF$3Y-V P~X$@Zѳ:Qܴ*sPB`Dά ?cHAmkO8xbb2ii@8Hد0X `YpmulVV!B/!%t<BiUM=9nQp_^mTsm#Du4WYM·yk^"P" 1LB Nnf/xD4 WQ.lpxu\!LnJέQ1a'ea($PJZaW?0ؘ1pH%^yTy| EeIm"5"0mA1d< JM(!̞hrS;pDvt\- _4d9=RZ zi[$qe^MJjH"zK1"e>TP&ۈ12bP'7Ӝ:|'rѴT~w=Yai6Xٹ;êmy|WSgWKKDǮ)=HW̙GhCn">;!ؓ^[ი @~DU"rqW \|9拏+G:7dQ䆏c_.,Uަ ɒ0^wBm3W\ 9@wΚSƒ@z))@quOf>KLA8f@.cJpF}J+[νf=N!!|uĮC—TmX< cP˖s+Lf`_EІ.:VG*Xfk {h{qJgEG=0RFM2~B na[!$:EXdB EiN~RL` %3kt~޶yP^o} eӸbSDX} (ts( d~RN<TBoWb6dʓ&i b7;0S}8w38$LtȒfي jwؐMZJ2vHs*HWYp^M7fl, X@S^sc.%Tˤ)_6 *>0g kAr͖uۆj5DH11t> k`SZBBg]|TUX S;"]ҴP'hlI鷡6׌`WUeA -3SDפ[j3.,=E)Z% <'Dp湘KQ{vek5gy)^GQ,jT@ ]*"Wc(]&\'J0Ig5~'huJ,~^6&[ s5P6`V3OM%%S}̩JGH П RxkU$@}a:$ !D#HH#"^0 P}V:a:.ו&\02 @߀7gJCM0 P\[jn`dHj`N\M\`j5{b㚠3 \m[P.LR`'Q^8xOy$azR EV [`nJ|l&b-W%K$@^G %f:8+IENDB`homebank-5.9.1/doc/images/dlg-currencies2.png0000644000175000017500000001563614617624320014523 PNG  IHDR/љfPLTEz{}mnxɱվлĥޓϳ°ctVȼufiGy钧ɱ!+1fhi3=KhnŨϸҾ+4A98:WW]rj{lXdu||zٷV[oWby_8vtsyrΣļ̾SH?sqjxkЧ/04\NHWq|ױٻAFJNyxsqgٳI,'-D`kavTlyotvh彪HPWk\ZIh^{{cn=]}|z磧׭krv^IJObD-yPa/T6!'SxևKjYIDATx@ٺ' $h.B _,ҥ( D{mkkn3]dct|3#qʜo !B"Dec?vX J2 )0++ 0Ž ؗ} Um[wfL'w*%źh6(m:<+jI4{!Ɲ'F--Z xyopǏ~~ʶ-M}/#:!xpV34@V ܷ ¶(4 3@LC JS С֮jnh{PW-ױMMmH-jzhw/`3tg8O{9J h:!hpxZ=43 OU!+Ƌt7~@gfrci5 }F}OHClj *z@X62V{Dt ppjkcwCd2\p>j{= }"D!B"D!BC3++`󛸛29.r?Zmԋ:hx N4"*Ɨئ@Puwdr;[hq\mto=.'li/o|ޱG$ol};M7v])Iw$y[\3 _RïfPOnFoǂ3;7|ؾuW6R$I<Id*&|{к|*'ua*~4;ڝk=sٲܸcF' %nlNR鑦F7ieu7 w6o+L ᮸rj_-SN3/4vvvKtoj- ^eeBivoٞ8ۼɉY@Y|(/*;_7aM8z V ۏ܊ZxQc+?A(<h6"DH(#7(!E4R"Lá)i43fIʈFF'4$MA3ivePh"TJ?YHvFMߞ~)lwS4FƾiB́C 9t6J ƲSM[jḂK3e?dM~Vr&ffݹ%'^\i3wfӛqaVuфocS. i::jtz97S9-*)ekOkpW0OH:;wky~@c,Y'%yd1@̽ m/C9U.:_u3Rq'L[ʷ}2qgHyh1DJz&BhD'"#D!B+c# Dm5k|Js#zQ9aC9M Kpf8;­o\6nO?y d| >n^o`hY鄤_o=]쇫~]0 %Д՚Vi3a[r   `dQU8xt2<[^qGO:a4,="l$.qK ^Y ҞdniZ<5N?CVhQ TG-vST*?>O+4mhlU⩒COWNH[B3Ngj f \4=ӊI^TWIkP/7έFN7 pr:g۪wmê͈F#H>07ⰁxO;z zdɘs07%#v֮Xn4}TB+H|iueU?MA.'S\n {u#`4xGǻCa/|(?~f~X=%Wip Vom'bi ||-!ͣ40%UqDV34 U,8"Zŀ%D!Bx,'L+.|SJC~NqO?BΡ4o߃<ˋ]3Vh2kZTNBGAoEYژvxnRp-70sŗ̌4F_Q⌮/vЊk\k}W{ i5#}FV0XMg٪7zpWlhk=cF >8i_99Xܽ*;py]F i|yxωj .D98E sCLwo4pwOwA}0z4)u=UOgbWfcSNhJ=ed rh P)!x#Xaf)2tBeす o!%4(_m=Z_ AizhBf>;>POsDVbO;ld;i %ns{]9~PNWJi2+w\AVf׻T2|K,:,=Ph%v1Dsm'\xh 4Gₑa[)q(E8DąYR,"քDӜ8i'&EA!}h@37"V:4LI<4 pchN#hFThc|%/~|5x96ꩺG4|9$)⧙bUQV4t"4h ld#(j~=4 [j$elCXW;Ҧ<`}GT=YjmC?0+. pHWjqg[2Sϥ'CVlQN-Jf/Nq>0p7#A48{ʭ7(ܩUq^ AF#Fe%?u/jKkAƤ`/v0hv/0'[?V+YF"B3iCKFʃ8zjSdG`4vj{DRVaၕSi!97j[->Xn="¨ih Vi==A,L ȁX;#2mQ )mG/dz$}򚲣вq2vQhx⢙"55DFBiX"lH`ጛ$MI`SX,"F(Y'EHC9m2;)[S}EXl󞓉Y\4{}ɒW pK*P{j!-{Qf<{BZrpkPmR5NkXoKU:{>W+[O)HeI,S_Hۯv\}cyoguJ٪bWεgin[n#$ު"-A#mh\3!c_N%yBLey,%):P0'z,@ hX.4 LwQ ݶYߏyeylk;Ȃ42~6ɍ9zMX[';qGv6] e+q9=?r)K+LFd*47}| lmZwC FY|9ҝ5?O-h~qdXmٰ؃)<heE-yB> CF\4J8P%|< s%! .: "Dh nN="ndߊv|AΠIʐܰ!ˁ44iOqwKʉŀH ?&E)=XOCWT{l i^WEGT$GfMe!p5"4Lh'fKFf@Ql&TO({#g,Š)PUgƓt؎F`M=/h"x2+}Kҭ/ ~ɢqv;,]jo9C [ N5wh #B#Lȫa852m'>- eQjOSOi M/uѱKi}Dhhh,~x&-H'|1ҋ] nzF4h4߱ X/ _Asc7vHs%C3IENDB`homebank-5.9.1/doc/images/hb-ope-reconciled.png0000644000175000017500000000113113604617136014775 PNG  IHDR(-S2PLTELiq?:&O'C H!sQ/N)%H*A\Yk+x ] l&~ 9(*u9BN'V)N g9jqFV*]5c6GGoMHHHvUE]S"y^fUd2jk7y?ɂo;iӆWb(ԍ~AD@5z)3l2x$w(~,~..5-;3H;<78BA=GID?JW养爾1EtRNS #+.02:@NPUZ]m|IDATxc` Č\B †).Y$<^b r$X@M'>^ 1Vd6H Wrֈ4 0k8ZJ rqtYi+gTSa BIENDB`homebank-5.9.1/doc/images/win-budget1.png0000644000175000017500000007335414774772452013700 PNG  IHDR3tPLTE>yUH2~謒לfɾƫqff֢Ƅopn뻵̯zԻssʹχeek䖕پXkuzy]\xT{δ겤帡ĥ6K놇tl~We̼̹ıЀ|au_wѪ}藩ZYcsϾėOKOϸ;c[ƽaf͗گΞhÞڑrr՟_uty{nҰsf`ܾyu[ps|kp}tç_]ˬhf_}eRqWn[{ԍi[YzXfʓcr]L@HaCk95CASzbF;{׻ŖPaTS٥]r:]Zt<4dщkEze7n{SZ! ,V|Wd;޻sIDATx TSaA %,B!Y32YfLQ (?"WV*(P[pk-]]w9.y^{{}޽ObPJ.8>{眳?S0|Ky^A "j C @c Ÿ@ގ֥6KhƔ76| 2$jFdll-|C@Ã9)W妅d+0Ju(wm!2Hޏ}'=S0_KWYPV*LH Sm&6qͩ*5G>S^iZ@V،]ewZ <礟];þY2v~K}W|եœU|i q(bjoh L?z>]O) ~K\[,*&MD6C_!2ȌSq+܇::NsU$Ma]VI]}W}nK}K9G<lԀC%Q$RTAVjFB6|ebh08\6׃@ IWMHnXi u%O_ԏ&=8 d܏Y#>aT S*%Cw GƕoʓRIG85ckdrddh|]xkݹgwg1~?ce´?Y /)2 C $o)r&|ML5-,Lu-|0w}w.&Zu<|ON<P٠'ͯb>_O]  u###em3#2'cDxi[4u cʠG˓qjEp@ƃ9d'nup#2B"KNno!X8[Mւɘ%C VU6<<<ҜddGc@)4R.>5!޽yS e{֏ ,,O{2֤$9;88;B~ƿ* E/L`d0|޼r%te.F?r.l';=AjHBT a:}u ^{Nl͵JZ?oًzx690lĈ cu$ϠBZIra2*Dd1iB5^—WV3QVqȇgtu,tוN4$2LX0Fh%O$cg MtRMj<@:ɹd.d3pɾ{|OWוL"ڢgړDPb$s-%{ML 3Htӄ$O Y?CgI묿RPWQHV8Kʙ ` #Q}2 zͅ]d}2T 񕷟9+/PYեa(dE, 3#AXhش{ iym'H(. AQTB|3.PᦥEW5AeX$Xf&!&FdzH$o4zHN믺dBY- ?2j'4z4R[z?}PTX7GIAQ"Cm/%eWS.gVz@: !}GB2_=25_ 3V_d,j2/؋!#8gd-Y>u!Wt$)G DzՃ:u!i*Dغ۲=ڋrg?QwU15dgpAR',Pl:dHHڲxsɐ*fưg3fK%uYPG\4jK=Ki6]6#'ϹZWkIQ_YZgdtFVM'CsV@fREy679-M՚32SóSؼ1lgNUzCe'「\JӖ!rdhHLƟXߖprGM6UŬ1d裗ղ2'LtMd4 ]mɡUqج[|Q|2: E_ jy *qrck>#7ͯm:- kKU*z؛TIO'OS* C,/ѩj j h‹rMށTrLo'A؊}~uH:b:E@D*Rl()=$_\ӵSs眚.ttL Sĕ5aw2I[u:j.l.GbZd(+4TD,$;/=k4b<{lJD8t!ڗF\nP 5P3*Y3l4##XΊD5#L9N"CdڛQIMq7)`(=Pd5) qOGFZȜ簚B 6T! ;|G&謌ĂdM":CƉo]XPFFOC!ygXg#2rԕ,QVt]SL>;k5ѲQSyˬjjSDI$Dyd)&EHa0d_J}KSKGx`CLrƏߤʿ+9#qNpJzחpђ ~sj[jkyIq&>fM0 7dr[Ԧ+PMLO 9.#v>ΚjCdzMmQ( 6Մ:"=g8`[r+0y.N`[uNG]L>Rwԑ . s '͒!}n޹u^%CQ02#TVgIgtiltv csdX8eSY@8 (1}rdisaEgDܪF3-lNi}*^+n, *x قђγ'gC`0IfАui?#l<}{{DU:'U*/7D57d63rB˛$!2{QgLP LRզ\!6lR?|'pyJ !A_Iۗ H`jγ:]5‚NH&f%_ (݆(b‰)/ܭ m'_fD%/vbxhηl4ᙂqmS*8 MЧs3CDʺ1~KRse.CJ8ɼAQEzȖ+͞~)A%fC;RqK: u [3Z薯-s/L%KgXEb,9;)ACiC Y|L#?MHC<șl ֎&:)3ܴd3;2/9y& K7hoE4 ;uoxJ:y24:1qEK ݟSIʃjsLNQ/05 3\+Dff^4aǰ< o6ܡҶMl^s:ǤKb/7nwMpË 4ܻICFE333CfSK6n.US8tKdtEK<ɠՇ*]bMtTAtlvXa,UuBa `֦/CWGl'[,$nw.)R5@ƾSjlB7@<'vtslFZUȈ3eV!2tz qJ3TOlKȰ-;nZGB| 7ٶ,!~g۶,- ##djE neN3%J?A܄Fz nSP5 On\S\\F„;!7> z'~/X%6XA &!ç03(x_\ѭ|Ny{󙆈 8aatH7gp] 3k%yc) <ӷm\[f\4I&e\k%1S4j_R@,L _HT&:oPr&l9e?×{C m"G@g`"2wxDeas!>^YZpDy,R?㊝lEkuWXFgpHs 7PBMJkgrT}Z"CGkQ2lT3%wOY,j޲/?B5ɠc[!IImeX;u]t߰Yu}ڊUVЕޤAa$V;WRV@%+qAc0+a:uY8ES`SQ_"&ф9D5qIoH3脒+'FJ2D ‚sJTg!_2P#k3b;0 vowa2[GW{1? >N"xP/QC>;[axۺ<6KGVm; Te:chKݧ$S|w8^4$GE+j2s%8 nzәr=} /ļ?:vdm9[yy> /?9q֟z6ClŧqC6BMmyl9QY.a5.Gkncc>OZwy ہܻ HSL}݌ Ꝙ9< {Le c̦}H;mr&;+cN㕄+vqV4W@]?woKCu@G} }숷/M͛`kaU_lloa3:vP-t*!QMG똹wwV݊eicQ]tl+~KOcnjWd2Zez݌[,cL2[7jbl {M& ]&㬃 rb}{dDZJEN4կ6i NL.(Ǝ;j#qĻû3V 'QQ7fZxA˳D+:r0(ۀ *⨨ۊ^wPi|27msqL{Fniix oUuĸjSL&egX:΄% `(%[sXb:-鯻PeO_V39dt$'7&mUmFCqwTnC+ǑN A)#2x+ ..mZ`DYqOJ󘘌k@Ee؃Ȱb#"o3m=ʇ&k`-Tm[[_<  /͈l/q@&P8HRre~o4E\nAdؑw%d|uџ?}G[EG5d:P׺$dT܁@ wԛSSźhp&N ,F2ozڡ(:LJ!"0hO~9f%C=tlʯ=ލ۠ e UlH ~ Ơ"C̐MajIl>36i1c q)a4HQ3c0`F3UKPUEcoJ~*&㋤>{Pi4Yd84"oԱr^*U /B|pQQxuq`hϞCƑuU!홞y<9 38S-ۗ VTee+ƽ4Q_sNh[lEl@oqO6#;zF\ H6ď OOWj້1|, ,L`-˜J6 ;MC١3 GjkV[7d\1m/ʨQvpѶlP ",%..7SvH(Fe`bXc<>}N(/s< nM1{N!.8(-yc~p[E|\'ٜ:D[0ox8щ0f LjďL 693ʯZpӲt*ۍ3O`+(1Wӊ̇ 8E4\őD¾8[l:xI v8/<U:hcMjtd}xy.(c{S{a9xKd3n1)}t)݈`Fɘ>*#cC+C[++79)=GT$ߤo$u} -: 4m 26v)t/Gy/δ(2ە\4AZ+o"hM*-$ hI,19"6C[c5kBEs8nd?MV^ZZ΁l"5]E*D^Z4ߢ(~ƚ!Mia~^T-Qý` eIV̭:1< uՉ;``hl(m~b tfXX+49ޠ&zCGQ4Z7V*no(u+bFKqvcs}3`t;i!]; yW!{ml 6;蟡~hbm;jn1eFm"czAosoOc{s 6lW9۪;g.-uTsQ,>(cYGUE3-ˉ2Z0[mQ։́C(jXSK~X%w-;\)W h/x]cLjeL2v9'sy^P8X]8ݤH>|Bx3I)ݡ仯Ć]/"0c^~4>:J솆, l)gp,,bN"YGʖ #zy^֣a {l3zOp'zK>]glGӉss۰oԡ׷-1ɽ9F{dW=] /۰CxKMr» z!MNtqYGc";QnR]x+ad3mh 9dm;ELsnG}z|7YL6U`++`' [حEd=vk E: VE4 wFƆ^lE cea36S^+ڱkNd7Dof`Z1m!Pk|mJ!23alּZ7;C]nvАflg7h8D%1j(J*qxtW,%$8Y|_|dA2 l m8[1={؜ 8^X)ٸ^Dz`<6Zz~+j>4+C<fgkCXAD {r>2n^ Q#m8˕g]_͹'N{[ ^6929% }Ϗ{xص49tp掠dX pk^t؋7=s&W*rAS mKy #d2qli@ u4kl~WTbS/:u}zضv6oCdض;˒q~AE޿{|xJ-?#>>IyG5#GDHD̄@(!"-T"BBG"RTDy,X+:{cZgqfZs;w]=$_N%1u\ƭ^WK1Εŝ'.ށy:Xc+[;pJopxѯ91QGGFd> ~ևN} ٪] ;m\ VF<55p2 QrOj &C'#R9גwM݊O~j[r1>~ 2ͳi.4]K lItQv2&->/G{ cBdMHt )Q>!24!i )HG:_|,>[m 8_;k 9B~)#KW1œvw4Cp<_ķUg> "imK L?EHl-U?pUv9 |0,aP>o@޽e>O&=LBƁ($t [$cX E"8yphғ',wlXDƀ_Ӷ ˖. w@ta/&=7l7Cs,++k =&7$=m+K}p8yR} pIoYRx D^ZKC^DOh; qp)pbÐѪgn妌3/?*<{)Eiۼ q2b{2dV8rä%"tDe?Bn9!W2'=[!BTi2N-?jD$H POyw-?>$&smCz}؂#/8۩V>*xqt@6]77n_'enlfbwYd_4xS9MJlc}< RZ(Զz>8E&$~Ґ𰍻% Dt7t,~;`qqVB=4Jj5 Voܒ&=~pdoiw=_)'1n3?+ϙ̧M\![*%#qsDCܜI K4xqmC,x&"7R.MM{'A'#&d /DyVsOɸkL0xƓNz.Md̊yvٿ{ dc3&5u O/U8dpwwwÓs=P0t]bd@`{&%A4!Ԃ8#Ɓ`zpvNOhT 2CxqGuhqG/&`\ErFRwKo,g o`'uuFe x)Y"^x dLjiO̧[%Pp£e*zi{FtPf|5Bh6^ThShuP~}TDkۍ," +On( rPX!0 4K<O'\gdE"G ?. #UzĻOƛ|QoD&M&4AƄI%CM"5e0*24TԵ&z)]fHl5å)\lޝ 59jʕbd+}"\ ٷ/S j_}[ 8ח`} `(86 gww N?<0g? 4ydǎj7jP#@ -1Vϫsauhqkm" pos4,Ɉ<'kj4Qan0ǺNn$t=EStU :Dd肋NVnj$BtSդP֤m둼y{ɮaG8 À= fhB776R^ ds"=Hy3jwJtvR뷄[(?Jd8A cճߚI$̩?)ⲍb .M|ҕj#+comM-+fc7JN:8v'-+v\CJ}FV90Ÿ烗5^3F.vGQNnwB&_Qx#uw9dd2t⌐8Ӟ3DKw\5dxed8ER/9az?>J<~?wNI|^p.Qͥ79<u /y8]:Z\rWNXqCM7??C(Cl< # 1 ֺ@098FA XyqF؛T#~{ ،jNGQt/ϼdDdWi!2́="3Ml > d(h)BF8׊Lwld4l}fXKݐE9|?} %UE.?io&-ej4rOun&=Js=j[/KLԿ-7ٝw&BBdpX`s G6b6Ug8+Ïq2h+\GSB45]5'Dj!dbN{ËR "˿ems:qP[❃a0Vs *SqWYyYծЎ >2-=idjydd@DEqޗF/۝L)Jw &9k//\w:RPH'M#`n8[[T@rrThLNg(QcC=[ŞvM&=N#{uVwl Xu(7|_!AnruvV,;;D\n/% i)<_k; kY Jq·L &~p.79\Ng0]έc.B>H`f S"3g8s(zzU}0åJ$l,h2[}Q9*2f>Tjl,5zFEsv\B*c5yc:/]3r75UfR5eBzzj֤oYhV]#Uh7^ Czc Q^Uw4o $]3XT5C+]]=U3X덛&Pޢhn+Pdh?9G]-OƴS6O{[%6a3.9jT'k S=Օ, 2d !ՙYzh+Wӧ(s' dk yzR9scZׁh ΔPN (Z$J^zwhd8r9򂨔3(~/p1΋Lz:;o cS7 NMhhMn3CyҞ _?N–C;rX/5K߆ 9YDغѓr~:yɍ\v0/%/z:tz췋8нvuXVfJ^uah8(_fv4 ΁KOӇ4}Ъۛ6PηvLT: d* WM]#uӞ4{&A12\Ȥ\ʭ%HePZDFFV􋬦DVTlnnafh'"#ɯ\=F\<Uh~6+pM:1d : kЊ:&v-:F hE 'h0M{d +; E:>'(@AӱК_ 4ǣT"C1mBʔZ?F2 'L ? 6q%A{m0HJw0^=w74LF1ITlE|SBz |etd4|2Uh LƊܙoCUcڗU Y{>A-furaM 2RQ[f#o1xD6 J:08AЀFEYC2Y(JICd'ϝxs~mI2 nT]-s,*\ Cdg0G$)S B?BXֵ=9z2XQBQdDG`']-f11?U2b:ȈX$6< h3gCDl%؝,CPJ 㨨Td&g6?щ^eƛЉ:%923ԩ(dBE]"> 92nb#75]H4D o!-b:Kjn1YFd+5}*jT8+ *E :a362"*T5Ɉ'aD} RԨd5drL ПR @!w![ŧ .gr8Zv>p]C&N5/!iqM />A[){uSC /V@Qos|B-F& Ǡ_ߓV"IO⇕ 9g]=\G{pyi o%!΢NJ F}7*fV)ap>2Ē*gDjVP"3w'#6w9儔Z{Fy:NZm[_W^gd]^ܾ(UjIRKD^!b O@9ˬDeckS2>h$:"'{Ƥ%\%)nS"j΢ JHXDI%=7q"XSL#:O̷.4cd^1Yliokoi/))*Iq)IS@df oJS"d[xiˑ֦̩hemhLD08T6 \h 4싺ӸT$xT1⹶B2M =ݗ:2P` Il}f/ _EMR(( GFR&ɓy/GDB|z7Gp::l(Pba Atg[F&c7CHFu|}3]Fb'knI=id0eUz "* dpХ zz~_p;uI 2$"a|s@d.FZ:.. (HoM_ NBB\P2g8/aB/]2҈ؘNd2Ӕם`Y:zi<2Hٚ):4o4>ַI=mXau%>"7xi F*-m%4әiՐ?@o }w'NMp`\^gKgxgC߹c䄴?2yzϝiK305nv\oMo5o2|K0mP]pV&ӧ[@x[&eka=* ӧ ׉3IÅOŀсQBr7ȇ ^}"Y <A恜_;lÛy$# o9]Cy̅iQ،M!% L2mJ(da2:24U)Iý ͵=_lJ܄'%Hk}kMK\-&1JTv #e(u%BG?Ge+l´9;J;bR1j aE>\K@~67Cc0UFG"Z-C[⍰#V?' bKD%P-4M˰5GFF J6Ad%$7^\ˊOB^J&&[b$20~G4R\]a9N*3:dϢ*Kψ䒥{OOʧS;?ֆr^67 87vFٌдI Gp׿rdx\ɸ%38к *똷kP747=|*LFFw⥈%·R3:4ՍM޼O7e'0/(8I8 зhpDW;#22 ^.|bvաih/}SDqqs#pXBGFFj aݱꇺb칰JTU6ݼI=_bIhG|2*6d'}DUv([Jƒ&o@aV b혷:_ N@& /]]()Sk߇[4XQ̦mR~F9k.?0|}O2kV-q5@2\UQ]q1(ȑ#w R ҁ MPn'cJnp-ǒF.DƆ> x# Oł wh 謊#TLr26,[Ka`mٴ{|s3Lb쵮Z a C˺qxn0:2֘ʓ'\97Hg8]6cjoیZv}Sa %7ȵͰlؑ{f$JF? ꊥdknB7AahǼhO볳9u @#vl'#f22&_KG9&긱K ϬNx+n,]: +RѠ5KtցkSoc=,cuنN C'Ժ'ZwzE0G@^3GYDmf2y]tz 8VZ5୙me8Fa Ǜ **J:JGtPySd92\ (glehd Cx@x ᇉa6X hsyL77Z0E^џŀ bv2 b4 R7Wyԓ7G!22MDZn}Yȿ$i9`kG*,eɑaMƅVtRvº~,"Ʒ~0$Tuu^B k3EQ2ZsBL˳] ;>q&9d穻{pT:?Sg7]{UϚgLl"ZAX$JqaρAY Qr/G-sʣrDN~WQ޹5q 1\D! B@\>( 3  H z o8gjL;n.JCmw9ټzv9󲵶7:֡VVϫ6fe Q{Z JH41%g4|6}c 0x=}W5;!FWɀã޴@t~( cyB_ЖK,e7NFam畝)o%gnY| KA1g'XiwWu'i8nqO4Ȼ9_\Gi/),hi=H#4Zzږ]Enj/߰rXMFᰖٲ27)|Ž]Ƈ^TdpL Vu_5ȀL6ô|0ֿO-_~~EݡEB1UdU#' yڿQQ!2|hhordq5ϡ^=/.tՈ F[Eq ?;=wpη G=yyOvf ɗh5j4߄8vf@?Bmg3`f#CA&SS]f{ʂ2n3"\C} g\Ź۲.] ˗Oi9K9h-GFl2,e[v3LGuZ.;k3*E+3l0(9mb@e3_q"*ZVmmgۛsf6VOWv֜ ^uȜD 2!! m#gأUGh>.%C:%x% ֯kZgw +J,~ o]^l2+3ֽç ߎ~a=J['^FS`8~. r{L֌ol-CrO7⏾X$4%|۫-P5x;-^j:;Y%& Ⱦ3c 2*{Jd~Sv&oˌ;^X=^_ /CG/tR939 gXX0tfSe G h}Wq>'{Ȗ1EE%|!iƩ*gz\c3}( ,&|0FFL?jCϒl)rwn *T."䷨kܢv^+L o-RY!Tb6MH?¬ ;].m;L_]7_-AaZYX_B}_+}eB$y5dr' ȯ2pL2?#E">uB卄4tӈqu ~Ty;ߝWkF۝P"{J:9U9NW㯌PfKZISJI 3R\_JQd >> NAP(IĵnG*~PEVyqa \KdNSߋGb8~sɠ*SռQݰCen 6z Ͽq$~eb֊Ս bM5Wn zǏ/Vt7 OA@<]G"mm2*?pZae{H@s(]絿Ddk/8eWbp2,vY|GGsq" |F> n{tGDd\F@eTxi9iޮ7fRvY:O?~5v]FKս3JxϣABE5-ȉsQ8gCmfd0޾ࣕMSq2=e4dìzs?X6AZ+OlJ;5i6pYT"=E3JIGc|?bp`O< ?.OV{iv+?YcaX0ZA,jvñ1 Chntn9E2S|(qfQ|b\v*M ;Qb #*O:L]ft"Jꦝ J)tbcIJuiise4Hz,~WmW%,΀Qߎf҉<{sۉP(Nj sDAF6F^Mk-__'X}H}ci?E;\(΍31RJtNG odZczeҴz8rdgxǗ+*)[ I4=:,я t)Ae4K"j+hWitsL >{c-"l֗g$pt۾8p ?*"E'.Amk=r7ۿ4?CZ>`'Zh*_J$։QmА犰ߟyWH=P[iHCFdV-i\KsN,Ԉ J D롿F2vme&?P2L[hNSaf374g'\$N>1OAhNa-Yhi1RaҲ{ply靹!z8Yc+r}ɸ*mGnTg"WdmsFAA{\0ڒq S Lɻdu|6f9Z,w{sI[|iƎ<+EQ\d+{%:/)#Й{J?h 'jqJKE~5&>ջN=,Mr|DU2^WK,]׏$mhϨHq} N*\xbHG u| z(eg?fQ >@[@UDVI%f*R@uk9Ua.L㞩kYct' #65#DpU, uaub |lP> _Ϩ|9VQwUzFjFFi#P7z䀭*֊GY̙rTl# b/GCGā 2**'K3*ˋ,ԏx%VDiHYe8]*sGlv̅9n? sٮ?9> .*vE}.bј? !S!v`>,d~q^ /IXQ`n- - r:e-3mɸCtW ȀY0f{[Ul"6n1@O`x Sd9j)cVxS2eN'4z: "2( =X37ChsUU n|~ BFh|'#2~>1U3DƏz{G@\ʃsɼ_ԍ6SL|6FD zgrXya5 (G`o9Zo^Il8`:AC})i2uBbnʏp2[ss7Ud HGPv2Kް*ʫ,r TᤷFn#IBq("͑ d4NyΒz)(4H=!P/2ww}8, Rtvydpms12ez%ͫ~$\,29yZn2#Jh?G[1QaZe2 gZ"1f(x 恮8`xx /VQH}cd΂Nw=ѳ @Y2BeZў/oo:!ri|ʇ|NciScglg UsQAD= TlA@i`r2i̤[!i yL?1c+ֺ1b"3]٠5/pL,8<7 АiϮ%g~ wrmXSE؇-1BA$hFq0tvxt=NdO:LwJmY@8LKjh}אR'2 |05`J|3b?S'{ ֵw׻Roq,;Gv*Afkޗ{2VYn% }ƺ/KMw8Bpj94۔0M9f}?DNj8 g&_O?b}NX'U Rm,22r"%I lT V12NAC#]]RHcTy |t9$/r=wЍ'o+ oGk#xdHGCy1vaDb\wal̈e>_ ?F`U'2 +(S-aW=R A|lu_#8^Ud;AI`n8?;Mj aGJ1XܚP6DVD2qE쉤&/);9ȉnTۂkÒÝ|잢l 3eۿIJ3r)p髐?zx+mD(nC2@\W: iӲ>q;;tzy#*69 u']8c) 2AXt 2#RR jDZg"-v%X r"}.dݑsq?|6 iHCF:zٯ9y>'_!͘R1;i[56x ga3,_"5#CIwF 0qMQ/B<: wН:VSS:m+,|\tS=)'12馦L#ڼs3DT^<ObƒmUqVne)f-:}s2)?# prWB[s=VȟKy"EM 5Ћ2%JyxΞ zi<2\qKo2^:_$C3Mؑ'OނXj5^gZO\$ מɪn+j;~~(@\3XMO=4asa?W{\E*C$lXOf3X9v'iωdDS Sؕ2EA|f$欳zȕ&~1B~KĤkҍ,`k]R!R8T0Mu3#.oew+ oM;-|:iTou"C&Fb\Tga#™4jTLLL?^waE&^]y&f,w+CPQLO3e*Ifgm'YQLLtvڙح?;욫9m㣳 ;!nFk(5DC*aڮ!ciLb;2kX7ھR[}A^]CzvEQb;5dmwP" !zUڜiӛCCƺ1n92(6nd߬!c #@-));@rb(aGh!chR+ V@RC 4d7 ڴyiK6Y%] 4dd|-2֟Ja,XY-B PV l֏f* ;6RQmau# jB̔Nm Ce0}R2֍aEOqAC[b 5d7[fe8i CCl3֝02 ?ԦICƺ MrMICƺv'Cuv$rZylߠjL;eJGAܠѪа_|ڐaiU5ڐQ5њKCF24Z?{)9IENDB`homebank-5.9.1/doc/images/1.png0000644000175000017500000000034613604617042011661 PNG  IHDR ex6PLTELiqyUHyUHyUHyUHyUHyUHyUH{XL|ZNU6tRNS/b8]XIDATxmI0E)SH1/ BWQ-+p{9 4~|[zIENDB`homebank-5.9.1/doc/images/dlg-prefs3.png0000644000175000017500000001766614774772566013532 PNG  IHDR- PLTE520΃œ聃z|}}~ؚsuvuxy*^abxz{npp?䃛֞gijjmmprs԰cefCGIס4:<=BD;ޮnpiyI.46OSTW[\L^oJNO8_Z蟼(/1[^_4mЅ֍ڽ|:?ASWX%Ъx΄ܟ'gLrfjy .DyR\>;jǭ.ۧݬ}7yonATp p~_r9&~@;ywe? p~޵f́-hy1ҥK|ѧ_ 탶?w['O|՝_?v絆N67ˏ}f5tɓ_|~81565m?pf ~Tmh֦3ۛoG:aEЩ =+Vlv:l ^[6omNyE0 @z9~ ZÎo`zuwOZxuڵ3?ⶾ/;?{uA0v̺m;N"ǶG[8qĉ}n5ww_\8}=" V/:o92[z.?mrҥ>:wG|oi.MVÇ7߈>|zv>|dQG GdfcH A0-+Ez#ɱv`u۶{9~؜hkۚӱƎ k]Sw/ Zqg㑃ƣuMۺm=WǷujzq+ڂ?:uF h zy8C҅@ @ Mp/(  ;>aHO:'OH_`xSg-J>s;g~] #O@\Э d\s ⥠HM)(_y_`cKJ|yU- l<-8Amos-nٸZv,&POgӕKyEURg~B8K,*ٚ…%զX XXdR㽸Un xwr* HZ1$EˋyXdnLէ|h,PpИq[F/.Pu:uUW^4=iR1IV\6$ڱ؜Y/HI+4,/>y*@ID1ӛ3BQL~N"Q4f҉h '!db\l6j/Ir@! Z"?4`tj袬A/-2}J3{6!@lQٴE x^ [@ECdd$idY38{c 󾱁M04a5"A<1g%"ML6D y{kkCX>|emW#M%IRK4+ Jd j7啱ݠw|H2¨ȸ8f&)WvYDqKXX9*, %^d_* GeIuH6J$_#zz&<,5MG˓{~,hs`QPh>[9KtiŖ$Ԝɔ%sjCd,gU)SSu`# WKQj']sV9[p'(*g\\K"J!5X_9ڶX6]&P4CTT[L*lʐ(i5máհ_͊#$bMzL"'G,U(J ٪ a.KLR~_)*5NDW n [?w> A^8OCpdF9'CHB'LJgB !4dRp$5$ &Ϛ2%B FD g bgH(HFΊ$Ih|e00%4[n=q킜^5&?;VN.K=l0%b2倷@;%uRB5 h8Hr t( 8+|@s~9=6 {IyOӷ`po!M] 1(V;{`!3~X:+>؊v2*bDNJYbUBQJlc&y±j+$&o3i8 \VgL{\1G4rT# of%YT/ M\i h\/0 \2ea<>?YL$B q% 'XC59ZSCY5bZUJ9bZ M!jb[L2'*Ps7*㫒:2HDA=t0VFKB@x`Ý<^_64$$Z򧠏ĸ^!ay@ ؒ IJLY>K hb5׏{Nymmm%)H#,|z.('ū\q*V'Ge$pT ɸJl<'V[Km=>dh)ma|5?=-) QO[F;HΤSC!<`MlZ]^PzkѾe }^1Mxr[1#߿ [,^߯/gs̟l-)9mνg+BY|6id%o%f]緕P4-lbX2 3P 49[.U=H(ł:b4m9vYlb *_mbR]4.1kr1ύsh)Tm߿=Dj,f;I,#SDBTT ${cKc`g;+F" v4#ʑT-՘2tdqFM`n#!QnH t? _,c<#DҺu|s'VqeFN\!z-2k,h."[T%8 mHajY^#-̒'EJ:)sI b̗&Q 2ګ^?1jMbbAj-Zmt+&5mi%>i 8gR.)!E'C يT:44 # &I fB1s-\$+Z\\J/b .$BW/q4qzq)-F)]*٩5y`}I7ȕ쯔<-bz|y9KF:Q$̖y"rw׼> t}v{=Z޷:G޲o}[o! =N&jl|& @ @#; ~P*׽}BU=.dp^31qI(1Jd* 'qS 2gJ\*dh"ٔq 2ekKQQnwA[bҰtuVR#;caij $f56%Y9zK}s{J#pWfҌc4av&0\~Q@;`(Xb*ˇ+$U?y9gHb\b6cY_ 03M|3ݿrBxn*Mˀ B3Dg%dyP6m[" 'ܡ-ْԤl t+#6x3AAluEеU-!YT:d'G*bzq/N2tHŝzdon~w#i?E0G,j\ԣkheI]syw#ܚ,[cv < >qYnz;`"ՖqozJmAajlsF_q3ںTſVX+E[c=km}_?9yۉsgL\-eV_Tm;k3iu[Tu\ l#_mkxTj1t07wiy:LyG7GϡwrU֭1khq@]Up+ )NEn-l2u;k˵ݬ_3 Pa]`N5#mo/d0U Њ{N^-L^V7u AR5, Ry[c?unt|| <>aVt`Fz#m_{7gWޒ:=Wh+˻pڼ_1c*A=iROBQĬ.oU0}/5RAehygJ#u)-zF5i:[nƣ#YQAP[KT́ >c",fӡDEq$E#{^`S(ԥȈv{ozBom_ sdq'D4CLs Q极}7}:;gp㷟0a2?'K4fPz> ~1|s۽s}m=4[sZݼkce?x[%bNo }nٰ[潟+Ĥ[[#o^ہGCz&1 uQ%D_3˼:K{UcyXd&SRf% SY rLT,]d ##2aZQif\+*~dr_3?`I++~ߨMs0Q̓}ƽmXi܌`n}ِ_[6Su)̕h=',D[zpOZ*֖Kjߢ9Qގ*WӚeVǶjz5MnOBs|%+2wtj> R:Ls_b5-AV%kbgpl&#\%CW|\|XEK_BaAE(9x>[_`Qű.z\Nep({Eaۢ=/'KwM6ⳉX8xP MU&Wxve Սps\"Zy4 !mSU^w1Auy`ZBW9t "B:u3Q϶l9f ))$?iٚllيbl`[ГǤbP ﮅ>{,$x1%;H{;ڍ z!6o󉖍R )%^ff:`/ͺ>u3-V_Q-%koRٰsx tm4@ a|RyNc"]WN?ql3GO`:;!flb9kAؔ}HI67m luNpY'do}[#E/C2ow6`dNX5x|;!Tnef23,geSnGN 08ۧpM@*6X+ҝͧP q!⥴-թE`4Y4JL|2iI4ҼS, Mbn kJVK 4 `鉛3BJ)؊F+Z-*6Zħh^gMll˖M({[z/%5XUDSt/|:3|tw.:]<)F DTViOssWrB1-ɣ"Vj5K߃mϱ1m4@ ė?Q6o탨IENDB`homebank-5.9.1/doc/images/Makefile.am0000644000175000017500000000015712460435643013053 imagesdir = $(datadir)/homebank/help/images images_DATA = $(wildcard *.png) EXTRA_DIST = $(images_DATA) homebank-5.9.1/doc/images/dlg-payee2.png0000644000175000017500000001073514617624320013457 PNG  IHDR PLTE|㘲铰ľnпvnptjorNcb^gz]ܐmey|I־fryut446mnofí’t^Sxj}ç~Đը9Lfy{}nˋǰ (1nfwuq~hy\uk~}ohc|xrױ|̷ӿ)3KŒw>qe_>X()|IsD@h CC'^oP袷EKf@k~Pr%: a! {Ȇ;2 o_ҹ5/%73庯Dl KZ=Vul]gq~r.8mЛ (i9&6ɅP_PZLZݍiuYIK7}gs?mln_vtTWB.=9NKM0ϖ >,ꬊ&ş|7x WjWqwܮݬ\ !YC]Ȯ_~<=l1rM%/x Ka9&zi&.POw}pݐ_F-ׯń|h^^ ds5dfl/\Q!7Fn%;D$BuV`5g@ xd1BCd'ϳ%kk $Bq2 R`Yr4 }/>Dl3 ÖQPP<9MȆ}3[6vԇpكW:'}K<'k&V r#3NȦ̫ N7˹81;nʖMN\,EC~H<;yxW6q%\vNHYԁ4{28%wת=f\7j$o%JN&7l?d J,(CɪJvPj<ڡd'%v(CɪJvPj<ڡd'%v(LEAAAAAAAAAAAAAA1ObBFl I 3?$G+m;40}Oʳ-27nkh/ u%`(፳goX͹uo}ev]IԻ~ܖQ^KI:>Ѭ_J2_.kh!kV? ZIȾ dMT٘7 @6}tE@B$rE.@ GQ rr #/Fa($-]"m0SK=_CQJJGOvic +JK#dS.Ppf(AmsȔVJe8fʲsھJ́jG,[ Ȗ6݋\QqP X\.K-P( `r-&=i} ֳߓT8̆gY[ϚrYm(QT0YWayu]ve_sݻʷkIbo}K$e7nژyqc繴ֺcOj9q氡񚘎SSZvkVv|3SAd[y0;9hokWz"MmHSPH'#ޛ>J>?p_Q^ V7+6?ЫS-=qQQQٴlbta'C֧qل###~A=9K3! ˞#~}{ }qL0\"IUf75.YRUz&rmĞ%!‚،X#9C"n|Hv w)K\6uHw + H{"D`qT1!-u1vd)gFYke3`jtt%s醒ckҸn a^L5`%"Sy3op-YA@54:ОVT盘y n(\{qt^nlKFA!'`O%`\xQ[;l6rdɲjӅ棶ܚ[,곗tG״hqY$Ge+v|EvcPgeٷzMLρE"V;qvGsJ}Ů-wng//Rz6]j;Uฬ<duٲ`_u#=6ie7xD/c(k4gZ7D@jFWX޺2Z0f;pfW,uǎ+rY&0 8SULo&r+t dBS}߾VPYm1Y;Dp_V>%݇F`8uN׳0/0m(EIeWQtc㲧w:6y0f^쮎=ujVokLd_LCI`N9(xݑGbQ##d `x, dA2,\4C8(p8(K@ox@K@U.*ZOAό,PIVH<ș$d.9P!$Eh _0gF]@kaXrH9-j,I OB D_2ͧ.AUKiE@f 4]hs[t"4( CËI9{:fXDALK$O,AĔ#L99oQ,xsujrY[/a{(d,1u 9Xak!Q@X[L&)x=*k22G:<\ƒ=1ʫhCLoO^[n b 1v{s= rY2}HëK&z\ t_՜;U7$2KUE~ \e*MdNx\OH7Gݲ88-֩{b!S7#~ѷ3.]]S FqGDoB])XvM.)H씨 Y>wFXu &0Z-9XasZ@QbU.+*C^_"FCV(rYOd!K#\N:dMheEěOl(& l77#i8-KLM Ě[ҧ;ZΛCSYF49I >֖r:OmѿձIENDB`homebank-5.9.1/doc/images/win-statistics3.png0000644000175000017500000005534314774772452014620 PNG  IHDRC%PLTE$&wKvٖݼyUH…ݵ trľd+ѩձ7RwΒ ћJKEFӋ}۷}gĿ~߶"$Cqwsw{ؓFt;|ĿĞx}ۥۇ͟[}|¦Ѹ#%RRpg쭋q)mѾYZqr|oȭ˰vھou}˜Կ誌zuich趩̜ܺ֫ܽvøh湹SSYXmu嫳ϛ͝x<@NBޤ巅ڵ}^x@굛ghNŽķ֩+/4cݨɐqһߏW^I$m&`|*j̿.-v!Ϧ {9n ej3&3s(~oB=hfl3F07vl B:Th(/6XmECd7𳲸TMi=[.HJm3ЋaGssl "K eTh0;Kބbh 꿔%vW:}kp?"oi-)3Ϣj@XcI~Pۡv9{b{3) C:<9I]a_M7PxBa^E YL lSv#9b`d_EI`IRj\|t F{"~2tq3qszAq{8;*X̐UE$ɶ.Ѷİ^p0;$ge#)Ie)Zn֞6 ãnAhCi Ca! v@CǪ$IU***!E;>Rq !A4Z_*hmmM)S070Ci|K,rXsP} F62$o}I;1a -n2tCd/` JŊ֞VYL" *̋È!A̰3Ds2$ms:e u8C C˴aTmmbB,J:!EVCuQ`:`o Ev!ya h mrLSX`ΐ^j+W<"G[,fI.t4$D gq;d1CqvؖO3拯ӃGETOϪ Xcix"}?eXv 09vh.48pC+/S/,mpm.K24*w[L /{zwpZcĉ'2u] gz CءavT/Єax].jh ) \CD?ϐrPvj!w /\Š_ŧRvG}2uefY' RȳXXHm8C3s 鉐*2tE١n,&ht?)ѱ%쐾c?VVuhfݘҳe !|6>`σx3h(f(pB)!6(!ؖPlY-8ZG<C.f._Xفa03ŐzإEW尫>m+f=njך#vĎs>ߣ%;Ê7p="LJ+1׶ /fBש,;eP  *Hq}IRII{rI-CVʎK;"B^$1U8*wIfJW"TXFGN- 4ݬh)N&6hb˪㜪uNUYuô[-dhN$ LGfyC+>dhC~#}* gJÃe..̹x6/ȐCVև1${QCSpUN='hfdFeBhhS X萮:Wh ʹLZ !>)ɒ249:OeجẠdIfQV Yz!֤C+B=" iܒ0lp sZ6FJ!cH`A =zP2vM}Ca{~G2 4px W2S3[{]9Sʐ#-Tpl$%? aC4؇EU-=~--|Ԍ /!ΆlMz^χǏƍ&HڝO^1ƍ_C6{=(qF>'/wA+|J{LG4OO+UiYoXQ&roBwn~$Co$^!|<2OPxa^(ZcKCD!Q 'c˞3?hOؠcjmSkw>?vϝSiN}hƩXo׍h&^kK4~Lɵg|v?@'__?S˧ӪO1>1bQaN臟_*O[Gݻ}!` =uWz^!| C5 9:<HHbM'H吡i)%Xҙ)mDdZw2<׳ {؉m<.BG$"#:?)VO+tU=!=(HPJeYeRiIeaimO#&G~7 x- Jc'e1 Z岩-òZ*vbO(5d_}GU O91|}]C`UFU$(AQ6;4Zsc/daI dhPקfH iүԝ 9.*@YrkRiڀ$[ R"fobvȫRj@g~Dg+ FZJe E'K<@ϙnWALFjd9Iv$R T$GF=#J*Ё"U"Y0w0P5Ց3tСЍN~zo ȶ#?sk wGEi TvT\TFOD*dg[cDž#Y#כ85榾 >~i4^8zO>^PKa>!IjBڏܹL p! c^S[E 7xs䶜nSñ9'Coɇ0_VˬO- VU@+"O+`a"QȼBJKmGR$9CCmVI~ CHv57uM;/JBC0WfYH羦A҉q|FtDT!C^;ӯ o'#S8CЫy݁͡ CUI?0;ЈU\Jr;PX?fz/q0fT~tZq7L5,exzH78goZ}풀֘PՌ[~ IMg39UHxꬊ ٕJ*s~Qݫ* / @‚ScF*ӑ6Dpf(ZkF 4AhWÎj1]wGTWMϏYviTp}9m|h 0!vsB0qg$'_Pu< +QO >BF|:|| kfoe4 2h^cć SHTt4d(-:ӧq-j~WZpQлB$Z|s(t -bq>;ɤX<b@H" 6T%Y_ESHx74ⶖx2a!|)fS`yiɳgB G9$]hDfhD; ߑ7|yЫQy<<^Oz w*y 'c?M E5MWX$Ld&oh|م_|R|>ޏ=BF ۹aȾ ȈoϘPU?_~/bjϏGlǯC·Y\/cHst(<4yP4HlZmenB¶񀃯<߷{IOOPeٚvGZ&K6Gk M'⟰GPX4= ܍Up6C(lC<@ws_/Y<Eǝ&77P6-+7_vj;Nss5A S6TP7 2E(C>xdr3n1z͕bbh;P2}14s2ki ӗfSbYC8C˂P4lGoteҤ %.559Ő21x*ɔ֊tq& Mnhm.Cx"&Ͳ;យ0Aɔ-$=Z!lRV'" ?2\sh984kOBLPLYO L@|n'5iTuhL66*#9{F $wNxU!+lJwߕ[( !U-mU|ؙe9JaJ2閇 a|ϔL{rBUtݕiWIGeׯADrŐ3,Iv(AHsSFޝhr2&)|!B_n)m\ ̰v 5@ C4ZN5B&K2`F2S#aZTa9 }Y9Yd !~Bs9{JL1__1ݚ|}>Ő3# ˆIlE}IB!p\ʶ ϵS|SI+_bbh7[?9-d詿`#3_"Eaa0aaa!t 0sK?p rAxC׏#$| pYnJ¢J(CŞClCak̽nu ns \3x1m]g_\l<6(y`;: gW]@tz2wKr}i7``e7=X 2Z:ݬyƶk}Ϙ"t:/+n+ 38DE D^b } ~sJ |w3÷ ܞU9 U}s\?] rd1[̰ 1IJ7{2t݉] bv'/պjym` ^(@}sz VW HCOcx4,ޅ2!ѷ%_e@.%~bhZǴCq7#_M)}y櫛靻ϋ:1%jx3'u/XL?r5 @(>fQ C;mC@T)VT:y5,-NJ<=,Sta/؆p6]]8yS X/[X6 H].mOQqiY5 Ic! zע*9۾oNU֧}ȝC} -,QV9rWS( CzŹ*enz2ZEgvf߲یj~^Q퍟!uŐ39EOD ΙP98u yrCft:ށwAْXQePMm>wa,`&m|r&1u6|8`^5ghE7PytmztTJZO:|~L&yDR(;В-%e g2.sMrt*G8UƖ::i- }-WJ 31qV8̆˼="]4>xBllm9U|filjeoeO/-?͒moeiӬi3rմ7H$g$vVghnvjuԆg %t\J \qLZeY2X 沈|l\(:;42@ABlB(k A4c1d89j?尸O6΂kΪ&[sn 3: gpefȐ;:ū u{x|7[,*B Ɛ:湺:與 CimݒbVY0Z(ϕe)!#F{NP[3S7ud;hq Ȑw,[x2tr'âPAaAbY 6 V6C(o^aFGuۡ₄!yL\PE5`!omzCfGl|}O:N3rAbvv\jv !8E2Cq"rxrx13"y(V󡖳``U,Zom6UC![pQ Q -K -█+L_^(6C-s:;t1&\\I҅S  C c'/qRyVIW mry,N.) '_:c +z23T3υtTL IjS3|t$ڥ3AY# 2.7$C?"l*\ׄb 2@u(դJ?ug(yl5vcWkbXe#Uʍ.< :b!!hjC 77( xoiO1 2t0!u!96P[BJSOt<0+[z!.52vCVp>0TMȯ.) 'dW'+T}}^}A %Z}ZpT'1FG|Kb"1 " ;,u-ieE:{66!p9>ڛFDLy3gQ%/3XE%:n/rx`O.V/Uzxeg?3> Av1 ENyy&4R HYp[t/0-{JW%k WU@1d !\,l1cj!6L X8ޝTLM1DPRmF#9&F0 PfB@bh1󓸜Yj i- OښB1D1BS> GJУ'X!5G.%ҤTiVH\Z]H)(g%.=QZ, L!2fKFVN3^rW9A1N" zhC"ֲϯEɞ ~&k~f?zfn~cgaa&GtmP\Wz''`~b_EϐNgu. +/+}WPopv/܂b#XM̫ 1X9A8$g;z w' PO"3xXs?~`ox埉'W"EA5^gaٛv;+p{7k1!;D`^EW`؟24˸3C8v CzZ&"&EKla5w`niOegHc}Lz^AūV֛']D;0{X Ff'#HCVX!|'*zxACc;8f -Ö`j-J&Te 'c!Agh25F"١wv{P嬚/Ci$*Aچx%Hm[? B`CRnLxÔ3f!mG3a}25/qt| |ǟg%k4욐_X~ ~/@J(-+Ь0}g%.agd]ÖL|nX@!4ї=N1m:)̂gnRumUZfQi }XзR<_?-NJ$}@#qU"ez 6quT掴bj!{ 2 s 'G<$;sl7!7!9{@`,-C]X~38rcvG)أn[;ё0oAjnnm!PFhz~{nalTΛwB5CA$ ؁_S\]-Qs_O'K+ GG.3 a|t]AE8aL>" f4x^|ԋ\/ck:9ؠx{l<7<hnnx0<̄f_!\QDj6#i֋!2/D;t1C=if l4s t+Fv129fD~FdfFd{n3=~άXo$_F>?zPw#gXq=yڌs (J*mk+E=5P!R_wU5!j,#1./Q޽i\gtu2^O=bhӍzqe!WjIrLTʹd拇8} ^s"b2 m" ]dlh}COc &չ3C9"? J8dKp3JmxhYA{کe gHeaE1sIAgI =4^06)ypf#(6U<9CϷw *,ʗmh;qwtZ hzO=ɚCϕ}&F&+Moz T/{Y=zz&V&70~#_ݐ䣏MNM z=47F/ تs>I@[҄mY;uqmV$zZ~i Vd !͌IGG!d1>ܠ2 q'degA^ȍ X[Y,!K4͎2~ܠjُ~whSp[֞ې!4X7Ѷ X1 ʙ:^gfkE)U+ޱ|vhr }X;DxgYAᚈ~ 1ߚ70`_2r$UYm~:sm+ 9M je"ᬧBXM~5Jk  v/3dzmo|/'k:op\عky-%UHTu7o69!Yݘ#& 7$zkxdllY2Y`aS7LZieEi6aڄ[G+neX`Ekjn |O(*ΊgR#vY[ofqen|R H![w$:۠NJ ^9G/}h iGnvH Bg>ǐˋon`f&+]s g.vn{ P/kŇ':3Tt;"Iv9VNƖV5Mg U%8!Ȑ9Yf|]K15S-i(-\} 2r0\ko%&#I:cT.߈ Y,PApR\,L'a^X)S =Ɯ ;Rsmc|d0r-/7zȐ]5-Cܰ\l$ Y|SeKqذ ;VoYVchs B[Hs 񰹅/3tiKՍ^B˜^!˲\Sėaé-C|4t- ȹA$sf'Xx^RE)Y ""ˮx}<ng$ X:zs9 :@[+hYizʊ \'7ÿxaDFufJo˕fX+7!ԐmXm.h8 >..{ bo) ! m<ו z?~+ kaFuytEtlF><c[BI=FXxؽ!e痴C4m. 2:7a - A1oN''['x̳))i]+̏Ɓr'e1]=/4nj@Pƒ 57)=J|5Z{\V5BZːFf6ϕ<9;ࣇ2>\:*<[ca>L 災#7'f$WB@_'BfHRLj_x>Q!uv阚e }-;EnʖJ+؆UfW:UN#M2AW|5I)E@CX20VwT7#b1ݹ )S7YPt HUJ}ٕ.M%wB'a♖$,jԃ~@{Kiq͚RA4ׄe>%-͐:*!3W8.tWj*/bՒHfM$T?}˦s+W7~ ]x)nbHx@zl-/aA]ʛPBhjh!ɩG#YxjF{EH5UGnrQļiRK-`\}Tq{FJ"(^~aې$Ud)L;R[!'!~aWj\J]lRKtb#*U>?\V jo }gsր!̮󰶱nYil: *dv%1fCYlV;B(C$@pȄf62| 8ܠM <)G !a!dZY;uW!W [͑j3dd` prUO`ܠUfr2u01n;v!]Gjn!ʚ榫Mj~rL ItT+:P-37hrhEA !j=WV(7b*;rQz2Deq 2x(Clj $`1H9(ZGqJI58"cfhg_0YPX+5 _!J<n`Aon`ao 7By,,G_GqMB¿}>z_サ믣==$.Pn 0o?ٳ붝,2N 9 Hn ZK_l驽1tePJJˢ|^wCCϐbCCI X$v++ {spw^yr֐$obv(+{jvhcH"*e\B*J%SjEq~R\:N,M.jS&zkjLL,R0C^{zlZk$&!bt=O(z^"d,"PD, ?L>?(8 M @XBncdǟE7CUge2gKmU,!gZ3ˌ!VJ["CbDC((4vȐm>"C~$ޗQ *CHXqȾLI1D1CTĒ"2Cfh}Q9*eφ9F­pBMKMbHUJe{nݻwܶ3`BN4:ɎD!d-)JQwue見lɾ\'13`2فVsP,(kƐc{vG۱s/g~jceE=^f%0tF nW+MolQ!r<"Cџtl_޽_Fu{Z-6{ CX!F(ٗŐ}w{ۓ;y|ֆ! 8v"AT:!ԓ!հ|"vX},]xHg<裗O|t|xGwׄ!G `abD6Z%n:ؑ\fVUSКn c|ӭml>vWFtӜ|XrWRYrFCXD1omPմ5ks6-5f2f1C֝Ĥj~$.av:cCls96}؆yݗ鈇z1A(g٘ہ5>M.%Aef< &;4Iw6Zh8Cw&K;-M% Bb9‚db:!10Up_&h-4D$K3lL3szZCݒQe[4!Կ[j" fr>aPACSXjsKj]F &7V*2!p8A)*$.MՕwF4 ydt]>_:49CxLUӑ'{lD$v<;Pg@ڹ[ܝ"=hNfKK5 bdÉ!^P4Ah6!C>Wäna6Fu /[Ϲא!C/TE!bd(bFQ~A.Ģ6dmh ߈Ƕp= 71rד!0t@ළP7@0 dVaXt'px!H 8?^!h&N92E_co{ ަ@b8 EFb_7,L͗2.@0 V1!vs\7ZMP:VcbBDX' Bɐr=|ن𐈾^2A Rϴ#b 7ڀa(ݖ{%df4Y=T ׅ6Jp'ŔX;.sqlme7ޮoofj1&f$,09q`gN͜A%Wu2i/B 4N&b?H !s5^It {hz Ag:>P$)is z`tC1 ^"b^b C:"s2C"E XWr!30~!/m6 Q\:M HQ!_"0 _/Ơқ%XR-+A^w !|8C:Zd1@Tz~Uhƈ[e% #2dn =NI񐁵SG$< T:|6A١W>yΎXvLu#//S+]C;z>qUEnb<.[!M\!!oCc谙e6*sH:1>4>4$N>¤+W⚲8 !CCt>UѨ!NRnA@(o (SăvkfHP=gh "Vwv/ɚ |skr yeV*UvqoA^#Ǣƻ Ccߞ\%a}2E.P0ZDq i2ʬ3e1h1!C*g2#ˑB!*hDМ15VU 0el6>űX0;Eo謭oOm8ƋoQxv,|@L=]23@xZvje`2}!uZ/o䥓;;ܩ=>VO;! X.D-z|HQC|Sm? ThlS?ڹѽ z֝GŵU/c CV!*[ ?vO t0CB"}>E|#Irc#C+{. C[+2q%!^0; %{!mώU&C[}iD,Z:4YF2r<5xh 5E! w^FfHd \r_3\QMOuE@p֎xGeҕ`(À!׳gcuء+͠f!<ϕubxrр幎ܞ)<m)Cѳ7G1G+{5Zo& Y!+soB;F*bvT!uXqO9{ G1Dg3}SΌ&,0`B Ot+? 2r4CEpQCUI2!!CP֨x˟euz s(r~(ޓ3,hot1> CƐE+jy4:2lTqHNiYz^[bphx.0Ajj  s/b ](3\;A'GqC[k쇖!Bn+1ЙY2қx1e~X(m9~yV {ˎ֋JakYߖ?!A&PD,Ô $\0y:oz"QL,SP\fU/=~6gw4k5cg9rzs_ar0?9=/L92/{KhfQLkgI*2πz"KT4\Yc49Q㡭 RZNAǸ!},t-H=r> 18 Af75$holK@u{V*ɥNO@,e(z~,nWn窋!r^0/ .8m^g|>ˏ!ۇt(n2DeaͬP3mREo15yVV9qֆ!9:V?pOcuvy2!cЎCb(CQ=u8v$t+̐νa҄"(b"C|udh٣1HUpCL=n;2CvdH ّ~ CĢ>vKc !nnUTǘ|wGW7VGnPQc Yhf|S|>&_QMv] ލD(w^GnG}nŐ!Q ZxkC+ECCuQcr(\i!=<:ʠzTx +MA[U.}ר M9CWn5&5m8`pD >ɰ3+7ޭ#vt [^b(roLa)h[[Mv"JdD HE*]>u>=q'{;q(;l,Ռc|-|oV.Yb-.1'DO>%.lN&=@'0~D(Q8ؓwWCOt=ynz%2uh(ck"C%;xn¤~?{XT&GAX'|@:Qo~K%2IX-'Ne|{Nzl;īfmK_jY";bu5 "}-] L| lqZ} 8kĢK.?2o9?}(n!0JdO(/HΜvM.1}<C@s^l-z-c(3bw4Tq깅UPTdE(EvEfH9dtcb uC9?eE,9k)Q =v#O,'c$H B:B*j#3"@^&~Tto Q @;}%!/#L__v+/%r JCk+CC"6;C"Ғw(..N饗҉/]zNQ ?CzꧤU@Qg(3W V%e}bȸZ{ϥR Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q 9C> nT@!zC}e%Ţ|QgҞ̋Zl>XnaL1CJ4u Af@Me?x/z0C\$\ +)[kfr)(ȐkdXd NnK);D1GL ˼Ծ eW0_3eCz04l[k&+EAuLMCe%>%\xe K܉bۓO.r! IEa"Yίڝ0 X(qn38HHN*b(HEa"BbE틑w8Zvj,\F.2#O6otH܍fkw`y,CP2~rt?L"nQagb|ݘZ#hR'ďS嚞)ŗ!~ eM\*:6k;}z}(V!AE9YAu)>k;m)(%|F % +ړ- ^I.x|evbP1?IuKZO+Z-5!=EnǬTjsˤ:FPp#' G, 34?ǐoV;rq|S%Dl0ΔJ0nXi0' DZ[[4t2%@:@Ӗ-*i>1%֮^HTscِ̤lvo.#G.\QHA83PRЊ2Tpd˄3!hU^ (;_]^٥e(Te<ЅF:-CFnb(MnY7 rƒb:;7 2sfgKء7;Aܑj;19W]&QUDDHrDt^L ۶&Ռ 0^nol C4Vtke/sl;3(V!زc]j'0ОU]+-CA:paȦJp`e![L*KM3 !` ]=f~P8uEe>sV*K VPĤ-.Zڗq$Зq 13&I:Uߌ?NmwegX]G>V!Q~OiFSYPyueO؆!`cupCĄrˍ# 7?&Al?OI+TV;B_{6<;n02!)PJ*4#%B*M@LX 'bЛ ;yƎ_^cw* k^ރ9T27 ewʻJAPYZP ]9Ӿ0>j7;[ vraH'p )34j; Ӯ91U9ދYVql뤻1 *j!x nM_/cn{9t;`Iem=wNdiv;oOv ,އW~+=O kF`͠6.:EjxQ"Q2}<ԀܑE)(oߨfPhjӔxf=ԆQS$ɳ.Ba*Slҁj< -W$"erg%M6N,0}`uHC#daI4d]ECxzaixg&;Ƶ} /9 W<#{叠 C ^u!40hBCh a !4oCIV~xS?=jiMJ_߮/6<-8J36X6>D:CPTD]HcߞĞ٪?7K\D@BRsiXJM8}d~Ӥf׵ߤ4G\LB>mOCYpudq|`Plzyy_{S[ұlȒQ}޻ٽPXPX|Y|Fl̚Ƶ±ϐ؜me\yiؿۈx IDATxuTI+Ӄ4H3n "Xp@$@u#]7rw~w{Uw3@f{{QHQ5 sq;oFWޙЛC)ڽy?G4>z;i0i>.9ʊ+|;{{S3ČjrQҍ7 [(PK=)oOze w~HzIxgBzm$hGoYxUe36mdELofԑߖ:1#vvvMÿן);{y-'7&t,Uy7h #x{7d={{۬k|"Q?me2G`*rnF[[em*zӽ՚Z.E3CQXƋe*6&{#:&K",ÀIT1X!0 dD|jz_'@L}6p2a yl `F>yL ـ'a <}KXn "Vܷ$؇>S_ |kjkVyd RN~#|24F"(:S@jI<\P3%-cl\IdMFw&;5jF6Fw纊fLX%p&cɘ,~FPb20?,yJ/Cfl(q`[]Oչpxw9A ;q`e'q&pgۉR4W.1`w >4Bqpu߸/zXPYa>VZ-N4lNx1-[Lۈؠ7yK zWCO^I=IM`'wiMvCm@)*?X.`-XԱ)eɅG<:Q?t2LNyDfޯ+ DV0asOߚ*κs T4KauVSQ~.ڧm *UOF;aO7g_GcN>:~pijx!D* S,v"{+/.|YDnTfZV՜Iى^l5(;/:p@ɥYS՞]=ά&w7仳~q0{~ᶤ]X4<| b|; pfs6G]f5 OXBo0.!vU0oEZo w ';I'FObߛO"YVp^N(syQY<a=I: oߛ_EGKIWڐ6pHS 7XvggjcT;.=$uV ;zϸ5fQtɑIaIjjPe) 0lŒ7[~Ա9d=b]1WݩԢ)Uށ&4fqSzi^~&fE #=Rs=z#$Zvn4 ax[ޏ'\L@ K à)*IGb3 c/Qy䯩{ kep;zݾY"n7_L2 m&3H96r{Cҕ!6N\v_RF{XI 8O]IO6ٻߗn`SFਊs?JhvQRVDV鐺sѳYWsdKI|^T-R x#N!7`۞I0P-`2a;ms[uHцyIC9G3IENDB`homebank-5.9.1/doc/images/dlg-split1.png0000644000175000017500000002175414774772566013535 PNG  IHDRryPLTE<;;yUHľ綶of訩㢤|}}⚜vww¼suu9>@cdd068xzz+24$,/mnn~qss݈깹49;{XLhjjX[[HKLjll^``oqqǿegg?CE᳦⹭TVVNQR{t󲥢ݫ#'㼱h^rj˪י ΦMP tRNS}~tV IDATxyTY3o(I5 ڂ4n3:Qt D0bH *iYdq]ۭeN̜9oz[IYTP~UU*VսrC"qlZɃVsGVsIB?"d Xiѿ d1oY޳205[kFE,:W QH+-32~utrtmr%<# ħKV4 #Vς<:;T>ʸ!յlGC%W'&7Q6:&VgnmS 4e;GG5km׫5kjVߧ)j46^$~5hȇJIZomoӈdk8/zW]1\@Xit+ٙC*ʡ}gŒ,moR^q`5Vִըj]tJ͵otMe,-!q^X]<Z&[/po—.EujV4mŊNeC)}eK] M_5SmF}vuB!ӗ5 彛]mKLO#EkO(pQѮU/d/V8?EҶ 2 Ԛz5F Of)Uw>)c%w3XGCEjr5q24eZQy<#SީmW6-ǏMk׌GE8r]E٤鐮),v>ʼnlr4"X&p]P>JnԤX] Խ)kMCKk~PZZq%MZ}(\i5jsVXŖN '8!aad\Ǹɸ | gf ST >I i@,2@ZHK CXHE4Y&Mzd011hڹ-#wb"B-m}k!5 PgΑ5X:?iiw&M;0Lg&x@MGi:!M4iq8-WgSvOzVMin`Հ0X#Ol;0'@}rrM_9yR8]<<7XOqxI"1M6byM"g4}55ϭ!o]鍑EWqi_NASXe |Bb/Xz:3Mcyi"䳕\f"W*`T 2@XTa*U 55JՀQ * *ܰas41%!EUUӍஂ}:Nс 4 SD* ,N%]-l|y@S8n!%V?gIz~*H|f9r0MS-: ND1BRP%"8M!' >积V 3%_ԪrNzWF?O&5&E禠H!sod#z s4⹑$b#G )D1]E"q=d?맯Iœ*9pؐ, yJ4%YThA،5%v+*[|q1R$,0KfIv%Hh%TqZ\PdҤ*BMW&jpw@]hq萱D|HO-nTX|c*kZ|"K yR8]7=SY3Zðz 8eÁ<:uzc=& Ѵ⿧ti"&lYdK&Bi,}p"7`D+VjRF˦޹rո9t ݻw_W Ơ>>B&TV9gV %E <?s n >x P&MDj D4XAPS񁄨[$M&)76IIAMp@%(ʣw7%u"M&~~p it~ =t5["K}18du QR*+e7j0@r(\UɤJRBiHEF΀370O_7|8iNkJL5&~#3h-RoHHKaʸP ip##ui]jkm=1^/Ŭ`j RsʨcJi/b+Ar᠗)fV0RUR <]0|ܽxf7.<=zw6 FM Z| $̟D}Ts9z48_45A ]]m?5Awg͆锛QizʢTYeMbV51 9H5U"ۛqS̀8'mu[{Y{K)/Di<).O5U ϧ3A`k7V:7Y4V1i"&x^jW^KS}ς4=1Vcy/D+ㄙ4Q^Ҟbu4MBpq ? ]7Bl;|&z^lhNBiV\$ AdqH#^dW@:deq7^ӥ']>6@xud U[;%=˨鞼[ 5U&KRɚx) j<2|(@o -,OxMM ] 726<:=|iHyR8MNYnްM&bp0+dk!styg MkȑgC"@,"xQHH!7p妧ߓFxsE4YHE4YHE4YP8i"),s8@Mdsk?wbHq,"2saH0ާG4 MΧL` D <<)+uLaA2D&(v#M1 Mc'\4\Ӈki"&NܗFzH5]3ȏ>p&"kdW7;H֭1#>kp&"kh_PP(Fi ]_<4\Go8H5m !V]]m7#MD C־}J8`nٍ4\fO?r@AAȀxH>y)VH5m{{ &"58j &vy$I{O.p=s~OՒLay{"(HM-D4>3uӃmMH| {mv>(X13beckjn.NHp!{0`ܱ-ۼ1YׅܴRQJqu9\dG)f)nE={Q ǕBqW24c4yh/LNgW' 6a[=@us7Y\HĭWlAQt'c"J4alLKx߳՚b~:H"ELyr6_%1lhGxXwMogrvpMa:?;T& M1edq2ElvkR5T`SX3>OLOoNd *Y!<e|54y76&J}`HTHcKcb8l6+²rf%dcGӁGQeNҡ0ΕwO*6<t6&XDzci MHw+PNe.wcGxl^]Mb4IVa3M_Րssjz L/sElI#wJ N-1?fN'ɼ&/V >95qַxim^<3}w9G >`y$y'_Ae 4懌 *Fٽ\?oLYכc=.f?CۡtSJmk]*EmYJZ` ?-⭋`.3W^nK6fEcv^ߗ{S@awPض73};\j0]$ T䷰5bgO>_ K_Dتqub.ikʰ5bcrr=퇇6ckq*Vōp[ǯ);XN||H[r6&j$x(Yt$)4=cmk*-#4ٿu=f8M*I4?pk@&S]i*ϳI,פU(G5Gnjb}}a׆a7>dף~ǜ&T9_2vMj)ꏿEyC.Mv52؅g:p4|oG4Uq5W85TPs*IMMW/BGs%}X٧ǿ|7aIoVk̜lפxқ̈́r>7Zܸ^iq`z[i^3ן`ٮ^RS+/^}8.i sRa:Ek*[@^\ԄVa][zXk& =pJlDٮh)i7bwDU;x{I}4ѥT\2.P횶񑛚-tO^АȭݜlIsR:4!AJf|&Ĝm|Fz WSzFl8=Tr[#" hl͖ZiCn J'%g_k**<&o!5" oVy,}thi}<,[ׄzcGhjUm_Kjiu?\%;'V,CV˗nTw-}SNq1ߩsH4!NM"R4鐨);ٛzxƜ/&"osv uw4G,e&IyM`ܴD!h $H|.G,6E%J>Wk! ($^!)5]YSN bhcV#R־5uoZqo&p6ל`6ڮE E{UCusxnknŻ}UVl&9jafcدFǏu`<0#{%r8pxaL󜋍_{K|{4䅔wMqE$]NF(lq{mCM٘dq+CMa}+Dj\~$q`W?}ĝ~$\ӤY 8 h!́PbZ5JD'\ 06G\HK>&Shl5w?d↶F`Ȩ>a&+#4ǂMSWQ3`O[g /ޒҴ6SmwfC)MC(M"+bgSvv 3- %'F*&`NmoQLHw 3 tB6- ft4}6 |A0jzqf2EF(yIb@42pLqW-6"M50 f?A;D>TߟJ3I~S7=`, f͠0kh9讇MzC4$va+MϤ>`է==k/;xlĘ,L{zޏ޽[N6bhJ]5 {C/t@&9N# >&l~^2!d04e qHS}(5=FԔ^UC$8b*K$ubbQ&dh`>sTD^,yIk~OT4&鵏Ό|Ħ (BhD{"Ɇ 䋦z.Ƞ?mFFl0MUj}dw=`fG*X !`ze)tOkr >&mjI >J{S' Ɏ7o$ÖG0G4`D-ipH:zƐ$].m8F K }1l'z` `0 ,gpc#T©~N9w4 ib''=c(+Dhgb[$$tz{QU*Y:ÞEħQix& IkoP(N+䈟8[F$=z'9=G?7_4|}`.j#Hl ̒7~jE2s-y42@ԔrQSN j DM9)'5@$(EM- /nnKP$Ȓ4h&rQ(ji ӧ8AlPH@)8RpI >p?Im&P&A鳝T,I&UI4)(jI*_U\Lɗ K2q"ʣ7U$PSj1 7n UEGK8M*>ޤIՔ|%&E>ӑH 4l4A\)[$v;h [&ELWTFM / ?|-zHl*NS([QaY" ȃJ$PSrgYR:|ӣz5Ji3o \MiRP)S*@gMʗ.5 TJ/B3j[<>thOlD8[Aw,uv/B$PӶńG2ZV٭ G|zq.%aP'uƋx&Kp\ERX*ǿBXT L/L$PSIi&QZjR$PSQAl4)(j8q@Hq7}DM4SO Q`u(z G[pk8,(H>]i?+](q.@O H"dP[nIENDB`homebank-5.9.1/doc/images/use-import4.png0000644000175000017500000002634514774772566013746 PNG  IHDRh- 8PLTE~֌?CD﫬uy|ǝ죣onmVXX󷶵fhjؠNQQ_dhjpu~|zDIP񎒖^^\椠߲Ľzwq۫V\bdb`~ڙĽjt|䘜ꎗ᠗؅NU\몮njd}vbktvpizXcl򊈆s}ن̿룰Ƴجж蝒Ÿʼ旧Ң˥ưɸܿtĔǩãԴѸκxi¡̰޸)IDATh웉SپO@`bAdDA6QE$(bXPYPqqI+T*Sx;&3M՛[7Ugӧ}#0^rk|ƕU4 ϿAE)'wп Esoip!@@4`22oU rdH;бΊRU5zܖ~c@pu2˼M0ޚ!#گsʪ456ޤi~i */"ӵr,OkNJB' <ڶ;/2l[a;$~h|!!u9>Rx^.n/O>+{m;"_:uBQdj-AuOVЎym&߀*߅6S?!TWݫ&euf',]e \cdžWK[[LDKmEH SL^#j$\o q7DϞS>^$?nr GvGhh:hE_د]|4#uؔ4B`,M*UY^@}řC wr<0:~Īm!ŠpU>f"<n,Vg_`"@1Bd5#,Iߴ[mns~vn%&U\x`MR Qξg; p ฻SoB1XpW<_r^$&6Ipb +qҭAY9w W J6dw4)pg=7czǦoΠQ<_ .E;r2XQ,[4? 'NHwyNZSxY?Ըzc?{uJY"cx|as{6BxCLb,<\`tvI d SFґ4R^hC1]W? K}MR p=}xSk#'ICLɏ3F= '}\fSPZ/| H$ yz۷3[QtS 7 DHH&z}besbfH&@F&@F&@ #@ #@ Є ЄKd2y%z:S(0d`d2fR`31a3Et  k %;,h_j${q+HV}(rYJʔ /qw_ ^}jے4}h>֏HȻ1xg;l _>YLo'BFU΂aX91S-ltSR*Ǫ.&7`M]_PHFl񄚏tq|-a;"ޝ{7FwNC{kpHtw]܌ݹ.Gfڅ3e#]kzFgGkG{ )ш9Pf~Ae)B]~Aԡ pY $[8QSfXrFcdU;x~1FhY-+;[^aN{CpjzP3v&%hj͙:g,&"G!h8ix]AKcVi;z1mգ8?HM T,ҒY/Z?=+xU']LuOXM fbޝn}s7τS]V QlЈ~lqw$ǹ䄏NZkWm&$<;N(}8}忨mj:l?+M#u#͵C# rt*:U%mnSkO^ؗ8h %Ójj^4?<-xgyԾWZ"3#ZF>+מhCgOhdq]bt*ɤ0)4V3`DH$b1Hl aB T¢4#D$a[L2Ų?B61X<sNŦǔ" w9LF&@ /吲}J ӿzp{ *lCA3vAǣ_Ұ LnJ(fEnӃܫ$%K>h=$M<2#Q>CBo^ٯB_kwrˈ`w,5\Ob&^{ y3ƯjttX{BX+ sФ6xW9%. 4LGZ\bG h.xY]MߓV7T:@ ~2e]:nA<A!^ܧY(OmA)|4[h≭A7F5t~ߠT Br&o}`ѭ}ϛ譅/:r=x0;Zw=N?(˂>ϖՍU ռ6v؇,܅ rPbtW$8hdJFE1.eA˄-βa` 6-tqm].$%ƺD#+ƺ)DO6Ӎ;Ux<1<xHy)&QM 5a|M~$6b'@Q^J.'?l+u1ՙo0n2EX?ݝhIy9FL)8M @ #@ Є Є hw4i%Kʷ-l[o?ge~RWPTT aK{K|O ﵈Ķ E $4-`D vEɢu qhBJ(ڷ>/(N"PBǷl-<=2́ޔbp JlGtJNV?-ʋ\ ]_r1 yZj{rץceͣ.TQM[\8C#h| Cpt޵PI:qNeMԘ{58aX1ܓs9>~hNUN#5=jG*Ƕui̦k0'xfx:4hS0cϋWIj(tM(o딅\A@TĄ[i%@F&@ Jdv5k]گJܣ\Q6sW#%ėkܒ( ܈?L_ Otg^}pYhQ˵7:%;6'06)3@X C#Ք $Ҷ^ZŠJaMEj8J37*kW T[ا퓎Q39"bόp?+]ϾFTJOqBE+h;NDoU5eFco\LdMb: #1JbZOe5,ԇEAeU}CV2 $b}_aR=`<q !bzC"<~UwٝY?%y3 @%eE(9h>O$lhXZ*Xڭ`p F:J+JAܪ,5,7N}I?zaA"WfL6۸Ć DJiR<$S-Y%9X+N|L≳N2[Mfjkj/gm5ƲeK!4c?ZA\1Ľm9% \?,ޙߒ[sۺ?M[bGidW;wQzZI:BᕢO{N,G,f߉%O>5dByH d"Aߘ8w:ʜ:|y,4._}ȓQc,d[Vu{ '~QZ.XwVP>jlWʞ+1JZK+΢&eF7:PUU^Djߗ>b%py!Y|0Yʎ[;֍֏ {O=Op5@-z'u_$\}\= < g:&&^-OX4Ƣh Ech,`X4Ƣh-`"x˜Ov7k_z o,.уMz{FWT}fves>FS_Ԑ ^ \ŢF,xTݸy]+ˊxJan@ݽ:ZpUi<һ 3ǝ'sK]sw>OB4e?*ݎߞ8J}8WK]#g#co>qĮ_YH _^Ջ?^.ߘJCE^fRYtYQ}rzݏջs]u`:w3sGz^t> $'F8qAS=I0$ ڇ,`Oy'"]:EQP o`@XsrXd <O:qv ~*szx߽ٕ,tVlA$rz м!ӧoalgdghRvY6h0oD%وPNGt-E{cS^݃{>ZX$c(ۉ ʲAiGU1J|Z'c}#^-iCݻj&Kˍ0r@32__~~-~jiLNٖij7O;t^1Uh/cQGGrȜqdι3C'Llcyt]'.e[?yL/e΃wDA|xy;x9,+|.Oqd}my<>8w,,wsX~=ò}q(*䰌0+q߇}2ypHt]r\bazp!EJAYY^˂=!/Yh7y+źӏ/?rXXHBG4s,.8SB[G!?D{NtWwN >\rgw2۝9 ɎUIA[[{?rEQik2(5MHУ9+:;վs5V yF;x|g}~rXg{)B;33L'YA8x>Dɩ=~zha)85'<ѳow<7b,mT)bDcp*qIRX ZKwPWNbcH m&@p}QӲe|s `kxI>>TվCƎrd\q 4ӝc7<-W:چǝ^Fc  `^Ŀ<Ƣ1X4Ech,EcX?vx~0Ie8[/@NX@LH՚,q} [UŰׇP?O*Պ_EM9~}D O4STefl!4 #ɜI$:+r-I Ƣ_#DQVD(+s^8SSXk6] +~_ >A@ŀ?;-+WO,2 h EcѿD ~H]4&ٱ9vcѿ?0F*XzE''Q%^VzG6"6XDA!\]Z[Q.ұ,vV" ș\ R*bN %$,EU4o\_US ݼJ0c>1XQGbi#e.ʈ8~YA.f$j6 Di?AegQ`s`S\0 Od:-,tpUtF[Y-aT>FA*& ؎hY;514k3x(%,S'SB je1lMX@ b sU6ʪ`?=cO ts#.<\Z[@8B,*ah `0W/욥DP 6LZ$hn-LS3 |ZsIvq5UKZhfJHKmb55(Q$]"TFsifi: b' Sicr2HtJV,sh&A; bR#StѮҺU%+6)V@\+hf Sf/¢2=FyM5Hڻ-A]vlDVU]JYL@If L 3]#:t7h>Då&a*'2ꔄ" O1ꈞjSf6Y(bb܄.: )цN2mYC xm -Q'FtLhf0&T=o #~(鬝`Eİ*KnsIh;ɩ貯<ѭJ9! Kn,^ 蹍+z!۫N1K W;t#[$uFQf[#/A0`0 `0 `0 `^B)#kC+ϊfgRLE7&=-ͭuv ,Rn1wP1gyuSS"4tΧ ɶ cM1C "Ink687ږ mQd9lIP5PH6O٪&؆lahE>wAt͠ $:ABzRSmmJTa׾6mq%ibSiNk $YD4NhuUiTh\4@=MCt*ro~8nBZqAڃWu|(? ́^unicf? 6X KepDh$c-Qtfl- ҺЛb$߲E x(A)\\f)RyBAwv E|LG-|8dFv2t861zMeТ7o98pMSAx3dN ׄ6D5s3 a JS@ׁ`t'JqM摘+ hPlAɠ E@WR!ba#$"#Rng4sPo3Q:St yNt8" mCrbTyU-_z;[AABQ:bGf.I! np4/- h\ 6A}F z78;e)swXQLuU$<c4)X!)#mB .GKs%eW02<&x  h[d+fpa Q\RzxPIg$n݇6Fm&܂h=E!K` x44{0qpnz#{OFc󷊙h*B ~tX>q5w37[ Q@3DFN9Kn^.{ 'R@Wu<\.g/_\,&nWEh턌=K7.񓇞z 3;'ԣifbٻ]Se\8{umf~4oW$Ƙ*}豾_'/ f͌w-? EopF['/|}"_m:h7odɔk33\%" й]gFlLL.L?{!sDg Ov@cޔYbdgJ Z$71" f;bz'%0ٿr3+,r=˴vhEË2i}|pmx}9T^(OIQȠMj,kۤ>5&A|*`:vnIˈ/bF-F􎴥F&PĈ\Sڽ#oZٷ&,(+]$?GD탤5!iY~Ff+ 6 -U:IENDB`homebank-5.9.1/doc/images/pm-directdebit.png0000644000175000017500000000102013604617136014407 PNG  IHDR(-SPLTELiqDDD  ]]]''',,,FFF]]]^^^dddggg19+tRNS  5?`cvx| vIDAT(ϕϻ0ѽI 1@l,GP\+kOwY~>:fYY61jYw@\a2DzqlŅDokw/,=DN(QIU\;a9.2C»]/y pU(4i{:(vIENDB`homebank-5.9.1/doc/images/dlg-transaction1.png0000644000175000017500000003243314774772452014715 PNG  IHDR ivPLTEyUHĿ̇ng씕vvy^嫪kpop}hvsj}k̗xhdfѼtuǫպÆ{v%.xƟ醧穌pj|}u̵񰱰ˡkwhrjeYY`T\teXsj؟ͱZy~|XOlpůbxxXdf|ejzWluVfPgIXEhx_gYY+04UjXHjઃХعʞ|Nם??H޸pLNcYwglHڱ{κX iϊǫXJ~|Va=EzIIPbtթd. g\Ax8Sh,NDU!Tc J%.;ѕQ}ANVlyݒW1IDATx\˾w$bIQ@Z{;A)"ME(؎ =soW>ovB[B 7 $̔i03GHwR~e]å2]2O lw 8rH~P݁}e3Q+. id;u67`y#UmIH𝡁W[ {LW6ƶwpAʆ"/_y94_9s wls0)b#B%DdvWmzQ4PV΀AI)J .T}f4:3DqDcӉMM/Eɍ EqDEj "^ &A[hPe1dLFH14v KCCCAUz3EBWTTd鬀91v *^zzyZFFFˍւڵZ9l]9t[K7Fa)4. IfuZZ4EAaiXl5 ]6eFwG#~j 6d=) aL4ڕWv M ٚxTjiakݮ`j[;";{)0 ($ՒM{]6"DL@jDeSWB Ogy=<ȶPldPkQXDhU@( \STIh쫲c:PQWlM{R`RW\pgޒ؂SIIq-kGh| F-06ۜnM mm)D^(D:Fz %$d^5)o󪈤]P湺!3ZBZ#iEO CɕxzqM}𴥥勮l {slkNpҚQ4D(&$5v?QMxQ08`kd9lJOE(m*"eK|8G9D^;mdt&4;z,آu ח+(ŗF} h6 O5 ?=Y^H5Q\\#K--3!}ArsNb7#;Q fA]Jr6f"(gYchFRE0$GHwr+,}FXDw@Ȩz)JcIq?xoHVfƨiKxubfrmն u~ yEF$346?4;z, QSR4䔁gEa+URDC4,5m F0Vb("Q"jSX)JcFTviLVnDW EiT14$q$4 %14А8ESDsKטx߈z7iȋ#@C^\qF?0 3!7πw/ h@E+9#o<ڌ^s ē׊](:o218? &-c*%{dJ2$L2$yv`Yr2NSpP V/u 2VԣHi.%<)x*I"4>4,& kiuAiX䛙9WJK#c,i6dͶ+i|ʻp_Q7oZ0.y`ZӣAs`b ]]Peff+*#ʂֻn6vt{QpKAStT-4g_Om{5|$o۳3bMm%$P0@ncfo]lffS;Fh@iCahbҨ/utttWogc^X9Sݩ^a>q--^wMưbIaWa6i4\4 oog/?%|i"a0 ZvԽ4;u1O68M${$*R"ش%\i9?r5@OvFҚ%\6p)h-rPo ѱkV̌^7t}Vھ&)9JCÆ|rLѸSg#sn@V4{W_00쿸 !4ɛVy* % Bc)NDvuvsCA7'`@]+s!idAy#agEo8:Vǟ iLu( !*1ð)S~zaN3)1M( ZDoVԎU172UUжs<6v/GC,K8 `"&*5]c#gvt h1=9q=~?ӨZԷ+N;xY(am$%Xg Vo4}Cwǻ:r7хpl㐗?t=7npRP _zؕz7o[֫=lwi0xW>iըL-?a*,t?ct,H;2#o#P4u|O'agl/8m;bhrFObmsF<'qii WDϖMKgi s-ecJy7s-@c騌cZD-bkL2$L2$L2$ӔDC(=-]ZVQBb_.[3} #aG1=UxaEWMc5 hŝEXihLC󧼍o޷@cgNRRcmxJYtHΊ&@' kH{5)N/T/3Ǝ*0% oi{HLF wVJҪ0Le["bд |aKaᎇ?6"iΟ:Y9# qYk&y .Y+z_G_7?v9ytؗNo}u#-g] ܁9=[wfV<puAǮ}c5͟C<Ur7H^p{aQcӯ߾amI9MH&vc (NO ^lם>|x/HOfJ;O!l2x\eN 7>4:1;;|0S4:V_on!нq >?%>C 8\NҰA>=t{EAozoԾaňXټk;e~{>ȲOic}90`'bs4.F&l8o0fƨSS?Z55-5m3f{0ᶱʸzrJܵ~ۇUNyӟ:'/Υx{7Nj^/CS}QT vKLu4v[Uk?+4Ě?8cv1O&Xb^eS1g<%/|1 L-*44FcԴEgaƐ274V/K$> x̅LCOo{ H @ S%*PIKgHEw17":bTfX}'5 #LjĜ 4])$yAT"s@_h4,D4V+a˗8RoBevHHvRЦEN."u$8-tooa=yF/^GE0ڵ=+,~9ZjoO#8bK< p; ¨FF40twiii@#qvv?AQ J7 [3p ݄%T)NV^ng\Q%Kc+Ըe ?#1(%>k`1Jo3>?/^ti;s@C`*5.1 pTphD=G7zd#|nO g1KA^,krXa4[D $ǰv ~mG~DǗ߭5F@ZƜ bpe\Ot[{E{.g݋'Ꝃ{-·չ;[Q80 --;MKh2R lbn}DrJ"+G3ʣ; t7p/ѴL45h98wo)Mxq|trsQM?Zz3+yɓ'MM4NN %R÷9C+]G_x[!Ҕ\L4.Bܷ'G B>(&u"HP!!>@'(H ꋣRËAB6PNhg=⻝'>ͭ:i:lHC$]6 )иS|i0 |,ShZjhDOZ\rvs h5qRjS4}i!g!HHWlRР&_f0 &DC#h$]o@PL򼚺QMzÍwKF rk:d 4X P8{?GboiFZAiV kcSrmL{׀moiӚb5G= (  >1,+e Q1I^9_ tkiHxȺ@nFʕ2L; 5 BpD"]RYO21 ud;\)hf!QaF34A!"̷2kXi˽"aThCz4I|ژ[SA'L4{-sZ%32:@a$+|?,&7 e4i~G8CWc^[%0,i~O8*R# y@4?8ꝹL$*GYjd7 EqGQ< ,]^rdј{d .J%CwD5ͫWdkZ#թ;M[1A}d\hu]hM[nt"VT 빵%׷T(ѳ?.+ҷ"-wbqnVtl{zˊHڲo7A}Ǯ4m1I؃'QI/]FF~i59(JcVZe`kڱވߚ\J/tĜ&ɵdmQYKFCFCD?J9 3s*i"  Nw{.-,$`.tqXhpF,I\&h(!ukd/0haXˁ2]=P.p]G"ep؆h!YMV6kol`F8SVo`K)*=SƻEEb?Hf#3,D`NZxbfJ[bx-N{qR8J̐9Ph,lӐ l:QF(7ẉhXǞ>]=/:%|bаlu WוzX;5u>pxt3:\Y\D#%LO~˙pmKꗜOЏW-//n,NP7|>}f׹ge'X5fgyĉe4m] OZ"5Lmԩ8}703`ĝk;ϵEXChiG6Qn~l@$mrj^{G vOӗp W{5Ggpj*!ah̬=!̦;eX# 78p'[*,k7_--o|W}>ww?_5Htˮg .>xMUYR]ɩ[IS5aOj̀p,rtGL)x'P:UGczc{û`o[>ꎽ4R>ghTv GSc ,pOz>泧wpF`GӴMy7k3u8;/]J2}=G4FKD#!&?)ߦfX AAZ;&3OJ_gL\VBj꿅r6Zܷ e?&3o> eRIwLfά` 3aK]/TU_7AIM 1oC6N[ T4J=ҧyȭ6Y;Aʺ9A[D3 g.AX!ϰxlm2[7hsY6™# 'o&2 ?bld;6 iE4e66um]92Luv1iꌱ|v,vYО:[6uLY٭&7_-D-Ǟ< ;ö5^?p0/l]{ͭf6eU\K}fygPnTpRo3;~hItsT8R قpKhܗh欹!04>ptJwXkB^ UwRMɆ~Uϵ Q\Ml6>9!|jc Fi֥~ɭK`f7|>?:#jcܝݩ `]Bi\~܆Z.Qn h;{ `W_ailfk6) :H)(Bp^t| CbFޠQk'0a`!ޛi֦+Ru?,2[["P~l_MbaJ{|P@X[-3 y$FJAiǮJ*`F#s9=NϬ84FKDDҙ2N֢b[!-dhEndv:AK Teڬqlk2.b!1ᇛBk]fcठkhLjOo/ ,v*/ n$J^%b,h}UNf{e(Z/|[AsG #AuiڸCxX4gScvK TM+sOъ9X D;Qjj^Ÿm dI&d靺ç3i[.:S~7]Eo*ǣIgXg"ZcdpЎOC mILr5 N ~|G}/} ^%_=y䫯(\7Owӈ u ,dT[Om1$qOj&%c oR@Cѓ̇|5DĂ" aƦ⃾9hiy&q= ")MDg4>N)Q?Y+!O9(_Q1'7~_C?4+#P(Z}nG}A>ZܑnҷgR\}̝$der BF0thO,<Tcnih7^h۾.hw3H oH(4t&c!%EFC%!ICXXH㗟ӿ~/~^)!FѠ|CjO-)x454 P[:C[YݜWajQD b4r~}+ =l租~ГObhX`$dfl}&Ч-C4V /?E̡@*.H\B}bʭ _}L4bo Gl\GR/AWFMa4Dh8`)%n]GϳMIq3'y|t@%YZ6CEn(-q kNnz|kClyd ;7o0k&BmV?%?$0pYv)[Bmӷ}\p86 tnd3閼#UΨh\IoZG>p"-Ҩp;w,87e3cuQ)[c{hxܾRҠkwm_un8ﯾe=lIN?x-j6raASˮ\?IÃ-H?U67(slut<}"\=?ZJ,[onOhKБ/5Ů'7l|{s߁/y=ѯO 8641z6}\``ˑ?nil4uCnf9"Ha73(-3<^z‰&0< l6UPtxySm ]g{R\SZi: t[לh\K}?Z6GǎC@C3,aef)?KD#ʣJ'n^U`c\Xհ0J#QiLuH-m:X|VHoGuwZmf(}N{Pw}6ǚÛ:/UZu# iq$Ц@J_!QʵAеXRQ14VT}TUAZ|@Ua+`*)B[D`z %K*{U,~2Uh@5`eh*pU㎈_Z2uke?g.SЀdo{F$cHN6$ir T+XHepG`3 9l"AE&EKғ`,-[ iOd,q8G 7t ehm]Xiui.R#O[l hDpttt"Ϙo@!B:0cbн ;-DЭeqm# HahnNEObfhLZKyh{ G7z8G%R|L3j7 0&&!Z8bwlu? lk4]sYA`/!˺9|h[6:*A&CJo8Y"e $Ds Jr5l`RBc+Ը&ڝ:5RA4ʅCbR hTG")[~ G ׍ihLN#8=3֙~9>9 .nٰI:5Tpvv3Kc_iKˢʛ@Fgs3Q\)k lИQQE4B$zt+Dh({\&s.hȯ4$M",k&ҠkKVT[y2tԨzАHl w0C&PO.ɒQ^B$t%jq4< <=yX3hp@4 h AW#1&!):F%(e@%!5艮8sEMr`#d3"&=O%%-IENDB`homebank-5.9.1/doc/images/arrow.png0000644000175000017500000000016013604617136012651 PNG  IHDR xU^fPLTEGpLHHHTtRNS@fIDATxc`  6ZM\IENDB`homebank-5.9.1/doc/images/59inlinecalc.png0000644000175000017500000000330314774772566014022 PNG  IHDRl\PLTEx"|V|~~㪫cccpppsvwwyzz{{~]]]hhhnnnoooqqqqtuuuuwwwuxyc陙촵  $'*14.474:<7+yxa@zal dWo+-mHwiʛqbIn_=p%M;c:SC+R]~*vZ՛/kC-|G%*yq0 .W70`s$Q0ne8,IENDB`homebank-5.9.1/doc/images/dlg-tag.png0000644000175000017500000001133314617624320013040 PNG  IHDR=jPLTEEyUHB9pgג꩚|YLssubbcu$'~aVpDzͼZY[dhoi̧ծ)/1TiKp䭠ȻѾ.45sZg^uc{u{l>㙇սYUjvR[ǯ笺ȧmPomd|]|td䵨Ѷ3(M]LjJaXdeKO~}ū˝sJXJupRG漆_}Ι߾PFR:M}h[ZYp]̙bͲuٮvлC/5= Ug>kSY,pW:J1w=Bݮ}]'u,+\E8{Hg}r<݋c&$Bx̌v61S/f+O.&*Mhb|tɨp7?v\ 0ݰݖ)X?Wl(<3wwQxZwd%4aɣZ˶i/I\ %vئwVRVAx{A;OyCN/l-:{̃t}@+~xorCp)MO~}N!;@X"qgߟX6q̿{S3bcׇ=ft P4'>]kTU+s!uU3%ZAd!Ģ׽'I_ ķS 4lsuvSDD9zv Q |Z8Q{ЮJU_G| 95**vyGif )ruDY0צ: WeB[Wz n׹L,|;BvJv?+y%yqL+֩={qC-nު]@'{؆+I +/2;ȝٟ^i\Z@K;_؛hj<ηA;Y#lvlW۳ynK_=yuyYs]bZz i&wC{ kWr;2KKc@wYgݘw11m؝i7Gz`;Sk>jo}``̈́5N0a```pf+gm^pV;6m\vitKk+j׼jK5k^zƉ۫^xqSڰ7KWWlykl7+̗6עnjmhjx'oBL5H'=qJ+WNQ:lvlG>eyX%c;cN_4I={h캮 b^?u.e~e&4 }PVt])6u-C>`)?ɱ>r]*1ݟ 6_|rg럖-:x2{E%1;~<#[_ 9~5H?_i)]-[<㓙HY?uKD\9-oyoC^P߸Ѳ~sGln =sO#(]mS#SE^J<:$1Ii^&N+!;>c;c;#l7}vvlvYIXз0MgyW>,[?wTx_O>d=CoC+y% ޷>ԡ॰wb>k-tpuFwۗo[;`/0L⏉0r@;vlvmA;cXc;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;c;Nhɰ]$v$cc'叽ϛfcR_LЋNRoovdŨ8+/HKET7Rt? LdwX>eB3E ov 'C#(gPlSq=}|r(–Xս]AY̦*]h*_j'}l;7Vnvp^҈\p4vr^11J8TYh8OLi 4vMc*vJKBfvOHKcjEZvM\L,O% {us;mD ("Ҳ&y YQb$[}:~1&8pw~xjۅ Ցf{0)x\RJtqWbwav~rc:߃iYѶŚjP5YЯ1v.Vؙ5VJ?fAy EXZvj{j3?>ڭ(m&T}c%^lO]JUo%*]vY؅GەAhJ_xzHGe$(^3-/,)ԓk c۾^, I}&^TˍUs Nb7Rɏ [~bA [al(y17ycСMLPUN` dh,vL7lH~A1|]g3'"q4|FsnE7ָVC{FlHͬ{NeJjpR ߳ߺua>87Tv` vR}@E Ys/g\QZ6A;To܂EhdTho%'nl^9(nJ2o*Z<MMsi:0} XwYN{"˛.VO -؉^LVBP]vDefeVUf[7{&{Ahv}ž8pǎ8HòB]ZNĀB3fedU~yvW߷==XA>};R<3zǛлwBd{i𸍉ҋa5^/؎؎؎؎n|1aagK4ag.‰e?n@g>̘kuӸH9n;wA$Ʀ-+\TI >uh BAꬅ}Hʗ99"^sˤJW}T7"voGLozvy_*FmgWF.F}NEc֝IC=ګ ;jZpJm#V9 Zt^dFŮrΜ/{`ώ҄kC.ګb꾦k;7Khb"fu_dFNcC)An5 b)@>~Ea"~nd0^eXLo1l$iB"M MIENDB`homebank-5.9.1/doc/images/tip-listsearch.png0000644000175000017500000001146413604616712014462 PNG  IHDR2EPLTE(/캶ﵴH?ٞ=63D1۟.K8AF3:NŰϑп`ͷ<کꙻXXY冱䏜un+R߄y{|ոƠµ6ݏܐͼEEEۃܥܩ{onp⥓dϹҊWᣂs峙֚ѤƐ̭翢ʿvsuΨ΀дǜՉiaᏨvѻ*/0`uKLL|՛򗀏dzɳ|qͩ𚏚PRSeydj⹰fdcæԽعDt~ߠݱ9=?ز޲vyR=IDATx PSƯπ{v^lI'*f) e+WBi$*h,,d/JY* (T@vF౨HU2.}},l-0$;q{ /B<ih/䈊;N:`d4/=R M .LnleUլ}"iM2A)L)Xe>hxqՌUCPBL(I"ik9wӣŧ.9ߩY,Sw=svkVbב ?cPd̸GdAGSoiJi\6,I߮DQUPVWHVEúUPPw dXu9$i^km!%گB#0 Ew45uX-Lf hiC'Ϯ ݀k@ te%J#Ko:)ۖ,P__#4cM@1wp,| >`epZLzJ)Owp2/33d?_,@:10dۀ'"۩D̑!BuLU'a|^$V R[g?y`E[LTCu)k-3#8)x|K3{)C*?5wƣ m#HB"!E+lnEż3P=3<elyۯ8;oK#MHw8~``N@4pWΜ/K\EsDJJ `q6lش|:4mPi݆u҆qk^wLuC4ϡɶC8~p>Ŋ`z:nI`5! Q$*.بM+`Ttd8* VD miE;PבlGE]s[R>p&'8nH:4\KhsM8dk gzs;M43;wƏmzo>'YxA-"nJ!?~+qssnOtҚ3OWF2z61ZzILCܕP}+̜i=a2 L${< !j~R>q%;M]Nч bܱ3ߺl_kgӲ5IOxk~'NC =՜ߓedpO@|*hB RiV &i.0)a "oQ-&ɦ[am6Xxew|n=]C\ӶpWc KKY˜LS`4%?|+fHoۖb| k>#z65s4p Gv<3`Z4T /XL$2b@E <S+U{트/p=͊޹ f ,]},z %T D ==bĈ!{X18 s1M\q/%ք^`ݥ-iB"Mrwx;{uqAL;!AUff9 EaA2E?˂fe~=0w}z{x~%/Zs3[L#?'ڕ xwi36ĘjnڶnW?ΗN>9J@)m=TZ\`°noǐbqH7ж籰XG} *jB#~JzWV<> [Qlga/McR ;>{_?#|ή')aHvkx:jtpQѽxfC*}إ;Ok?:2sǞ*'(%q  Cv֌M b ]bBED vtyg‰t"ð["cR?PCCFFPTUHEGMUKMSO\^\XeacdtRNS./<>:eIDATxc`fn6djĎ" *1p`8"S\ #}X\'OEds6! \V-Y$S\^*dc#/bhlie\iˠ[PRfW`bmbiʠ '% -%)'*,$uDW =a&7'gvTIENDB`homebank-5.9.1/doc/images/53txntype.png0000644000175000017500000000434414617624320013410 PNG  IHDR24PLTE¼珐wp-35vͷŬ˿xvt}vſϣ[_xxru~qpzm}wʼnf~ѪǴȶ۶שٶ^bbk`isgtpjfworqvΘŋ~ߍįϬùѾû̼׾qVNckZsinxss_xsky}Տ뗼ܤѸԸҬڼʲ˸N]kQdhiOp]rynt`ҷgfܺomے˔˺Ȼ’ɳ޻FIDATxgXISH! B6m$$P#!RWGQ.6"={キ7 d%E|cw'yv3 6leR#|X98?1Y .ry,clr#Z7zL8i𗗼~lƇev-u,LҥF\=V;=eW&Ffq0kۇZfMF|2ykY⌡#?8xF`G4*Uj]Z\ !R̾1N_;"#mQ5J5jvݦ7`:f|QʵE?<P#ɣ|QuYΟ8 m7R}sK. 1ĸ&P/hhJjz"HUܚvp֨bjU@y*"\5]fEe309#|ЂYKJC"+W6H-,643ed r&yr˅`'D\Q$*tD3 `xWO dA Fڝ_GY@.qx c'x†绷 ]ƄOn$%D 0XNf ӄ!HʈC@#s%3B  )B8FYdCIcdBI"tmY˜`xPV|@AzP)xm3 abUn6lذa㱂>$AlU\ɐUA1(}I.^0igPf] >w>\u1H{H 0bHw1jrjsi]ma^[ν4l+hKkؤ+ iW?a#H.[܊Ňk?^dFw]3qg 6Xgyvo5޸aA^/yuEF,\C}FީzA{)%%G7i*s֑P?niہX1{R+}g/-2-L@(n{u:#迶uƆM4*`9IENDB`homebank-5.9.1/doc/images/d-warn.png0000644000175000017500000000133713604617042012712 PNG  IHDR(-SPLTELiqmf[c\[wyvxwxpqShRg`b[[{| | yzWy W|q t ej+}2#>4j_^0:tRhRhLN]Qsplsqlqropvy{v} w#!094-{3>ũ~KFPP\]WRZJbNbdffhYnqvaccefpopq~rv{DŽʁɎ͇͉͔̅ΙёҒҡԖԗؠء۩ܩk;tRNS &6FIW]jls|~he>IDATxc`n9Y.d mi!5JL0A2ҭd:) qZ|0>rTZG{r"T@P7ζ"DCgU iwhUa j5yh ^Mujl@qcϼҒT=1N}WBk|ogIs윈ܜXS %'$ bfLe,9r:IENDB`homebank-5.9.1/doc/images/win-account1.png0000644000175000017500000013242614774772452014056 PNG  IHDRxPLTEyUHľ禥jae׬olk_jעyfrswofx`[Ȫ>adpjtԏ程ҳ}[s[诛höŬȴ۟|hʹ־՜á}}vʺңѷouЄTοJuĵkWa}鶱Dgtlnv{ŋs|݁Zkm]ryc׬goɵ^ÏgUXgYyL[|‹변ͮ͝{ssxS[bz~N~Ŕ솔e]竏\w.YWTdཌྷ~ypؕzЗd|n_Z:6?ʲf~n?D`kY`Җ^WӶzVʆx\?ПvݰpĉQm۳ֳ\EBpDHӜm\!-aJ!t8}{S 1%h_Hu/أ3k3`f-5F'fQزTɧQeC[|@<ѱ&*O>#{ۻpA hfk[q0j$ҧyx@%]o-nT?5[ ;RNJ׏rS  P}+ /xu$7~vxu8U6ThfZ͒ѝGK"7J!ֳ=2X1Ǿơ!Yv`pM3|t}?ڧG{|x#ݧ9@M,lX>-Dn'p"ֽ!-[|2 Ukw.p݉k$>GF!4;_ㄅ,gx.r&jg>ņ&g3CSUs'sfj7`~pĸ^ aT(y%Z !abnFXfy;QB4])? +/<'5|d# ?3lGݓQc'W&`n4ػ 8x䈘Ex18\MU7,6CBUޕ?t% XLvlOE ) 9P֌pF(Jf83]231DȡʠaĶ0Dü#[Y.Cd!ڠ/ė #k|x]əю{c32=e.PD ¥'{~#}QNNA&^v֜%byg7 r%nW]o<+9VҺ; z[EVW0Ox$W2Dk; MZՐdC|ҏiB&rc I4{GhK'PcWjnkIx"l<&C&&#}#d[,yd6E7YRk6o_c\Mr `{0.\ߚb0khicyEL--H/JAW"oJk,fuxՈ<6#z57i@U Q ?ţL#,lk 5|LћB؎z1v!&<ׄ~On+QĢJZ 1M47 ~e9_s(dqL1dCBl*|CM8=d/{޺k9n,xx@q,̓|x) Gǝɳ^{C+;]v N$';;'|wP=S&87rse0p vgry$QZ,L=LSc]ŹYhf:B1WʈhYaǝl ٽ MH\\`## Rdȱ{8P2ZιطIQ1khG(;o뵟ݥ}[ajTjgFI;d蠜8Z.ʹq),pv1tw=\c5J- ʚ;ΨՐ沬C{΃eG&9+# I6VsCx xDe]bZ:8=ccƱ}o7R@we舠}#7IH!aN5l3w۸G^܃[(l I6퀰sj8rx`ّ5 %l tL䩮)'Q}=]Ym\ع+ykaLܪ*NtSN&2!I4RAa DD|n1ҷOhN [4&ae"* #M65xy;66~ȑ\ p38yQ/NvsGNi-x u&iBmbvYZқ_N;x>O~Qŋw :`/ >r81ȯsd)@hߵ2_)c}uwqx|\&x `޹AT79r\v";?_>s )|׎G<\AQ/!ϸ$x4 ej U[ &NCw= &$=[ʀVx-I髴K=l+٩8prnKzӭ4^pBk\{4#bWD&@TPgeNG G yQ?s;x8?~ Po} Oۚ0e;?=z~y:@J2l{N[^"|b )NA$p.p(ܲV!dP2ͧp m_Ȟ3#d"IΞ=Pڡ_>l݊xj_=mdͿ?VS*'}T2F:?r;}j A,j0 6Qmqhs5? C`ҙqUd'+Ibq Z+ \(R8X,`Ģ6P T\H+#ԲjG LdD`ȎJP+8hG0# &z7Σɋ)ToC$ )8(K, PLT$XbW^Ai@}, +$ĢC}ȔUiN}ıTRB; 2y2#P ߄ p))=8"o',\x|gRIkzV;9K EuүbVnѽҲ xnG& w=t]^l~ѽe)yΗ~']_Ѣ3F|@ȜźR aޓdfL3II(ta[M[2iBxa*e3q7QDeX >ftvTX#zg76+ 2֦Zo/0d)<b^O6iZ'ZLG{6YfLiIdiAjI@Bkt" z{Wb!=&Rg7uR5P&xkbwIRcLm+0edu9xIp8˪]m0LxRJR'ZU£L&|Ju5mvN#w>uTgѣo7o%˪1Ȕ27AV,?T`˖ #Px#v$mAj9rP EP6D%Ԙ"# K3dV6knoS@f<&JsI<ˆAi*Tǚ b*汿VJmJ5Y$ 2kz0De Lapas|LWTX*㯊 Rq#s~M4o1u2ψ SE* LWe$#F=N3Vr®`UpH毺BSSl\:=(n<"Ǹqs Wf(eo"M͈[Ra3ίɒ] ;Wh'Ṿ!WT+?U*D0tFJ?rDN7\*)^XLcaJRxrpSKo|v*AFOcA=</_+[>4Ad?\sd:LcP8?1&< \OX h$ KO´%~t"F {6%`vNl< 9'%ܠ x>?H,}nD?s[/Gt̚tl]+D1: xL=Bh?L(?hcc7G=oGo]>}RJ'n~nHS< V?axC,ҰKٸשu?UPx|ur|}w&'s?0wflPqizkmr|~Vְa -)mk(l;RƮްۇoLk0zm?ģC-"(WVƪyZ{i;|xLȎOI6p.;r;駟]gIٿxLxuB֯_SPwGLUMSR!X_@UXС0K8:x+B>b?f/rt_Ŕ7~Fh(|5-aô. BLJso֮0!C<>zVaܿ?w}鵇 vmjxsU:i>rh}'w|Ҷ=eqطᡳße(8C.7u0pߝ$Q<6@wܔzxÿúmDY]ݛ2<6ϯZ猏C(RGo=}ISdV!&y̞?mFlMѡ6oz:y8x| {w8}Yæ5Nj Wo|i]_l´}ҏ5T4GcK3d"_;g7ɠԜ.ۓ}KNǒ7*zժ@u$?^W?_X_|틀1PDFvc3GYawK9tU3-yxJElc–/~NGLojl:+}䱡DH f[MI x)I!yܪh^WHO<sݥy*Y[x4m:{nWA$mHgw)H[->< WzNË"9/'^~ OI[2O&&d)f룚ms`D&vX4f;:OKm؁Ѣ6Z$݁(  $6"&d޽F $(}%^}RNxAAI, -8_MvN8`}~E6!sJH鷏[*+ =2Jp6,en 'vsSW"ؔGy崭ض~Wܣ-NL'opeE cr"q|E߅] ;'5);껰]kG5oXx?BNC ߅YcٳVض0@?Sn{PuKlOG MwwQ䆷#6Ӧ/S]RṟK6SP\/%%`'ZwmEdunX֖s x){DGC8=SuE¾IOFuN Bעk$xM5(bqGp{boA<޿djc=YPnp2v 2@y6 + >^~S}GU\@GNAF'zdFFAF/..<"Ry,IR<(y]Z?GևeBNNj_{^!lII9/R$̟5d_>PH|}ϸTTb*t#uE*KRAuygGTn vš_%c٪ y)YzwO:as\IOP}T< [#zp`ךbF )b??\?&._^NgKH3324QR>B#".D,ݗתxq p$Z~Zj1#k8Xm3b./F+1AX{޼=XXm3yٰC W+klkϝ;zä>b}I#aJ!M|x4zs*x\tǸtRDq&nuK'j'X"I5*ť7oNL܎ƯECΘXǐmQvK6i^oN7֋R(JIEORS) HБ=<KJh#Q\bUPe8 + ж[NGg{x^V"gܺآ6GGGxV-ޔY!ۨ=RSF$A^I:0Nb!\\o (-s+ AwkQg{mtexH$n\Ƙ(T 1a]V($Px#ݸY)E.Ht'A{W#Lp0T x jb*|&wʮ@Yg{A:p ݐkڳ?+~HcvXvJy:o'G>(;\-D݁=$CF› ;lv#ׁyu-n־E@W[ Ef^R ߥZyy+V 7 WX9BtƯ)>[rbf5k",b^ddgp+(WAΥxpX9`O9]3r )/ؽoA8V  x-7)@u9,uSEǵm jۑ@aE'42S)YX8?<Ġ!S,QbFTw=8gtf'ewpcbˠ.iT;bGKCn"C\жy)8p568kEgT*1e~ó>85>J°.m߾ƯE0jy݅Sif Y]悯 xf9R`/Lд.{QI\%<7,FԷ'SE] W[0Q-d^O ⑊HkdtSyt412q1;`$O8㖯1i< +$sB|=r /hNg%D|[X£ȅ; {4~tBAWKU;DNKCuβ@ܷtu_N$\tq>Oh$k]Ԕ%J244!#&ul@Sp< ք6@3 ] w&ԩ"8|vvv1c:C%=*7JUtjyTk2IͣZI<N:3`N UlW(lL\㑪5'+?#OR8Y5;H$KEo瑤i01^9ΐdOXjڏV_õSKex49c@SyVBr;WVPڸ4O`OjRSSӀ|tR>\M NYFӹh zպPh ?L<[~X觛Cq\}"LG^H^4{NJ;SCafM6ʖ9K[ްk* 偋`hXҶ'P}?ۓ::Rp6xw04i=I^\!C[$uvQ JU B,A+.>H&EgpPHz"Pt䭕ϳqT<[‘a_̉]^Y{oΚnp\86OY>lcvo[-̈́EV`+D仰ncYkLBQ*Rx{E}p{O38 kx!Yw殨:& Kշu\?`]yН}`物3 &6KOQ_ \37Zg}wS(BkΊs~yR95(2ٹ9YM,7oԄUfU13+C C悿:<:1-QrʰbAk[c!e펡EȺx\K聫` >UXzkQt5#'dySܸEu <-˂Fq~[.z򠽹oi˓zUpE r9G~w-Rnv<ȫD)#<f uF}20] q%Mp@3_{̛暲^1"kDhMfv2q zɗ+?[0+$(\88k ͣXceMracL&٣7Le@M4zv &%%%˭!PӚ(V}E(KJ*6ŖhbyAI'aCSD#͕%;cy )^IQj'X:p6&lj՚RdG&W폫E*R.C7a<[xDsuo81cƈk~QwR;8hju~2yK;9d]D줋ʣ_񱫧ª£e?] j&8<ܻGyhSfqм|#7 !y(@,-n]!~xQov?[jʦy+\yGj~ќ+aqkdzfJܔ n-!l46ɜG諕Jw85I-Uʣxd )0X_Vߎ4 ##O!Ha7h.qiwp=g7S_=?eD;-:$.cفՕX~+"'/8X4m}8uz$}UkUHûO %7Am:cWV.+"-ͪt>< y/dWDh惔9.H*<¥+#C|\XE,3:ÂBQx,#=.< D"Bא=ad{a#}]89>څ Y+xR/X5U5_6e4W3J}gGy~=҇z<邛>Eh@񨀝 {A2O;JU눓} -'G&ɜ ߿H;hcQфS XZL5Wy;YCމ8٨cn<l&0#b(aD1ZIj'~ytj^z5UFy.rސ4$cӷDK3g+L2&)kpDfq͚.+^>9 ͺ0gaW̯қgfð\M`&5sy^8c SKuȨT喝ne0)8 dTЎxVojFH$Kzlʦӹ=C6#.mÛ *1d7H3Ey"n:Dxَ|p91&N6:]<#ښN8GȗBcG%~C^ 2f=鬷9dYcڪU\3 ehz#g~`M^I|ر<>`rai' Oљ*!x7}3ccwk[x^cnj-c+7MSVV#2?hȦ_"aCzS}`by8^s=`E7!o#>(*-JAA0;?CxBʋG(Xt!t=lW>Ͻϣy]:+&!_ђai0gKpRSQЖץkfۺ.-m,z%I:EW#T7s xt=f_[y&BSH=59ԡҁo1Hx)|׏VF:5z\kLRl=NJT#f{ʏ8x!xԍA/`Aj4y*W۫+a^iϞ= {5 W3T~p rNÑ6H#Ѳ_W@vECȐ {ZB:hNebl-7K YJP^p@o.z,8-fvo,\<0˾^8q2{\<_nE!Qn<SqdPˀ#^'iđUiP3q-=ή. @p{dQE"uiub>H0S\5Xvyķjn\AgkϷD=Gh' 9Xce_y<1wnnUj#۴`]NW4_OKGe 7l^a&0rfOK 7iүZ\Dž0:mjK !oNc~js%@D0Nc}tT~\^c8"'m\:ga\ {:ĕN`9o4qۥV߃N^mG2v0qDX{eee{nVy=euprmry!`lX$7 s Vy8BV/FW "jR8)ko\ L`>SvE G@WpD-N#\wEŭa뎳';'#pyWg,y&wC[%A6: +ռIx4ّb9.YG_#ibJPdT<<"UZSqoS`^_y MM^əˣR<*5Qq~n {bQ,34SԦ5/uҏL ?_ inEf.=Of NJT-.i<.Z/h>ȑDn`MxZ"6M@S)NQE#J]?pbQF Z MFj}}۱C/vBS.̠WI_ hdAQ=Gzڇ=cP .Ձ '[cbbEELUI|*fb" <o 75bI=\yG}2X+:ڒ߳znre1j߿IO?7,":/=Gk'6Oa `[?R"8j?i zs QOb<(ǐʧIuT/v=qj۶#?"jpa|*T݌(T~- :bgԆP3*r:M-<ˀЉtw²o<*XuB!T8ڭ|/8чC!(x^^n;KCFG=#h{*Xg%( IrAF9"N&l!~m^^Iй4N&?4ϜkۢeGNHbgIr:ER?~vŰ6<LIЏE.' BhܐgaEEod_&@E;S^cu7.:]{4E ܾR91A0n|t#ay#^T>(Ixoƹi GDjXT,U}Y;V6]zluc9#/W֭5f@qt*F_6£ gGwE&1#KA. =ޥ^1˱ё-LzBc[X~e|=F Wl)cXʨRk>2qoMMN;r0c?ӂ<yהUyg#<|zADY^[dE 'iq잌$({㩮&&5TzN !OvReaMQe G`x[0C<>< nyN`ǎ{ 3QmVa3n,wm]Z8iT*Tw~hD}6k@zy'.I%p1=z\c򐯵BRKJ4F/(I OlK~GӦ;lJ9=S= gr׳a0pEA8Vz:[OdƘnNؠr^c X٢r.j <Ŗc6z|4o 5~7ד<c.:rMll^;];emk#dHjc#CXGj}gtyO9V#ㄬbmv~Cb葟ZqLsrθٰFd1! Oecm.J{j}D&%%]D$5a L&#q`=Q / Э&L!UQs,9OF%ȟ2AGӝ:M<%0Q6%J\y|<7ɲޡKxMxIl~q{sPW)ņ<*5QqV!G \Q5=1dv`'"ݭg3SNp)M A@m%I}N4+Un)dZǍҊg{͈N@Q;s;# jזork7 pks< jVic=ܖ5ΟߔUdӗkLu+Y˳%/ j7 $]3(_/ lXA$.q")I޾qsH oG+öj; de&h`G";TWkԐplk׮#jrz72< cQ1=N >T)oE䡨v o!5dw:0SxUvK `iA,jElMV9ɕly 9kKDrvq0O }?#%ٳ8< ]\0OEa\HBL{ў脌#Uv:ᡯ<:)Gyxuڑ ~ X#J * N`y\C|w/##ݴihxȨ q߳Ƙ؏ˌ8^3}1yE{T1QttIqAA~ g{1<2y:חIL HJ<OSIs<&|p(Y6҂-a|v7tqp+Q Hn~_/r7G-<><_L ,ʚRz.JHZ$5'UzKx,{R/5;7YYT ## {RxbO`ǚAhό"y'A Ve7-j=NXyDd\i]׏ֵ7dxGK_? j ߠK0D-- mi9h呯iݛЁC][@vcGg2#)K uޙIn~&pi~.8kC R1kWKLTÔ@} ZxJ$󵚆ƒ%Kޭc(LcFk!1dc2FL1:چ",gCcb LՇ"X*#RD "\=O*UC=}"j*DCؖ%bf{-Gp^ϙ9<^[l]1zy@ 결R@);Л 'RW)'J2b|i8UDىqۯ{f .1x=.8kc gF廰ʸܵҼJ8v<+~pg)[L~W ⑎'E|nőJߏD52C " n69ݏCh."(G|mg9ànj;n%й mӵHu-u8M+9̣ѐح今>]w+V,ӀA]pqZ~U׃6PSC/?XI$o_vK;w?n"4vy$]Bu7 oΥ>1`fY:GX^m}73"Yr phT^`۲h.zs<:6em[Z]x#YZ`uV$+{xfs4~|u!+l>xL1:Q'>[!Lg͖`*k<6 ~ȉQ÷GTcA<@1t Ћ4{Ħ;̣yMDa2Bw>ǣyt}TixsjW =S <Άh5#S2Wyrd鞆Db;bE˶ϚgYמ <:YV{4NUۙ4c-\?G&Ifxl@lHsweů># 7w7G&xB!=G o`WףuN.ߟ3(gGvL1jhi1c"01KqfKpNge!X:.#wfg>,E0 I-1o),wxs5 ɭ2kǍm5b0pZ]YYŞ2i1k =f ){ #Uww䆺0 sR BFC]E7<"rMn1I7݁'%8SOЌQwRJIRL8Dα4^Y,3Q S4aרTHjsl6WKLTÔ@m~F{+J$)IRL<~(% -bg6L6wH^ ;li@22ؒSOhL---k .fez6?$>8;=d_]*lw[ay1هa;Qa3܀6r3"n؀F]/'dq9TJ t|Yq"hLzWvu\c眒h l9WXr}[ј7;zmbEjWI_E; !XϒጠWgt=1~o`=1pf_+xl@/4x=YǢ.m# WևCJ߾8<>fz!xh =lC[6[J1\k=3zv4<"' 2?j$co573yUSkm]*2s }K;9>.\>gx\Kȣry)&̇- FH7>/A ]FG<B£e)FCz5A$98\|4+VG9vN7 kFrէASvq&!b̻4BdPx9[-w hkT'ND.X|k \Q2=Dv71}Xלxh&%g:y$J e;! &^O<'=f ]I,i1^#dʔHQ_ӰRsuQ?jMn'W MI_AxJV52<`˃ iE8|^$J9#V\y%@4EsГ<. Rdq}4]6xo3hMEYeꦟkP32X{Փ߰tc{k3$7MԶGSU/p㤊YPr9_79L B(PtuOGL*@B?Hrd2eȏK!AtA0#HӏsL x:PL2u8|8ә 4t@Hx0#:@CY>HͯQ=x3šALUpl:2㾖S4E5u4_$hZ%G%4RLGf<*54.Dcc7]t(ԜJR3XR3IJg>~2ea/y$~Q\\5u5ᣖRނL|"4J=yJy4nT{a|fA|/{+? 'w !9}>&+τS>U|GKtG B.[z[A(Hc2ã*9IɁ>\5Ac*ΣUu U{-:9\Dq&y21CTEW}cZݥz'|-cg#JRvb@yu%(;"O:1hH7ijg{>;( $9ڶۦfkD@ lBD6E "A@0.1q h'.13LL*PPZ$XUU}֭Vu?4Pm7[z?L/?n+.?.?(^%&0 [F,*!K]]v}Hw,m9{a8 00U;{hLyTh/4r^L iբ~;jjq`CL:~#"dmu!3bd-Hn7k L⛃+jO<^h-_g4jnL㱀B6S?К>;BGr=iɣ9LKeYHNc<6u-  ivc#EBb[ˌNDW}㒻R<2495A6Bbm03m3ejİƔGf\zTs?fzh̥Q?\ʚă>z)&HqitŁ٘; m_IH'$.=?dfo\g:B?nv< B~Nvq㋦'_?UxI(Tb׏ Es2G|Etϯ2yL$G=4-EcxD}ؓDgw"7^7֖+v9Ji$"4Y5kl%ϗn=F/>IxgFZgţk;׾+4Y[h5L)M(3j&;o :k\+Y:ZU9Z{ȥ%7#1jy7,zb~0|{__%RC6F}o̴Õ ŋ-X~xT8 2Y1[[>f "ΐʂen3^-f翞?AU{"K=qF9j@M9LOȏˢUARU2M//fw}wKrctMԲn!}0J=1s{xNyqNus֕K\]72FEhnc׭(lR׭@:~^jqc}pH>83\9s\pOҢ U" j-9[[?iB DO-HڵnsfX}x@30ĵ]6` Pdeظ,".sWMUՕY"DGRlegWmݿX+Љo9Q=Xr`O/%R}OW%-zP͞A zb.X3-}r[;NouAΚ3CI0B]{%;-<OGZʠl|4pB$Gxy킍vN5>LXD|Ǎq`n[Mhثk~͛Sa4<1yN4oXNt}4 5.jhܷc…%fw8=Vb_!]X]9c.~, &q<Œ'.G#5_jv5t1K]V|iSg־i5Dg lh=X`3͌gJ7/NlXqQH{ǽßʹ! xfKN"ʼ$4ݲxd<80 x8lG5z愓ɒv>6óE4} cʣ͉[܀GG^q8< 4]k飙uN":up?)ы(ٿvJ0G;&Ѥ'j<~|x$\xAAv WxL1 ]~\z;ͨ=\P{Lxףj>fT4}맇?VGV~uVqk5Rb0斟z27΍߈d+/7^j5Ԫ-hlxIx:=֥.!>gnUwf^iU, 66?Rȣb(ܱ EA3ǐG[0Eޫ5Mh4փ0a@X8+"K݃xx e{ TxT`:IxP-udzVe%V+CnX0}k(W9~*.GS?ۃZ!3b%%v=aPmŤ)$4e§Qҭc466: +2ZˁHb&\;ĞP==,uI~˓WݓeQ^HbPr2\تk0N\Ɉ`Xt 䭫IFoGA{br41ZוJ˩y|A1Mጷ} RG:aFxޞSp>#\B \rm QU=]fcXI7(o62[r'ɯǫ.bsyiimi풅#Hnt )2V',w{qe8%796BoJ`PAb8ZZ:01qȋ9(nJ* *@8G,K_Tv =e-}SZޱyxn}?lCÌ@o_Ge$##QL:7qXDTstwSGCHcoǍyK]eӎ/GN0^sG%>Lę}q>17pl!DMM< j(E#./' ύ ɡObi"eE\k;mҾRXDjuD3.sO<~MYZ=\^ q2!QF9GG$G7`VQ&*؎3wq_,FC+Xw0bi1O_&ut |=:#\4|~\---* 0`AGwnf;5s~A&m>T'/^+GkGk#q X5orƅCAm[$ T׫E}ci;I(5wTM1j+@F4%k0o09/Bk;,rJ(ͣ$@dj͢6<%Z]^}RvG:m %WTOy\(p0aY&A=hg-OLc?T c+%4uNGʅ+Yop䢥<1~K{\rɂǏJOd$dT̫jj#=(x|b,̸xݲ PscBSz$3x>ogM2U֮>bAiH'y_X׮y뿒Z"φMү];ȊT֏?&ԝǞDEjZj<G(ίD3yږ#p:%mXR{ LY32 taf%*X6 ѣG#3uffut_ێPaF51=02.EC* ̮Daџاx$NɸiG52q9ȾpoHfb;^.xLuG3W%Sm%ƒt&?贛qg<_b_`lgj%8?hj1GvG%gw8zMףrȰn\.S#įc E̸s=rqY;d94e 1 g ై~LJ?Z.BIv倿Lw-aܾqnxjGnCSYA}n`=,枺7<0VcSޜ9 |dq?aB[c> A;4a&_EA~qޡ6;%#M[i!clM_}n+UHhK6pW/^hԦX 究@/Ass5,l"saް,eۡNa4?,D&<2#32n( .x :A?J x4J8MZ/Kr TVmVUWƆG)Âû㿯Wl.Gj.l2]EAEubV p=DL7/XrKΣ\IrO}ux%YlfڿL yX(g0ZǕks\ 9K.uI lF/ST"Bˌ C)X_ 1Dq#LRօ#ڂ>S St#6"Dxbi#mFoS^leȹ9d#J^p`\Ic?' ]|-vi;`R/k_dz4zݺ`ƴW5IV;yZQ 7 maъ^Oऄ~mEf<3#u.*v73 ]O2fQ I?,8J ge#k93rq6h_L2q`p̜,ta!wy_kNOHtpi} E%Mւ.^z;^ @RB'脚N 0YsA](B6SeX!D%d\@`--u:BJtLRt"t+dd{cb{j͇ *,ߎ8!C"m7;53WBrp%7c 7`4c7⛥f$"ѷ+I675ۤp`Ep T Ըv'KDZZJͣnnj$VC,l'b._nz,4zJ%Z~iZZ*n7koNi&f\tb`*rsbCP^A XZxel^>Kg:-BP/ϛUPpӺ2.$F/GzaO+чQLLpఽa!)?>#0{7Q wNzw{,v}ο??v8kƶWO3a!Vx4j~՜xXbAKtqmsj_A >mŃgȐ?RoJrѻ~p"@D ΗBp ڐ|֣G;ά-nyNNK nҞ #2ub|KY^N1N6q8+F#"krF8<`c+xÕ=MwxʣFwǣH$h~ <764[qcoix[,.Be;?Glhp͜GҭShhȄG j ge qTc E j~G<^.R3J."bWX{ZxY\x-cي[#eL;xa0..MDylgӎ=XX~Q qUKX}<8[cpgjPCM8ΦkDIܱ)33Srxgmx5vtB fid*ɴ}A۾-4bJ6]Iס}fLK❍ D/NQu~)<x X`xmU.+ ܁<+ryߙ 'i a&N5\ɜ;7>`xC B~C)컟ɊZknDnmNͬM:㘹rr GXKBxso )iM*)B0Q3TGא:Th\Q3|?%Јp8Sg͚5.H& ^S|?Åz8HuNS(̈́lj&&P@'x1 $I4gD)^ l &T*+wfn8Ѫ5Ik(#ezo' ҕnz 0(̲a!^z6Nϊ0}A1o]`o$tg~`/.ߋR}^1B#YGLd hy(ZktԠ7aD"Rm9uߤ7"Ipxw Ceo0|HoKb7.K}\rɀG$BόZrǑ<*kƓ0ڲg23==',.ߧ 1FF<lk"Ǫ$巓/iCjWUO[oڸVrvkWBьfd+Wa DiRsaՀ1CN'8n MB\si5=KsngLHkvzzzi_[/}?r\_!}lA֕$ 2Ep?-OGKў7|@/8 /OGF;PM<_7^ĕ?ν5[OWe{-UZ֯5:ӡhl<{n*͊[xvSlw6o&=pוԌn7߯t_xb[ p;xyn^OYǖڊ}T|#VrGp gU 5ǵX._VMe?Z604,uRo55Ǟtp/z i{]Ϸ7@HFvϏ#yv=Iπ;oCMĻ~3-)?37aٖ_vGt>@qvC/NO.{/`E`f\|hʳ+P+=C<G"x#g\a{>b=b&xfr堷r+Ί]g1͋|cݏ=w4:uR,JvЮm!4=>(wJc%cccUiȑM 'Ʈ'!H.;7=i="ZVd;W< o/N?05QᶱqhE?FӯvԜsOO>8ӑנKo|{ ffd?ȡ̟g?ծYl~v-ya=7TL3|ږH$[:`ٽ6#<(%Fxm0v(bq(9c‹2#v zfiGyLCvoG:w2FJa!(<% &j/A$RH1vIDУ*O,]"^xa YŹdnءч`BRx'> Vʗ⑴1OJq~ꈸ eQ"|R7w|Zb>ju刏7T=(ͱQړ\K 'ur|4jg+BKb{kGಽ3>ڼq֢4!tȆB!M& j` Z+ Ob~G` $`͊&^D*Us 3!7e&GLcm~#X3`lZ -E+7:ʢ95 }U~ӑ3^>u@*^[-zt͡lh&,ŀS)=~TdJtP)PW7jUI*x$ 3P>0q -'URX(yb+ODogѭ+`.acͤ6 kiFG1)Ppl@hjI,~A`KU>Vm`\SGN4h i ZPH#NA{ʀ|vJfCN]g!hjG4>f7L F扩P;%0-86 { $.QrPIL!aQLgs\ii uRj5d'Q)k#x-1~͜8kQV,K)䣫=ZW-z7mR`2GXBQrPn#y|$ tZ UprVY>p8#|Ĩp빾.~z 4:r7N%#SScݽTi5UQS})^JScM'jžsMzt6ti- D[?8VZ&:gTKqX;N/'UY>MDbКwћPvGK:Z.o7x_:>5ZyJpU)7V*b!#,ԩW>ĉ>x>ͱQ;\sSj{N%|lۺc>|~()'ޮ=HSD|K >N }69)/mqGL>Hc1֤|Ӵel޴Rz$c~7[:Sn >u3>oĥTX;'jdid3g GBGjWݺZOBt|k~ؼ2}+Q\t44vDaea]~y|T0f6Fe$NfG p.,G{/?x.i L}K\kD=ӎ|;d8wQ}s'7cO64ꎜH溏 q73r\g'gr>uXv|TH#QNX"G5¨'=VwjHݹ]wnʍ>ni|tF**GQJF@ ^<CaGL`X͒7^p!kVI8n>yGTTn5U7 >z&kG%x&`3b|I5 >vqucu5u:!>xȸs|dd[)%Na>ٱՎl|ԻEN|ThA)Gt4j^aCTk H}yA0; $YdwKcGBi-7i{BƩmEn՗{2GU>7#P3OGѠ0-ܸ>V}*ƻƣWd/1]B9l5#LiCA.F|,a  &%!Gl^? 5k3}NcR63KRfr9dW@_HǙco{r9|TaytOf%ꢢ"qK[3X czpF{! F[,D9M#3ͫB4+NrxbA-&Uʂ=(nQ|[i>*^7xx ME4gU|rIENDB`homebank-5.9.1/doc/images/hb-ope-new.png0000644000175000017500000000071413604617042013461 PNG  IHDR(-SPLTEGpL<@@>>»>>½ϼ4e3d+Z.^=lZ]^_újvtRNS;<@|%IDATxڍ0"뢨 {wrgx9L]1  Is(14 uTJWm3g5 ~Y\@BL *<)~Ÿlz! 1s:A ʦNI -k+IENDB`homebank-5.9.1/doc/images/58flags.png0000644000175000017500000001030714617624232012774 PNG  IHDRqPLTE񟡡󶷷aaa棥ZZZ___ߺڦfffᘚ~iji݄tttcccmmmqqqwxwuз剉SSSz{{HHHzEX{vExQ{Տۦɺйfyhhlˡ띝ʈEfsm؂\'iǘ͞^wXBBBrlیfNܜpݠꬬྗpѾsإ??OOo!~m4iiqqˈL愄fe⯊oӡ2HfVh##koVV{zz@@֫ʁd111Xveя\ɘm^ϷM̭zGڤEXqwoo<@ӊ֗鏏ܿؒݷF IDAThwxSҝNw: kdIlK$ch6 B%(вBIeM٣: ZJ{!BneXwwWބjͨwE!Ԩ3 &$YdTk4U4Mjڄ,KΌSv_($F6a9U(0OH0%񡸯8JFG5Bկۖy4ETPVʣ"R4"*r!['RHϤ)Q-JD(MS PouN2iJ4Ҏ`(RHUBH0G҅mM8#NyN.ZcၰG-TRI*؜UϖF PR>PG JE]VDbڇNɤRSC˰`ZBI:b Q'V.*lt(K:9Q5ڔ$i!@jG(+Wi,mբP7dG[pj@ۭ[Џ@HD*ws|_I\\"%%J8([(ڤW.T)PGDhT$(|̰PZ[1!*!rY|`jv6J1AАҚS8,ӊ-d-UPBcץm5(;X4gUڡR zzbRgAո'r*PߘBTe4%F V4.GIq0X]+MbeHW2Mwvk!s(Q`eJLݐu ^^XXh ]V Im6_/\r=8.1`3YFF`u}wӽ,+fЂr%ю] Rh\t=xk` 2Y^BqD^BĈe9 RN).08neB ؽc ;4:9lbHF}u|'ó1`{-/!!XDV@THeySJ_x;7׈SL!ǓsbVfzL$!!DQR:07o޽uҩ1m$nW']eۙ0\po}Td>Iz.,ZQIX&jdmͳz3KLLBQ%®X¨cNs<LJ,"˔9ǎ}"Gb"ܵkvH[/v`_ ;}f`t _ GeMP/MEٗ˓O<~xR;aJ(ch8=Cҽ EL]pca46&x}:)eL!C'8sZDɃd/ .9ҊSF8#$<k Zv_~e5 O|.r \yHD:)/eDA f LxA~ٻj{n;wϞ=g,DP#cP;p;v=bwuYPq/8ZC?r>}w,DXZԚ2Қ$#ePqlk> y74𜫟_#҉a42 plvlO?ěkM%tU5,jiKNxsiPA0q߫Ŏ-H36X`yͨ2{"䩧:ؗ;o8 Zc;.UŎ7` v;+> j/_~w"4m! tvl)k5#k{nh^x}_jBp@Uqciyj#xv^I%r )18Zzc?ߜnkudVԛYB4kI;C.3ņ9 >ɝq)6i2Xafd+-ܰa $<go|۶c! zf2؁"Lc}q_+1fwW{ncwcQf8jirP%,EbZ)^2bvΨ݁XLXy o}!Bvlvdα $rcVEXpNDp=},Ddf7NXqlZ"~qO{M>Tӱ-ǖWb(رp*0%'|&aX$Zvl 2|JCx@-i-E(c_-JرpM C h{v)>Hmfc+E#jt8f1G}[3xܜF768O&J(IENDB`homebank-5.9.1/doc/images/dlg-prefs9.png0000644000175000017500000001144314774772566013523 PNG  IHDR-PLTE520)?}ˎwzz鶶prrtww≌Ѓ4;囜mopruuy||ill{~~&H熈\駩WZZ7\_`2|-䘚9>@KOQ3Y輾K瓶CHI4@CW到aeefii/t1x>݁궹r뀤譯.oox8=Nf}-46K束"#+.Zi~Wkϸ]}+i7iDx^u1T{9Gэ햺bСo5Ywl~jԻU@\:c~|vw͊ŢݵchVʮ>ǻ|&0IDAThwxGGknWSA7˲%cp311` qp )&pB$\zKw?o$CD6;[kfgg@$8C܎ablf7٢!f2l$ijg̳,RU@la5S0^'1*o,5ԳU!77QeN<޸-П4lo{"[;vΟfjy,JׇV<~W__Ǐfيyd+Wڹ-go_W^YwzWR{{];{ïݩE^Mt[oF._e}]Q/3rvi ]VS;vxКo4cN#n+}'0WP7 3:ߐ"{#Y1 +X[XzY{_|_{ʂIym<1{|-iɓbLǿ]ܒ?U`zo{Z*U~)\-go vV|]ULZ/X%z\έ?`B>х/W@{<,sxzӧ8nyBސ7E%_xzk[tEm=8_X.tչ.[nŭ][~yy/NCF3BXǶlٺuGBd B7[3&!}=@ Б1 H_8B:ab+N@? nZ<%vZbk&MN*THZhE [2S2GTfRbszK3Wx!\orJW,-/d耾xkZAnM6?z ڲXWk[l^}z}I՛ڂťaKl[cGnɗ9/$,G$; x1>(A@@?mz.ٸF}ߺPBwY}YHzefu[ m1(ܘf}.>o-~ۍl_Jc'e5߁$MM)V)4nFF]UWfcXWb<6DzRǒNd[Cz;m jz^4:kTnztMNQ&5 A)Kd=$-7.IkNd(FԙVU.LԐk:匉lkБb(`VJU2T4$L9{Qk46ĠBg4-n .U d1y#;Kfc2AȨ yryT.ǐ̳s&tݚ1c]3f-fLݞZ6ST7UT! S@diʗ<Ò뷢`-̒s hK wےYnpxm!*$S_˧r˲ZټYD&cJvtFm^OYۋԦ YfT+ԩPn w(UWʃVm5Q0:CFFmY >Mtsʈ՞2d)kQK,7vf+dT[SB>A Oh]oQ{&-;-Zu"ڱM[|?m[5B.H|?:@ cb59>6Ww=6.>Jw&3]_ z3n>Kg6'UeD%_~> @';0qDwOC* rf,2hbؾX!`k0L\B@[bbL Ӳ5YTzf[aKYSdpԓ]Gj~֕~ee&6.H#0,5ߕYLeonLl,A2v.P&S<+(Mצ9_qmآv/J%fydM4Tz)Z-ßlR79L4 )< )ts2@\:yLd ɳ:e,;7~]2JYul4X9*\:b(*ܶψڲREOk.,,`ڪ4ln fG.m /TSp"פ̥ 9Qlگے͵=Öf%Lfk8m 󣶀F%f N{Sc \f -kGlnV㞪 )a+Rp`pyyؾ|ŒUƳk-))УbV#\!r,}Ё2U٢ C Fõ44:`dH""-<ˠJ Sl\(4;̈m/>f\i2rI|uqF2ɺ;'fsjA<,av#u۬Iħ񵡔ͼi蟝ʷy|񿰖·騼(+_腙ԍˮ̽L8Ž̙_z繱ٲ͟ݹDZΚ~7~vzتMIHֳ̦4joԷxɺxH03ٻRyҘ\erŊ戴X⣥Έz~AFpeEsIie M^IDATxOZYǝ:7!Z`{ v)Lb\ ]8Z5>UASÌϛ3uԴI5u_MIt^ ŧMwx=w9?yor9k5ǚcͱo֘D7Rd~ V'a$!3>^7} fWh\~.` #߲rbUNvT="sRV X3˳LޘC:LeXLkf)%QXbc& >诽̠95yEl#(hL|Ua LaR9Da4eh8Vh$P!0ҶE*1]àX<)k#LlWq|8Üp`CXS0Ygt\v ^`VN˩}py;'*6+IJ3NogMM،iҮE %%~:5KRBWݭ NP-w{Cv:R:hgNzk+YP 0V X{t|Yz/d}1& 1IQU@+*ψ Fz~x5k1L1[li%%'<)hL#Gɝc3b|3U5 3_3k|Gz|HǃZ8~yժXآ4#l[A]bǑ^& tLp\ӂի)2Y}FW17FSL,A8I?S'(?;b5s J|O1pϊ7==  (}|5 P)UD-S1^W{ihd,B 6Ko! Eg%كk>+9YLo܊T㰟]@{[~RuxC_.4 R; 4^C06Hp蛜%Oo{0 J]VVFJEִ}kHh6ֹ#YaC9*>n{G]*vM LK풷LS?z]VsgǾ6KcN8 #[ 0:(mU74K#i9TU4{똻 XB݈U!$x>:t hK e:S =˲Nk#)hlG @w9ick]{[ZIz,(TuV{3CbXX++ɳ삻ڟķ:mJcvvvjY̫)k^?*k}S5`!H-Z{ *X]9^G]0lSHfk-}3fvm:k]:ҙ!s>еRǶjZwjNsKE4L#%j5SQUh /3=͕ onT^ x"嬀/};MBėq3BvyLPkTr1\@/_V_H ص QE06XWb Dm[ak%KjF#(rʠ;R|EbxoPd'hʠY :B+ Ò.!VG&h%뭗g[ jvfRR@ʼ`4ɓoy ^&$4y?gĶ=M2ft5sPˣyƌZv,[7|>fw6` kѼ-1X\W%T\Ҥj%]C{X+*?V=fOt9'7rVóu|4o˱SbKX /P jF-hbkm3O\Ne7~Ztڐ$~uHDޥjb7jnCv\YnA7* ԔK}|C _d1_J\ Wv6re9U@UJ0'T-أO%+%Xv;u%&kɸš\ŞP7)l3qJi&#.mtШ4]I@'9p~~tψ-wQ5,wozHI ۏ޻wdڿr: ufu`Ȕ\]^_6 魥~~1 ɭzT Ґ?=w_ex0pH@xs\aAj#+n6jtoZZx-Xݻ m5WDU'}KRVOV|U^qX{4> xVjzSs:>1_9e~W~B3Y)2wZlJVilJp`NA}9 SXNJSjilJNV[po7L Y֯kZwN̾y~@`Z͸k7U_q~s6j;W]_}K[R_s%|lC=g-2E̊V=#Ǧ^Cku}ZЯ[_,Pb2w;Ys;"5:(_ChY0_N|=]S/9$a|=' 8P̴}rpo]Vsas\Ev;Śc0rVЎ`Mi2Fk ߱|ulK^EIͧn-ʱ޺u1/鯇)+{{@΅+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B*je͌6vڛcgC63Ypivr|G/urq&ZhavzϲfugyXrf1=dك3˛V'SCMK.,'kJk7[]Iiu5iZdZ "$ӓ鉭{lVZm hƈIaGC 45 @kMc0[\`j<u Z1jZ4Y_INk%Z SP1E k!u,[gѭFdNpkWtSukku;h;V/77 F!Z9o{{{V0/gg7\qḡ̙9Vr, @9IENDB`homebank-5.9.1/doc/images/pm-cash.png0000644000175000017500000000041613604617136013053 PNG  IHDR(-SWPLTELiq^X^Z_[`\b^b^d`fbfbgbjfiejelgoktoyt}x|ȆʉˊՖ(etRNS3cIDATxڕ90 7,GhBLcid7Cx2Bwl*V#LX/"9XcFoveG2&d  sIENDB`homebank-5.9.1/doc/images/key_n.png0000644000175000017500000000055713604617136012636 PNG  IHDR(-SPLTELiqopsjjjmmmppprrrttt|||ftRNS3ebEkIDAT(;JP9'O`k-jmE"`L6wi^]u𹱦^v7y}:qqӶ:1wVIyJ)mt,<kJK@D%GY{L3?+&IENDB`homebank-5.9.1/doc/images/3.png0000644000175000017500000000056313604617042011664 PNG  IHDR exPLTELiqyUHyUHyUHyUHyUHyUHyUH{XL~^Smdqirjslxq}vùĺĻ7z.tRNS/b8]IDATeEA3"q@_SN$Iօ,8$$$LOMo`26Ԯ2@;ݵ9`3X{??< [ X@IENDB`homebank-5.9.1/doc/images/win-carcost1.png0000644000175000017500000007050614774772452014060 PNG  IHDR 3jPLTEyUHؐ_crᡟqrsϹyqcbpguͳb__қ˿hiiVmXfַͭع~j\yvwƥЛzd߲ԧmY}eĖzZ깛ėvWd\~qxƿbxҊ盼g䑸wrյkyxo槮w}n埮ow_VlǼ߭oVԣѨũÐ׺mXbtͰjȗkcfƺ\{blŔp[tACOT{Ŵ^S\ٙkpïȂgJYєǸڵˡxɺ`YƅfSEiܬȜ]VsZi׆Ó\irWqyU׻ѯ_[Nȶy[?1@VuQWe֞ōVoV1/5j]vmأ]V :f;h{F&RӍSK(v͗g3Yn>aߝnIDATx \Wg$P  JĴI$ʭPL }#[BE ^޶*ʖBv-hE XǺu{y-nnn<& Ir'Nfu.999eYfeYfeYfMXDmxLm}1<̬GO?w*+1;;ض|"zdZ;emBwhyn?ſK 0Pjs䵽"nW f֣"zowYZweVe %!%p~`K,6UDgPF*4XfEZ6u56~}>ʽ:X7w*Q6Dv%|ImXfIj浭w/4|qWIZ^>(n S;'@N55 $t[84 }VRƔUn5W: ]ʫ?BRy?asI4 J<ɶ/v,M;YǕϏ/"i,_Mٸ6>^̌-cƻŋX i.յ~DS'XZ99v,sFNE̸ۣI[jaJN _(nÎ%Jch #51La(Я6Xlqv,nɠ!Xmd>@ +XUT9v,Z406'T=0ee lx@eϯ~;cQy[ر<$5!2#bGf|nɠhpXi4?MLH0 ̐FrdЌ~f[m!ִ2gDD<GC:❈08:R/xsi? YXzFՆfxE _8d`FZ汉v Hb4G|SeBʰ=k%G-^U ^f:ɰщ̚zA̚:1,ʃ`1A,-Iyr*# 4[7&Ѭg y 8գX0j |20򩉦PBv y)_`0`ȅ`4QD0L/(rYHP>W|aM؄OZzlH10LxAMQȾ{=R}iaX00zn!7>^IoƶAw/j`cx'==dS⻟]D70D83 `VV>o(S* oϟn† t}ozH։r /08D{aFU~~"l*5I~=B/w0D0`xw apvokּoO| U>{IT6fQvVVEUbb%3* f  gςj,@RG*E=0Xf[Ed9SmYy*?'Aw&d kycߗɧ_>mH! z+ !bnQtfDۃDZ($j],;{EU \F j|0 /cM ]!ȩԼύlzűyxƚ͖N`0WVf+<\ \b neIh`%BNdq<ҠpI 팪 hݑ%.}NM#4sE/t7'~3[Rk=j 40;z@9Tz N AْAY%¬P]j"E~FaN! HIsRdH#0u)sfA~%G0/3*Ck-t`jvn բ=!m"2} TO !gmII0kOt0e(lBN8[UHj8t ҜM̨w.%Q5%*h{blF6qBomQBϽ' w Ny_$TOA@>dt I8sb0Х0dX'}ѝT畑Cse?lO(vp9m-!aW 2rKZQe9¡gi0=pMG_] (TH0F&:ơ -(]2t*UB: %BP0G~1aF@Qd4ɂ+G `Z3eIP ' Jf7ѶfX4}6àLaSfYZ02,~2Qe]K0aҬЂ-kw VZ}"#pqѬt 3r,2a/J\+.)ڢU!냗D~ky>kథZ4Yhp  Q%8'ΖshFe+boOqǝF(Ѯhxؙ*&hj&{ }81;1c=N5gĹUU@S04ijk誠cbnj_CYi1 Vvd-Qn RUGiE9y;㎍jA㾷o+V1ӾJ#,# Y|8ŇNv9|>mKA#{`ȮGWZTץ. >s݀wuDEyC'Z0&eەR q)EYӬaFs?..fo+<欑BhnC!}#Y፹Wxa|Zힸ0;EؖuP_KiikMhH !ClgǽHpUu|+@0;:8PAU,!uIU$ =z] 8mADàpv2Ԥ"dU-DŽ恴FFf'҆# 0 %6{9\E41ƈe܈jT8ڸ]#EhָY6?vKAY%f+P9pB:Fm3xHi3lst&4َGpt~d1X< (b w,#Y]bU4HIŅL&=5<#C?VjaF;LhX0 :qqtwwRF<%]4V tmr&@ciԁb}D0Z&!(qp?5f4B!@&46$(:ggt}|;gƜc4g|oTq'~|#ysp;jΌ<61gr{K كꚛ5NfC9"I5!5) A???:"f &ٔu7 otfu?*?}+ ã*: G E8:/dYaZ,`vck(6@fsA,!pg2{Х턩 ІAM'gs¯/\%4C6 ~l?g^rc '`мB#BwPA M8_QHu׃q P4ys+1 rg0^_-|߿J`qIֽ?z-z[| Šfբ^g0tΕa箻zwrݨH}w;~R @\`(j#{֤٣,L0ʵ i)0]jn~%` ت܁0+$ ʴ0ivocXM*p; k/%CXh1s˰!/_3 _ K(շ!7gAՠ)I{kLž:MۑE Y%B&-jw5Jv /ιX=d2*8010kwoAq,+h $JHW 9et_c3jKLHN?Fwln,'DT]p#@B2bfc,fs(4w1i;50p hAr7AcS3r7 *u}vi9@ett y>]UIOA0x]'a;7OH1sm&f GuLS|܃Ud9>?3ai"F Y1x[E  Rؕj!6ݿu7_սMas]NfMhßX xAmr,b9عYXNQ Zs31g`>Ef=Hhϱӣmc1lp97f@}s5À49COFT3 H3Ԛn;,? }&T_*Zr?b쇶e^:| m9_pwpC0w Xj3d0X+d_eAK&h622O);)Ur;P@(FA ̋La5>(! 2ofm=݂}D ȅHedBfK* wgAB]/R0;]23JH,4" c06('MC&Έp03""fkF^YtvXq3AԷѿ/ /S$BUtmtP)  \.se![*`!5NY0H!|dYu=١c= ŌR5Sɹidl n#0*yPC&AP i I,M YDD< zna5)WfxYF$H׈2GA hv<2>*Ʈ6zkJU!dεp']m ʌO_ ekFgӒ}L*{I@ͦl4AڹJ%'[Ǯ(Zyl5ШZ`hp%dP EC%ZixW6=2c%(@v_|_?pO$y#2@[2,R>!7R A}ph$LͮXN46CH"Q 0$GH|/|LQ-rЪ) hM1L!D- D }beCțQL'd%j"Tv@Q!s0؏f 2ePNj23V'$b0h dA GeQ`运z*`+a4TAI&c ZK 6U2.6}`pΔEF-3umSC#dj{6ك/(P=Րŝ^{.m}~ӄib兌ɨC& ']iaH=[wk-~@̮&i"ǒCeJ``j3ٱ6"XCHNaN&jA%3@Ov剱U^ޡK!P1pU'8g)ӪI`i0o)_es=_W" t -t:=A"/3_F^7 JL~$)7M $1eaac@1 0Vz6sjh<ǀ" WpߟG\t Ԩ=E`H+'[!uӢgšyS5Ճd2vSjmG*W趾NI+#e\j׶9BC֗b֨krӨS`aCfn]ԉ^Pc4FU!7o = "F}I΢.bѧPkrYt3 S`$\[Vp!+% U#5B({J o{^L:RU} UmM,)݉1na4: WRώtJ}W٪\I\2GGJy4`Ȅ« ":ʄ›D%- RWW2hmc9c/pZ _g'a]<\]\{z@10l_X=}`G r]Rr]ZGwMHR!==zt ץOu:\On Q pJ.?M`W?F]=(hi|_.Ivy{M1>ۯW\zeޔ.[x}xSɋ`Tb,;K T2+uaq^ žfa"0pvUyZoI,=y?{'NŦaA'UF0{ن屧\)ոsHr ) `X/:p\ҏqǾ (q<wd9h~K@~jq'fM s%9 30< [י[Ht fMZIgFF݃2u̴?{Wĵ¦8 2AH *H؃dWMQYpcQ\E-R.غUqkZ{>3 BnͫOsf,s|y>XFm3n&z\3cDn`3Td(h@Ŭ 'Sa8'Xpۓ>8+RQ8cR8t0>u?F(ݷ1k0mv:ů*$0&i UK.:LVɍIUGDwro/{i8|.j*f2tC&6%ʼ )T ms`L Fz} &Çx“&<-RZ`qޝeS`%9~wM&6X3/@"d`h`#kȐ+[lNG/h{,|L4C`TXtJ;ccFtQ_Lz o'0]VfF20sdҧFbJK0 28~ I-d['2?I?/iv2qF(-5"Pn&A0CDgNA=ӷM&ڗx{Iٍx 1C;ƨY{v:/ ZYcv83&͐ߊ>!ylSKav[L^d('s2>HX,"+ύg9FNl.d{g`nd/~8"?#H);- >:қj߮5G>Md H}w{+MWWK҈['HӭXHdM Ysj4(t!y{'ݛaXR~_k`ruqA^A7X5y&^bߥM1P3 MN>4.kn$Pײ'bxB+N+m؉N:̤K0ﲢ@+wQxȀ$R؄U[;o79Yl//~205OCB!bGhhOK}Tɀ2+h"ţ5PL'oW0fT/9 ]kވFhB<%Gͱ23<$y5$;0PZH8hPvyV޵H([]ΠtbIz4ĩ>õuZi w,MIvd/K{[XaPdر zxBDݍg ELLXPWU6d8'pΦ 9B3qO F} 2 y- d^l{Ztp)X?0IpX ,^@"2!ZT|?+|f>]ba,}fh,sd>yiaiߝ $*#0Yt2V*)z@-5>*>2==vުx?X!ƇktK~j2> ){RAjSg@ bwAZr2ЩFWl mA [M6g:.Lh)(3:Jsht:Nڤ t"-өW,p@?V"gd5q7 \Ȑ3+T+3e14 vғtγB+}+F'j< Q3 \qฺ6sQY!5u n=O0 uVmm[@ |.ڦi`s(vJ81=`OŔ|[8=w!R5ґϖ;bR򰛓YF)繋DD+wlʬgCxd9(˻j͹;@D+APg}>}諣LF+g`B&َbLG ^ Pw&Կ՗K}g2*if!vif'[๖UO&ڏmN2C8].:L~`f'g&Kg*ciOQd8>dFU5ݘZ$9opOv DM&loJ=J H]" XDҨ_/74@u0]>]3T+gxI{[Evlƃ*uy] ta%?|O Tq{Av{Ь(9 v2l1aM:z;_`J?AP5餫U]up|dHW6({sP#^gΛWK#EmEpofS"x8i$E\amUa J%OrmפWk79V4Y'iz"V#}Wzto5/@>ύS0ʋ WFԝXcxX>g\)2nڬ?N [`P.&@]@ZΟ;a+O4]If vB=ssQ3deg^N N/õ ЏQ2zE8֔CeY.`6;1A^R JV&:Kp 8ZQ+nlE؟Ψ@͒QdXݾzݘIL,/3LytE LҥUP>J>Ӥ (U!L4Ȓ7k @ݑJLdp%%fĽ 5fQ H:۴'zs8Z;p4 OI0?'QŬ߁g'G >"#n7dp9^'`XZ 2F1tjeL1@HW3U먒!5h$(:Py,or> bǭe5üAhm{=VS^W{AsֈkWGT4o"!Y_ #kZAF< d,<& ஫>xA+F?zCwdXgTA3q)YT?.:ĥ8?vpC@zOXdЌl. TGi2ꓺm3Zjx`&U&u45o۹ fn@d6,3PnKx2 5:2L d oGnG1l֞lWL249/ B^s71`@հD(Ģb _!5maE W.&T愩DDDDxfPb ة8 #ClLw(50 1f=mREdVOs:$So0)=)/&(y5ȋ,]hot%<:?"M]p6R,kkaS1f8FcC70v3aGM&bĶIeG2a!PE&*^!QТgZWhϴ/ ȭq ;EQ@СGiOMG\@;[ji .c&1K/.@mXٞR+9b7|~^:̨os֑mEdO :W AԓgD%yr+>3&Eif[9;DF?3['#f8}8L3i Ōan4 Ld_0>i>~iPa$4yiɓd`91v:z@4JNj?k?CZH4PE"D!.sZjsm92 Mq /~6}u4pD]pFk˴V},|_aG 'ݥFu쇋[eF(: y!%yM)a$O]ؿXsO٩WAvpu9fPM)R"szPG\u)'CtiIeKAt}kʷ30Vb̟˜k")2",RkV>DݝGiw!T~!\zt1Cl+0`6ϥ +8'U|C@w|fh`|ĪK?Cօ 0c"  (hPR*,LsGc P!RPp\)E;B8D$ I'ga(DbB Qk'x|8aLshI 'y31Jxz)˲Ȋ$׆pIԟ|@H9 RlR|~Z@FGVlFdV9 ATxg2@MP6vahRd-WUl ꃇ6uD3 2e֚Y }mч)h`˨ͿNyfJs|W+:$UFN癆Dyk0!$2'-[-^5y.2E/}~x``(2fh&Ax]AAA<pE#1J [+ϙsn2;?-Δ5\d=\ caAy9ܻwz#׸OKMf}˧%eZ I%[@:뚳S۷o?&^ysHªnϯڎ _A:6XN֣2Y\Q+Sr?(2\qcm7KZP9Xyü֨N虔 V$ *=P< 0q_^~ mE0ɓM~hCtXSu]b2z̲f]/7 <"g0-e` <[͏G3v2L~H44dx 4day" Xyɋ%2gOɁ &Q!<&0 6%m*BL0a[ڐz~ƌ, Kʻ!5׈f&ʇ5 ÅbX:`,cd8dL `]!nY5t`=9K@=kq0Ȁl.G/|p\ l$nhD*%. YGd lq?\(aS#aL* <)]~e/Z3(2|c5AY, c6r %cS`'%)28:iq?\Etj l_ ?͟={;rzW G8I 73Q͈nkd,c jc8Rh-\G Cn|b:N[oӅ PB@q 1r݂7Wo_#3 ALƮ0+ j^ ~H4˲2>y2\Db;hӑO}D@o2 )<`ʁ4~rhIV\vZܳa_}#;2XtqܨDd"t" b8 &l>}28~!HNSPNf!;J1""솮؊F&dy.|ipov݈[XxLS$n.W8Jɣ^"D5=m-@0w#aqQDN!h#J< N2p} 2?3yiQbЌզm[VKiQ1췢p1uq T32O q F9>)a2b7bEB"̏׫>?OaSGF8rD>O_iIE ZNLs&[qp(xF59w@BIU2`;u^J(A$msMAX#C$tOdfsDfZq ݉{8e+5RȰͲ =u Bch'ߥUk9`i饡WYLI A jɠ jɠ_ tFAsojY=u-j|r5ƇCM5>A2Y|y?-0 mqdHefϻC2Ȝ0zj+Ĺ@T3G8e OV@h%QqmTh nt,*Y[[5ܻg) AВor:-GW紖-&dP S"Øv`_YܲҸr)Q5(Lp_ ]:p`Oڜ9IvFSw'nx[,-h_kys$ `L9?8rjHt]ẙ|!\ͺSbJ%d[/;Xfq '/겠\-6/֮h%ET@?▃1&2蒱g:aR2dTΆ֟δ+y  `ej!/*0Y_]BcY,D3-(plf,9-}6`\ba,xS:B tDY+k"р\,ۂ؄U0o_ۂb ([(WP8-D/#f^iוtX0u .BGpV' ,?!2\9]LT 7!{XJˤy[z.aICxx'=Cm53 O'#rq,dloa~ \*5a >2_9Hq3TwD_w|3u<{V۷lTܪ_Ͳ bRp?R؊UM_فb @ٷniN8DSkD9 p)=p^ 98l4LK}p%q˸JNj{ #pIpp0\Y) ̣[r2!2@ MP$NErQ#VY`LKFlL ]#;`R7pY d9%gx9|Rd0#=}"9a_pI5 KV;R탷^~siΟ`]վ567~Z&= /(_5B >YrU&[a%Gu{nKws;ìsNh{f͖}GĜV>i X?"fb4[d^SVȴd`/N^2zLRpmLDzX780Xm%7ɬȆ &(4`e]_XdWȠݣ!88[o/{2Į]dWO_6(=CKK |)Z2peN9 c?$ԉ*qͻuF *C죃<]| $lXc% مsn 뻲eFu䬶'^Uo(sè>s1ꂟh0YX_gʉ\X?0;QCM'jqKP(!&h:s?-M%рqw2@6Wv,NZB #Zpe?.q~e\~0eM$&&Y3 vqy7"oCw|˵$61 h)r #O HOFTv6 n2Zdeg&tzCksnR:&4U0$^|g'`j$Kݰ惧r&ip9ш~?Wp痼Tx`K" Ml E^ n{e#s͐^8mO ,67vWݚ3n{~X[c+=̄uBYsX͇7gϪM ^yl AiU5╷>6sQMEA.W{!׍00>=j? ɴ F !6zzaYķgjTG&8,j`@gW$hr7kH<Ṵ}h%Rg\-$SzȀ WP6+C~9'k +'C䦏Ws's'r p=*dd$;\."K#[aY$!fo#a$z^.k[|'A)2`'\c5WkbAl&wu:II$T :8ޗXB59%'1 Oӱ2G cr=9 iXFe:[QWΙǧwUx2wtچ ےVhp׻l9])˻F_.ӽ2s[LZ^YaQ]i`´8׬ f&nQ!~q{I1٠;Pt)eJ60fS}!U]L0ޗfwW,LDaLvډfxW{#D͏XN'['znaܡOry'̵#x:+Xn.9?u4:)P"+S|D\&++kfoy`#}.>t d׸ͯ؜:_+a2_xҺ0o>Ovp*lߑMOi@M4h020 +0++xyʕxydaxd` C֗He!s sA.+w6Ä|w-/:oP6GGGWr$YcͷH4 I8G=CiJF5xъn-z>gmSKKK^)+~h.F!-H.Vz5d܄βK@2C0'Ixzd~/e* ܄\lvJnNA[[;ӛ^x6c^[DS5vi+8 ,t[K6gD(i`ĉ.Y2&Nd! |ءŞ hqˋ9j8 3ДA^%'ؠmpbcao2HiBP@ZbƢoӭe JpbCͯNUzҥ;`=^BSC.3ڳ^%{ Hm >7Ȇz( Wm+ILgpD{e w& kN|pwٕ>6QaKݕ9˺XuS,**ثV, ~dv ou:r8G,mA2vB;!=UZ2Tx%UGI5qvI?'Y8X2D ~a[I-Zf Iiѐa]3d :5 w=U EFO<>KȀ\^ZkFUGI>u*]惾yUKJqLʽr=H;Ȧ;dorwoܜ՟wjt@Lys$mn^?G3Hʛ^F+sW 0/^$O:R7Z2 '!I;d /0 7B8Plh#4Q)9bj2yDNBh$f$d;z:}}ÊyԶZJ @N X-9%`M}۔(:7xm;k kNBx$#G?i@M4h d 9O"ù-aZ@ ˃& $I@w$b27xV/3ވկ luؐ`&@63`yUwף%Y~C{꒧9q=B✑,jRv&D`KexzQ7'Ҁ9z§cSr)SrVz=Ga§8HHqn |ǝ/X0uI_i+͞7ĵd-<~^7!1HƁa"_e #̌N8Ag~ygiyy[A3:G }cwW=zu1Dle8lg<5wd_d-/X!ld*bIl-ثZR矅79նl}"PaM;|րJR[:< irS h`1Aj- 8e٣;ѤпG3đ4a2Pn&2qACj2|ߔ?f8?C{1X p`0T`C=osP'Cޏ`2O4LqnC ʥIEcj8 o&ng2( =vtVȣj];A[$rP,'3S8*W3.6$&+T2#sp 3C=- e m,4 j*Q!3$2w1LN4o>cKTUڣ&{;bl#((?{NH Nze;>q?_i*7d,9&' x#w.s*b'ߖC{)jg / ,mm6&Rwhɠ >5 Ӗ7#+~ 2$s@3L:*29Q}U.~(^7Z0j!9d׶8 oc!!07Ju8l '5ŰUpa> ŜK=y q§B} #*t2kL}Eo=Guϰd8Z0a5t@bӊ6V4, KWu؇RM@&_n@9d &`P&h4h2Р@& 4Nd6'av1ͱX we@4^4h I.JQZuab};',؁VDN-ŃXn 8V!ph,ԍgK/a/҃;qcvldL/(u;>8 ڠ?)tc7Umz gHd0/t1$43z" %oI>㝹vкx;z-ONm6܆Bp -Ҵ8 󘐞b(黡 +$󆎸ů \ƒcD`1t1czp,Օ۷LDLkV&NY9ƧQ#u3qtc7|舎Adݲ3OA%=)ÀY$<% 'D*On"-U(Lds?Uu3d-!0D|O(F"*7 Z/ȉT$: zͬ<` g-][Pj:*B_E 䔕`cxh-,zZs""~ 8To > M[fߠf@0T082^ AgQ90oY_l']GXҔhz-\ml<r6g:65Eེs]OeB$rs ⰺ*Uz033p34)lGd:1/k KDN'*)mrŽ4ZjU qCU prqvް g)w r#伤"]2B&|U@ ;yủrqKLK@g.@ uHT/oO#{ NFfh|L%n $n_inpH~d[0m|Tu[n~ˀ R2̷}^r W/t*nqyUH;񟟠ggdfľnfvvuۢg~abw^m詋äߧǛyvɪ{f^c鵫弾Ѵ̸ᷴ괙͙Ӱp姴w۬lnrz_v϶ȰwvnX]q|񲰬kTDqtVpy꘿ᾩ˱cξڵҝS쳱YԸpܿֈyցؿň^ůWSWО^uOꑖll嘄wz֗|gnZzeŢz̆͂H>HTjN\yeZ{sVuRfpX[jY{aTk}pbJ?ǩd~Oӆ\oFq2%%,?EbFHʑ[+2UM#C{:[OLVyS'R(#r8bh3sԓʼpIDATx XSGρ$K@A0I b E@1*y)RXvVJQ{^,_^v}>7' I͗p̜yI29gL0$$5n - H!3T _``@,(EHe20;dW& f 8^Ca`v| І%,َcEVDr @qSL9aײcp $خ{3TLf7nk7Z cvsϵT0,m)>&BQFꭑ+Jg\KHx=F\GD,C P#W ؼs-5 a7q~0oW>(J}'7}H D1$7g`=6k.C7)G'P%c4܃KR޹|3|Q7F' 2]-&e?^ !2KJ20Lt5D0*$7ITJ@p(+8u+]?$H\h``~shi6_і;#P3 F:ƁMl&و`5)L% Js%*-.X!}>ߗ0iM42+>DA ? di86AӃ lBakm_e 29_ ֬@ÀҞ/ 5_֎#5 !ĚDq`֊C0  נޮ/o8^ʟ*z*3neeenw%CH5~t3. :ҿlU&ZaH$ GW^… w;՗`#k.--q9Snʳ?ea"0lPz0WÄAUj5M#6 e lnPf>;QaxǏZϵ`~&X ! dEOIqǃFk8bS1:^6- t$ ̀ISECdJ ݑ6,€3ƔNC0`n{.Gf2 2( &/+*@VUK6Yg(dGJ"l0m#SF[Om~5)x:fJf_I-&s_s-=>0ζ@eMʒõڗ˂Dt*wknZL$ap]uU驛HQGL& [ùw6eoRk)ti pU)0]Mq/%\}5P\qN_&큺"km{$}I(OTٰ_&&Qc*̒"/U ®Y9̨ R)EE]%Pk[C 2L` Y;DvG3Ue' Uۆa NQ\ /^gQ_D>P#PA X, 4 &a Qt5jKָ5J I ID@2P&&O&LzZlG&O38]ݫf&™6a<[It?Lg&3QdCho6$׊!@mOM&2ʹyvbh`*kF XW~[rzKB5u;fUDi{dtݝ^HRGttW.(ឬ $vFΒ/&sͳ[ P."hWȥyJ j%Iљy%#.):[wt^w'D꺔8LIԕ{s뮦gVe( P=⩒$05^bj$b^ .Ev֡tᒫQ: q)DC;*sBh0PYvgd|ꁫVI{LfB0jIR4Ogғ/+t-* 5 qBexF&ˍp}I6Qt-];t{Gy؛sr%LM *yLTIB9|a*[P 1x0 q"v'#J;;=n) 6QhIa)bʬ_$L>*fxG5 SURfrMz~'IDcm4d0Ѓa0 Soq$j+EĞMe@w:$t@}WA- Ypîɰ'WޓmϠf0ڷu^ͪҒՕAFf^u@e.!v2B-k8"{OBXՄq@m*"lB.Ғcpj#v"Zռ>N"n09Z`R6nNGd|'}- a8WA6t H+ujk:n Yg`p(7L0\LD@36ma jzo`0M𭭗UKw50l]_XڄzEmoĀ#^᧹`2O */m@|>7a@HW~o/_B#:,eJ0_u$٘nGL&)Ʃ%eÛ<0b*SHp y}A$`anY!"`/0vZTBs s "`nn eż,U>1` S!KH4`իXpp YRYCٴgVB_^—.@~6 d, ť&4$(di~'% qsd"W_C8?/8C1 ,skB?/@%LxKJe_@.HAeZ 1Y ,JdRTC.}5m3!%)*M'δ2qgv,. E.#`bu(H"ygTJ nb~s ówYcuqI\sQxGͼ 5PX8T~Kٮj8(1 ~eYRq@äImwV9T}Դ xWZJ 0  aH~e+.kpu(<ݯPE߿~'.bDwx {s)ҍ y}no]-9c z(65fūY-^ax0Y`ex͎Dꁂ ]K,3嶙py֥ȤԠ"ZG(-uK-^gP}ܸ;/Mwq>77cx\9m$*{ $t#Zsj 8x>{ 7CkE+~߲yeX\v^9ኅ PΖRɅ-\ 1StrWɋIB/$L;:LҹJb [;_wdeo~Wv0@y`΅{, b;l-x3Zs`"#1'E\<`X 0xDykk!k;Om6_5:l~ν)`mTz>A!:tFZBda\,ە??86F#`w 0;!Ҳ(ytL{.:ܼ b[N/CVFjpX,=.d+K|nuX@7ēv nSG$aKQaЊa񚝾6zX K:.":k6a{Ѯpc˾8qCüKX8ݼn с\:yQx`@ 5i҅rPGk7!G wnIJ F|{,惶~l54}_jRSmimm=+p>jٳ?_6"j<ΞIGq2-k.-bƫ) dY8nlj'5bSK&L2` O,) KIMb-,SSs ,ԅLZS2`0L0Pӹ}G_#҅q;vH]|͠NkV%[:_5:搻5rх>_ G/^8Sy@_81r1yDrɅV?l*&Mx5ax;2J[&|)z;J "o!q_&%{| ,SxF-!sQ(Uu[T|1i#l,^pcΥJ\.>}Ouӟ枘Ahn7xj{ ܒҡF-J-CŢ }pi~(ۧc>,׬ 3\a>+`P}}jCᦋsi J|lO^ьZ.izb#a(0υ_$Vx:,9BqŌWS2| XnDN,}ѕ"rS}>Ͱ͛:㒧!|Ywj)b| 8X"9y|-W|-^ `["1~qW^k K/)- C{'f0f:mx! 9kn@3ׂM@Z9_Ԋ.WCW:JE0b;瓍`?ItNӗ__< _є(#@%- KEMs䗗-"W XcmFڰnݺT3[nNO䰄c˞]]_r*t&"|aUs \F΁t.݈(޺r7] Bl'>,äHH$ߌ7(y݆.WYR^)8NWJИb8$4)J>_ $=yM70ҁay5/Y{oPp&L&RS/W#>,U,# 51Qƌn3wDCë5D*"CݡxױԾ;(⨟͌L^yv PU ;Ŷj۱儜 ?|**ѽn=Bf6w!v(8Bľ]~̬-6]'W%vR{BUCI#Zp 2̌WzNW&(Ln-&`jMm0Ybu?fx0 hȰU8hvn]GFp%N!Y[f/8{>:t--mCP[66^6CpH?أVQl١6Hvh qr5!T`c }hNP Qp Ftan4\b57R?{vGbDutF,ʒSR G9~ڈ3ϪSmڷ0h-u3A[5D:z۱pv*p['mv=PKbU iay:fD }(r*o+( R "^]CN(c-v',lfz YZ):ّ ]YY'U(F~0) 32/޸>c!qґ & K v ^.l*$6t~CP+(fPzT>g Pqw-AxuGs!m-q09]wU{vT 5 |35 x{DۡA3# ͒ ڵWE85RTE" .[_nPˠba fe0- o7V},CaH5ol$Ёʿ ԭ[;А m-=('zc 0!00h0p#H6\ ަ IW>:0Ղ+:Y#mh/߮eDĉ-fj< (lPks=2 ="ƮH$KxBO[!p@(纾Wv1C>ef20 V#ah\ϯũ le༫X>Dy1a81jn#5j oGOp +h|h<젝E9bGІ`h߂ۉ1^Mi̾EB=6pڝ̾- v|`Q$'MrC\41Oٌ .vjDB[mQEmPuHP6+#i38z&!qa`#0d0,;rL0LJgڳFcME7;͜L{PYO*!$vdԐAn ~APQ ^ 8:?o씳;0[oe˪}N'(Al}t:ݐ9](9\8Nn/te $kѲ{L4 {U#ҋi`N]X*YBdZ(Q*0 ኒIFt#vx2Vt& q Rϩ%w".}V'{iHFzju=&SLu!6͂Z6ͼ'h|+ZN8a<x7v)<QUlr!iF!#00d?k;3/z3($i{lu3կ9>  !Ո]Ta8( x%Szh0-8–Nx-mnn %miIZ05@@F/%cEfYI`H| NAz0P4 .;iaJS{A!{gQHeI~ U]L V\::XzPh(R0%ZpS O-YIISVz *h DN7$ )*˞:00~ӯ}CF(sqn&dwI:Q*DqQVW=/d" p5} Pp C@CMhp3Ao"l?CA DA*dȅ4 w~eyyV70/φB(}ϿpEzkAem Wg4tAہp5)Sl e@BOZmYNRqK8= ׁZp~6y`a~Dj! ڥ9֑U;M( =%Xu.wwt6UBKΐVn, Q|&R|7B8pkAM13 NC3"K0(}8}>sѺ'FyiC'3(0J'4pO֘g r !Ҥ1 ~00McM#ch\F*e#w$S31N5 :Q`.=AAMz;Lpfj` z/_AKJq轟à 9 )J- ~nE B L؇~8Loy_*{OK{=A0`ѫIY E= DZU* E2^4>g *ۻάiÑNENE1  <5pV\ $]$EŪR&…%a5 Vɹx4wnN,W}q+d"A= JO}pBBҚ# ]e蜙֜ ZylYF)s]-â2[#""v.C ,Qn!jQ.^p`Vs-!eW.o' 0jz A>2DU(.]9ܸ PZT (u͛B<ȭ_ejGRJ HpE i#Xsng$hJxF'fI\Lj{/C|d:[|ey|Ĩm5_a@p^dCUC_Ma 5hOH-Wx3ō*B%|,ƣ y sXQ5AzX%^`(iKyD]“X>?`8۱9X.e)t@[\^L50Dvۑmן&ʦ .0Ҫ.\Af;mOpnZ.^tfrδ^ S5mGkjn"@5h8JS1 aԾfBdU^Iu>G*,vJ |tts`WmSt1 A`a! ,5Ю!D"8v,d@epXYu0r64;ڳ2Xk a֑ &[}羍N+Dku77[xD2TI0|z?"R kVc>]__#,\w싨,Ҥ\6? NơH ЀN720̭_qY,CN]@tXMf"R\Їƞ!0tOIIiPJR R.j0|b~tރ> ҫqw_= 9ޖa  @[*dafA}qz֬/3{a6NUE6Tbh mF1a!w 1ӆ}YSf L3C -k[0 qk`K\`\/׹ϵ6kP3Q\Z a4&qgD8kK>q/亘OXuj0ˤU?X>2 f|Z3@3`Os: Ί jw!o\ |y9CБ;|aWx큎QA>yWo-3:tja#d;d}GCrOmz$Aȷ;hRZ.LD aBzZyr.^Gʋa7ZuO q$:ph"x 8*T:)3pm[$GOW1+z3`}| {ѧZ>(>`P?n kw;j'a`Lw`\]욳wϾm;~jut}s c%AjuU,DS[JŮ*PYM3u T~Mog|YzĽc߅H'мҜF J,PL =Mdkk&X Ƒ=;YiO21 QgMОN Ť ֡&<KCIyU8PoC'ka]_%>BISD(Pk>$0 vN,RsQx!-J٘\yBz0Z_D 6b !`=` 0 hL48PDƬa`'vzdQy˗Ύ-qoػ!itM՟0^ejK;[% =<į vڪ`j. [؂oti;S*JJyEpol.ndk^N 豇a 4 {x"jD<\M䚗_JBX*G2Fuub7$;&"B%ǎ]ǜ8@xh{8%}"E@$ h" c7D=xC,;`5cIozz &C%ss$9s,LnoQz5s0fAFkηxI|>g̽M 9ɔf|4a0%'6f N*u/YxtqEfM$^hK(6/? (Xkol)bk`3>˃doY,0#,oѯ|jT:\_UU6t.E?8W4 Iw|Us3[ Pg!%.7g-ޏ7CI04$}ƟaY*;gܦ\wk#wۗS#?@z\DSEڨS]\5<x25_<4h?CcY>Lm^9o {}B@95Njha!Bd9*1=[\D"HLQM_h/ >\pt? LbJ [\pM&q;= 't{}-}E&vv3@ 'g՟H`aF|DCF}&:Y!paU(,ħM Wfzf%ڱE貯Ci~?/u00Ȫڄt:RY䔤dmJan@gnz?exa;.M*S$}Xb&N! e3if.d:\ﷱrΦ-|/6uA ֢VStMA",ع%uǒ] [Kk&$V 2蓀 O>Cba/$ @GwԒK0S $ ѾK6JɕK=`%!RZ1!_ 8{fo||b:~ gsn<@^~(]TMAX8e@܂ knŰJRՌCv`eL4e||7t!@~wfsm;P¿qA3Çqߵw|r+z޿ nyUDN %r[grwg޽Ptb2{g#8ݑ}4TÃuua}@7Ccf=VD_]y=)o# E}4Èϊԭ23 k}hŘ9 -ʅ#d  M. Юi;EQM{PĎ>Go š z<#*32x2 rw9L{DJ/)PDF~NU5x pԔ|d|0Va16Ѓgncpy|w.%i-#բ :`|)-`m_/0DX!ʶI:(w'>Cݩ/Xt01X˔f\dsKZNMZ ǚ!\jDʓR3CZ3hU"kI{V5p^a+`ލwI\@%JΨ20>{RlބIc,";Ty:|D2=GH sP`*A0݌*j}SKs,!~oP_8&Ø 4 Y˒/.o_8|~\Ӣ,'G퇶/B+b!l qD(dPgw\:B L4=A0l&;X TAPQ*lM|ɑe6~aͨZk#\, 9@EAP_#m&"CE q!//$ ({\0@:@ދ}z-UR[_ԺF]f&J0Ҧ%7ξzצrnnt ZU=9lc#P`SdU6R;q+8\DžB{rTj+آњ\nܽ>7^-ܢU['=׬_ uޝX SF86 Zo7jaMK4ˤqI4TiTw"#>.}́ax^Љt@N& d5B7R0n[N c3ha``0`axr^ H0G?j7.# 4 d<6ct0D8P+<TOWELa |ژ774$ol\%Bc/Ѿh`)9 Z:V}%,EI W_Jc^F0T춾-]*^:{|ÖùrT8ޘ tlF_QxdҼ*[:5!* aer55q}ErhD¤9ֳȈYo)KLdfs1!ޮxYGSs&HGCw>tAmuo\0F &i V! 6OHJTdJwxvf%eD5B:6:6$N^ZT^oIJ ~;'8R32 rsurqdEV :`Ct$>sʘ!Mi&ޑ}=;gS5a`#aCb[,mI;.3k=rO M?@[9^&_I$:6*HRؑ%z;δ[ i&%aQ,@V!KQLlJ2+$JA(u,H?*$tt0|k}?K49`_5uxGT'g$X́^mv8pBB3!oa`t9=: %%0#@^@P D 0TDa`މ , 3ROYA)9:X)н^Î^g7͋r'L\&턻 yf;\6 f bA`01@⃟@4L}2511Qb $Ą@^{k@- +pr0[s'N$ҍZNMqq6u^|&XZf]kY頑 i|j`FT^^y"i>c Doq-oْ|>pY|Bfpfozuཿ ɡ gBvx[.H˺vI#m^)qw Sb :KD7A >Nn uu62 39`d;/OLV#MTb6I $ ̃ <ɬX)Aš8) ֊TzSie/7 9|}.y2`K$J`絭Z?} m* q40dp(ʃ*DGpxqjĖTvᮩJ "2kx8bT|8* ZQp Mj|_%(19cC6r0 V~3.䣗*&V!a+tVr2컀a{c ƙ6g7[TeXSemf R2 >}& D.p>mVOfe0g#u*ar٣ʝ'0 C >9֥+ Q{X 0@L~I-C65e-O[s0!sr/VWsK``6 \H"73bW% En;|я71 (U*/Z^ݖm:I1Ac2Y`c˰Wj,20# b3C {I)?~(ny#O̰mْXT3C9X(A^]"ᶕjj0Phj@A]as 5dN CFa T(,@Λ\Vay@10 `n0$5Qh#.KW"-g, 1 xAjBשׂ^} *r#gLC^'eu皙hR %Ga(C#t&23(`)H`C ;r $0 t&Q-ѬhU6 o T^|>a<0pc2K^/?5__kRozO}#rxL|2*O>>UGa@Z '>'嗗aIOT#I/kGBcί;mw FSK-` J9 mQ?8]Ӑ|>LUOCӮǿ<5% ‚8 d!"#dnw)آ@6Fҷ6auÀ'VהK-, D]Ѡa= T4+&gH-xue,D]#*&gv4L+t- Ә,Kf$(BP)tDJDd H\PX@T:z)Q)x;- 0M(QJJ!!r` &ɡ ^Je3N$ԥ= TZivvNI'(8>AgCaI:Z ]1f^i}BnF ZzE G0hM^V.ϵ'#]/yKP):yl[j4uH*>@SI6`!MFzh^TX!ɸ bm-.{³0"D6mKj|Ui"am1;E"EfQy4}Im[Euk61 [֓ӠxZd N7&r]ᨴ7}B4ʥO:hJAcedܑYF `B{4fuͬk`nZͅM$k+E7[7ymZIc& -1Y4/zUR_HzG}\*)94Ai@ V7K|-!UQѴ[G.!CY:Dzå-Aa'˄$a2bLTKK/hr \&l`FzF Ǻf4toSE6ryޮo0C}P8q81pJJ $&V UkՕ8!"f#~L36靈ޮr~}-ֳXtb{mRL+z Vd՝T\~(Yk@.=yaGZ6\ [Bȶ@}BIRLtҎa",H*>8{k.&o\%`1k^>PZ`@fҁM$|m}{C]aL `I=3J= 5$mr"68Sz,"nF_v D} RG2jz+xjiiAnuBr޶( "!@.Q.%0\R{+S[QRa O]2 r/e[a끀jvD`92Y So8۫ej}Ľ`3 vkF~Lv>'ϓ.ߎs֟O6aiD@8¸K!cK_S:cH+eSc8 u(a B2)Hgf*9֜Y &}.fooe&zQ&|JAL/ۏ= ycoҹPǩv@'3ec81SAz'+4t&߶ f .^}Dx޲u7g;EmEMpw&tb"sJ~g+pJX9^,nVhu"Mǔd0!zO;@3mRg]Pu}Iw6\\wbNޜ ^1Oɳ\W],qxdg+@r*|p>Vφ9yv| & MJ~'?*E[VLWjᛪ{sv_] ]S,]}oeŰD.[SfՄtWuO1=@Շ _w}SN˙^.iYN Ww__o r';\/. rkvkxJ_Mg}7oe` `P Kn RVoYv|` &” _Rhi}1_ FxN{vׇu:oۧ0,ʑ_鑣aЄ 1˰E.+̇L~~v;Ͷk^xL aptr"iyRŒ.oL,~ i UA*9O?'7CSGoozzs+NO Z)mm~ȿmlYsHD?< D:m}~DHLȺ &>S^7ש5Ծ8:8j1r3 [-.r,a;> n0|ފgފP˱e^~KK& C\Y|C К۾Wۯeݏfxz:vի#!艬_VWjprCfWT9usf?|:=IZZ\W#1$q^e46o``C# [Z&hA*)ǘ7a>8ZW0$!Ln;ӚDg|Y5J[ȶ䑟/=MKәA$9=Cn_f? C7˸e0gE°57`&-31S&>J־E =7Tj`8L݅MOzBLo{Æ(g@K öR'|jY #ٍUG iw|Ӻc]kc0tY0s{\swYoP8nݺz-% `(17%7q0*K:o~o- ! 4sxK|'g 7ѧӖ\0UeM[ Іҁ 0nĺK*z<8sVj=;(L>,='Sy?ιfIxl#qD'}[ `>b\C@ZJbVhkJxddrBޙ+B{!E0Xm+VXuL$?mYG,VpXꄖZ@&P[{|d7`  ƀIޅJh.mtBкhmkW.puQxG(Nе(K$D=Ao &a߮x={"^e騽uE 5 *eE"vqx~hyq{ aglCzŏѧ*:E C5o3Y5r݅ a!ݐP o&h@O-C'<3yTfzf$ aqq|KP$ !@Gs( KEu*dž/)tg\`?a r!〹eֹoWr.1k'6 {G2Z:! M Í"c~Hg}Ppyg$I%"5)b@j;A2 eDu\D0X\;4֣W jSNQ_}D0 sOx*0 k'A(SQE-%^ !1Soܒ9}AK7nh Nci!RVnk< nE᝷c\Y5Ѳ*s.qhq[OrN%[KƝfKT2fhP_|PiFإ%8/֦@BUu(Xe_e۫àJoUPQVãBs]v-OƌʫXrL4QULRpxeqeC(B'`8/i_rwQN~,gF= E1 յ#?̶֘<+u<ԫK{ g_8H|[' v؟AU^l{=hk;׉K'3}W3~6L]#*M R"aj8#+!*/&,4xj~y~N_ȽCh4bݪttݸrMFD1PCS`Ph(-p>23 H2Rj) &ࡃ c)~k+G3! Eng#2x5ȊGd9`{J[,^$W=Dy~PI-uO=yx;"VM,*b qG0No8ȜUhF-,Y(= U|*k,=71CbaPPzMPxpU \>(1q]{s'Nh\ ) U3p͹7Z\"¸Qt\XrR2Ӑe(KjHyzG? J| ? %YK0 nfEb.@k 3Al>#a01,%3$6 $ ַP.]8~ Z!;(XlQ(X%p˂O€JaXZ !8{UC\oɳ}Nà)ȑڵw*s\ZP7vU:A]d&4sAD0,GRI`Pufr,s EA3k>J֝ә!:n!!!\a8\C쑛) 8!\*{bbbNkm0. =v avK)fnog*4xDVU6X}u cZX70? tP[~{`(56gqb*@`m md6hC4fRbML`DD7kozDx4-e0 UгM}K#P\K. S%2|l8)c^L4`-nYO/{RګR F5TAײj~Ձa)on% ,ÂYu19 cgs,6#$(YFuZ|dRL?쎦fr*<4a~4 '3UUy;zh"E#96ܿ5!hkٴ!lgUHH,mm1~vEu]9nb08+ai1&WGK\'d+lDḿBykC6 p *H&̇N= \vS|l1n;  6@:eKGO[-[l'Ħ5LK cg%G&ϼvBA4͏&u 11O@[bl7M"ڐC|G3M` nSL|gm, 65b#8:F j|ʈ*UiWLZZ؛qWi"Qݗu!a)[DJdg@v4yQ*;AЩg7KNJ>KOY [p[FIC2-wEoۓ0Up_ ;x՞SsʆM\vXC7-6D2AO|BG F 1>> .׋epИC̥)B\4O@VK]ڨi iQ '2,%y8 kh< .߭ۯ,:?h0TƤ0Xӊ--0Gw$Up+'jWamhc!пDaV}in`4*qdP%Bb1sEb;o.+a5|N ߥ{~no[?~A2h$9 /&> 4H-`]k 3oevKQo}N ^q;2@〳 @ֺ.{a Hb W x~-}Zk(ղ,deEB* _<vlH}Pf]) >4XWgq2hvLg;3 ÉYM0 oNtLqGoHԖ=c˖p2DAT娲1Lp*ZƖ`%) ]egKh9Ǿ8t!zgl?sjJv *T"-@ &!kMrD2K?Ea(J-W"hE3Q Y_W׿w$%̠"9$a 5rԲ7(]_ON$Qhqvɜ> W@ȔCqm*+S xEIyNkkkH02Rʯ<.~`pyhG۱cKFL;sj޻w:Nl*_fԖ-[I|c_r~v̕nvGJ\a,8/ '"AbE} "yŞ0v;CBNq`3S0rmhqhi%]w(;T/R=z\A'n;>`Hp֨`;lM?hjkk~_xHdo[9F2='Ǒǧ5yvmk=Cv>>ob2>&0D{Rwokfh "~Z]U٭Jf"'-;n< D{Rp꿤PA\[5Č~xx7yJZvſI)ܖ,S̅!zp!H矟W w~/׭gr~ vn\A ;UWz `/}87DW_XluU}/aȨ0!JԊhXpE31k-Rڛ@![MP}ncI6Y r|~ڢ/a[Z)$t:$8e5qٳBCf|m!5Z :4[-SO}zGDžﱝh-:G8O@ &V&՚ն$gHS4k9,`HMJm[R?r*D)|sz+4њ|N9U,dHbj^Z:~KhTǘ3'T3e9\9g!o B&,8LJx!ZN>&hz4À /ɫ%/K:pN88R[Ey| KӮ? k#`xrϰ'ۢz>d`HZa`0Åku)Hpy"fN /9_=>]%qA7\3SK|K@[CB67i3GJ֡;tG[xX+obh.T@GOvGzvXzW SRЮih-+*2qKoqG CnM oGTZ:Feh?yLKvMoE:z$Y` v[yk@׀Yo|B`-J V۸;7WS _psGh" WCa#Qeh(h`}"fTnOV ?CCiH B]z]?tx(Uh:,xb+9rs樄$+ɨ Ƨh_2=Xbg4bP&1Щ3G`!Es;?n_\PtP[CS L&Wd:st:l}!clnazҵ4fqfQe lo4obo?҈Cn>BYD?3aŞiBMX^ -'ň ؕfbfgY^G<ؙyz!tdz,B ?շ,[&c6Q]b̞:S_1ҁb0)F-ϒI˨;/$~ו-%$y~#P{5?%H:0϶v##g=x(nȑteWx :#<ºtk~kVJCrk"XvgTFfT"9kb 1Z/Z$)q6gZ9B]3@TXxTy= p?Lf_tE]weʇe~質5at ZN:cb#P^Sh6iR3.DDg:TIXdzDzyaRke[ܾ~@Nԃacq6+(OR0 ``]|Aozm}yRiw>ެe BG>ɶXu8qBē!*RCQ Q㉄ 2^3;XYF y|_WD aiv#i.o5`ڵk_hbw^;K"$p HI <?@:jGauHEЀ؉dU5 VA vm@_.Bf=0)F3ƒsB:Iv2kԨKb)ok]@ `:KCA3fiͷs@7PU? 9lM{o^ `(i2 8bɂtGfY)Gԗ uE^Ht_ށ['q0z ye7b$J Exe].A4 H3XvpI- ,lmO(pOS;> yc3L0Rua΋X08`ffW= A4Ķ|W0Fx>8BCőUq=M]50@ 7ۤ%Iۓ!?h2?r: ѰIAՕyn\-6&E.XdS>Na0Dzgң$SgYh5`ef>@_@\)%9hRjj#3ÿ@Y'iok )75gg_ I1vX[܍,A ^5}HJL<3[ {EP|N'"anMލ t{_Ƨӧf<]RM֞)V%_|gDB+W/*wF+'ތhAN4@TW(Y"!5՜s~N]uudGMN:9r!m? #n>s3SHV// wOHIB-PWY`nz7L="iuٶ*ÉfeKmc4z5q*k-lUfIU_6xbCit?o_ 24d qH$N4'@^ku #7I`y"I| &iǙ]0h^H9 4I/5PUWTH zÿ@Aw`Zs Y$Ԟ^}b Q`pxPLqB^p*'^'e]޸Ϩ8]- );d["gS >6B<ïZ/t4#4,N_aV>/쵦 K^H\/ݻKϕh側3i8:H%l&+ҖjܓD6>A,ݷneQr}R yA_G8 $ Tޚ\RwM]"F\̕G-*?pi#D:͟}0gofbR{tg%XuRmPzC_֓ǥ肞J(='bzOf:tXSX >k6f`؜b2% }z҃4ymPˉ{?)h昘 rb\:hh#\3 U1>_'sK930pØV nq % t49/bFu"R<+T&Фk5<ט7`p8vIZRWZ/,oMzOR̕5GUwN4'E[g^ZRN4WN4ypA۔4?nitzOĒ"wg:*a[+s鋄Y7%X:mv'V7Nf$̋HPik&rw-,<11|Y8,^U@p>b/ CX &wix̓416,ya~`r(\1;c0pKI)vE_gBI]B1\h.taeoެJ4\a`=uØc8P:8<GX (9 ,<4jN#sN4Zc<&IO0 3;Du xI $7?=>}2 ېP0L>`h#kt޷ .G1޻ÅACkZfn&&Z0w[;.\^{84 ]:K>pR +92%2t`5RW46X 3 C$zS5XN4Kv /YBNlp|D%fzSvYS/󬼋6N ߄aPO388cnv_+hZ;GY0'a dsxc0 Y<  yeڄGbW&"1 ysoW{ݲmXuqp]kMItA`í6";qN¾&NI!2 8;ua[mžv3rO a׀1Q&s~п%q"KZyk!VW#xv"؎cPD\2^gRV:sC؍4U.WlPa[vNa/ EG*`xܨW~nR"8s0( h [{qgF]gJqh:~ݸqhZwl}dԤ`ɂ"ά; ٛiJB[JOC 0ﳭ )KYGN)4T*8>Pom8U{ R,OsMf\'Ȱ)P}m 7]'jUaDaU1 ԯ>vW˕_Ye}2#?{+[B/E@U'V SFG-$j޸1qB.H8}aj ] Õ[d70W_{˼E媗쾧;稩쑬µưT誮AIh𴲱̬Ѽ㪵ʲ׉̺tヒo斒\킺S䔧󓏟]泤lyQᅚі穑Ž뙨΀|wf埇}ȮɧhѹoїzfٳSP^umsOZuɢt~qkonաݨ޿pmtMc҉p~՘Tا}J֯RkȊځfSբœmXOٯ̳火[՞e]z؁qN;:uwovW"A+IDATxXSW!*j,1!1 {o{),{Oe{ZgkV~G"$W>ܜs{s~}s@[#-)bykDLXLXLTy"4aܗ'O"%,;2sKM,3'jaj1'L$R/OI,Ro+7x`ńńń *h/vVAVH~DB144U˙/&2r%_0%:_zrNNYc*I0rBv&̘a"CCSXY9vu\:<)Yiط by=CB~Dyil'Pw &vщ Z^w1yZ !WXB+ -J0Ģ{3[& a[ !AXL+n,! SV/URtt<1Ej樋(ɖT*$Pt\0f;#>OM4 \Gď0ͼ;llm48LjajA@g@;[ٶQT ejǔAas- +ZUol;SՎ!o+ n!keؖ@y[Mʶq9jx<[]rR@Q tҤϔi"Nŷ:3>$5k2ܖd4WUnJf%[:V-I_ćpwphƢ1>̦М vh, ]cce¦h;b=eWnaGW6o2qlaiNpS\U#ķۛh 68ˇ+ |Uh9V`,C_ҋ\tWM<⁦5ǫGGV>5ȌuO83zuty-:1|pX,AVs[8T3TiE1\"B YbC&B}BM ohFRb^0`8!2&ʼ8ZU@~ XX;# *.Mfd]#d]&U#-Ϩz%TUЌ4V 5 }PRh5m[Gtymx@Ga'vuLCEb5 =t<>WxRḟy Q>!-cÌ`sd /#\˴L.jqPBmC5"J lh(, vQu j* [<cdi&S؞N&҂|J ;Wy:T*{n,qQ)*}3ٱQE14%j΁& F:KRDi/3MJneBV,^O %OH&ɨZ-"L E8&gm*}Lنȣ$`X!b̠xKoV>޾ֻw`38NƤe DTH1}r/`9ڍ9 ? tn~р뚌>Y n*eEcD\^9DdM.e[-bZm/(?4ǎoߛĭ\V]+fk+" 9svjB]Q+B&p.|v:Ί]dJfjCr1#Ym=,JWjz sra>Tò2]m;B6I(mOg韷`קּ]rc,;fKx阩VMËdFx V2+0(osX/ml3Kt~·~Kn?D GK1HgK^t}N?'pitԩ`Q~۩u^ Q>snG /yӼ,鍻fuۙ#q]|om}ݽy^"r4y{ƫ&(FS>k;ޚr2ɴK8n冗>6,{߰ aiػ}!YH>!6E}uW (}M?. kNrA {op}lgLՇ6|izKT)ωep.~| ZDz=כcrq)P/^_ lGt9YC>R;`- N݂kpJO?#$ D37 3?=~y9HŧD[WaFo>M7At@?)ҩtvNǫaixQd_> Z޳Aa ? <6&tibw@']8z_v>uci&. i쮗>[paM;#-yj|PMPUaKi?e%Ä# K]-n(24W5Xz%b*۝sf"F6[i(D~ dmZi[Z hǢ4zF~΍ ?0eCP4 iF*4y~:(_3`IJ5-:yuFq;38q ֯ 5LhEXatWE Jb27}qҕܒws;@Ђ܁~B,C;桋0S%le h1` c7`ΌI K^aL~jb|k~M 0lU }b "_qYaYK:_ժ&vʳϗc5'wO(jNZ>GX! )Pّ5XgGIwȴ8_fz@ ?phcW]ԅaʦ:fT:7da@X}6n^ᖁCv1C>>Bi ==W%lZSB&F]]R]k/C{aqY=ԎTPWhe~u ,@xR*/R=|FXnVb!a׋::W۵W`vhK,1\HT_ u=YѤ3 Oo2&%s%fiazd&MKћ\67CFZfSOTXzãj.e= G}YnGܴa{ͦMz+]>0<·2/I׷w_f Ӛ Wlw\t=hҿeJ"̥i=C 3J"5ɀtcp=VAG|7o &t9}J+4xK3k]4vaJUK2/3,&af]a :.7TfQնUYKU\^{Xz sE.tcoReiCvse:OnVi%츔ߛm8P=%R_ yܗBMzt%ˊ̦%@X2C$Dr1 fv{TASr4\zլ)ɒG,tEg C1]Dجi xxSfCXBf|22YaK>qS@GR^R3ǬEL_ k%peg.r3##Qp ^ɍO1LF M#(Yɖ S`'iWK%0kn:c!&-kiKpg0j*f|+k%KBGnl Laɿ,$e0#+t楟ea̬5hq1J2 zз<4GH?hɦUYMŃ#+2-<@®7WdaQ0#ʨ*czZd7KGݗΨʲ #nFYk,0f ],Ht7@c-u3dhKR ,a^f~#]-[ZQ7jQ`tǔ,נaekQ@#FFz.Z/ilqѦگPϰ4ȂF+t6|ކ5)K$\ K]0r6le=3] 83,8PUkffVZX40>r0 -]VCj<ӌ,QComH~&{jP7X6,q ';4kIIF-f<^5=1I3NH0a;IHW=EQ_#Ԝ֜7k)b/>0]Y=#qѽ{{= f^0ʹxpB;+q`(S[N QmzȪӪ!3U+5Vj>Divg3G X!~._ 񱄳1 N`Ā41LbKe%l/:䠏Δ^2XўkCXU֭crb"Z9|Bv[,;S{O=g~O|K lx_8¼b"15ٸZopX z֧Q)y9z[xwj.;딟[ %ܧӡѳ~Elω 4yO(M?~p÷;qi3ig/}LXizBj+i.;B-5 a5/xXDECLKo%9;tg 3O\93{ӉO%-nK0FlxYcV# Ok8w\0r{+S[m}#[;5=}&yb#-fws iC[a7yOI-_{9o5F8;})xaw|DƗkKKMamXD* ^5AW:OkrX|>3q(ើ(\޷[ df7߹.MH< 1anaaDqcm,A{" U/\vin'g&(|dck/9[@!<.Xc:Z`SWR |ou%,!] Ӟl)*Z!(9quXǹ=ͫfB3`EJ0 {zi-y ;S}\ۺ'i^G,aDv] ]/ N衱vIm|Au'؂0& ܜf]1f:_ȷ{/_H{ԴxU&O26Y qBx37Zv;ųh]L-ݰBB,~0-1*` Sy`Y_ڲ˞6y& ?a ҋ}ӱu=LG/#ӥK&~o}pLL5ʑy|Fڈr8(/~PLa+a`fKCtG0zIhػrlئWK6d(Qjf'܈X 89)L# [tg%l6ߺ-pGI"ųVϝ;e9gϝs̞;1yȜń;g68a.¸a{4>1o~!>L{m|ȷ/JQZ|~co~zMpȘkg{ O Mgc6m"N|[ρ;wfஃ;st;{I'&l!z&szt9s{?|0a8y?~Ċ+jG8蹢&}Osu_e?'~{Q޼4~h"|嫟/^z?Gɯ?^/&,DDtsd cwjLy!w?c|_w_uSH3_[2+Dx#% Mxݿ5~0Ӣ&f%sJN~ui /~ l،~aw~;#%;0A#GAG>!&,,O\3| ~;vN{!c/wa&{pn0]?a#L\"!u&:a/Ì'pnrOOì_B^-y؇Ea}D. pW?} S6ԊPi1Ev"...7*.'Xng/4=)I'cjII^F/'Q4җ$ZzgsͰ;kV *N H.>.dsҊƭePߖ}+d<K=e=S|*CuV1Q@UꮶfE)(Xs-}"5~HNy}zR>LIlC_(H" rV9ϊ㺆jia@5+ly5܇?wsQ@[kPs(3ETrpJJcg8 +Fի*)yFv(*)Üػiu~lucOx,lxkOk kTWD hKQv^,,[a8K~݄" ճyog#p=ݷmUvf("3d)ohu?$g]α'kc\Qj|%*=:ekݠ}'E UIϔͷ0L)S|>fDʦϴyF,~HkcץX֤7ZYmɘs-bUm.tT_!CJ/?iDI ݙ[Ӫ(Un:>ٙ|MtSj+kS+lUkEڵk]9cxكgϱvx%쵶gOxAN4Fvw}׵gwb.Ȼ>{-m9H|*>Ŋ񋖱 Ie 8!ǢU[si)aUgFځYҳYܘì]y-$ler,ѭ'Ug 1On۩!9Z`( :)[梴 ??Icr16F9(4I 0CDXƼؗbET#,V_#j@zcO)BEǔ/ל] NJg3g겮[2ȰUIQ KM1ޥ5qH|hj$UeI":56Eym9,mu@8=4&eGO%A 7~x( ³D < Z'{fQQۖWW{v`a+" 24,4`u _FMCXfw޵)BI6EcB@}vdq4Fy͜QS% dL*גBRBUrjLk?Ie(FW~޵yѭ &I"+/~GdBEBdEo1)DVS~摔eU%U~^ f#)KBz々'坝Y盛`)䭭R睞gpNPPѪEHI>BCL7;<իj㹮6bTUU᳦zžpݫȽV]wԴk~Jyse̢albd?o0x窜{:Olڜmߡ}R1}tn̖Q˒hހ)rT> ð|j;nW:vT9 tRNS~}> IDATx]omZb;QŠ ݪ)hRhQHXIhE#JlTT 7,έ.tKLc` 7;?b7] 8yyxH!APΖ[_ǟ"}% P}0t(Can\P83N24)aLZY[yͻ֎BGg8 ;h [L87\G["9g]fm\OGjA}eM ;oB@<{r{v^#3qIڊF>hZpAa<#Κ P,]XݓQYK5sE5'wͧaUƾDJ+ :%5xxe!Rf)r? Yyxʂ!O6ZQ9-KgkaRLbD=3 (dmJ3ʥ4VLjʄ$=$ki.)dultU)6i˪tpvj#o*XjKɳH`YHje;XUPu-ddaPOfYŴ;,K/c[U AYS6%UHVc< + 8ӫต&ve :3(5t0A8V@`` ڀvlӜQՑ!l`3@kdCmp4J "*'@R`MQЗ72tr2-f]cTDŽ6rr$]ˢ 5BAfAa`:2vnԘgr kp2]4LE*0 4uKk"q_FU**Afi \,KA ռ#u▭j>_L؅0K4O.lߩh&,ϥN,V9dB:[q+)^Um=rVG>7>fB%:;b{\nRkɧ^?\ZtCvmx:{ol\r[.}])6;jXu>wXv=z=ciSzk<]+Ԯ;ók$<w]ԮwE\>ԮJ_]Ǣoiu2?#g?;׽!fo,Xf̿_pߐ<~v̮CKW#>˗K{.=4tkf[fvj{/7]{/z]\^./.exw#BQNdS/ۀ{wZhz|0/ Vv`Yx]f[|v|,J,ܭIlQ̏nN[?QNkW4xn >o<^ZK܃?zt=Ay|9'5wrV*|YpY&Vn~xיb]Gf#}\W{Иu2 _zp^XOݳǮsB_çr6"e?Φmr1 eF8\2HW&Y6Ү[m["!Db`!^v_t/\xe9ґ_~iٻ =ϣfϐԃO}zڈo~_KNʫz, 兪w_u1#~S"ҥ*x:Ǻ͙e4dI-B +3VLj[ҵ"|}ڃgOX{P5aởkaGUk-3~ղ%__oq^LM}[8l猍XyG]_zU[aҳ.6hi]W^ oV/'ޠ_O7_=o,O ;:gef45_兲1I%S)/ʅk#Ȕ)3j8ŋrJ,5GVl㈮/"ߵ43'yhªfGV7+X]auHzmEtE3A'5/nFtEtEtEt]&㈮itmn݋} S+ ?I׍&kGF'7#NSWO=xơ;G7Skn_ѡE<.6w'뗦 z`{6"""E)+REt>MףOlq76t7ֱ'q3yrq#麳Ij9tܱe&O`rFQ=,vDWDWDWDWD t9pK׺YHœ X>. zP. Tp%Ky:"3)$SLCӠ+}c723fD2.)&l~2yռ+#zf+$ =BH)MV肊,'bR9BN*(GZah YD}I H^ + Tz\ㅭ1ӥ% MYI-Ǫ2*rwhCi2D9F]BjW T̸hbbL= hQy8]ЌD<5%OXbz* s .z&bVV["x"]=˱.^fTYV0"Q7eX12GR,]YDb=WKEȪF0RUbw>cqӵkLyz'81 L{:[(x5z˷K[09SDk f ˆY4̩ZZǵvpc#3~ fL"VY` &]Oab(#NOTMZH5 )LN'zFddHxU ,Fk`j$/TnMiH$eůBd%]+I10_"Q]j^K@5l =DW[#T4`)rAߑ*זgk T 2c (h@"Y.ft ŘV* _'THXEᨼG& s+KL4$ߑxAdhѕ* Bw<Ϸ6`t KS,d *zk[C ;_U$ԡ,)΁cH>=ebbkiC@=@[x@ӗۈ.ͲhedfRaL%3.յh'  reXL:BƔ.]D( .]ZхV4@ɕM6\3uꘖt+Vx#[Nm^u"tQIL&]'N.{9#ᤇ:S"KMd>ǀlj膬)V廠Q!/?](\g'^kxޑFAvF.1R.":Cڮum'K:,wLfzN㤞^'v#=|KtEˡ#]}bcfw*US' st,rƱL.6sϦڔ5{L6/sT F]W=.W/XT!m=+ rJ~Hng=`܈5aG׭On2\9vny^V 1t]8ﱉ:ϱ5|nŠ,пG2?`p/i5{Ah 'D؏eT?ggAzpytck6Ħdx^5bnr Q } 8s6/i&̩7}f`蒇:tY,0t;fNgkIUVM僚O{0u[9g)ei66l{%;IWf_xWDPZRo$.eya=8Ws1ۤd߾Xafo[[['/B?pgk6.lt _5 =k%rQ5UqKN|Bݐq>l6§ !/vb␋#"rQL`ңKՁI鲳 ,&H|:(7'GGeۅYPPOA1 !,1qyVvu=沔P& ;2cΌPQB6e̘ ]1 ,MKbr-+A5>LTbQ tz?]lXa׃,3.*>e ewd?O˳q ^ e7HEs<+|)ayHQ\fczGU"uo]|]/E5 Y3㻜d)w Nn!R.@F3!\(\T{]lR`QRLdCPʝu/ͪ`LyK:әT ԇteARRp,BOD}H,ЕH)K O=Ş7HzrfJ>]V5j';OZc)guҋMAS :+JKDku>{ypwG]5WM@ybueT*?N3"Z%6fZ軪~u:+\ ,$2CRMQd:7 LѼg|&f} ;mb $fI*\dt. 08#}R~hT{s~'ɂs5+K% !W]Zwzv\eV8U]iD\1_*Œ loIѴ'EgJlPs9e>^ՠZeXu[!_]LD;?S6 ]+EX`B./OViQ1LWFCf3J,('uv*]S 9sAD[P]}WsJ\wY+2ӣ+gd 1]-$GJ`:GteRFC~7^x~]/.ك*}EZ%d`%%_L7.VV}ђ!]8 ʖf'$}SRo`eyI DtV{ o?Nr,uZ#~Ӓ 'tXQLʂ \Ӆw"De Ϻ`t ].4Hbw9^be5_%那r'za]Ygز$~gˁf=זrT qOJO숮`ȸUae ͈9]]p +B.5ҼtAˎGt+kE+_Y E]vжԃt~xx&|zw;%KW%%Uo.اTӕjӝn󙫿뎮Nu]5۟o1oFrC{M0}w.2~>yÃՕ~)颵,wt}Qt-;}S62]_]ZdP=8;.xg#0En{x]vҌrSn|u[Ќtp5bP Cz͓MZx?,8vQY@] Gߎz (n\p:>7SbPg3݃FTc9֤!{ .qB47-w4q}cܲ Z~̝Ɏt0'kH b K3e=ٙ ld?s!/֪JotD8!n.A`FW9bM0v6B9&3h8|toNRϦrL4֗3)4wBsı I!,Fb|b8e/+nf+UzY8=UY,+1%*\f6jQrD9$QO+Uh9 4I݌@8g{_~Ph<=NP+Vz WAo^kຬY}֦k9ɺxV5̉Vʎq@Zvq?-$uK!!TՃ5 Xk[Yژ-.AWr{~Hb0#ܔ*jiQgtł[&z ěKDHwE}۾j0^4`%8tR0H ;2DA 2Yq2],Y2+KۨsZ#. >绫OpE=(avv_t0]ZZ^'=H= D/4_es`$Op &tj(;N'U3LMp[M/d.A5eOgfGIΠ-*gIc0uQu!Dwc6}Ȃv4@Qw|;jh f21I o.+"%elVkDƠ6/DRˈ E>=PZ"6բk`ppp``ܕ *ySUytI V| i?ʼfnStyÊ 6WwI= t5ݞ3N?zО.W=_Z--tHljb%fRr0w,֕giBe!YA8K7Mq&^zh|zt)Yq(UD@(hc*gy[ό)&Kzτ-jB\yxKZ񽡖֞g>*]渀᧶t$b?3"lmʞL׷/n_mzB-Ltf4x,!8]Bg4mZߧLnх=W>?x Ot]X9d~{է ҵ/1u?rկ릫7^+P[ڲ_GmufԠ8I=x-_}U?j0iu?uy׍*.Ƿos9gէ{Fͱ{G?￷c>] ǻ^},觩%*tn9."J JSQY*T?W%@GrEt!5-gb-?qĢ,8[qpTⴋ"'*|_.,K~m3NڮS8"gO,r6]?ɫ5&>l4Ԗ`T芑O0V?(P,噪􍌳 {ay"cڭlȌV"FA_fa[|"VԴOl3%DzGM;ȗ=ݟ7jcm moƁ'kz|zEB< e2:#ՖeE $L\LH61ʌ{fՖQ{үp`M7ûTԐצ}JmYMklTb ڡҕq┑,v'ao.:?]H+ %,(T`CRCɂ4fDp&*dci{^GX_ HG&t$6 Rl*T!LURt|c|3u?7 UR11MPN*يtQ̝Pb"TBLJT32AOL306Ǔ0$RdEzpxq%Im2]Lw}F#5D- p)VD< ɱ0? vF*Pk[#͡1Uԡ %^9e꓍^AYA<s)Fr%JAY"_L!,6)'X]U ˨R$zBmapKnM(B xF}6IʔזՓ2Ԗ=]dL|4m?H'.22CW]%FFz9ɼBL B'7'1]ֹ,,Ԣ骀&t.4n=m);(\G]LNbǎm.d/G֤>*|"#"h ¢r$15DwMR7L9byu|ukoh=6;?7 НEs2i`tÏ{c= U닇ޥt%,{pb׽{q̅ޞ΂:S%%0w/3Gzt+uxjt{ZN3w@w޹um;OIӡbssNoozx25z| r fvst8im㕺Z*`;Ŝ>^]2~5U?t˗KEuttM]?ν8cM1t+ÓuH; <$sw#//_0+zOcz//~~v_}nt&74]qk`*yNFWu BTOqK5 ΁|hnr~|SmYz ǡbFowrgƆTFM\;?;ȥXG齇r7t&2KOfEٹ]f8n-'ÃB|Jڙ&8y ux97ti{cƚ -ޙ;GkowC~&7QL_҇`r uEp0qS, գ3u{~=^8İ?dyW47M]4P,JN&\[mt9z9uw[Q? >dZNpc+k}om~NN.]3/̷ػU*-{LB5*kw5jPTj~d7{~=tڷty͹o^vrߖRcll| Cyhu{Ewk1BU<ʚh@Z܊.vC 'U)V'R5'<6U\ۉŭJ;_--=6]5g/={Y*>m淯KⷢK]vE/J"vJmRz?=Jz?K%]0R8Ԙ҅LCT( ʔ㢔.Q`CD+ŊI/-hӅ43zR.(X[(iRU3M ekޖlB7CKէV2uf5I_H>YJXJmv*aln隺5DBf~QvYd%YNHJZ ʺd)]1T@43qQ=+Ʋ\RC*:tVI`:2\A*EcMtV*K]52.E-(H L+%@b'L61%^%J*KĒ(HR[t}YGJyP c]udERxD; _X󡫪]R&SO9鸰ȑx DFZ>=[)]ȈLSMIjƳإF'*!!&! &pdaK /0QRJb ;ХхHccHY> ,dxL}]~$jH7B j]!tK%2B,'رu#-!1584,YRBT&# 袕m *obBD PJDȥ, e"l/T`q䤶@kuYC۾z"Imnea3D $XrjƊYUڪ c%bdDAe)VtVt%1Vl'2 NDL˺X@2,g%ǖh] k ʫ2aoa_Hǫ,v-'F%񼴜sX`LmaaɓHU5_>Kd>IJhj)"Mіj%-3./%U|)< |p/tT@<=A)[##5b t٬+nNW-6P&^Z]v^7LAJ]: .J [U`Ƥt)Vð.L$Lí$D ktuK <'aZJo"aC.SR[lH=%-]+)KO)]P遧ho(]@]o)]` aC2Ʈ.+],"ց&zBt@X]`2KzU)]2@-;k-77K=/ZM$7] Mk=8/ -lt_ Vx'1M4Q53#1z!r Ihm7u2v+[c0GKhutyz|yw}_d=#܍b1}ټKƮx4 ̺3C6S܇`jl>o#o }&u?X62Fbf\߻2Fa#Affis)0YX*5ֶKKŽgSؿ~ &u7t(xbkFLq#cuK\ŵb.h)` S/vYgp'`3fN=8\8/"D6e8l0&RQ^:DLSG$6̲,^inJEn0UddMxPV}m8zUlH1lexN)N!wP8J\]x|QHz:^E̯\m:.cy-(!\$d]r$XeuἹq (9M28iәGR8rY;iMUhSyG[p|UՅ 1]"c~J q@ҡXx}u]I+)IX~S"Zl-@WCB&ۗNh詀3d;B9mFRҴ{RLBCvH)CXXIx+'=aT`ZQ^=!F7o :[Z#RQ{ M#mAĚ2nZJ@W{q/ t2*@-`U-`tW݅Na5N]t#]/-;2;!^EX\IZ2`[ᨪ䘽:/'#m |X.gR0tJk [څ(o}ָ20YHT^sW{KtۯMm̮\F7f\tu1};4dBd7%t/zga>eQުVm_[t{L`_kjCG$ F!@%QؘG7>sC5rP9t K\ Ö^`¸ܲ&ClFY+?k3lVuzB6Fs|CDkE]] G䖭E:-;!HzGJ:t jORtNTq} Ȃۮ!].J"]oh>49#d5w ҅B@W/Ι.x8F/B|,0Fj%yW.$*CAɅʟ=ĝ3hu y;A0i¾\נ 2MX&< M^QME0|yDt8ŀqbkv}|ƿLebw g_pTUlqf-N}B B>m~ /A3"5ytKjtZg8xfbܲZkhf}}EF. k0d6V&$[v$Do QMХP:]VzdIDATV)p 7tu, QmmS$iς?C۩䅉 |cf$tƮ>ǟ"{PhIJD ^v:Ƹсtvu?Oh"Yy{xX()2! R_\RcQz- B/„Y:izsL60,{0лY,IьI RկTWZ߄R\eЃF%U*< l^g[C>lc*0Lt ;ڸóuQwx⼷Ɉo^.8gfgc7cח3 7f-{0#;<`FB˸7bj!{k6`q]I{} >a.f`x".dkpc]k1[65T(s.{ ?tg52]7[vAeX޲3).)5-yLA$w\>8eeM,ƸF?]o*foRtW IľB{ti\.6H ])Hv\[ѷ夂..Ww͹a{WC!$L.޺̩ h\75 YW@.n`Mxio Dpo!@mV.qYo] 7x&Mf:=oY(y^x:vyI6`Xm|(FYD-fteW՜+Z+[v1nB|!\ y܌WP1sv HkW4RP{EW0?c |X =9tD/G>fUH<9^^s  GRwfa7WI,@1z@VjToYk!tֽ|ISz-/)j l!F2Ek ژ.2ƣ37)J4s78DJ y^N^WN_ DF(Vec7 0a4ֆ~DW20 $S5Q,H lf2DÄ&WiZtȲժWV04HYPJb>v`;ˍ4wCr! zPtDڂ6*LbSIq+B˓iŕ@'-ZBxVh'3^ MeŚ Aa "= V@d )Q>uBGKd>(jpPc:R!NS/Y؎N`]1>yazg|XYAwm:P"B]ttNjۡ.gdsl<5]^a}rN[]d7twJ%gSH]mY%?\LLט"A޹h~W 1E;v"[pҹ!?@_Q 91 \4$KQ|㉱lS;vbQyC#<2~2ir"IcE|&+wo,?sl{LVצi ÷CtҊs>idw^ɦL&ciFJQ46)&Cm ob@ A^"c'0Z)V\$ʾjd'"hCzEހ%Ʊ̛y7owU%YAU3c_]ֶ`K:L%Ǥ[_mk^S<8&q4U!BRTmv)b"X[ o]4DFvU1tt1ľ[cDZf1qx躲^Y9 pnM]Xlk׵.1nSR̠Db7yHķz|r7ee:PQNtI|B)vՒTY5PF$!Й9Cx/ 52}3YnKCۿC2B^&iT=6I@?ʎ])rJ U*(\\%t:g#(K87,Ў2NM$ esN. @¹u7xabysŪu)v,,, VW ?D iI@HQHHZȡ Uu3eg{d@.H^_ =n1鹔?/-Fɠ|PR|2U4DܨTW bH<~HK6*G\`_;y4/FW* HD4f, CR6rifFq^eIVMA1l0hb]| rفhDy&@炏wO׫ͥW^Y­|?mT^ [tqeH2"ىK.)G}3AcALDmb`J\t98o mNR5ͼŇyZes(j!G*DXCHZes^ߕedkiӕ ;w^ A+bi.j]*M]fX Y8Q*Cȍ6 HnnF\^p|UxZaG'GtKaH:$, S!HiFQ2I0"N:smc~iy9X٨q]^l쎽ajFAeCh1 wHO0HHHY z3!Tv݋L8 V|>`I|ي*6DF&cmlmJ:.ݦ+?BO"sv|a"Jq\==f#6~8e5+C^x-e?-J  .˽YH44[*  ,.SBBL prӕ*kuu5-Xzgѕ~mU||M׃^SD٢A`>W_=@tM7Q7P$:qwFEkR+jBC_J53E.w ]X:]j6V 2[c)BoӍruYV8ҠA a9ZFAD^l rGj,#DtQ}-l W/č9%fFQN X1] oF-ic }Gj_ `C!=78!$kFgFgVoo7__~vRufg0SR b!.9po6Etl}b< W,OXkAg P>n [?oIS_ߒ p PTecqZ^=-)zV '/NjWI( ~Ik:VO;L2J8P%B@t2C 2<SX@2ksxO$#,IO4MahI?Ne T<IؿWLMeh"I49|DS J`iF4C}ae@٩B&їtuec_#=f|-^Sզ]iH yx׫=FSǟC6N|X=ͲZMtqt'$$CWK s:jz7] jL c[9ߠu >j{ f*dZƁ :~y.x<F=X樬ms)&N~ǮFi]:4WDWQWO|ݤ刊iw]['vI?Nu#ة]fگ;Q:h-;4ut]Nݼ$Ϸ,[~룣ڙl{byWx]եN,>:کMT5>ڋ]רC:t}ltuߧneM_?yB%t8.=7/6kLmum|~ڶ.8@%"GL=LCFŠ8| ^Ēi.AQaZ*RO@\w.LBF#?}lHvv9Ю ǙU?iڅ}ԺF tRZ<=\9s]KF812YRj"^?9f!vaO~+!1MUeexU$7Nh?zl r]d]nuv!:\o!d+p^"ԕo1w^0mΰ (+fV n^jE7z˵̓#5{d$}#TvQeQ}Z䕌X9[C#~}AB}HGΣ^r]\.w0˅ʭvmr:]inw.Ѱ+aZU(?U˜gkҤ;d u%rttT`a*JR|Z-Q~VK:5Q.BȵzإR)hf*gƞ:a0R< ސpcZuSys]G7إ[PJ*+K7J9OҹwGTB~ ʊ~~ -ys]S t.Jw03?imEggkB*tZH(>KG*I }Lsp}L`r]beqe^xywOA[ *\/ArQ+fQ]γX.p,EÿǾԞgW 7E֩;|.>X]α 7E+|&w}> XxW .֟Ʈ7F5\wEm7;YwsTF|H8ήAgmq>,wk/.GM7h?v8Ʈ@?ǹcUv:dA1r}prq^yN|2uu].jv\]`v`]]vF,XaSr vwB>ld `pֵvwd0``.;oI d̷``.^n{vI' U Ps9Y~ü@gykk]-x^qi*?OB8زnr٬&$]^؛zXA``ɮBZ*%qIE س˗Xڨ~^B7t>I2o/ IDAThXY L${#: B@@ޖR"tQUQ{m׵komwfa3a5͌!43,}h='􄁞z7'} S)Q`<mzzjˡ"lVd#Œk3W9+g-&ȣ6{t`~v"PD|uG:/b}ϒw" lz``zj6Eĵ7|ōz؉ ץ∞yz_Wn;vГ;s-櫿"͘9CKDPR_Pg\>/=5ح_vcwT9~OZǛ|*բıկZ'~frjʳmi;гs'k]v3s.3cfL驸;<zv7~tpP>+H C~?sgݍгs=dՕ6/SG{W$.[R{dg#K/'Bg@O؟zB<.OY,j̓ɓ٦yO#m&y$/N#v<zvSo{s TAx>96Oĵs@v׺eUgS$ sAg?zrpU= w/y֥q&E6K}r TyaԽ |IzUO\_-MoAǭY^^kw&m>@ɐ SE.~;d]7`*K>\TCJM%(?rv(xכ),igD͓YiРA^D燣RQ+mNpT/M*mR&ޒ(b` >|>4w2_!Rh8Gپ~\47j}O-ztxs8mrs+Bg I3q#&SCф>m= P"U$t72Yaq5)=Kg_[zz$(US7yfe)=DHOSD:ppޔ''n1:" -w!gQ}JtmH\E9Q^O5H#{((K:< ESO%^'#%&g9T2C"ܹ5|̆>U;{ꍹ'gJ)j^*#(]*XgGp 1 ?wc_Cz,yT&9%ĵ6xN8 GA*CdžIe6yѹ1$f^ީv\c$&TӋxUZO;ċ><O!|f?r3}π>&OP!Y}R$FIkd]7'c8fVytQZ@zBO =OЩ%ГD/z/3}FK2l Ǝ˂82hGl=A^ z^=> M~zBO{ν6JvU֮4-ȰzOkSGO1Qm,5E耿FOE]R`-rW+?79k~=xiM#&I3w'O}N{Eأ9PX8F'@$uDTV5ݲ(ϹmCKܱdaǣ))3. LyQw驫+&!S(`X\ha ۽f~ؓUAśKZ <}Bj_ܜ:'ԑzɼu~?='%H/I'M6z1#t\zRIw=o'\w T_ܛ46ݸpA/=1ѮX='[VB˓ z;S9 3ؿzth*X?ziVyr8q+GsOSO&' xG_È4{ ѽyijX9Zc繀&O(=\}Iƌgޮ6ݸ6={r[ґѓISlU=1cb~< ^: ;tgJOSz9Dxߡyʡ.|'dV/hA6a |{c.ۆ>uBA g-j3|g0XCɘZ+m(H ;z #_x:wH_x$[抐wga*e{uXJa0_#p]J~nLox@~`3 10t)Oꎆ V8m(Cx |Vu=8Edp J] Q3-'!My=ELIC1I+3N^_x<Ͱ|X=SOpV̞=k:?r=}*T\+wa#9PyQ^؟|*'IxLA鱦Ҳc&U@iYKyųwg zBO=ߡ'\ 'zBO =_zBwgIENDB`homebank-5.9.1/doc/images/pm-check.png0000644000175000017500000000067213604617136013216 PNG  IHDR(-SPLTELiq~S(~T*{Q*xO&uM%sJ"1nH"kDf@a<\8Q/@"Ūɸ±^][zwqô÷ƺ̻ò˺TTTdb^gea̿z&ntRNSMghjmorrux{\:IDATxڅ@E ʨٜaVCܪ~nb;^"HQK WfLЩdPJqFR@KP)4>#Hc.`&ݛ6%&Xt-Hv<68๟g&h1IENDB`homebank-5.9.1/doc/images/new12.png0000644000175000017500000000177714617624320012470 PNG  IHDR F-=CPLTEGpLiق_dHΚ7ޮܙټާ㢂쓘륣郇אַ뚛압읞鋌ꎐ됑뛜똙ퟠ파sttustvwtvwxxyxyxyyzz{|}{|튋험~~wwttyyuvnonojlnooogiijijjkjkjkjlklklkmmnlmlmmnnonopppqqrqrrsrsstvvvwwxyz||}~|}}~||~탄獵ܴWtRNS+-3BQQYrJvIDAT(KKa.xE >hϯ@˴œLsfu<Ն "j$}es(`*۬ ap 9޴n٪JNKFk$v-]a>xΪUoAN)J lUV=htxQ=>M#cs,MGu&f:tr_W}oo #c뒥K?A0ŋn/&a7&yV2@/o>r3DMAP $]IENDB`homebank-5.9.1/doc/images/d-info.png0000644000175000017500000000147013604617136012700 PNG  IHDR(-SPLTELiq4e9i7h4e7h4eDr4e8h4e6g4e4e4e6g6g^7h4e7h4e=l7h8i6hDs6gFtHuX8il7hAp6g]qoWh@o7h7h^6fbdقuj̇֌؊Ygcʙ܍Ӂu}|q΃krraiW`yh[ǧ݆Ցى֔ss|Ӊ~Ӓڃh|xь[Lj|͇Zev]ǃbɅքЄpcigbwцւwtπ\e^ȍ\Ǽvяxʌdʋzʑڑ&R70tRNSWI[6| D규ͼ3IDAT(-CcaE۬m}L&Q۶/R%R+*ɦ8Ǿ/-qtB h#>7;/@kXNh5z=^?sknwg+##>)_̰LpD {vGպwGirZQW'\iºQsԵ+7 ˧6ZԀݙ̼~LJۋz 9~sOF̲߯7TܵmVn?Y6a6LIENDB`homebank-5.9.1/doc/images/10.png0000644000175000017500000000060113604617042011733 PNG  IHDR exPLTELiqyUHyUHyUHyUHyUHyUHyUHۯzWJdZ{XL|ZNúc|ptRNS/b8]IDATxe0 C$R(K۵,[iCVR6H?zm_}v/s Zn>\Q!~C4yR.y <?|U٭<._Kԓ}WK3xIENDB`homebank-5.9.1/doc/images/54txnpopmenu.png0000644000175000017500000001130714617624320014110 PNG  IHDRBPLTE55'/󃅈Ȝްhiu|yxeff涹ȼͼzz~wʐɳóҷi^C럃Þǽ̭>拋v{ڇ荸̴˻ıڼ][zjZ{tj|u~ǩܪɺդupqo{O䨋p鶧իղ}|z̚˞fOLVnjtz|gwV~whԵٮž27:Y[].隃sq鄽ԹxhYb]&eep(ܿ_apd[.Gt!ՖxGBp(t~ZQepGFû,ޮ0W EK8߷j)hP! YEf|%'f -3q'5u̓CBxɫpG0lj'E1ռʏ9;vLGۢ/yw` ^l7yYlljyw򿉙K.<8c޽5s_ ^;;WĺS}/ὺख़Bgz aA3o+ޛ7c޽4$8"C/‘3xH'I҈phI6| fq[:q|'(W@Pp/A ȯX1Z;tRhU &ovt^W1' `Duun{\G}oDr'\ppȡ1)x9ДdžE@/woA? У-YT:s,z#l?Sp0W^͠BĞ8P*[o;2gzoI3+!8uFzXd=h fՏf QWq\ J#Rx1p>O~;A}ao$ѰHurL*>v"qdh;TY˪S5fƛۏ{:9yT|}63zy 9hڞ g A_K_&[!JDT98ٻt X"R)6)9 tӤl\왢8)Ch`bQJ?zNYs:/,p0`oDaNdn`}wZ`8wKe jYǺ:U\H;Rô{>!NmwFnPas]G8)jiΒ[K"_ł9T0D6q*0G2!q97KCIWU5 Rt 6WqKq\ݐ8W^ShN Ȥ<$pD۠`/﯀U*"soĎ3)툿'QRh5˷`fp ?92dd,E GOS5):ˡf#윕I^bv]$CɖH_Һ\TW +tdD$=l|r'{fGzv;2=]G7kF!!ӥJAssl\ sl=?^y^<& G"N, N#xM,3mZ\xq.oc>Szj.qJto ϱ'$1>Di4r%nHKU'׶(5[pA18 K .@LrN@>&|  DŽ92Jr 2XtU&[h#L/.8^t>p)@rSrnpJ8P&Y/Wk{R'Ō.EزCg.V A}#Z%߬6>Z^47ky~2lVؼr\;< FD'r&gNrce38M0$.\ݜ`BGn-Xl{(mU"rX`5iom-&%suB6Z JMZi%4P}A c?`0Mڮ٠,ta;smnfé.Zp9׷R5bLR-kRl茠vd'h6kTl}PkEtG+9`I&!8!ޘ^ImD-e|ˋIF--˷vnW& ͱQC<4J CLFJLdgh7gjj\`a=CD:(03'+nꑵTXY낮Be|욺pGJ棉v늮-􃗶żP{f`q̯bh̭nzU 8hs|ZyY’weӲκ@m_y ;kSQq?}ʉm"IDATh PW%4ؐJY:,GBR8$L8$@#.C8$%.sl 07llNe78LI&vwfvj_ ;c0 )+hԯ)}uZ88oBܵF`{lQH iE{s𷷾57ydÆ;=z՗_>/~ym[z/zϞ~H[.%H[zʂ-Q+|UЕ=S۳H[sz}ajZ֟zݏ5-ƟީyͤȺ5yõHo:3Iyzt[vX|;.]y1VYCv|'n"'<޲|m!} ]}y|ҝ?qujimý~~ׂ) fs-Q[:-c0POؚqwcf[Gݗl]7-%կ2rBEBL}:N˽ԉG7j5Z,נknn~Mqe?JF'Ʀ`aXy nXpںt;_#`[69K9mJ҆OXƉfʵ a>so.X'R[pџByɂیvk`5OL-O[m7]_y 2x{˨ٲڲ]CtɂO -M66zqb/ lM~-8Li!2e5P&-^h^}cn~'`![I)3BlB[n\h-b [: [V6 '6whDq70}ͯb_9F\ٿl4ooBigghj¹m"uj[(+ֆ~ݛG{Wen['p$>[gO)xQkӌ3F˕+Gw W\il3^3B[3fxQؕa>E5anKg|]v[85fK},F#n;6nÍ8fl5[pԘЖj5p:p0#bf>9cnۗ?x}s;[_z| Cmp$ Rڈsg'5NQ:ۆ[5uh2Oqoih0q9v 454kSֆu۷_{-ΝD"u8'YGa8o5jh'_ܾ}6;ezOn}s#;g6;u{֫1m˼[/}ML:?ԯN]^yU " Flܶ^$Q 0\ mm .$^%L휑eGښyWsߐ>i@"mNwB>NBBBBBBBBaׂXBRyŢWG4N+ Ք<0 ,;DFQr|ck,I9"5+']4=^^CE g75/<%#iQ!9xȥ6+ BRX&IcZUw_[D1,w[숮VRmπWO> t ;;b`@8-eIV)Hۍ v0R-ޒM  9*9ax@ŀ"t8lD09v#"-'s@I ?t@BRn:3zg9נg#N1"lvшxlF~k,"-N\:xlhgr]<4Dz?Yz,2e+(5C b+j!0y<:[<#^Nz‚7<2tu: e܈mٹq[)+Εfţl%>0-i|s垞k25:8;$3C**=+V%P>ՃP Rȇu X.F@ji tF綵N@пAzn<fpuULx8TW#I(&(b[^JjnW%tkd:O}uDlegVVHT؄$KDb( 2LhEild?mъ玭t;JJۢz]4~{lEFqHW!SFnH:3)0!)h,4j=U٢+LQr:]JA%XY3?XXD_];=wLCGѵ\\6y;# ?l1#Ewߔ~?.BӖ,)a3v1BTJ>R"OQN-Wp0BrB)\@ |`Z'Rw  lXgwL@(OtmKh,"2,DE(LP0-P(Зe2^.\$_"-aJj@K e ݮDA[%9䲢|="jX\8Uq31n+kP@U1EbEűbQ+@VP0qLbҕQCPVB T,e:N!*> >l-y^Zt9R s~nT("rXJ( P{#B4z)e:j#B[S̍aAڎx/$LNiKX!J~Ћ%*NL~԰+$^,`A^ϯSHxIjk94K#Q%j*MF6"4 ;}wP `]XX 9 Ɋ?I,5 Rad]ߺeꍞ2 }꒏Dlc1(ghak7_rN zalQiK0<][ @-~NL&\8`[ I232I3ءOT0t"0C1bpזy{yxZoOo׵k]׺z+Bj'i{{ڪ) $JnE^U^1L$Ea1VS]XG 2Ro+*CnfB̴S}cQЬ]5C0IIq(!ls16̤HWrr}j޵EoRCcFMj".X0}x,vrtsB` ^!ʐsixU W7 I 1Դ#:"/B2d )f(> FCw!ː[ [\P ^/_SCwc萔9vmq?v]|gXϱuĪ{5T2B2"kK4<oi5:Bx$#x8l<|g3^B[E^\Mpxm "$2p†?J2c[BEVtWsBL}B;&RIP,տ+ZC*@n*%:հ@ |}Ǵ5U*I ʟ㉛Ufo5KkeEvh+%/Hۚ23mTdE9nIrPLTkQцRQ欣 τQXx_ (KE>o.W/cZrmގx0+d:9|XҸb3Bo./%{uxb g'Z.p1xF{r1˩+5m~|-R6V J^hfJ@d+sԊ\+brIC40LSC[#JfER6$\>87?0jG<b19=~{[C~gzB2&QЖ8Hl賐 ͱɷEr4VFFV7*}{R5*ip$4On 'sYL&P9*%G.̾kBǂ^X5eq(e1 (,j-Ha'^ȸ fda @9Xb RP|@)GN`lF_WPZc࣯?֠mgᣯ} Vl u᫫ϻ.zclBBů7_g%AP |#̀!x"]V(iͣ%#F߆/9) j=9\.@-mIfY@<'}k7cSUT6nw|M힖EH9r}AJBu]Sִy[ܚ|C#kW֝*f USp~ǁV&#RwqǛ1/9v Bm<5RxۨٱZӖylAls{]`mm높)nչXh\d5(*ϧ`v^G$cY.`$}`>&I^~;o-[Օ?]#Y)Y—փ?x?k@?<-BaʟaO~ʖ>\Ybqb8 EbxQ B '99 Ĝp{_?. %Dε=H8+rhQ8r9rx(\=t+ hi)tFmxÔ.ё'\m?>OȖUUH[Ic"t Q< #ЕhѥXbIZ#=,vG!h 7n]ύs:.&vcRְ3: **C p4#QadVDDʙqΕP&uMaw\sj9؋u?|{ׯ2R:#c[HQ1m%ɢbc *`#["mXLgq\E`RwVAm =g8W Bؚ3E؎-6jےt\5^<ϪY"@pMq([@|hltXUY^Hb"F0k8mTQ͘lV"Te?UՆQe:4}ņjPle+.Je+M:3JscdI}U%ҊfZr&ĥ\" L3yEw [__EHFkR)r)) RTD5gZ}f1zcuoWm޺rJBl#R FzZUo^^'%BoXPQ¶$}Xtw+85|x&X=\`O$W3mMԷ˫@QM{GgfYy􏟅Fr)V2ay#AI3rNYߺOnmX,kƭQ8zYB;Hק^}{Tu[ʯM0z-m9[;Z糣4˫9FNK5=ZsVtMTXf(onLs^SWr,]çs{P$z5{wѳo^45;Srے{Jnwg/CciE:HD@cr `4 i PhQ|} wOxmJ w0hw$c0 :i,]dkz ^x2ڋ|ޝ=h[PxY T2 JF%-J&|?[OKk<2FnPWL&t^t<*T&Rq-rF(LvO_嚨.- R"%b0;bcVYԌa>fbm :ǧjDv49 5Lk%)=tG*9?G'ҭ<4Pt[.HZf9j[o՜7x33Bs9hwŴi9{T }m*Ph9Ի T,Yn\XrKڶ쪇: kDxoЋei2dkj [l OZL ϊtVM ̍vN8pUnb?Cj9{IENDB`homebank-5.9.1/doc/images/57newhome.png0000644000175000017500000002631214617624320013342 PNG  IHDRrPLTEaj֢ӲЯؾ߱Ǟ˦ػ•Ęͫ_hˌ׸ڿؤյɳytz649ЖPPRA@E챯ηӠĩѯ۫šPZnoǭç˝lr',2Zb~~p|տ[dܕ˽ώԾʊz狌EgO^cgӾ֘昆-9S谷[xŐ{#ArJ_ƿϾ߭ƴeO֮YeqnsV?=޷ÏorSmA-H 𸦛QNmXН͜}h0{VxYFo,8!SĊηQ)3n>|kkr1dl>"pG_LJof&Ci˞Kc ҧl`ݘ IDATx PSWz՘4ҝQJgk'л{.BFF0ɚ )<Pa]RC1wx/"(0 j qϹ86"P 瞛9e%,fQe+-KLZ2ΠbP1T *AŠbP1T * '# k=mvj)JkfDATwi=SMRiTkD?ܹdQxMsUriiFu=WôsUN 4%a +J |/@*7WJea.6@S! S:31 ] ʆ=|\IYAu"\& mf$!LM<4U*ǚ-AdDT eA)ERt8T.Wi,GW V&lD| ɮ͘hO T˖>2F>D1כ-Kr9_U9kVPufjzptjSƘ)t)7FuW Zk"%W-:ɮt! ExmFL[iȃT7I9䷉1|ZSN%c RE5! :\1=U7ƟTwR5;YQGW);d%&`y$͆{*b-\*8mckF}E_,ae3*AGFeD4,{ 45M@ʲ)T j"TT!Q* ƭx4[jTF6?GFmH=ʗ[mw%5 HXAi5dhgU߁#j?r.Zshe?EgC2ڕ^zDEE}͛͂W滒G|xi$Co{0s*8i^T T FwomLzcy1qU5F7U(= c>2 kX k+Jِ^5`D۠N1G+KYX⨓qwAڧ%;3ӿ BѨ8ܨ @`*![40JX.S}3Vd#*5* ,#pVz@zW;̠W^WeʩH^1 -1rxZh MU!Ty[:ȷXj35HOw;Ш#|H(S`YG G$*6dxyN+<Gl ).F0xЍ}gPo0aS`C 0cCO 29@AŠbP1T Jl/NVc@A5wPi2O%4(UWTI]Iw-wxW_ T ߗ @0d~6H*jd(ʜq& ]&P)~5sU\&c@z_0*Z m6JSV~5-|f3Ti +;*Znnu pZ(cPTWCBK 1@TEHWT }WU3pnxoPZsWWh.dumU*>;B|¿5C/=fwvߙK_ yK9H;'/pN}3JqL,/I³>!> TI:USh2Lem !_+JTYDco$D`bOɴR')qޤ"9~K'>+ZaZEhɂJހ!D7$?4ǻlDe(k!kôlFFb|rs^߰2IFF9eɤOv;gը4e*U%l7`şݳ޵.<8 ʮ  ~?Pv3pɒ]8*| @ H >Ǻy6MsɂG<.3fwꏺ?wp_/u3鱧[{-- úFJ5"߈휅/eYo.[_eǪTV˳xۻ9Wq[׹x: 68۰ 8nsqfx=}^)gt7|[kkcck;66anwpuwqq+OY;l\M *;u;W;l/~>N|׏wm'ؼE@8qrpC}t*O"z볢bco e}tNl;'vѷxPl\]Ei[l6xZ;gJl3udzZ//z\PAٸqor?qsvJh"e- `]֣zw1m]gwYЋh`v0Ƽ0^`Ja@#ӐiĐL 4% xB,5,AU:ecRF$nC~i%jk_|nNsΟwxBQںlulZ͍}mJTCS)LgU%U F% Px\P%'\$y*Z.ՙẒs kAsrP# M->y S0*Ҫ 2 BCE2xP9 ʼK7'dz#]CE @l]0D ~y$$=^>ӓW "h]hDEʑX\ڋ'&&"Q AH 8tTFXԌVI`'[b5U 40*R48rd˄"FEa"BUЗS*v-*֪2u!(kU"wTdq /J"pT+t(7\)$zV*VpF%J*!5Vn΢)֨HA!*9ZEaD$$PO?(~kCUT 9ͫآʢ7X’T<XELxA:@1GT8ʯ& P< 1AeĨ(y4F0"f#U)PIyFpUMLNm3Tf**f0{x[(N*TNTNf$JU*֓ E! ^àҶXw?e2ܳ~:g7FmwL]12v qCxz-*ghޭP97 *AgE5 z6_xDwgi66H}d|e <u6Y?*]e3M]L|>;{6Ty K5z"FB_r*Q/] Yrjك#:F@{+m e} Ɩ$ZUUFF*J$Q%rTR5v;[W{jUf?:k=ѽTl>d.aTM'c#_ǵ j"7) kX$eJeJRq{Ztj7&_r^ܞU^~asԯ soλWA= @6sYVq5r8$SNDSijkjצu}*ٕ!PV42mEi.s4*G`Kh=ɚZzOzǎ1Rq B%CDfy *-n(IXI"T3b8_8tOB{yI**蝊4:V5mf~(fgU #'BUZ4@2%N>^% k("***#J5ΪBJ~`j" "pVU81)(j5%h\F/Hр yƠt֯wy#4;߇VE\F^Qe&Oe QE\s|#R ,4zr \]KPʓ0i.7^uUD޶pm.e.+ DJVz߆՜O%G͵\Ve.+n. * Aaғvŕ0LonmfT}IURz׷p.<ӊtdfe8u>M kf) d}!c ϫ`.h+Y>̵^gAڙ9xW19$/K^Z :>Z<==Nh.d)YÏYz1 *]jn\S>뾔|٠ kl\Ԫe,ZW)j=3PEfs1-GiTMP-pg be$L\jMWݒY;{[p-}?5Ǘ,ނQ-C2V}Ս-\fAeB֕@͠+m>3?{m_].}{:k=V &=@k{4nm.[\&eS~ED4dM9@45ye`Nk~7֔=̀Jj XPQ ^"ӌSEٰbhB9JǶ#Qihͺ#F?BҞI6h@/7ibhGA@BiT{jɲ6v!CXT5ݏ_f0tr/hg?a!V [ a (@- R{iB"~܊PqZb1LBfZQrq v`db_ Zi#**9DE6f2:T=MƬtWO5iᰆv,C-v*aXĂ5pOP:=*@} Cd!ϩU*?|Sk2+UVy9g|"Sel%:J,*'!*WjYʖ[ێY㛎Ye Guy,(+~a!!!̨nnL=@Rsef}afs}鷔]7ʗ9of3*ߘq8sJKs3"_6ȌlfFG9'*xpm]mZ4$YnB"ф'N)yjTUwkP}*,ZTŔ EYܽ@> NR$Q=L"8*X[],g(+QNN8Ki3]4%Iց qp_ZVScW ͤAT rj *s+' *oVj?i. 4Iu*wS8+ix:6&A&7NU' T2!x@Vk&Je0T*l~3.0w67Rr8D LP\∔.!Zնw--A{#T$'s*\pշu=::={$|j Bq7, hF)Hz+L1:./i2Q|ZWM=j=yc mJ'*hYJgjAqQZ:y)ߜGXC&{v]6UU@JGoؿawԋ*On=ڣ~'FMhN?W[e{Ew . aaR rO F0+yh3 !lQaDU<&o 3L- fT"7{|"[/W|M\|7P[ yIDATo.ZkEg4LM:C"iGV| 5PS~ÁQ8x0.lUYlzɓUe7ܛK#}M[`jUTEu{S`7.PQY{P-MFKP3vɧForJXn~%<U Ėp騣ƪgUG{'j^UWc]cUic{ɔF{X5GZ&d]qLETPQK`JD%QDT"*JD%Qն0-3u^5WVBTK6>[eɒWu-aUƖ5W״k@?o2w]+Ü s*,cMTI__6*lݚRG?dݛoH"?tJ>L0p}e͠ln'%un/N帛mbXpzgOf=q^gftnp{z?șyORQqUH*UVctk6z9AJr{\ U]=")z9*U*=J.^֬ Q# #TajF"Ua{RCœUSұ3ug@ogƒ3q_j[6ϦC׆kje%P H2 ]|lWs*t=\wLƵRJn_n>}{c K[SUi2aZ;`sVUizi-q^ Wl7MՓ"U/GࢧU}naVR}<ȹT=\z}%"K)o$Xp04 GIw*!K0iUhl*kx=~\l?l?JV$C^ RAדdzue/B` 2<8 @ j6!OY`Ylm$USŵQE,JĹ\|-ӛ\ lV Q{Q>'XvT[T@)/!F|";!E)v\qADx$> O3_\K,Pts m&*9\p̧Ete/ddT rv$=yu7UQe3,|a8ޛ˵yu?-MW]'BP! k@@շ$3`̣*w>< c GsGǎ|9%xn{ΪNwɫQ|)ߥ`z]K˅z1X(|3p>eedU$Ie#=pKU)UvYHF79Sʝ~| _7Z[n8WP}S=!39wi[7G K*Cû+-\ T',Fe$癑闕bMPq=D. }2:TǿU,aK||Y1 LjNxzϏٍ]Uj䨪j͞8\WOh)xU[tNEلPY<0@EJK^abu1798oL!%@EF^ISՄ\_`J>{5fbefFs-DĠgA_qݽtˬK>d&*,PK]͂n߰­!=k|+̭ ?R݆(abdeVb{0ː̗կmڔg=m}\`fIDATxy|՝jf43 BBtY*Eix8퍓!&Rmf![ -rҖ-m)v{mw>IΉ|P'޼y3޼w8okٗ!OuSbz-d 8܄lȦ2ɏ9ll}9Efc߿9׿zmOކldɜ^ٚ֋:bx>dk [/#yC?ȓ3v]>S"A;Y^Ȯ/4n;xSg^6ͷ/V/fCyA[Xvh[e_>WV^xfuz-;wm-E2s[V ˷ݸ,=U^7,o %⼭ ouo^zYV\!uѢ۠w={| eex7yݷ^x?|T|VyuD§Dwxֲ[= Ѯl=xK%޲]k=l!њ5Dw˯?C[/m={p1Mxvé+mZEtl+D?bI[6<$:w{󛯼oӌ :SVD;Zn;oZekDkn\s w.S(v[?|g#7y{ڑuF eֈ(֭ ^c{޼?IGuz˝@N~k)m͓?{`D,l}V:m6~EoKJ!忡{^|O?MĚYqzZ[ %Zn8ۿ} gyv|Y;Oo*+_ؙOڹv6y;ڴ ,h߱Ɩ7Ys=w_)lmkuuۊ#կe}[eUv݉O<#}Q$2'_ڷ;,wYm\yLq_g[jL]dtN,o/S.Ym~9[~+k+}dCo&k|,ͽO(裏~A#S*d4yj?…VT*mjUGB+֦У@ +1R0+,ҭdb6j{J\s b%nǣytB?nô[jK('3%"{d {zݭ@N@z .wDd4PWoI8l)hK myyd-f#\jU~%MHMLLh":jw ,.H7,Gfci0Q Gv@ W4Qp$K|đ/h84:zgW$Ge' dK` N2$ p, RF2Rahwð=iUUڰ0La5@d7&rh7e0#@xl$`ò٭ a8[VL;bHf,FTu`MN&1WnbMU&o]bK\9ثK]dh#^{t%0S.򭎶}6=:s8۬jPLG5X^?&yS]fv nA c-Ji0c[OGu-s9q$v_Lgb% hdq`Y~l(#0[%XKӘE2 rGkCUh=AKQ_]|%Q=6`uWzTi[Hù4 yn &hSUP!5UXΖVr] pզ "oKbtaU@[ *(XwJ2EՊTT ]y-1Qwz𤾶Ukq {hkO֖KFA:{klXm֯cau2ܠ$C(I`^VjtZhjei{ۉ0&Kkrilaht+u*)*N>u_y-8 v[gs~7 p4YIm8l92MV5UZ1~(%KWuu恭L|{`$] zpRdY[2SmV{N1*4gmaVĥF4@bJdДiXx;kI[hq&P$}aXQRݦIgLMXUF0jpS1ըUF;9遻HVS?M#`Rk^'k%3yn.cgs@ @ EX^5XՑ:ԥwwwuE(WȺ0-$? WwMxj {Gg {{–1`:S:9{0نe;k`LHL^>yAo^%o4dm)I"3m)ieIJz2 R=^GM^@ \ 9[eKWzZ}U W sP]M̑%cVrPW̃vd5>GHi"uEc bky?IZl^~H\>-EcKRբ4k|[GxKO EQskWM݂/Uʀ65D!DH{4Ck33k1I(dkexw O% WiJ۴2dE+/daxw~xl1]c d ӻZ5,3cú.Q'ui}A[Ks,ws?lK#iviGA.tZ11.hI+`VknDT[sGN桘``z[+e}Ҏ5i˰b[K+ԥ-HaK:bboTXk^xl-rt9k-e'0wiƲKK{ϥ7qGӜ}hI+AwTeUѾPMLm.!DCP.wY5*;=&WVp .?L*KaT~nK$y bÈ܉%ij!ͥ4:]xlMa9RZ#%dkst^$%y.6߼-H3N_}'j4Ḱ{ hFT"묾;*bf(SX}51c9fQ/HʻdὉi([|rZN%DY,5x-d"!Sjr0-Knn71T I z, 2rb?,@°$|!@`Yo v ŪpE%" Oh Z (\vu!z"F H%&0ʸeF)*v>=hIc"]b[vYGnޫsb8R_4lkL賑.k:YnG뒄2I5 VnbPlrU-لUn&WYorE~mE1n 6ҦxiH `ۻ!J;qk2CW%mXBކLs@J`׷e|waP7A[q[_O\2}ki+{NDM*WDnr4+h".Id &Y[uJ`/mj TY2!_pVeJUmNZ jx+M2wqzX}ExkjOj`*ΨTD`>᠟U@T1Xga!Fb@UIDT\bD\9/oV`eNI&~2DRS To>gƂ-.s#ƙ"'U@ @ >V]a(uxϋ%Z.}`$iBYf-ͻ()kX'`Ҟalp|9lю %wl< {WLg 3m]F㥫v@n+aΑͰ*qyIx\)i3z)޺qe籞ъ2@7K}5̑_Y wy^.joﮛPPu+t \V#^M3`*~"-jµ;#ոȁ~8x( .5׻n^J:P7~r_'Egd'DOJ},##icS} fqB;^Bf -3+@ J͓^T̪Of$cO|%Ӕͪl]L3 PT_ +}ŶFqC!0Q b'L8jBC&m5 @R^>{'mZ}&֩.bqdkf녵p&8Z¶1G8OhuK%--j ˾Ti1.GbZm2@F9[!%U! ;kNڜxq5is5Iׄ6*1` e6lIZ|g\[f ٍT D_U^J’RBGpHJ4M|oMaKlr *ruꚒ5,^]0锦pB#գ6,lU,.`"I؋l ye6m%z H3RR( SkvB[q"[ٜ~TܶjqPCYe2:k y"l rl[bџݰr4mL/KЦ!E r<0x/9&m[BvIva"8o ͂ER%xbK,X9'~S1l+d El>f.-q DW.!oV[@zѴ@ 3IENDB`homebank-5.9.1/doc/images/2.png0000644000175000017500000000051713604617042011662 PNG  IHDR ex{PLTEGpLyUHyUHyUHyUHyUHyUHyUH|ZNzWJ~]Q{tǿ htRNS/b8]|IDATmGA=z9 !Y fYmI)UpBt孻́(y`flc6\Wv, ש k  W?!PIENDB`homebank-5.9.1/doc/images/dlg-template2.png0000644000175000017500000002173314774772566014213 PNG  IHDR]%=|PLTE5yUHꝞךռװvxyչy{{匍|}}ikk؅prr46}‘5:@^橚w鯪$nńbc|a٣ҳ #%cVoJ~r-g}wq fYd?{ƈmdphk7 IDATxy\g 3 d TT-$ i.HH0-r}\C)mjUvoο~Aម|?dv2B?nzِr;yE>< t 5pK )v|`Uw^{w~ 6Nj͡)?xX;^fמs`$ }mY)J67Hg7JrG}.uNDJ*yWeRo?-KlXhrSS$}Ť\xÆ߿?WGܿ{Mq~фɦy$5&%Ofo7oy7: L ) Y(AJ%GlUw{D\d'BuI?Kn} [!+M?7wRk ( (1{JIM֯SS/rmDJv@/]9;%}ykS7usp:+?١.}'ٸs,_,e0yzw~}.7߼0S ؂*V>S{jCIz*uvJ{3laOҳآNmh[(zIP^^X8*#eN%s ^P#2Z!ɂZCAU1>ZԏH3kN52e^p(8yVJsJrey %\]\i)~o_ec|+V);yeͣd=a>bd2Qxn%uά.HkT'Nihf߬K(⨤ҐFTR=)WJDBʱ~,-2mL`{a%iN|XbbÂJf;|5 WV=C`5bZ(amYJ!7*^2YIz@?)vu_W;*Sz})u (®,zƱ(qKxX $4̞Cuk3B-TPyuH-&%MeYJ\5j= E(F/N]i]X =Ȍ?-4ºe(l|4j:QUApvtKt!K>%: CЛ^ԔʘǺ7`]CxLqe EXM;媤q1\%H x.<֝@B@x_ $ x9J{<[I쾺Xc,K @q_V`VW߾#ш>J@Ҕ fO'82!`kp6T%%~ StLN{Q\dQP<4,TOlT-*0%>D\ٜcU4`p NHL!94<_,U"";q:sEiJ\v љ%xxuhV2'JV)UrT޼VIY۔5%6JbuID"c.%;0 +i(׎Q?i=jf8$i4+BE@Sڊ5e4,WFCNOJ%xt@ScNJa5ژIygP]Apz\O?XNͿ1>::^5.Ɖ^ZscDw₢p?7[A+q2\oZoFwOJ5Cϡγ\У=1V~n@)ecJnߠr/dOmhgiHmLt/=)qR2uR0|V24TxR 0%@)!C{iH~,_6ܠS2(>8vSҊO "@eXUII"QѨ@:u@q+?SRtW><9^_g,8\, I!lv줪X/: %2}MB{FRYUz@,Tft@M2SQQaJΔmXS!Ge~UDSR+qI,E)1?|%5z,nL:TTT@EI|V>sYJqF%i2AR^ bSc기$O@;GԩF +,0sVoN'@r{Wɖd:v*J~vY }W+pk;+R)YCHL.OA毊s&!\9 61.2Vc+RC@; Jde眕@|Uga``InObJ8M-ZT9&N -#&%iiDJd[SRkVQ*P~8[Sg UpЂC\pRvN L[8x[)W\`@ <K3Wo_S&l^%8TA18KK:VVTo7eT%D a8S)a%ItP'.]8},V ;k|A.QhJROX*Z<~Î=iZadó^K'2r-S 2/+VUK TKG5"TD%+Z&JJb q۬jΡ̛K?ZdKɟ}@tjR䥯o[5»ؖ}֛ՐMx~-_4w#|de(in˧eFCY;ifVV[ɒPi{((pF%Rrv;K='N/+6dWL =K0%;J}yuL%Rpmu|0;1 Bij{NJBuN { r@SUu * f$,CB(ÅQ8܆!֣V(+C/Ul 6pUۢ8JfG!@#2X8+e5a dQrܬD5'=pI.UTC T!ʗ̊kn)IANsNƬYUьtjɠA .°IemZ&x+NJ{s e8| S?1A0l׫F\f-VsJUpp|˅ t /%tQ4C}S(d(.d,a;%,'JQR8N 𱩚\9WnǦiDNՠ&[n-8!A8X_V'M1%8]!mm "|,>]IA <0 >% `Î"hEXT𬹄󂰥FҋSb1?RLtsXd~)Yz$(=x܃*yQdZLawz&;%n_F=BIuNILTa4*E)  JG<@ ̼IwŀNӔPNz0;0ROPU'n׳).P<_B I#԰'_2![&0ʳQEId|a*WT/rxʓfWI,%UK֔DmZSb&>V"QB0%?ީTɳkNyc{; #a43]L{;{ZS;ߥW`wNi)ȒlNCcyK-8#+S.oICwF.i+.s_2aײ^rjN0'SͳY~-4aDJL2/0ra;xo=&1g4/Y-%=侮 D{$y{+xğ,%N/;wQTQآ$o[82HNݶZJ|%<cה)yoM\HA{%2\H9Gx3p%Ƌׁ)b-J5pJ-09Ōہ# I0%;]:h\<ѵ'7:qsYǝ%x"_“s9~3w^ɥ9F[* Y'p3 Nnmԟh>bBz2qdmdpxxQwqY+? z=A`[x9-߻ɔO|"'Zxj,'(P)`o_Y<;Rs#{>^dܫp2E}קO<"U\jt^ DXpRw`R_2׺9~?;%0#q;<%~ďҢS">g;}+ N;`z vp\S^6 ׹ {%׶:MAagȔ`]`+`s:wa$*۲qJӣM$*+ᄁc@L8?a:L ^-Jm2%;Wm>b&3QV%MjXY)Z[-e%|}+V%۬i(R>tT@ x0,'\*Ai'(d@F ^WrgPP2;!V%[-IҋIxجU{M{١tc%_$ro$+Q~#8%D`,vݢKdfm2mw76צ->Y=sJ3yW_R(0nlJ垗K`l?|  L 1"=lY'ҡV2yYnC7&$=}S]{672U{L\8qb"[C,[1NI3xs1M{!2Ё*tc{.7M{{1+ɨ2|񅥒y@%A>XB=D@UI1xUM6+yUJW_hTj^; x+8_4mT[ $6ObLhx`o8$DO-(=ΖA tW9yĊIENDB`homebank-5.9.1/doc/images/57budgtime.png0000644000175000017500000003403414617624320013500 PNG  IHDR0PLTEGpLɞٿaj𠼈`iչޯśתŪ񡝟ܙ͙ě~}x{ޛӺ~χѓϳð٢޷ȅһɬ{{~Ƚ{z豛ʻ}Îj_fw}Өϥq|w٥ɒg]zzǼޥnot|ι~̱ͭܠ˩ӜÞܶluxܜ}s콨NVf|wˁУ[elk¿ضߝbuY涕sa޴Xc~bttݧǩK>I|bȔҞ{«ۗӏӺdjxÞ`"gM?ƅՊvd}p /p欃%oX5)Lbq_ӱz,Pw?/d?[O4=P`>{k(cooitQزtRNSIIK*r4IDATx\Y"Eb"iiB]:RwA ";{n/ϙ\sɐd|y3sӤ!44%0 SmƐ.EhG0Mtttn{:W(^i fO:^?&, %k_Mt5Ȓ<'JGkH@ila#`zT&1&7i`M#FǤ`!MVN$`bKcvƼ/KۆD;L ߰1eo+yat㯅.~ˏ"ٷ[=.W#c#~|:pQiGS&eO rXXՁ_f;񵐤"%`4~-kx(yb ;2UIOGٶ?-Űo>/J?>0 `Qط* 6̸0_JC0^>f~m2G18SYVs0Oe]Q :\\"m/0?L3#*/X; .q*B5+2S.\?@Sc^Qp!0Zp`ϝ::€YYYBŕkd5NߐCXY2P.V s#`*l;h(FfkeiD50x(1Vď{t zGG{ )I0kV+ AҫиpJVKi0QA-Ւ}&bw>5}/{ &Bvlҍt{&=fX{pw̋ [wM.-DU4̀-#rwcNe8Oo_X@Y[%73=8\RR+۠C)J?+*]:-5wKήbNo 0,/..%n( wȬ k#5\Tfi Pg\߿ЪCd=?y9,a4ysvCT'L䲿:`0g=إ#f`fV]^1q쳋z xb8)+=wҗo1sL mšPK})f>CءSFhXظX1-/b<*YIyzqqk`ܜmX˰G;{b_}tґ90aOc݃|??NR|SEd:f-Iz ek0bGNrXkZؕpG R#XQ!JPp-8CPvJFbc/`Q)glOo r2!=@n j{/R˱IPî`\6͛\pbKܝ{"vFrXz;y`JL <{gQc{,,f{Gd{ Ƽ9%p3dKy'KfK&*\c!y\ڥ9K90x Ys4Ϣ ぀9<) K,b$d&HOIdGwؼ{& kh}O k4l? ̍3+' x^S(&-jCatЏXfЗtP+c.[^%IkNV+a/6i/ &O|JNh VKw;Ĩd]€|JkeՊ\VL%Z Gx+7K X`~*c LJԚXMHӖL::%FqH`x?%w4OIMҍ d8 6l9o˂X(% />50 v(H&_qN@`,[K0>BdkߺԎ%̴:{δ{% \3P1gvhp78R*&!0n 37 YeEZ c$j"iFhAVF0 /]2폲A%)1TArF5o`ȳLXCŞ؝;w3eXQ4턛5Onzmڴ{n杝{g(uOI=+o5wJɀG9#RTo=cA_*Y )ySIM?}ŕ QHD=Gv_p w?ki `]z/iWM؇hC2Mam*ؚRܹ [Vĸ-$̈ >eSƸWqԥOխDpU6mĸ3:}W4 ^Ph>`,TJԒ:%bOJ sЏb>e؆#sإ>(Z7wy2 $_"Qw(%%j%K1ߕbY8dOINs , $j #VD(NInVVvƿBeYl+IZDh7晀H#Q*$X)Q'|aE,1Jʂn 3 eQܝK-0)]*b3kDMq3iQ\r4d. uR=Y_qqk itdz{ 6%ZΈ\3Ey4rCj+>#AbBLOd|DÎ<кrǩk<ȃ ds![3h8%jӣ Q#sڈٓ5BQlΓy$[:'<yp<[z#ikA2mm QP.1`^8`މPkB~PCl+F0`CcXX-+0ѣo0 R628$QCrF()nʷ@|SNd&UI XQasB5nF˛+&]Pb #-.R;簱<~) 5f4stz%b$0[Wx^`mD,:F{I++ fa&q yOE6Mަo]W0CC2EDd]-a女a=5/e:&w+#yU(4/Y)V)n-Dƍ(]$q^4Y(;S!Q5B.Ex^!&ifz3v5֬'x&&mJWqFoˬL\ ;A,Wp7i1[GGtNXMc T)ÌXda9 [z`<4 /mO6x1} L}ׂwm"c^7>o&`_^W9qVy_%y <~F52HL;W@DXeT),٪- ^<qFm9-Tp_K#$yrq5kWowbAb*UI6M~U;L&mQ6G{^pA2ROJN6gE da9®=Aȫ"aajk5[X_䞟}c(;/ )QSj=}0mmm6R$kiɛ6[ A: VyoԩJ`b aJX qli B+`sSa2ib t}FJC7)6:ޤg%yɣhoon+,]A睩kF#^2-=rFqH`*>mV}~JCrؐ;fc{!&*HGz2&zqC$RoOgAl3F7o`.%E QS"=8/dm=yV z"Ma8465A :Dm.Iʠ42(4s3wI1wf_I|Y]gH猠P\͂bHD% ̷D1Lj۾]^:Hej&P5}!̞q qE?FAzNJ{nX/3I…U/\=pL˭]ip2ED#O!2T\] * 6R|~Nm%QS"㓇u%֤D͇LOݙ[NORN𦀍`c4_ i-7< <~+ gKQQFͩ{y=o.^uk!HԷ-):%xm- bb-n| 0v砩d ²XMѵnܑf/ ,Ix5fsf0Mr`\&5%u շ;ݢ—N`.:)2lmGn1=+DE5"+ fwHbiD\$j^䓖rj7hanv;ޓlYm1- _ 4yBә8Nk%/}XU[m^yKn¼bbZD#퀻oOra<ɽe3T۴LDoʫ[a\mK/u2`uM)ܕu݌I?Suv fؿ9YV"4%熕g+%jVWkys1uzu 00``/YtΛ.:&uWl=qWrg`B_ᦣeS}vZ*Kd:1f={6OO_8$kS܇Ǝzn=c7.z4{2V1444;f23xAgM<V[Ro"(%jWG?4ϋ PșvaHAx `DM#\_cK@?uyy,1ε)Ӈ?~br s73F2usΌMsFu_&jWHԬ SClyGj Tz͞jk}I_$+lDK%&}!QGF /vMY3f).ٰlԼFm܃f8y 9sI;& \Jg}/X<>6OP]Tp0 >okSV'>&_?zmGD^/|*_byсؠ~ ;EyO9V'o哏4I4I4I4i?>Ѥ!>Z4>?54j fԧthmh tɗV~B"`@:C62D+w Yh?0.SwAty_|5RBǀFt/&H^"^bj Kͽ,k29;Ɗ gKsJd/ ؁\?0Vs'>~y:2G#rc5<hإVVBh\rX\0<򴑝Y!VmVBn\*0;&N2q8Μoeh%F'j}Ml2C}>!\;ˀƾFpE_#MC9FKR 3D2 g:795D;86wT邂RHhNN>Hh;HhI>j&.Y жq5ybcz`"/;kA{}dv,&igv{D71qW``>N9r;+;s8tIsI@0vM>BnzBxd1VK }7";s8ѽ N\~ZKF::.)R *5E;9ٛF0G;\Dmr4w0%.ze0b6\w*-mF l -i;`r*r`ā`^vLXa=uܱ6M msZ'C l}rIĩ=tz`e2X,[}HVcaWmOqI;';pb#*3N _%)9pQh 2?iԁ\&m7x՚6wg'a )tg]cs=ym }fx=cyp"vՔa|0=En${irAWL3uN;$0O:C;\KkWxS^#cÆb1626K*0-GѦ*{*yEP+T*pSnjJSr. Ŕ1x`Tm+s6c'b۞.0 0¡ ;dKn9kI_ )GG,ExUL08aff&TumԃKBe?\or]& ~mG,^\Ibne7cf7ɸ? Ƭ~!d;aЀN_NgL/fC /7g̤0ljI>2`޿N_l>YcE=s`k4"jqV4?kB|fvWYW?i5m~ҲOXU=UkZl:b)ϋXGcQvѣ4Sӣ Tl >;Cd, cv/XXiX&j`7C*0o'0A|y{cߕVa6x>+tBDE6q^lXޮ rf Vԙ3֫sĞit[A8x^R)99`MM6=aVXnl%E0ue`ݲX}lՃuQI c~T;Y܌~Zt,蛱_\ lɻ!`W/TuxŊQ3pIuϰ؂NƼaUqm厴T蛝2l$G~}>0;q܏wQhFa3t-,bDRhgc'WV\ KwoV;sg;X`DQe &pf;T3mJ{nwl`}k`ř3u0fՍiZ hz7W}: 3- bY_VGKOs"6۲jv,}}ѬF'N%%/0~FC\STٷ5QfLF9N,e{U{ֵM('ڗm:D ^Kmn%+jk"T̨[^ma5% hqucMy: Le 6ZqueL.Aɯ7uUӇo~HDZU0xx+E7xuaЀ_ cFdHL-qveЯ@Vƴdr906s)q ؠrqIMN D2@J3M:N3Bfr(f6!hBCK_Xф&+38`cu|NTO-_:fXe9B%f* һ5P+ vGM@fe%xYӈ[mɊ ,nCh\dhCWex#lZ8Ƽr{3binӦ ,>MH /O'䃘l|m`u E{{w?ʘ/K rsָ>kj˭GSEҩS6{K]a|֩AaJRcv0x%qqqw3Vh {`MpV5i Nԃg SU?jع2и%NoPf7e\)߇1mڇm߸o@mC*=>M^{S4gJ`,byc(*K8 Dfzxƪ1Sz`egΜƌ]MW$΀ͮo]! V@칪^'$]hLSdLR]]N`aW}+{o'!W6X+{b+Zw(YI1%i!0^^T U"&.:n7Q?dkiV\36hBL[1D``# 'FSC;W}W|4e؟)߉H)U,^&__kA7Ln5غ׭[5}4:`6 E({Q}ě6 ŠCAA `px~ÿ\?f3ؘb\p$ t@z`/gL;鎂QV;/t=e@]rd9uVmk_Oxc̉E=!7ޥ9HPDz)C dQN̓$}ץ[A"{%Js%d0J -L7!mm}**+ g E@T 72&YN!R)^u3 !"j!"vKұAAި $ ^9/؉*d@bIA5js7θ?0ɱ+*QkMSl|_Nn.f |L*?ys}ڃ(ü z9y?++yۗpO* 0}s %\=كI8 ['PuvERޯ\JwhԸEp&lԽ_({c`aa7;|UK&m8Cj`NfXy_n0?\2;`#rau٬ݖqvu& 1*U Q+0w 7rɥuxp19'c,_[:Ur8D@ޚn?俷 K>k֬byG0AwASdebs8[! 2K:#ތ;!@E\3&7(tk[ .yvl~Zƪ8"M־b l0׹xօN) 8P(۠꒷³SMgo0̫tW%1)9~  0>NdعnNK' ^ |ehsꪦ ;{fuc.!bGDYDz) ]SL~Eg6bA$bgƞDϔ;/Ή+׸}wEwo={ .޵1 *#6&rwY{ (T*-HA{G/TJEa B X@QR9hÜ#Fєqb, 9#0|Fc+CYP)btZJQJy~Vd2r۩*L^ʬ oUvM?55N1tv/o#cif$M$M$Mz\^z p.13~e׈/0\pd#fl(plx-LLLP4n=W*M %ɇ[mc>`+E8+!~B%nqfAq)A3{oE IODGK.ON;#UMؿeRG8M,]fyN\+=h`= R\,\84ImUŤ$XMvL'^t8 .?`:rrܗk٦Պ T㒓V^O'yqY'zNM)&8šX윜,WNZZҁyjLq@;$^֪OIC2fhxPƍ<Lگ ;XZ}%\8Gty%Rp8GblA\\ ڡ[ҥF3yzqq|63zh!n;:m {R9l>`;Q9Eca0B0 -lhz# .M=%Mjy(`Z:ÚH^# I```7Iwaz!'wռi0žֵyMANŕ2šFQmմ%(hԊf E`j|yzzƨ]WhM%{,e3#J>0c{n#j:}1|Ehh=ԙDEnE[.ƃ6:zd$MIIXUw Ń@P#NJqX̦Z'ACk|& w<'2rUS KƼKj+kd=2^O3q9 LRF)Dq\+D% n`kد_һ2+<`5ợ)%H䒾ETnPCPLdU(tI]EXPjoJ2Y5M#kjG Eӑ۷FC]BB|F[r,0 JI*LI|\n|`CYހaUʀ]iiy0f7܊vTW`BiF'Ϡ_4LMG#WLLϕ?uIENDB`homebank-5.9.1/doc/images/dlg-prefs4b.png0000644000175000017500000001251614774772566013662 PNG  IHDR-ٰPLTE520*4?䃅怂ϱ[㪫PwzzH瑓Ǭz|}<}恃uxx6庺\_`~MK玏BGIqtumopm꯰1GKMkmnLPQsvw458E拍4:<@挎7,\蚛>Ek7ey/セY\]pqr.9cm}QxPTUadehjk;C~;%-0@K1H\S}@[t"q{)KGEOиdLgYjzpg (w'.K"Um}_GN^B[6=MQ[|;N::N[K::;-p5{mڄhk]}Os)aډ}KÖݛO\xмCK:?}0׼eO|/1NN[~>:kVK "'o};oqӭv=0ԝrƛV,셗zS} 6|k^޸q;6mL4SvMv:Jq7&鸹?1cѹ_3Y/2߉ cϿk}?EW=n] 16.]@  Fi&'e Cvla-`8FlւRGAqQHWQV EZRo EfLQ׮a[Ul^CNԮgjߵNХhYfİ`qeX_u mDӞ Z k\qˡ#@\C7h?eGSOI2Fsg3X `[·<4}L* c&{y}zS}ļfl-2 c.sNgfsΆ.d3Qwu֍+-ܵIp}f VYKvdlcj352&A- h Far0;|$'3Z0 |yz l$ ѢisǨ`'FRhIYv4VfG (&865|^m-6?<25fs[gX d=&\Z]oaMc6-J67cU:&s$[L,uK &l+==K[ ( }.U9l6< ᠥlȹv@ؠL(٢ 3jX 󳲪eiYΆ_ekck(,S&YVџ@(/\Ey>Y;T- ?ef[ae:` @2aڪdaԐp,[O88@elFKun(&➜jּb'nk^nn]O2Ggl}t o״7{ WhĖQ["rp^Df٪ҎF 6 ۃ-b/K=M7\_ͯ^sA OC R;,SS#CaQ4 oNRݢJh سJ$X|$Vn^s~"*s'lfOe1GOu gV 7Ej%NJl*ia'G'5PQr  "-E'a=2<:FB2I'$\.'KC*.1<gԔUBC: J8d>|\R")$#Ҭ) ;a^%V#"] cל*.U;Ώ=+M_" q@8+edvLL1i\\(a^`6@WR$C 9" 9)&'V_OLv~!+7S4m3K򲍍}Ft*32d4*+-TQX,SR7\{NE>0le JE_KXdsbdb<[vn ηH^Ίq2lL2]tZH=>Eon.Mix-l<e{V-\KKOA0j+rYo|[9DK2ddd[ߤ"`":Te7Jc-%˩2"@8 "L"clq|ږ3&J@m1êTbMq+ߟ4fpܡt8k@wa+ Mٮ\V{bd1[SrG|"^dC4-Xc3p)@[A]K׽ڢ}JS6Q\_[*l[եď[_yN(ò2uk$ bqOL[^ʓSRٷB)Xh1f/T)7EJɅo),h&ݖ^ncp _.'bJl×ja̋X-]~"H ~o嗎qvP7-s΂ TQӳ1|wӧ=G׉ת-1'Vπ} rx.+@ @ {wl//W lX<`P0V**<{W~E? 5Wmm-سޚÍ쒮pkTrVVj~v +EV_UX-TW܂EP)J0iGB y1{E%MšE]\dפkL&WTx1M-m-a:je,P ZSm^B+XFc>66;TiBI&#mtxG[{2GUp/&?& $821xĞʫ@ (A^|LY![9p@8pG-Z]?rE'1lMO1(p?5Qb09J5~u V犆gloa;n㑪-P-<[HJj8pqlqnZ6ضon80R2].N47Gxq|12p޻p螘UPWIl$଒֣=<[-AhJŸ㪿W5+?Q @ 6_Eo+"5ct3\7ӖOn0ꑮ1m >_^d ȲҸV^8B bԭG!|ri@ox5-I̼T5a*ANY @\h 9tT]UHfpWiXNbutUqЩtSNWs˸iřkhiryg{Z吸yuwڳHuojکsJ0tОlӬyp체麤ɖQsٶМB[v7?SѨvFNޖ[xih5KgWTr\URLrZl/Vλ[σΊWd@fH3(PĄ˅SjLwňp|%,ɮ~ƇőŲlڣ܏zZcQy%~ IDATxmL>I@D3|966 a8,k;f21ES ˋTWM\) AZEۧ.Ll@Z4NIUM >eڦ=w6#Qqgy a2[- @` ld2[- @` tyЕ/v ^.c 63s>H;1/_:X;po)n7C9 R0_[]?g}͍]ϭ.ytwj0׉/.,OO:fHO$>п`g8_jsGo&R $>`殿9tj4qɞLF\HtsKKgw,/?}so/-=opiК|J tD悩 +gwI@[%n9\?l9MY 62 t`Z % 箟:KܵJYC#H3Ph":[݋eȇ=SUեJπSzV*@dT'Օd`Gp^Mv&_36@9{DP P P6e#ke)V{r8(l,[Fdz{z$P"@)w%RďXI^JOGkВ= ҳg=^-Jdܭ/f bE d/$SÂ} Zc]HrU73^ h B^a 2ǁ@Wo%S i6ASպ-Lx;軻l]6%s2ݨR/b=f. GEgsҵc-okj\5- \ö`sŠR#=!g9=. dV$^\ucBoК E Jx+>{H9'Z#bN:v2a8@\+ =&sNV2P-O8w- ~o(?]i85i 643Mv-M t[&k05]iΨ.#;N2abMbP*^JȐ^pMHFöjm v:&/`=3c8)#pDO.K;|+}=Ivɶd@I{@0V(0\X-*1V!R{l%ycYl%aZT  fU:U2d,VV0Rb Rr PĦU0) .Oʟ.Z@& (B!pM|n`lXEb|Y &I@|2wH ]# 'd`0`j>OoX@^= -%,)ر՝5\Zf=7ٹ{Zq)炬L } Zc]H] }fHljj2p@GπB~Ox=e5jU(eqY'qfLN#jɆ2`[ꑸUu/rs5kO}ךK˳?(>]~z0~>۩w}2oOYׅGoR f`bk6}" ?'xl?LwiT&+HJۧ!Um9P@Y)?m=䀒咁l,AJlle 7oqO Q}>O~<&'_v3P=o ̣_h`^6'C|1E Wufqi"NMȮzc!ۘtYI#:d[FV-'bQGȶ4ă:y:ZMy9t L_7_x~o hqm pZtPS7s8tjN-LtA3`2x[E(,)et-ia5C#OCq؉QFx%kAA(dj30}J'\Dc-DBAѳPxMR7oȪ ٘(/(<3zp3S4JB~]zi0=FlCwOqp\-ٷy؀8_(:ѡV3+ųf i`/6(}$ʵZ6:@gCN,iTHر8Z.bL5$+XOer`r`ߖ>I"hbn9SRm@eώF=w@2m/ gsD9${ \۴. `N:?u\Zf@}sAԉ2et nl~F*Mg=X{Z9\ϭϵDg .Z̾z%ą1wk̟d50xvM5_^~u $p>بN?hNxP`( G)O~_oM@ ~;?рsP0_Hd%@d(qnbH}"sAo#Lr8T 4@.IAoVqV`.~V]V}j@,IOa|lHLT9U4:WdK$?(CK7PkהƄrƄ/T3)ɘysfǂ}GSLoP3ˡ,a8fk::#W&[{o6w8t躃saq9ɹaYaa;1 z0ye0O.r&ąXL%a)p?hii;kp NVr8 1 a287"Eb~5<8e(s772 ӆ UrL Ȓn^8* ri֯D$˘ Nhd)Ѹ"YWʳ1zΎ7^1ye~ >c=/X0*r7G=/{k =7DόdxC z# 8\q^s~3*Rg 2 2 2 2 +XmΫ'tCy 8q{%=QQ~iQU&=mU}ITߺ 5+ߺ݀恲L[nByr( ( 2 ( 2 ( 2 ( 2 +18ah'U^'4Иp*)˸^wj 4 7Nѓ*i91sj's;'3H䱒W`ANHoyRAǯiJ52\}_mTeaf7WþijL G tzohۭ0čFoJKϜtW%2 _` Da-qOfi#DTڈw~1iey0'a8ʦ;^.4`H1aĀ6(FB'au?$C`LMx0]}0U4mK/mOu^thcf&EӛRskm=&:pEzmNn^m33q;p]}ʻu/>?MhjeW\m 2{댁`jNnɻ /&fi^Tz[owM{t|WmUv{>9S2 m?3MN'"ÞAp:YZqig3QN#5xϝ'8|3P} r 8>B}czU#"Gl&w6NzkAdsb;ov)sp:ca?lFxވv\,}c$¨_4PxM@ 9+Z#dX[bόmrݟm}'ptǙ4M}䓒OUETl_p㏿sb#]TPݭ~<#{s~-Y]|쵔=dG^d-yz2@,$$[$iAbfB#1JU4;G CJUcr+~ H-&8;],io1!YgȐdf3J B'BWnI K|6XW/ɌIh?96| + P%x m?pvΈMɭaɌFD%i9 =BaBz+>"׻ q+ѥt\ U&,] Yȋ0/' r]+-a'9vY#Q % GNu(oGxt')0$?cϺTA[3̔8D r3uA;/Cs xO퉔Ӱ:Ϋ]Ϧl)td71*ӻ0=렋c%Q>Om {d75nGw#9(ng<3e4I}j싀ͷ/"EH*ʯia{lQUch(>ˋ@?Ζ.Ezp<=,Z-WGpcKz6hWޔz1*\t!/le몭Vǫ=OUi8. 0eDžx)D%06nƒK} TGGev(I´-2 i,SGYim8f)Xu?׭:Zx{.he{bo[@&WU/_,uq0vBt4>AZhׂI=E=E1Xʜs[\ 4wݥOq'BL'H ek+Gqد)b![qR0$q_X Z0J=\bl=nr 6g|#?``lo_% allOVRϜjҗ7u"zD,A#u6cUM2a"}I]E6̀3O <p1 HQ5V|ncm2g`3k <: |ffg*/XY f 8y$U!]4Wk\TҰp+o:` ^<ꂊc?ޡS"wrxxdqyu;PSt`HA/g\y$ա 4ǀņKjmJ3:6纪#!iG0*Tw)'S1`k͸V4a x|-"TR;P] BWZ@ >+y3鉮t!kAgJɭa^ nt{rO1Ksq@'Vy@68L²/ lXzihF m8Ѥ3 i!%m4B ɡfLA u*45}ۃ[(WުLW!%:u#Yg~dY"SIcCM[(&밣ӛY'B)j,>hcHOL{[g?fڹz2 M}@VkBg 92¨&ɏ~! ͠&2kZJt ?:hQԀ.܌cCMԃ-?> `KºJز3rl۩b3}8$\nIX |H LQXI)Te:itc㏡USWMci4sNҦƎY)~$;{7[t+Awoo7 )tȞ$D.u!_HsaeR? TVzyg$%JRb$-8_aY+x , <6#k5 &x,6EV[ 20EFL+x{x 8 623EFp2lZ=۬M"UڣHC IDAT9]E&\Z[ mҪx4i@ *' +6oAoV1Bk10Bk'(,LllIBJ,!øI E#j9Ta ℍhRQ0!ePDHTԄ0$ TLIji!;(nc3=O, pjeTѹT slEaFhoV0Ϙ($ & %,̞bQUͺ ?y3 tVgj±3AEv6;=U>&̀=V{3Ān+NvMi֩":f9-X913 xSZϩۈqZe#e m4|`ZirxLqr0W˙7U-\'\ǚ6 ـzdb@GH"€ƶ=3&csۂ<+RzX6>sܴ)_oZ$-VV.zzu*cyF44!X3$/ sq ڈVN !J>8ࠈVSn{S@~xlrėNOFS-(?7=i1e&I0!ѴCq)8{M(wTihMs_ᐴ9XOJ>Cq_Q$(N-dB7R(Qduh$td@T$qWA>PF ~u}AIHwZn89)Y꾠M2,[43g@{vI\YfUSKg:eʷm{F(:yoygŵ͗ާXno-ٚ<7*UW)[^@sŋHi_͟ PqUOjUDŋNl}.f`s@׽5'{x̀苳Z7{'(w,]`-h{W~u!l_TU+A/]:m?6{eju#N޽a9yW-T'4u=~7/.^JvY+_;rU~G<^,xG ?]ݎ /pǮ9X.OJ+2\,\ '?U7%2@(PQPK: prZM&Pksl2|eJ~N?ZS?2pEY69;FҘ͎u_DOk^sKͅAG?5{1W:{MJy;>' .Zy9rԮ<1 t- ׽;,ʿ?`_ p4q]lG=殓)M t9Ii"=,Z )J#"TP&P1'*@/R!?t G (z&ͽnOn2 dy3|g:lM4ldQ!7IGV7D ~F>xnHny*-9RwKMFrZ\?31Osc^wwo* F7ެjF' Lr}KM.n=Ư$o\_ KgSݾ"N:T\?;k.Ыf` -NQ % 79&$$9iSPXzn1S~H&$ ڽc]m7r J}?(aL$&T5TS,㬋)栩r2PV=?}*J|m栠r}? 1uۊvb_$(V%EX, 2d@<(_٨gJ>yB,~g<_b f Xg` uzM޺z^_}/cuъ]`#[u>:VwFc_f$n} d^ǀlt Ptd 2`A_4|W6D)@ռP<_J71 0jz^1ڤ`/  Y2ũ?'^z˃{do_CJۆf;m%`6Z.mS iCV_$r=>7>|$jE-x6v@EG6=ٰcz?N$#e9\=,a(vpXFϦj{gYxF#ً5a<͎%>dZz}6q2aP(DEK_fbob; 4 XxB@7;{ƅ'U*hIt3&d7}|"k3\苼NGD:FPiQkԒisdFtT 1yz<_ 4c|`8~HāI)>PJ(''L\ǂĜkh{!"zS,Ԝi& Y )S= ٸ@X+H˨ &VޝlFjN|)ww}k} ~W\U@L ,E}e (@ 蹱sORYzky<:uBq1 ))՜JR5,- k:!źӗ2 So$BwȖL>)$9~buj_g~]<ƬQ9xAIuL"=d;%EPF!Ā IICr?UF$Ś 3|Y^CZpM@!EaB`gM0 jUaR8nVH+v$`adE@H.> I p X@|mP]?PheD*0FуTʪr֐jD;.73İ DYnRC.Z](Ux&Aeu$_)H1|(:0cH?-lT7]naZژa0(iE0AQLtOvpR4#q*$c4BäQvc^8-3+G` C(Iͤ0* Mh|q1R/Ah+"]fuclvV6~*! Ra`XJ .~- z0`E^7{P է $Vmzsow.zɍx V$Lm024YOea `Nh| 0Bg?C ҞG[ O;^B 0˘`H 8 j?Ҹ&&ɆT r q^ I@_L E$&O|x:PmQcF = |<) o }yg4y2 L%Lc>MOS1gQ )'}BX Oțj5kY'u'f~4(L8xƜa`1`:jEgfKNn[9Q[T9Ev X L:Gȭ%rr_13$59UD͚w*cME9PD1Pp20p̗;]7:ˮV'QwZlME?)7z M΋o4ގ(j6aI{5fQ#gD*YdLj`HGwX|xT򉺛pLT¿}//ȡsAmsg=ǞM;T5;ufs i.y[MI5nT{hj8ƾk~q(QܱZ֮}65ӤqzuI_iy9 3&U&Uӕ&&;MѤL{--\ڃUmh1T֤6|:I˕$0PF!MhRe֤}-5*aզA0Z5ۑ}LI ]mxIu`m >0=ǥr] 30NMO`MxS+:7{v߰c3͝UV~νIWZ8YoCTKVxC9s:.Tv`ge_Z緽zv CTXs]fWW4u>u n]\dɦ?2IZNeƞ+˛ۻ4;\]q+2؎|~9fI*&M[%nn/C5xVV;M溒 LQ2M liU$xSެ)d1iҨZww@ܖؾsq{w|x~x[]j_2Z@2t]Ηפ&>;͕^=6*a}sϦʯIYmR]G ^ t`FWݑ020Ww^b{+v$Xn0L{\Hs4"YT9{[w칳tw{kYv^77T9Û_ n~7t:co9gmz6wcO x:^ kLפG5.j6{^}"o=j}BX:M|^ת?|,7M 7g>[:y50'_7ǰcYc"RBl` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0uptk0iZ'![:k3и1ر01rY FFJq pp7VoþrphA6Nx͐?7Y<DS00 !o74KUM4J ^ d^Mf$ߦ&^'6==AExDxP~C; z3>,h3m.3Գz1iе/S2Q)ך'°Au~ Cּ>d4fG6Lzl󶾩 fIDAT3 2Yd%P??mr?X1՞L$ +DH׾<jT)hd6{J lUlY5_L](5TQ RM ԕcK򖚮QBu02'$PL*5K^%]xBpڅ(:vQ~e)U 3(*k!>j_. iu@d.),.2;sŹt|},\mJŒsx '#ƅ\?a[OÛb?#$fV!T ZC-Ťˇ g5pXLfy_}>OwKAIީs+k4yO[ ~dtH1ՙO(sǟ2E.g.t#!u3icNykGn 5Lva`"(**V͍$D 2Ppx,y|)uã|ώ..@e|D_ŭ }\3=Px<SRH*97!+ xNZn) @UUfGrܠ` r4t"yPΘ$S'.oFHľl6F]K,rC~܀xb֭n&>"2Zi}g~s9ܒKiꔁeh^F=̡hY6𐊼ހh P z4Ҽ7ЂAx)0tJ`3ejY^UԝDR@m" U ,"A&0P[&2Q  SZ̛πY6@ʗ h&ծg٠Dj{D)DX-$zz+0B3"TN ,SfDjBJm@m$YbZK6-IENDB`homebank-5.9.1/doc/images/use-budget1.png0000644000175000017500000001256513604616712013657 PNG  IHDRZG`PLTE5J墸5ͩΨÜԾ9R6媜ʴ=䃏D䑌Ʊշϲм瞣śѴī_盜յ}ۮܟľڹ޽Aq湟wk=楚vΤ֪ƸUVqzyϿȩδ`qqe꒚m\Zadsv{z翢ũǵqV墒n㼜uru\I硂왰ԯÝNHTwӰ˱Na~1uˀeZm^7f_XbOQMhkŝ4v}A:3IDAThXfFՅFH@H {^W?HYAWe{}3 u!'sy}!IEeEl7x/Q; l!*{Õ A؈-4+ij6j'QN|c%(u$H\|bqqC-&U״Ψ|YHӺ..[nkY>T~R)ZT.qB/eLY˱R|ޗRߥO :12x|yU39(Sa?z"&Dz%V$5Z Y,+"Ɉ˂NDFFP`P0R,b9HfSt q@׫Lx~[k+ʽމ~ RZމځ Mw~ JMfxK@Op u νt 8W]TA`ߝdLډY#@%_?4mj/]ç.ϫ.G@?IW߭ eQܥ V PLK`YQ_(PKʎ(R|Tؑ(uCr[|ݐZ ?hh8rۛ|u큄-AQd_"CQ! ^.D^:C1 yj(%$7 HJC&KFG Hw$^G| w*.xza #3@.ǵ^x#ۑEnݦˏvTh];\^hx'F`/$ڨ~/˵W.Ǜv,۝;'yff nqR*tI2@n:ffU Á|k.4Lf ,6zH~>nq fWI uOw;b,skcH qwhY#x llm||޾,01i"!WZ|cnWD3<Ĝkn\vb0+K-QULWA c֏K~a{I%LL"=䉙sboČTDyLDE,{ٻ TI<  K.A: ߉ @bw"_/\0=.DDuk֢9 IZ,֚E@Tjч o+>q<+ڏ!yk@F|9;s:M8^rǟyDLك*T=Te@S]U=_툰8"ɜɬ-."57?ʴj2 nN'Nfo<_kmN2?Oo \8o sF(od}_zH;]Ì4Cξb>Ϗ8ql`׻Wߥj]p$7|legmoCk]ӄgnRe⊆rL:bRԹ9331|ΦmLSH4aV4R QBH-M%7ӱ. ~E)k\@}ls 4oT?Xш/=F6?ekBͱ?,پ/nm 8poy] _5.[o=Ko /{]7r 1_=|CoO}`{{4|ߣ3V>O}7n4_(a7.D5]wq#ípްoOYL, E10`)(bc 1xb&hΟ]@&՞#!ёeH0$J@w"tfz \@AHs@\%P6$`"#A'y3ڸCNk|OF:ˁ 'ؘ $;#ˣplfr0ID-ŗ<-V*V⋈F֐5HA6X)12W52ST"Sh"y>Q,(QI= `JdػꉔF[Dd"CXM^PT*Y.%(D<ֵ[S6wFR$Wv6'TtV9IHJ(kh&!1$1zݑ44}Rd;aZQif3wo+ZkY_*J@TǀHcl.z 5B#m6%0?-XW{E?AL]5=0k%k<@vY!$_wCڵAלhZKy'e4S"D @:Vۓ爫@Ҷ cV>.}Đquba4Ժ U@OjtDj$ɜXGGp~ M (cxkY] qaϕ7b/Xy D%QWdf D` }<"&B˅ED ћ7}n޼JS7aňpe !L j2z"sσFy ?p!p}٧IGIqh#k'))ԙCdSs^gF Ҋ0ɌZsaQk̰Dj,lC۽*7_*+1A^j`) H:"dDRb23R8h=:+*NiQ5bHV:/ -8$@ne@JX♵ҶNʡhwbXhw}*qޑº"=S,=DqD o uξ}FY=ÇϏSCNDHul|ꪇo׍3+u-g.x!dfDz-68cR1{9BL>6̦$3-lj B {ף+૧ uu'~Gg93!:8Fc{vnvvpP#^Amx<7ʢڙ PJإ Md;{p?2* 'xXs:JE'!E & !x.;2<  0X1`$3 OM1L!*lT񙪺@211G`|ki( tYDDdUS?Y (ȩ7r rfs9Lgשe%py3;c6Gd:vƂ=$T!u Y'~o"-< fY?ox]/tX~Ho_?XbIENDB`homebank-5.9.1/doc/images/8.png0000644000175000017500000000055513604617042011672 PNG  IHDR exPLTELiqyUHyUHyUHyUHyUHyUHyUHnezWJ}[Pogvn|u}Ǵ|tRNS/b8]IDATeE1~m1:},\ $ɺg07di~?/Y5K X9`bp @zWu 11@Eu. ,MNƼ_]&˫%3IENDB`homebank-5.9.1/doc/images/pm-mobphone.png0000644000175000017500000000074314617624320013745 PNG  IHDR(-SPLTEGpLUXR[\YZZXXYWYZWXYVYYWYYVYZV???\]Yab^fgcklhoqmuvry{w~|SUZ٬gmn3ߴtRNSKM`IDATxU10@׿E\dN2@B[@\pnF(Sq38b#v:GjK alIT (JuO#\7?Z[J_o$~z::AA5v<]IENDB`homebank-5.9.1/doc/images/key_r.png0000644000175000017500000000060713604617136012636 PNG  IHDR(-SPLTELiq^^^cccgggkkkrrr(tRNS03IDAT(;2a>;Pe#bL)S%xn @|mJ-CQf&VsD$Vj'0CqUGSK K8]|&/6;6IENDB`homebank-5.9.1/doc/images/50stackbudget.png0000644000175000017500000001201213604617042014157 PNG  IHDRH} PLTE+,a:޷'($%^7䯰ᥥV,)*odwacwv~“}߸~+=`v΀񻏷Ƈȩɚٙ2&f[bglqaj^v!!xswڽөluX^{u~ۧ=/9.8D^\rf{fKqʦӮwph}p|ռS3e=hC۷ҿٹJFA@8lludvrˏ̭ٵռǚ,)9pT:5n}bixTsл*)/*/JYƾ_"oo_C~_jbE/ N6=\"%c߭ʗU(I%\,Gxۧ(E=5z}jj7^REa@^?{N} .,?XqRc diFU>9ݸ@Λ id_JMZbgMSLWquVŬVu[( ?Er lچnNAdjafݷ K*CkPou0wm|NIu;wϞ  @¦9R+^kΡ[ T9_w -^ [x9-HVFp[pyp~Wm!IX?.f5s( H߫Eܿ:zFuQ7-#ȱM 9{FFNFHڪ1)ȅyRMmp"@ ~sd(IUd2)#GǦP!(.'v<I/Zx,Ur 3a$5oid0dR{8mw[bDBBBBBBBB?mDE YEW$6|67W JRzVN .G^ ggeb_oKX٪PgJuʳ!jqHMՁA6ޛbۡ@N7f @sGY ia_(&hdr{@oD Kv/`Dc] V*PAYXD"l; v\lpZ8iv'E22jixJ IOɮQP$$$$Yx@Drt$-94I| e&->4!$@Fiნ9s„Š=gGen#ʂZ wa; w[ƭ[6䫂׿\u8s&<י?;0ßeFnV;J>\ 7wѣ3b>E=vJy%歼zfeܵDmpsl8U+h옑"@X\o w2?uxx폙2rtki?EsU5Z#:@ j HNp #h0k]>#%oЈވLXVoڈAri6E)np(Jw ȣq?NdPVm>`д49UWҘ8Ab@̆Ƣ>S0l^ra/H5Ɨ+4DFxER6~E$HW;#ll5A\ @L,2*3dK@*N߮&3*s=-5g'^3\8ix/sÃ#HQS=| yGICZGBS)+QH+D XY)Y౔\Oq c5e (ZKwIx\|cuYK,vx.] pZ\.WE@=2[ouJc#w`:*m=w +5AAl*dƃy H)0~ ycR'B %gUZ_gM[I4u`D~3)Q*&x`ERv)BWa ׳w}LR󻦛/ ~z.$>9?wp g̿}9MIS2HQXe0JcѴ OWsw Yٝ7 Կ՗5CvuZh st1n`&V8ϏH2\!8Psiy›+w4_i~လGŭ[ S@8!=,f#R~|'9w撧!} COZ"xaQl{_K^n HS߼މ}䈒$:y܉EOQlyOI6 !HMT> '|b0";.! Z. ]yc汮+9i9_tL&,dyvZ\zpc'< ^y|=ե05q' ]i6<`ð@TЭ,9"-P1]m0Ä́ {7.K/aYsnO/47~!N= rl]Ȱ5RyqNrHr}C3uv>X~f #OޥHè@bR,a;ŢvyCQqq(DŽ&{T#ѓ zDD HQIZ꣐' ʂJLF%QG[V,>B H4@Nji4~ !C[tʰp:&ol9$.qĨLZ|exbt($TV b4jSb߰To/Razn rhhJk nFerElX"HG"rUn&qIj*xqSdŹXQiϦQt~j)|Ryara )ҾB/B/<1 ߰D*Hu0!FOڴHy>&@ړ1Ɂ/J !fdŊ(>=c F4,$&oSh/Hp0.u8:F]E7HDja }s[x lcFj-dlx4&Ôa,Z$4,Eda`]N)EjIM[:W2ٮ;Y*>ʀeg,e=il"rj` {*-Y K `eB lp=A6ɕoapF$ݪhdo)TFgc& 'ƷE%fRKk<6ezp0t a)JcM(UŷUFÝ1T#hXRwgX1,UoeCÒx#&$Ai\A~xJ#!R_|$B%F[VЖ5ecwwN|B sK(+5 A1gƓ3:6% A6 kSYҠsi,^: K{3YW< WHdT,rpjFrlك!.rQ$Wfo||<؆geu>.b}I|{B JX ل+3C[X8fX|߰$;a.TrQ3,6bX+M-|װt+|yWs"tjqn=b-ڐG}cJixT4E)4i?jeg$*eLc;65ΥG3dҰ)׆4ϲRcXz7,"m7tX 6nzr]! MgWxz A:vWN?r%Lx[y JeR lґ#l-. w K=gXhXgjH y /Jh+Ap >H3I==k 2=RLz%)dXzϨiX׶`t) ٰIJrTߧE7i $fۮm$_XbYf9dflLk!H6횻1߰ϰ ,SbcXʌ|RYtI·f19d-<7,u4>Ò'jX7WĬIХ7,Ia4,ёa =""4EdXBBBBB?T( AIENDB`homebank-5.9.1/doc/images/9.png0000644000175000017500000000054613604617042011673 PNG  IHDR exPLTELiqyUHyUHyUHyUHyUHyUHyUHzWJwoxq{t|Ļƽ!tRNS/b8]IDATe@fe03㰏4IH+"$%>$')cx0K̭j n %ܘݬ$9\K TM_轎c_o7Ss  IENDB`homebank-5.9.1/doc/images/56stack.png0000644000175000017500000002347514617624320013013 PNG  IHDRJxPLTEwˋ͕aj^uǩлթŸfчpٷúk~|{{_iӿ忩ɋĽutܒͤ𐗩LjsϴΔϸПםbҺʯ ά´ɔruʰujvג|۳~Ъեµܭ}oۦ˜ɊءỾXUUƊ͵ɻβvදgvw–ϵ쌅rײȿ콃Ѥ;>=U|xkm7߲ɧẙ^_mŹ^e]xۡ:דmYt__üZ\tw)םތSEpw[{„蚩͘kkG̤]{QҎ_^u4RmE#IDATx @׾'J*Đ%lHCH!e AAeE+>VQ"@EqAVD[k^Ҫm{Ɇ d̙O~ߜ;cJ Aq %9z< |oA E I7zHO&^<(',ԅ)"H$<>*e cD}7ʂo accCQO>`(Bf% Y& ټ@YhPkv|eW=jjjjFqu7J;Ә(Dk;ΠTA͝ ^xLHq$6O  4D7/ !7>luD(ٳ?/>qڨu_,%O[_х"۹ ^<`("᠐" <](W^/ںFo^?GZTTp?~ަ*ېl_DtU޻w?A66[@)裏-(\ 8ѡ,C?g]ߍg$]CMB³pDآ|uX_K2?4[_|Տ*f99"fPMV>>} +;?# 5QP(A( e\EP(3A%@O9r+<}V_wjhk ˗|((dž?`l_tڢ Ɲ3JuӽnPi`qhUPhoch(3<Zqfbl++mtz] 5? 66DAg`;pV\8nVn(Gx*9[Lxʃ.L5BRkFLpÑcaf-E3r9G T M Sqoq<~İO{>o ޭYWSǴ D-]&=C>.GC ܋8\HvRľ˾>M06܌#PBB-鬕d;}z; 6j$H@̹+|E>99bEwגRNGDR\"K6Ňq; #$mq ςHn۰"| 0:.&^"nV\'dҡW$ܳe6&]q$@|\в/O-`&"*JPmZ+(?6 C}3@(sqsG߇kZpI:c] d^wӹxzbgѕH}|U֞_?V(`w#5?`(,Ge |Tc:o P-޳8+bN50[#'Pߎ"M bMH \wlT(ܳIQqjK ( ~;z4CP?׎=2M{e+;Ot-TBwܼ5Nٚn}m:`:RU ޯ?D/|Gf$Eoxx̩0- $|| 9|47V| 5yT_*(-8jB"r )G(KzsTnHHe=7G>@thF %#:(N8,+{L %!X!QTT…f~/h-76hWۀp{](hۺ?ijܳKf(4PHDMv|{5}}Gh=v(Y˚xe Jr1"5/jp$ҌQm1o0 a2C"š]k0Cn#Z%l; d[n/#^!'h++<\)+V}| RɑƱe@5DsbcOq{yK#Oo@tFnS ~{$]"2ߊ8olœKѲ$88DtChbbbh(LB šdI&dI&dI&dICδ"1ܓ ܓn9%aI9<%+jͪ[9\B䙞aǬ#;BwN_(w)79h\(æmmJ*RM\!YP}IY;j/2'-{dpdf)]^=۔إq5¶KH"LcԪ3!ҜIع E3`Վ[N0@] Zo!1)M# XL&6G"$h'(*pC8= h'= ][GbLW(ڠ.H cPC0*hg?D{35'REg02YApҿ36b0~26 },fX[!Bھ6bQ"2jPQڣǤ U O6F?YpPmon93A;+PVh}R E˲doL0N 6ˎ6aĖڻԤ8cR,=v(I A>9P)~Ie,LyseJxEX==>kGR c+G@)ULKiB٧%D&K).AS{(rNBИSw"J0KOoooܞ,(S$' C,4AEg/4AшlDoHLjghqF9>cQ1٥°  ہO5TDBR@ϭe&zv~(B7N a-̪ڙT(IBCJWDba < L{U?ig"tZ0{ڳܬ'&ҌwK;^a= d h'^WR"u5'X&5inb mʠrz=&7[e} c=X7&4o4+aBvGÍ ѿ zL q }A;v,>hCOЎǘA;S&1[ʔ%7F`7j(\K܌`mT)b_J.Q#a QJj(L`"-5p%~E%Pe' {MC0t6~(CqقRBBITBadҥG"úRsϞt)HXTwqsP87J.@y/rP(Z(dKV%%'J;Y/:> -4ԕ`,PЖ&Dz1ťl\ "htҧrAe(S(.  (4|5#b;Pyϥ{_1B^B`<]+? 06f(H5Jsǽ7=0&,x/kN["X/r2xm{AW/ehJly~@(2pg ~,rz8 %j~(%A( 桵dB+bg&GJq'RY*%:"4O1<]  ;6ǃ+~~zQjgHտzE&ۍ~u]٭=TPbK qL5c9KyiZ8I-ΑpTm1JJ>#v}9 Bį춤WKz5oJaeP\)cyhqP)6o) l/9&h`o _ʲ”ME2BTP@OtdHPPyŕW|OΊ|R}hE=3:߽)ԟ("Q W/?BxQ M ;8Bf` Rj( Ij*`Ibh rz=i8ed7%16Lk/$bmt%rPBVG;mo*#XF^-$Z3Lnyži#tP/A="^7/7:R0>.ql#Ɗx$ZBr<O'zGh+b,Gի>;C9A:ـ8B;nd:r)3LzCN@VEUk.Fi32Itн5/5w=@nYtirDe@c(zk{]ƫ(S{Ψ̒`LҲԨB%h+8]qRr2+6֜V %F&rRKO Ny'9z +ean7e5Z_J(;eg'֋AbWnpf+8c)NĄeg(O"ճrd̛PƲ,uu^,L\ dӹ2sta61;pkqp1q읱uE{[zϞn%Y [J$|/LwbFA@ vN!U_ZXR)O;/.rR:7VY?'?Ki)Z{gko,R l)[ a+sz(eœ z둆ossv 1p" 暴$AN"J7N*6)Oi LPL j0!}BP2\x"uVx0*e ;\epM r64A:p*%BBl'܂=N\bA`n891'D ydA&ibdT)U%9IENDB`homebank-5.9.1/doc/images/dlg-prefs4a.png0000644000175000017500000001440414774772566013657 PNG  IHDR-PLTE502*ᘙ?z}}vyyoqr~y{|яǒuwxsvvlooxzzJ玏熈pstrtu|~2~ڃZp5y{v9儆PTU}泴߱_bcbefjlm;ACKOP4䟠FJLX\]hjk-T]`a\^_%7SђUYZeghFAFH/ClSWXOYqg偤艳Ŀ  %('025lJCz^逬쇪5;=3x-57GiJv7|eSiz#'Nz\xW<IDATxw|}qwg(H, `s(.gȸ-ےe[-K:f)"]reE,Kem9n%xv$m@Z%k0|ywwxpx MΗh%[7I:.B:h[muEh[y'JZ&o)mk)U ̖PCZn m-"\#.O|pJJ$@l{gw#ugiڼIt]VG 䧛_OI98{-c)I5z￞̶-=aٺsÆ[|#pᑔ$ID{x?noIizG?q/>z!Zn~o?lD8 Hl gng+c[ӝ<>xp΋"o1O>[޿"joןcL6Emm Oo8wIh'Oޓo9qO7_8~768+{ٷ bgdE5 k=))kqeJ&';'?|HJ$k ʵJizGޒdg̿KW~*vVɽ+uHZ̫?oyE~l?Kj9 mum];hV>KCCCCCCCCCsۂ. e8e_ЁW~J&@!0'dl "%E\2&5u2/֣n[LGTHyuәS.W]wRlv1owԒu!eU<>*bl^dVY1{ڞI!}((8>ݖnj3t8P)r_f[w6V ~+ JzfLj>ruT^^EhbGcƹe$!ȀM ^Y}h 5fz/7*ޏtX(g2@@L{U7VHTZ3C*h!$#1[FsmIYf&O놹aKcQch>d^hkL}ߌS)j˂dpW]AR"zY:@L 2m=f܌ٿ vrr?fPRt͌j9>'ܶ}O#HJ($elp+ O&R8 br/Ű>۬I BfQD&(Hm2ihV6f4WYF9<9݂MCCCCz8\Mw#h)@s/LjsU[Đ˶A^u_: Yu=X;/3p98o6`Tڥdt|12>/؅Gg8d!jlCK4,^Yjvd˃8 ֊Ŷ*$&hhlƛRuB[~`&׎G0,4MvfѨB$8l|E o,[Iă!(; ?$ &DȟqfMKleS.UYfƔlU!S y𨭒PE/;TJmԥA= ʂlErZ*qH_+6Z@9hFUh#"? ݜBUjJP0SeᠱJex3KVO)"./Tp{,ZfMO QfBByhy+YjK;u_*Ux]givK"8(Tj,r7Ol*5k;oM<إKCX>B$ڏVr/L$](پ3-tUD4[w3 l^(J,E*c/.>oq._M黮lsWtn.s[5o> Rv fMo-yۺ uߦԱs f߃!lJN U@b܎wkh3< \XI +:]4`\&X)Yl7$v|xiz]@4"7ˌF`#NDj0[ŶR}gaX0_%,p-{U'gv9brL9`/r(y[>,DB b}8vsT&`V x.SpdF+ [;b[,6ɖ* WpVkגZ d6[, >o[KamT6ŵҢVXQl :4a"aH}@jF@NHX5x¤CK\\ТwU*\֘1H V$6K z?2!sZ` ]Tޫ!! pم"+/uFᡳYtXFL*lf{ek4uۂuLlI^1TV)*[&hBxq[ݠm7 J+Lq[Fh+=Fs~C#\n(nCP[}&"2?b̔mwܻrk'{n>x7V<#v,mz1b-^N0G]zswmM2M(j-h|sz2b6Xߞ KqgS;bX[6śN?0`Kx`78gƦ0 /`lnbyT4 ap$pI="`rp,6~U͖ pPL$A0pGO‡GcnrADMCP_sK*<16}B2O,<4 " -ɺ%u7&_ω$ظ/ێŶ }꽱G ^-gsB!h%& Ҩmf4{a{?QzXd q:- YV؃綢#{j?䊳>CVVp=jwȢ2Lv㞊$R1>˞Ոwd[1|ݞ En-{qⲵ[U8]f"bfrBXj?=ZiLUqߴ0 VhZeH+ )22,j[ Y9Ac,n]K[WZttAZl3F YW`i [AY`| o2MC-gva-Y5  2jX & h\n3){!ÆO5d u`P_r/,*#x#b)%LO^[SUn~3p.*:Y?U&O,<zk]e*->9X (ׯj%LH[mwȳo:uHbsYnB`;W4"f7Q$Zȅ!nipEar9mƩ'|pa聅Ušh&H0,dMX66|ؚˉC\& 40IENDB`homebank-5.9.1/doc/images/dlg-budget1.png0000644000175000017500000005075514617624320013633 PNG  IHDRa#PLTEEyUH=Epgˢȸ𰱳Ӿزeej{irqwͶǸëj[jfƽ{y{޸o[Z~Լɵоqr|[MӶpkkTSRnpn;AKwOjzxӑp˚i\zȮvYWtA㒒ۃ*/2KeL?Hd\U[hxxJ=8XmʩmҍZ֚*3BWϻ֤ky%EiBUlʢzGq3{Ӻ8#&TW绂bOpyקұiݮw㭋bS0Xw?ݠ^˛˺*ZqP刯yrJ#Ŕ?jAWҺخ\$l\d1mXopNIDATx\'!QH{{SH  JQVĵa{wuUmwL !0NfNf9y΁ TPBJ5gy9bd$N f@_d>\mLB!?E?F~ r"E9dFFv_4)0*{23E?WD1]\ELb YQE9dƌyl0MS08) sF9C1'#٣|Q>rF)YH4$(Gs  1j3fLf"T1dőj0nJ:|$!wc yS=oj$n__ /offO& =wdA{{ uMّkO?0hL%˷sbߏ9e1Blcn>H%-=ߣ$`LOY}c U5IV* ?oT̫>^F ioX*3Yؠo֯3gΩjo8s T!8VBM {ۙ޽_?M?9r#w\ ~ N%PSnb /1`.\qJ$!`pG'bA0 X*F$-{K/ v!m3/pW_WK۾xD7 20 oi03i)T"/Q?DGWgλ;YHz QQA{Lކfcڥ+A",CށI9 !,/KǾ\M/#BHo#\^qtQ/!=? j"A(| $=DM8'_wNM59xϖV9kwr©F[.psQXP֛оQG{w ,X [8'\ze;9CZiKn}g߻2د?jGxBvցy`j̍Z `$v.^ RnCCw7|oo -= f~37@00} g/0p` sžG`܈is 1kWNtkndhvh6-/frK ȏmkoQAqNy3t2xQWE"d.1|gfžەɜ,R_X(wYt7*:1 >xdUCt8UE^ !O~u/E t/!3P KF F-#C3M,_mXőrχ^:v5ΐ)g=#ݠd֝Z[y 3oȖdG~u'c_꿜8# -ɬp?С}7[xuЙ.o;#]ctlsV'D` ,yݮ_O⌀1=638?YM2=oLGe|\WH HC!؟1erҴu 6% )I5]<0N^u#ͭTBX94w>XAzدC'pr :  s7Ee$wnvIXm^7@UCD,$<^(:fq55f;b7KWSnmƪRsV`0x`Ϊ],945Z%!0%ˆ2;l1~ P])?Hej kk=UvTqQR+t'dK AyTpk01J@04Ƨi_zma|+FNV!a J^fJxdܶZ q[c)G`08Wq A@{#]ԳDD\}-"7z/"^6&_ē}iZeҵVgRӪdU 5{1=MF9'=Ãj̺ՀdgV+Cde.gC'E jH0I]?}~溎o0N{Z Q5(0A⍅)So.A1R1|:8ˠ+eaHDT p Ow0AV.%yL0B~֟N ;sWsQ 0Qo}9AOڽ\yzԵ9 {FmiO+m kv:ZTO)upڵKʜ/e'}=T#@;O?!`Įg^Mka$0'[(Nv2ŝ!DžV6'#հ$sU,Ϋ3* r I]ഔ >" !3*~޷$ 0xkh0~ . Ŭ10lJ(, L9Zwq55)gz^" npc1F%z޲8JjfQ`O 0e 'o&2YC~]qM}ctHwŃwզd }`84.ށs;2K;|p6=0˺4.]e}T(J}%} -3Ŵ%#8Kx{1m!#6:dAɩĜ fl] -:p;8 =?zSuG- b7;!`~G}PrH8p2plpre$s=˾R|Qk9bGW0 [+ ОLh[,y[|j"3z+y-vrTGB8(0_?֝ ;뿹hGUO{Ow6`LE04fwrDUU#rfdO=y)؅[~)6'/.9]痿c*Ɠd1ߊzyfk[+^Gx߾h]F ;zMxQtg֏/GĽ+O}׏<#^<ѺpޙI'?}a 0`toe9&"8cqM?v!IY,0PW6Vl'LR8< "HabZݦ'G EK%y=yXc8%'c04.Dd9lŊFj1C+ڪx@Mj M ښD!=< UHE HD@ 8Їy`JPُ tE11\'ٍdEw7U7"#蘀ȓCUe{B:phPLPu4t$S:%YQG4(&**k^j` 9)@jF?cX'^P&'_*5ͮOB~}^hl^[C'6Yyq0yƑ0@i ^eyATP.+S'T'(s fB LŸ3q/?GkWπA-&6j)-)L0._{W3a^nQ 10Nm0'7)=0֡NYNJk-XX^\ kLz:Âli .ź]>ɋB `"0%~x>9<q`rw߉Oi}q,i9X]k0@r1JD++̏{ {OC#z`B@5>9[xk& c9 Hs- yn!]6`HΙ; w!PϐUH[ڑ*'8()keN`0]=l`WocH5&@+2V`c܂ke(8fؙL]0~[zg̳zOw݆/XP›uݵ >d03 ͩs5La &?V(&f:S54!cS}Gi }w*w'tKmM5!\ !*jmyW)cjabw*Q` Nsw/`Z%v췾>⿎>*M=1n V̡Ey PJ/ Hsǹ$-l!jyx9I]pY^Vπ엟5S_s04VWuycJaH ɿqw[܈_򱿬r?J~[s݃UFp_x۪̣̔UZY- Vu7ZۻOoqw2Z`pWКqŻhpH(IVDkQSkXr<`0"GA8p5W.}!ƽ8ZJh d_lg-m`("`F`F/olޮe);3qqokv~_|Îj8Mtuw&ޭcƻt_V=UNu1 eՍrO`HpqW0 +N RR%Gp7B 6¼ğPQ3І8o"E0wS wޅ#͐'~e>08WuϘ5a ףnpΝj -m{L߻lWҗo~[yV]op2?,˹ld lKNZ]v0:Ye΍ɬ_kN #CMTC<{L2A?v>Xo_2oΣu\&|G1̆Uۮݰjoj7wcBD'޵Q3c*<^uX)LRE9yMiU]l|5g`K:Y-Qܘ rI!v%!5UgWw~ ,n ,])]`<m) L"< ߙ} ;nߙVUfnG]F\ookߍ{BܺA]y{1kپmMWr +rwݟvujE0`f[deS`  -0` (q[rb9xy9d,9w  -'yy'%/{p2QDK@tJ</Bv["Ț0ОOLWai1QX3( * T(P0P0D'l+?sAK0c>=)?[ AQyEqt)A`N|$  `LX}[$]&UQ0xwH2@`ձIxBgm-`HK?z'+1`H_NCp0Ѐc ; Xa<`H|<|Gc"0Q\7O55w'ۦg`Lz0Ӿ}i㧺S>u>;w<'~zwkϝ}Oŕnݻw4CFL61^vB o埝h:핺:ƉWM:%‰uWfmYN8+I?qL *;K00t m4 !N;uK d~`gƉ>;Qg8V鮣>Yo׮?;ٷŕ϶NXQB ePI $<@XUh0lVJgyf_5oYx0\2I|XpR=E\,쪀uֹ\~:z%ԷJ>u4JNXD7X~3jIf6S#0tD˒u# g'<k@2}$$e I :8x4:NzٷN|[ԳuϾ=,Co|N|49Y071 рa!c0$ 0vS 9nte  fΜI}|ڷ)g5W P.X/  g\v4xvR R`~``EcFI0|@X@Qk809;Ydf(v&-qfջ'FyK+(veV8& V"Զ(Y!:1X z3d˲]CD"fYQB8V 5ڃqKma33iu2vP0c` _.'MaHHK/YcZI;u(Soz>qF'`Sv׉':V2c%d-'2DK011i">q ǘӘ0î>au = W:r7' oI +$$]8IHP7AJꌳIIcӥ0GNn֔&p4}=т[\3.0ھ'tvQ3dUDfӆuUtުgWglH_gܨKbU^u c-[lಂVBiw۔›Ձ=ɵɱ7<(t|6FK81l>A@,=@(0#hgwصvk<,]MtgiLwʑwl084WnDDGz|Qo2E?cz_zy˵V,لy||}_~q&WG?bڏK=/ 1Z'oXU3k<~=/6dc~5oY+ EeqR4ƣ=c%6BВ2^' Xe:8N -Y%Xɟ0)IҶc( HoZ"%ݼQA ;y%պK蕦uEʂ '*0d]`SjWYpEk5EeFtp8pYҥ1=.˨7ev /xYX9@'Ց: Hubiɶ]پBd$$J+VC%)Ώff FwA=`.tݡRƥ Z`FU4o 0{{GH|QyDp㮞MP 08ؙ uOv8p[{ b6zJ5ْM[ÀAWþ^DEQ;m< 8oAp`ܡ,X>xcKn%v<]db݄8 xȔV:x.Tp4(r>~q8j`GˀD%2qpQ2Yf`B)D^4Z:(,#DX0X=Bh god]&&̅> Pz?5v&G;$uhsx0luDO8RuM-BoPB$X!L (˄oRVBP)`Iy _HSLgygFś1V/pVBupJEKNCo. 4 U+79$PGV}ZohJ९l|_jP`}`*]#لtF-&ڞ̣5yHp2p_zJbo]k-WZgB+H p&tgGw+e` #0MOQ9((XX/H<Ѳ[.`8]p8V}Ǥ>_v&Ëtey% `׽ڥVdwE`8X[{8y_jSUQπ,Qc@ ( `;3khhͪ {_Hr 97](`'0ި\c7UUƯh=h){ C^l0l5t5yL-Ϊdz 9`!u *1Hc0] tjgV;1Vcȼ:sJβm PtGM0o\[q qW;_' l0,tLb<PbV%TZ10ح/:Rux:ڮ- 2+#}t e*YSJjvk+m\qȼC0)?ȳ{ r7W.`XlHM M l"p1[9~ 0G,7ܨ1X#.$I+Z WgXR8Z+󁷋k{'p I |$ e#߸wpW L(dXtSKOc%<0~ tMJ `Q0L SF?BM=EɈBX=~|:L2?WG[$ VlJBBZϝ6βT$]㝮ْ *ԯ  r=:g( 2Wciβy&X,L'4/@sHE40hrvl<`u&C%'b+u(-`0 `N.mbaLB{>4o|u|I :V2.q U0xfJ_~cqNNN CIj*>Ӿ1Z=[{Jfɣ90 Is22%W7o.\b]p"V',6aZ"sf.qN 90SxZy[0wnÂK$Ueї]dUkjahA0Y+E{\_aXr-=B2ZW}!0CV`.Z=NЏ1`XY} B3d)wj`+^z&+g476``p+W4h cC fĺ#`[Z{w&G.(XHj 0 hӆV[]X5C/}%(x^؀q$,& k +`Ps61h !%t nh|Do`7/ PBrO(fM49nte! C0&~m(04h C0F[EE(eK`0̘8U(PTCMDx0әޥ"Xw 𞻺ޑ0@9aSE {UZq]wu҃~LC酖f!RUxYhd-dRQԬ`zVzcme !]fyb:ϒJM@'g n.5B,}5'(:\YJFѱL 0A4 0P0O-}E0X5x%ʖzPCN 9+|o݃N?'(db7X_:QCK˘4|$*(c^Osڢ. xޱtrZ}yLI4`W>jBfat) 2ť#iptt8 0O~*pgc>[0pɘ.!Z~va^Ƈ??>RG]yگ_)D]ѸkU.@%H%)pD]qy^=,BλORFQqv)O0$qC7w 01uvnO&MtpXj"fԑuM0v+t.tdr``` mX0M [dx0 PJBH  m5&g h,v_/ 0hYrBe u΢5{r6䘛M`Y pv(\3i xA Q^Ҋe`2 Pd̔-JVa5( :πCIPJ$2$ pH`Z!ۂQ8q`f'Ƨ-V yWD)p{`܂6%x$+B®p4hWt PFl--8pcFhMRC8]ɝ"E8#`!}0hMK |Kr I':0-i :`Rvy:k*1E+bz3gyff+.iᦤMؤz,+t`;e/ Xp\JdE]-Pr=r[p͆{_4(jGi+lӊlf%F6ck3FgPh{\ovhY[\^~ 2 pђ0Z8(J/ [ WgeJrXy\& H[O&cAՓ!<zX,e#xؙ`؃ XІ*BXe<ء*3FяAB88}$8_0Z0/9FlGѴͭ{26F`(m%|t rdDo^ǟ3"zwX35ʞOe#SO|D`0?ϊ~|_/>vr75o)xgߗ|~‬¹aW5{2& Zv%..kO?y:6^{uZZگ0v&B825ַpf k']hp,&"c%c]^:\7 ⾼}wp ;gx=5t .JaCeLƈfOKyŴnsk-cz^v !>9O3##, iPg uĮ:/S]z,MdA*L~oo>9I]섃r (4YHN|,4`h+buu:c,=R  5 _Qr`dfNᄜA]$ + 6&i)hE.UJ[J9F40q Q 8ŒNGs(X+Y3ƾ埣`L20|t,ZND_N0d8bv`[5Oίs8!`,*m b TgƂKt` ac24>[$u0etU밃nE[5]:)sir_G~[z~ÀV"` L+Wbmu`ˡ+CǴl/R_'r0qC/+t&|F+pͶ!U3h٩EEF F&)Ljˠfیͧ)2* ̚~xPuz'vu 7ֽG~2kr+tJW7fM _C%13a-e;|}M[_UCgMP-DˇπlM*᳨JG"hS`إKg:RMtMAE+x.VH {g; iO~}rlÛk#Wn| .[!FNgkX[tg.uL1Ww993>1 ƐK_0el|h8h =p9^p?0!%najY0j~+ D0^ (10j`sY|_Yz#rg!o:"jM5O`\($+y0ٯ})J cr#O.}y. =` J.d3'ژ-}p1@mѽlcɱϮγ)bqz_?j;*) \RRaN?fJEVSu]yuynB5}`p=|W9K_y_J;=p<|jҁ c&'G:(9F(쉆,}1(]CPyQvչHch]d]ki6uK~јn&[pvޕSp:fW|p9{km]w-(V4\.s@y}%㨹V6wrڔ?kTu M!K JC X6B/}kčF-N0'@k_u䴉G5ˣ1= ] %E3Y. }%\UJP0P0P0 A`JJZ-0 hc?<śʈf ^g `#7`W(TԉXQD,/l6^ɏI"Io4|1gu;We%I$]&.`_M3nq4?޺1yU6mcc````B@5:HYM F߱p`H,Ӭɠ|0xwwE$]Mpr pt1oԯ6opyǍpm7XO3o6!3$! } M3mޕgUG P|ŵG  Bs82絿B}SG/ q_ِa"_x~+J^_?d)J67\N9Ə %F"`<0ڼ}낀.)2#@gw@Q|ʓ6x{&o}awMyXߤUUW%ʪ`Cc}OV0Ltu$T$&;.?܎)\5~>AD]`5W.հm[m4#"~h0V2;FP2Ծ#܊`YCQ0 6d2ORP栐/a-g=qrr[NOmmP-X A;xrHP2$rb_K qB[չUUU&𾴺'TA`ӱX#B;%9=6RN+\ն "ibi (-$xR6wBڽw-ڬFVB2E9gC!FT9ՎXeHcf9[i9=nVFP)C$Bq_h`dwidx~fW F΍h}䜴ݫה2<jjY5nmaGNbB m /m}NF~xlszJ&#ņyBլ[csbwVUaRKP0FBea0I0)7oAܖ?ń11 ˈ=tDC9e+@QBL&VGVR1ҫ/ !y%\xCO{]&JĆD`,F@P9?A#Dq|Q7wNޓ%C |W(娉Soni6TMJ 骊/ `t܋mHcq.s%6L׬|}!Q㦚r gj)9@Ң#P{sv!ƷAYڂ~9F\IOڞA\0velZԜܗcH<[PAv%3;& 13fwIsڞjrckGѬ{0}+V(净%_0T> +B 4WQ’Uev;D N7DM G!7YR*aaTJ2;`6/+2-ÐA2KMf{@l `j]MՀ#RF+Q0Fa>DCEMʚ5,EzKHc#Ϗ19KOfj .qU QtJ2;Js&5qf*KP}5&Q\5b&!!誨kIED%,2/7_4}K U32G@_+.@*n]dh=G8cHa} ؂3Ei%H-} *8,HcJF9@P3` :"E;Z@կUR99[%X,aN }'ӱ+>rIN2s'@7riO2X fÉXLz4]ԄIPMi0j!$\f(S "?C c򱚷] }h2P0>E9TPó)+*r6P0TC&$yh^ӞK99gY1O[A(^e$ƠU8AUKwU|X#c0r94C.TQ0>BH\f(S \X`LqtG̅j35JӘy?PƫL ̭IENDB`homebank-5.9.1/doc/images/dlg-account2.png0000644000175000017500000003157314617624320014013 PNG  IHDRlPLTE5yUH)pýަɚ񌍏f}ɑ鲿pfϡkqǭռ225"{{~juk䨛mmog̹ نuo2弯;嶛~ջrhiŮyhϿddg̻ިu`uxttnuxbkF]uqVgp܎pY̲}aQvrYPz~άUWbLaecԪ{ޖ͑M\qİش̲8;C}BNj.=]I@?Фy7N~fFyT^љAh^˵}JD!)cJB_EG‹ٽƚvٽҡb=*RoA~w֟\rmɚ_OYb>fRxrvQy嚸ۨgUR]Y (\ƫ}7j喦z06IDATh Xע!&UQB\iF,E%Y%(ȢWYPPD+jqPkOk{[kwLD/[ &dfY~9̙@j(u !PRx 3 @ Ϛ<lGe@lLj2 kDZYHQ)30WkCuVXQ11vT DZ 3y%h/ LI+f)Bv"Bڂ R @rEƹX? eZQ=.Ud%hR3 l"N6C]klmT ZJ3mkjH3gʀ9g,P {F ;Y\?AS ^)u JbI@?/ Lr6M4{d2 4%NR YtGg( Mj3FH>evȾPaoL0 554h,D=(rpXZX2koB>Bcа@ S wcÔ?pjܢc4|h Z<:y :}uvoͬ<ÈN ;KH> 'Eb V7[e$H/:8 R ߼)a8 'X*{hY(b]i Вe$w 2Erpv*doKO +w!M: _8k`0k.iJ6-CbHv&>?..#M 3F+[1N/c +9ٵ(Oŀ'b ˷EH,2*6>|emaaNP\cݫme‎oԸq|SoL%~%-Z[RN6SBQ3u-櫢U ̏$@;y:UM K⊘NyrD,\r`ı9)sO%(V?>5 tSsYҺʃWѶ$#(Ĩ""(U}EiIlP6 Rk1Vlj;e#~^%ڤ#@KbҀo|8.3P!/+P2% b!v<`}s3F1UܺVHfx*YŁd­Hǽd*v-i}: d*ˤZ6f֬wW#@E] @u+qm8$V-I.@;F"_]ۘqfXW z<8V}FkM^:5?Tފ ?菩YIk|C].C37" X[$LtHM/ĀD)pl&. >YFȻ K 誐 oX& h()n X9QJ"KT@Ɛ/3#X @Jz6e QL},!erل5)rjr &4Lhg HzG@8e HÜ\,UW`FY:_*f)l hb`*RV aUk oW\R& OG2 3ռ66( Zv}>5]f f*#(90KvjZar~YƤXHP:Jt t94x([^yU#Coݐ5f+&L{@xL@TNc LR@GnCC*eTqP Wquc+FC+ҙeujMȀB]*P9tAW|ՙ My%=o |븖ydh`.+AA(VP#@幋ePԏ+ ** 9ra;y+.=VGh gjFv+oyGrmfL Ab6LV,(G^>,}h*`56k -;RNnl=[:@~?Ee$^|tZuЮb_0;.,NgГ-,#)FGVAѮ ّom=nqgx}esR Uw:FBK/R\C^MG߮)6H#`#* Յ H4D櫀濞޳{͕?-w u*,ԇ Ԩ/^hDdC4x9@/=DJ(8!'UJ}ΕR\IxԄ^]Ϻ@ Np/ jmml`6r ~H3o)Д7W}n*`;/S$-K[-d֝GSfJӣm>sĶ +9ʬX=d4&W(;ڟ)]?ݗ1!9wA Sfpӝڒ2ھ'n q(L_tN`Y7rڜL oaڶtz.&6ieݶ6_K?֋fTb%+zw%H7KQ [\\D=h*SR -.i_ hS z#:,u#Im^'|7R\+>Y2#--T3Dz3'/WpUnmr6[ md@68BkֵJ+ <3{ٽ6.RzǒFBQ=rf@EK\K3V RNcv۞T)q8uqA+-ƒ<Ƣ5 sș]+ 7†;:& h)i֐ra)2;B""iLrO$;Dȵe$ Z9^ӓɵ#),} x h|r H ¿GYqˈ@f>6j-eF֏t5C')?c2,{$sQ͖eI3ge@l( VcWh,͑KBʏ`&uRުCNi*1 Py+q%`v($hSdEEdV|O}@C@Z,4uRpoOX7JInx÷(˚ 4p#i!4di kh)`\΢ T55 yب/@?@n"d-ZlJ@21]~e蝈!TcM)7?85*1(bU~|LVh#ݲD{T\ ! 7}OĠkEvzݴfb:p˓}{ b-/s>[}Lg "K"O6K:]wuTH'Q-#*&-c{{hDR2yܛwgup*qw]w{mq01c7}QZ:/P[[3pb\gK>R/\hY|'JZZʼn{iae3CVD'ql]D(rS߼K zTjOԸ AlE|!؏C %ұX|o/NS4; rШXѫ%DY:fOD %RT@*  Hz#8.Vy-cDi :6I5:pz1E~9xuh}{=M6_Pŋчlm(ld\02El?鵹hU[F)ĕ;ЙMWFeV/^o$@t,2~ Z-jڮ~L?{-4?^;.zﮒʍ֍/6XooI7݆bYzWt/U͊<ڧ  b ;ZuxVOfcd1 w7[{p`~V [,`q[mkgAlVr%Xj. rH,DmJ]iyk(7Tzäcb\=tʮ=\Cf2&5Ɛ&$91B#100y *T+A@XőcQSgzﷳbj^3k}k?k}3_ub<.Ƕ]!kF`b3jS[V1sQ[c?0 ("Ac^ó CBVW 0aŠfPXf@Q[3 -]֕q3jJԚaegб_~utarK9Ɵ9~I@ù"y@`좓,g7ŖnL`@Z7hײַ[^zٴ`YG:_J$pP6bӷR(3(ex'KӦ\{pGH 7:fNf+.k3ks˰FsF}Ơ]C@%8\156Tč3Fm 1|ZdiTtO\O惞Hۖ+E1 mU{SЌpXE5[F/8VK\ƶbwh!p푮jaR[u[12Fyqx8j=^}KQ}ʦsK}1"{+ͬgkYVb$ Z+_f#,b?0G3%Gs~v3|ßg=P:{sУgC,|K//D:KI@$  D"H@(11HE)^=RU%4Ԁ=(bHkJ1h>AKbgWTߘ6u^\E]XNK%8йaQUMIEwt_>='mCwK0-)722A>P_L,4tC1 te\AhG}CFnmU:$控@BPTq@L ~} ~kxR. _G FGxos.\Ώq3.z#GPy_aV~73d#3&ڭHc_ <ų[n-K\%ʹmrDMCu_ j}9OR}eQ!GI UnrsT%N :*~QmBqZcŪ>AkHT:7g4{Up5)׬ɲL`u5I]uR׸gER >6j,h% Wp 9jnc]SuJe{.o/qS`8{ꬔ{{px\~:At6{n{M`&PüC,H^`UF!y(]5 [h8Aԇ= 'mS%)+Kd4oWυ6Դ0ET1bbXX"*w1[RD u{$=C5c<)R'?KNEf2x;ڳQQ5gpЕUU.ZB'tq Pb_yΡ,mUӘO/ 9 ~o7X)F{r4=`wÏ%̠8!;e "Je&')ѹO/q CdIR砮C&ԼM_$IgG*|E: 棁NUcp@:|ɮ1UR2MB2]@϶X׻IY4N[ &UpBpKC'ҫըA.'.t? \"Rc޵| |q/S #'?EFeDA$;(P1:9|({wg"\AD\\Ks=QP@@_&eHzDfItx(t<- Y U=I]P}Wʞ`IZ+ =Tzy iHHR2BD^rfKWE$Rs y6P@R8*/G6}(exdh LdwFPEw37a @zW<ô[_tђ~G~YNKpDy"ny*i8TѫJ#7^gaVqCR cP 1$\&uDn{j:=JmKfHA@Կ# '@@e9V<$Ƕ?н؁3*;LH@02ou }&i"2DFuElH9j][{1C [L3tNߖNv)T*{J"T 0NC&4Q4ޤ2lTß]xGx hzY>(˝~<-ŸPGOaW4M@/De:$@ <"ʺb+zh߾}ԀJWw_>m۶bVlcw2:M{Ohgq}|א$ၬc(^m %ѐoq}Kk*ʹFۮuW %Q@o&+b 4jYtlڻC$M (4l[:q:;w6@n*wWtSטݜ>_/M>ĭLoXRovm>Ck!cš)t~~JL FQj3EH3/sk?4@8 cEBh-It O(R#Y&Ա%.fQzI@Sᾩl7u5HzsW yjY7 JC(LI. -q#z5#ŠoėnX\Ҕ)E/퀮)Ҟ lZ,^N@>h@sl3-4MfM-`}# 8y]g7Z.ɺT^%XOٳ3IzO\2#6PlgQk4C)&/?OݭɈIarNږqE~IxԞtHO=qK{hhdV*`Jb`? MPWfOiyefx\r _ ?f tI dDڨL.Ki}ʊ&ŘI#Mйt6hp`\P @<\k3fw7);4R)=]jUoFXq7!V!rL?VFWUW%nz\?E1TQI:*֘{ yΡ\Q=a3ھA>9o ¢ǍMCu. $z >lRz$I`mbVV䨤 LdbǨ<!@mU4)vY#?Ulh)Uzկo|5)9 6G'J,3Y_RЇΔ(5%,Y f1@!+4[v@C=D~wrS3`%ل^I eg)E=;$<t /e;G2H@S/ILYl/3yPu FqH@zٝ$  D"H@$  Q$ˬysH@/"t_v]~?>9&_p@Ld1 G1i-N:[-&F&:1d$i$챤%FY1=}=Tcf_i #V: hȶwmS m]Ns?9?r5 Zmy;/;xV9~庭ӹ=hx3КTVυ˹Žߺk>#{P܃~<9vl.qM|^s#ǫ.2#[kYW.eԸV34RTZuQdv_Qim4L<OIx엾:a)$etג5/~, @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @S~<ê%3 (˲*%BIZ6UF _})NUNW'd/Y$휂 F@:URc&AeV,]؝Ey9UrN.jeBPOuf_gh^MPIB(ɋR!J7bV"_*I5!tcHvahL1Pʚ  #[9J*PֈK V !oXS`mq~ 6['/g!G,bfVQ@J/,V1 ䷚}v{Q˨+5ch!!@EJbU +Ź>MYmN-'hTZ}#:oIr)hFQ %U *z syخrmF[y@h?|.^&I%3LH1+-sS4F6yXnX,)D2WheCge @Y3A}7h̾. %R )㮴N n5 y3_.I"B!)T+fV^2~J: q L2S&Ŵb=A:H`밬I@?]$Lr^MPYdGR.tZ*?j/\9YmJ#M Z~"uT٩ꉪ_f_ٽ͂@mu/ ,a5-RԿ4OI Dn Dk &fZ;ojσ2r>횇Rg}&PBU NFr=Q y2FP\D efi#eC5AZ Yc_4ʋ(I EiW8VP%\DUeA[nVPՔd)5ɲ!+FrP w=aq.rGS@B @@rx9F[)z g"&b|""@b>nA"C@}qr HZ 8*R10zd@|ed_C @-^{aIĐQdIo叱Y @-Z;1Qў_9;~dƥ@JMάS_KF->zVJ=s@X??оHooZaA9h 3Ccd}69v)zD@ҍk=hv#Go~E9% |z@Ȇ HnoL/s+WApcs@s@) 1J[,r@EgVP\αk\oֲ֗NsBh-3੟0IENDB`homebank-5.9.1/doc/images/45txnsplit.png0000644000175000017500000002703013604617042013556 PNG  IHDR ڗPLTE׼پѸﲶƺI{}zvUYE3/Fh鹳òfH@µAOibLQ38S|O:;^7wۼ`mv/NW`i+-9hS\UqZt[: y㲱ۓo8Ƅs?XX8:b#8]dČa_ón<+źčO/zV8t㲴9n?틖,Z@! hQ8н1/Z$.Qz"ޞKe5ʡvFKϯuE \ƾwmة`*:.S|>ǽ7vYlE5/MGYwfUE]+ܧp7 % Id#%d=vNS 9s/6FxGJ~4`c@hEn>) Ou!)V -@7Pzzo5=c/8b}I!P',b/jP%S]L=}"RDc=l8kb7IMZ0qXB-% em- pᳩGAMeKmd`[r V0-ԃi!%5MI&Z8Z(6b6̜%NPZx!7/U+.Dh\2yA-lM{oss*!9;#;\.Z7]gLBׂÿgN ?oX´ CFO>1F!īЂkڋ3W|Q8}l94p$E՚&50Hܻ6fl|rG!hU7~[Gx,FŗӝO"@ Gi/?9~ukq3>|>=fk%E5Sf.Z̚b-kx>D_`Z哊BPW:RR5T 1&rg$n8vw?B : ؼh˄;h/no6 {fLmMB97Ox1?o|7]ׂG.N|.99V,ޭ׬rW;>3G",T Zlڼڄyi-N+&$@2 >e&$h?ۤ+/Slz-Š_굨 ⇠vIBI<ՠxrӠ-΁cZ\^4Si 6LJLԂ~;_DZISؔC0-l }:> b1hhQMgW-{DL~g?*9A%%d}Q-]xaЅ˅RŚj![R,xLQ@bDd%@ Wg~Y^duYwyR,~l@&,)twX餏-x-X;2^L*,5˰jEb%| TagG=e[‚Bj/L,RSĘ|WY!ȁKH } 5C0;6vbcM,GT ;ꑹC-Xv!T؄Q >P2`l"8-lhǗِP%--ZH#(_5mSl}A<&Z-ȠoMfV?'?$h~c$ 'm`C[5N_K! 1 _""izN`SD艆wW![B=|AB=N>]Hk.^ޛwKdpa~sUV5mj6v7͏b%۴ڜRr9MqL 5&Th!Rmu?\5IExK/`ٸŦ=Hi}ca'%d`'TW4p&_boFuns8v&̈ah1Sw8z)瘬*[bxZYMq~18S {250 /N! M{W6 ֘3b-=`EP'} W+(̪(X!ݏOȎVun\Ì+a 6Ebqw}Jw 04~7V%w7BT4yOtZqt[.ˁ?s j\kG8nzqV,< <08/Ǵ`WzA,u/!jA-L3;g MTjܢI*=F _u28xiU1ƻޜ?`4SfΈ*$jAX}lM2ug&`ׂ2Lv ld7A \*;8vn16@ Mk}iD_6X5bnZ"}BƢ ?,r0w*m³Mvv^cvi1I>pn=4jagCmmh!rWwOWTBnq2*=eԣZĽ&#PxFz.:԰ ܻXHR. )B!jcϞH GXl7fs9t[$qn8~YݣzYH4kЋjѬkHJc(0e@xqҡu E; s0F|;đz|;nF*?5DdǪߏra\԰R G$ &T< &5WRY{-9X*ބwIY{ñ~۟K[ 7K$bV~_VMqn>+[ڋ{~uCJ@b~֌y8=n,CdK4ګV_v?rcYopcExmgT{r>`Y{ >f'Sd}=C ?IĜ}ϫ*Ѭ=fiY{J؃Wx\ٹ҃ /-WV"wd|6!krcƏ|=s*{ 6gO^[|^QȽ<$~oEV)MP~?).* w3JJ3wojwOί䑈yY{Zڗ5~>k߲}bdO[ ʦZ<޵y|T d/h\g7~gIO8-V|P#;s7/زi3w^-mo!D{*X]wΟ.<{+aYn+-ߺw|Wy^Xj6k?)a*]ȟ)g16 '%=|"m f:lyBbfɡWbA+Y[SY{}P:6 BomK^K+Y`!WHfĢX6Ê1.I43k/ƥܠy3,R_C,RO۠`.B)}=a-%5gXE=upzBQOD{RPB[7d}G֞6rwcgmŰ$$I5KvSbL 7WR0ӕPADu^-HK<(DA|q9 ^F uڰ Y+ϛz"cu7)*} .4>-B/ɓCl0wKQ˦~ڇML .{>az6!kͺ7+ d*h$e{Mf9mڇG`Z`LE;_vR~vsBW&YY+97k Rݙ cS~wHCONڬ}-*7_qr˦8@ގpm ;YrY{ckY؃6hݪ1'k_ݪ1_txŬ}Z?zdO nݎ /PnN>J~'%}ƜK_x'W|^׌ڳXH Tootz`f꼤 Gd헦kN, h_mXdkX,q7'xX>"s<*Ӈ֚ڏ~uD4~/M~}&Dgoڃ;=zbcGiv0ÍgN4fղMaY#uYUgM$="fen)k? ;8 6> ݛl] k߈e$nxXծ!~Aqd-6!W~g-)qkjڬ#`_Ew͸^VkO&Y/O`ZO'±x%0*M>̺TPcMsmxo9oUKI^~e_` w痕&{hqV tz l~h: Qep Gk\~Cm IB[YS`I4\LjڇKN"fee5X:Y8|w~Wtk WF pa;wo"DhF֞v-zI]|iɐ"ִ|M뤝 43kJzP_k9a4oֵբZveS7'koi-if|ؘ&>0kdRQ 7EYDj8"zIlQ &Cs$+}"h="C߀M>=(hoDD oRnXWi5Φ܎[j1kok]E_T,5}kZ)mD$n:K<\_qOF=px q8t)^_bd 'O: FQN5H&״$uMkߝI=ckݡ[ |0T=PW 6Vm|}zen =0˿׾go hLM"C_h*y`dH+~Rnne^ϺY>ѣ֘wKO-w3-0l_/뭺̷g}qB?mKJ~tT-}SI;nf=PZX*4.-Z嬛9@JGᝠ(B}|iYy8G[QO3"`ҊF*AnF:B1wAO$-DšY<qFu3ԨߍDl+z"?B ָzDX&uB5XqZoj"N]u:J{W=aKW ,(+-X'#{E ~z,Yn#Cӫ7K=P*L#n-Ta& APpZgyݺlgH`^׭./Z{i؃ a\gZ$kۮ{fo }XC_h* 嫔=o܃8~vFA.3{0(cy$Aj4A%E4 &qR #A"Q Uy9Cwg}L2qcp:] !~Go|do`gQ^\5؟F%s ܡ;67/-AR>kׂB`Y{ ocedP\d–3CӜheo T"Ȭk  /vEiUsaWrn]VYO{OdwXֶFJOeTi=mQnQ>AmȊpUJhg A sn82#*(.>$A/Y:~8sY 2GxA -k __E :+G#y\| +g~7fG@^ vz&Mij{hѳ e?5 GE?Mfak!K2GVSRfEBYFkfa~k%-/#k/ oNsa-0Af& vVDOx&Ȭ}L᪦7P8Un$UMnd}8Y{Ń̋BчCA8%Z>^HMsаja?V \7 __Bցaw0B洐m$H AAV)z,݁hg'@:@?X<7v-bbwL26QѢ0KN}7+)k&e8xSe3VA LM Jg7=pFhuvvw־I&q,v1L !1ړw#|!c}5[Ѳt"Y+kx]gƓOf}Y{ncQd>@v10>kϲg҂@ރQ{"0p ^Ie0Z*(k?cP(z,ԂZ4DAV W^dП X7C\Ix&v>#>T1RY)g pULflB jFw,` CQ804dȫw>,h-G;ȆWϝ}^Q UBW-k?^ N0yO҂qgLa|֞ -g)ZZEB2zb&{&G> eѢN |U dipQ5=^ڇ /q.Bi'fdC fnV%{ OxrhaBIhxh@ VO}\z-؄-(k/:S9_{}{d41mmYmVFNѳ;ƓaL_$Pw̉ڏ,xw{ia2~ݓM ɗ ޿X֞՗g흭r "H:07"^ |7y؉hqW~\#„q7cOMۍ#\]xgr d2q~C~VP_2vK$V҆^ޯ.҉vjwJE¿|$/TlIMz{zcH8jmep"D}%[>{uo4+4oߩM٢j0g2ui+k33 >Y)׮/ (.5`m_uUCc$rs4ryy40cld ~3Ч ڶ CL8iճY"ݫT~L-80k%kAkBy&':mڒ5T}mD&7 hk S=1(y)oȰ+)/Ͱ9/O5Hdy?]ٺ[ߩPw&C?#nWzaYlNxaA&ON760_$݋/%%HѓțK UE E._E*6T_*"sw>=qn;BjEϸRfZ$׭{t\aiZHO@jUsTFkņH-`o iԂb(9$/7eJr.NA"J#Fz]fu)-toʎ3 ?ŒZĶoeؿ(J_61_$bny6x[b9 {M3I2<} ӛIENDB`homebank-5.9.1/doc/images/dlg-prefs2b.png0000644000175000017500000001221514774772566013654 PNG  IHDR-  PLTE5ܭ20aj^fˋЇpwsvw?)䫬xz{㩸}зnqqżDZ۬ݮԚ4ኌilmKҧ7=?VZ[{}}C`cdKPQ2ʖ(/2BHI4Ѕlɥ4~3q7tW癤epꗸTC!bcQc鉬Ep,nPe@@3|:uɉ`˰ݾԤ\f|ânśTtyп&vTPKO{נ']H[Y\6qJRL[9v@m@w{Fu^4diij_KY1u7r JzA>jb)r+k-K$Q\@t4w|mkFa9m]AON\89(.-_(eq,?֞ןɲįʻ cZZIDAThy|}N 5 G'յDn$4$x$du>Ez(%/]ɛMvb+;=7޼\v;s'Xo(K$NAǀ+q-7볃\fXևؒϾw-:%~OV 8fֺo=;0p~c=n[p'}¾{5qJx}bW{oWٶvhY|ᇱ'NcWϝ{jܳ##sn0j;1Łu|װufhA?v9m{h؏e?:OedžΞikiynǎ%[m;ڥKpQnuO<~z<5ll;9fw.:92}|.<~lxFº$_=CO$>IH-rv''窶ɳF5ݒݏO}/=YȤ~gsSGvH,G O 7nfz½|z_?7xcM[5JζZ$[LJ[v׏`[S l G.I]yRεzq`RvbA?v@0,ٚڮ3jk<̡C.}W|xjZ1Iu[K5w[m>lҡK<|pϫ}]g-[Sύώ9d m~žmy 8.cz̙i;d'N[`k:2[Py,˪*e4hY51^Ҽ8&pq -d$jX'L*o>f0U EURhƍ([ҀUdzHi|Qe)jӜo ۢQv bVe_8V#= "jiCDJgJEw:)ZU*;NZU5XvPΖr#i4[Jul(eغz;FjygnmI[0^VHe6 n%ō\ؼ5奫mwKn%n%:P3:_%z-E{goNu~έ?Y_:_WlO-~d[˯x?-[` l-~Ļu:Wuc߿-Kt]Xg PP+ !#%t*Qw ^R\X^b L$c|/4gM\&󂟕mUH"a,+*oћ*)4F8ıD1:1ax>orSg"X&i̢)Yn%&gM֊ О딒7y'1ɍl1'y$HL M1 |h^|٩*+w֘]W5(9maY-FSVX~feQ[!vE_e_˹䐑B*5s!4e )B$'YZ%3%$>ABR*~"kdBv\v5fw`mUנhN mXŲv.RcX4um/jGC^,DCY" J'RW%/E\$aʸh$F 9M"W,(S\&%P,sh̩hhȒ+Eny,%[S A5X2g"UQ AɐWdXm+4dl9C+q iN u52;g$"y;켉R93~Gt~Q4ov['O.L#Gɲ<)V8jH4U[3ؖlc[nU)]8hle#hV4öt/Z*f'9ksXTLʷlHڝ: em9:%iH1 *"09N: I$)v9VtN햫zŞ{t:324>@9z73S#5~hXuqQt%8- 첨w^H䶘7ȤQV>+`j룲[` lm2[P0`K-5/ҔuXA#vdZ"YQTHץR3!JR-әo rGR_Qx!P&*œVf+Z[ZuFٌf#BI6I:"D<`匥h,Bz ̡JWj /"N#ngC!,NV*n 6{_v%ʆhr[Ы;uJ *[(` 6[e^VoK& ;[[ܖUWF>_ŗ`#[` l]Ƕ4 [i6z4ym591R2Ѳ>^[N")LМ9/\Z o+l=1t Eh>[jK/Mu12AȐ5kH2<*pV!Kby2or&!]+"i0A ﵈99v $d5XH]J# ڜ~F!n3 Ld KR ~jg*>'p's$Rg D\8%{(-ND$t*GU[b<˩%%!FF]ng3$ԆxO_F 'E[~WBaRY^r{sf>LX8&P 8xq+RZ' #+'|>e!\p& BefZB: \IzR*hCY竍lӟ|).^ś+ NVr'lBBL @LnIENDB`homebank-5.9.1/doc/images/use-budget3.png0000644000175000017500000003433213604616712013655 PNG  IHDRQPLTE٣xv`챿~˔䂅wb󣘮ʥƶ쩪ֺ꬯浦Ʋ«ϾĪͽ󲮮ѓ籽ηίغ콵А򢠡ɽȾ魛†ٛήո057͍|yȖ˰曏xy~ՠڸɝv^pĶΦӎǮഩ˙ûwᨍӸqk{QMqշtus{鸋޵bagɞNWr\nਖ਼⿿ři܁[>CDQRW.ic]xȮĤXmTKhҘᆭA4N쀦md񟥮mݍW{x$ 5IDATh}PSw9 ',$5` )KBH/5 ! K"!MSшA*HaЫ CXJWxݙ^w:i@@%w~99<h[ƫ $,WY;m+7P4稲M8w ;遘 X +vދK*m|yA_wlͽ`!;@,k:2,a5@x$,3`{eA_7pV@JALy>xP^>fN/E0`^T E4{K 6YƁsx-X<-#G7MXDst [F7y0\P-V,eD5Xo`aXU&xSPav*LV+Ec*lW-I3k@,j@FB&H3"[ZnF.۸꤭@UNؙHjl0gӴZ]F l(˥YY4Et({,ߚd"5bXrS4Z}`TXu=S$+rĵvqa GNutmȨM=AѾki4q cXN`qtT$fzGmX|hWV$&FA OWv%hڸ$bS` E{f[7":i; c|@zLL9phk[: (G&++ntqc|"ť4S&lz"YD޷!N+UXʍJ-JT^P#\`ZAXDTBh~X@Nvz^ M/zzT̚K\l+sMfuN#;;/e?Wb,= &#wł`Sm/bY$&KoX@xTsr*]p;z G 2݊0ALAF`XNp]K' ĉ(N }PNJ5 @ԝ8nJr$  iIRχmsGZI9PanqqRd&͛-S̎S59>2ҚǍ`srH3ѽ I^F۲g+n6(@#Cu#C 0$_0]w@mv=r]rlǑ߼< ~ƍG>}?󻧣PXD.r0b 9 fWʊ2mWYAv^T'*P:}0* U:ThlclFau?jY ɏŞQj{[| ՆBy=o$R %lk#+Ņ%xчc}Ur>r*`ԴH? 6q3Df)5@ KCT`  .nؾ&4,pQr>qSA]$(ōqN2'G#ӗ8#r8Cis$x.iW-5.U@F=?x*Ax&1 Sd H8W.Of2z\2 4ôadBҦɍ#CHzHmWymmGyԭꔒ)qEDԂ<NN0+҆D!D!pݨbF ()47%?=1:ϣC7^ݘ-E^,`3%H@6Q c٨h% чl+;R` LWk% V8OLkK$V1tBAH#s´»y"A:y@^FՃvRV-E 0={hޗ*"KWEh,NU;8Rܩ+EW32қA\E^dx⫷Ph/Õx CxsIlK9y|>/.Nf-ߋxiIeTn!ͭ`'p.$J;r9 ZF(Q\Q] WRD$m@zЩ5k% x yjTL>mۺh  G\ I R b)`F w`XnbHZĐPmY?,uf6kd]-{m53gOWfVؐa*כVێxKe-7!mKy6=fj~%Gc"x:W_^#`nؕ~lDzwL"xdGD}UU}u4e{ d/ EXz$aU](! PUDvήOv}lY ;znZ{yRBl孌)eZmqLMO2úܯxVno|/}R0 Oʭ ,DwX'?akXbS_{U ox-LE2Pqd! @r47ʰ?v/W&`m'GcEu'ܶ`(z|/oe <8dUsVo9}m@0 _cNFPگ8HM@߿|=ߜq3$YxqѾjg} 1`>|++NV:qD2XĐ_~~׎$(m,mho9b_4;o4n?fD-^Yn!da $ BB0a 1}! Dl‹(XKKZ3~;Uܲ歺EA $nίs9zoܒcCܳ㌈k?:\4tKS?}\Uvgv8^Bwhv?.>|4y|16aK~ h~Fg\*W3\i>/uhZ@40 dEe:deMfV91R1G!VV.UTڒU5mnaҍRvޚ2ͻgKoME8F,zy98998)ǑntE~` %mI9y^- /'3XbKdzcOx[Cx[KGTf aϭttnuQcip'Fu(G&N)6 1?$_HM)f &H*9r3'+UuTiNn[΋b>50Gv2~$OǧMNS 41}x`yv5~XvXS0'7AHZlr 91J<5=ЭvY0ENj'v?al ЗQۼhٓH!#og0($u$&RlzA`O )/ Ɔ /oW`x <16y/Xvy/3(z`fc|vo.n+-ke_^눹{e[WPJљrpJ|,ɗ9y_>fV@Ͻ]{֣z>\GLR={znQ*nj2yJuX[ "/?IBB-}̅f=_@h*,@9۲k ʧG)88\, ,T! œK)[`z hY8:+ +o]z'G_}6>|x??o!D">L䑘$5Os& uDȁH v-7Y3,ܒ5zLhge[ܔT |@nNIDc=A c=b!h=c`7פ+eh+cexyɟ מsD`o<Wkx<1|^xҗ+)Wj= Iq$4%mTt- O&}-sVSt˙'r,rg{hj` +$Oă&O|=5-.$ @G35$+UUgO\P% :@~⬙;\Q;\r+ٗ']fW_tcN7t3yej:5erFѝ-S gޟ΅jzU֓pTH1|JԌS KyTւqmA@"rU'o+Nu~w܅~WAgגQ: ;-N3IurswƯO<){F%28A]c̅Z  &p 0$5jN&K.;]0[N)$.HfC@KMFqE5AtjEE "3O*b5`%cNJb0D*/7:ߎe{bV$騽ᘇ"FdoV"JtGZ3hz:>/ xq ,ܘ0Ddܨ %ǐK8-'k dtb`dmûcVϓfeGɎ6fr߹U , p8yFȦ7Nx-չW o&6 %otk5=W%~K$ TATh?V ! ȋ g8 #xwyJ*qwB\h^@PA R4B X* z|Ȓ=!T{˻Ҫ֏b)VUoc``"CnW-wFp py_#6$AlX^J6꟒9&P.+D:"YhV}Hcdߑ%@+W/te2 `q<wJ! )uDBJqհH/IRA0[@e@Wo6/^|&XnqSD(5ܝ%p;r%r͍Ćp$M5V*33^m#AMYěS2P12\ -.heC̆NfD_I9[Ţ7clN6m=K$Nm-)(gjఖFGp_gS$j6GVk;ZdG_iPq'>WS, [G 0- Pۓsӓr !yoTIsTy9mђ^S1#a$U PYW~?YTƾ4itLT ]}|պ<5)k a_}^[rHpXe< _꺺UMܷԟ\hΧRpԡ(=TU0R!a8Dm* FmBTn AHϗn*ޱn$ [߾#Z*V '13?h) xz:5hV qX\? ?-RVeDŒ)=Ĩ7%/DWځ 4m(]3rTϛQbv*}qXmjm(v H8pȐ"Pl,|5j׎)|"B`V\p00a0uc2I 1Tp' ՁM1ATLВo!gCb,|T@>>w 䂙LpqL&[?2>t $$ӶsQ0? {F0O &g<@mM 6o; ݿ{Ş1XH pomB|-& N/,AhS[3| q}pwY[y{-v` a įhKtu؈xm;q;}u~轵iL @NpT++Lv~їdt@K> ^- ZA`) ]L_2/\;H'14iA *Z9Nkw{s O߱}wgvOΟWT(J5O7i33pTU_) [zW.2971Qj6rlA8ኆm)9%4O_N /u6SlÛZ!]pRf'$]ll}'y̸i"sBju{p[M@Cf1t+]jp_R~$?<%13SWo$\`sS>mQ>]LoS*re۠ 8/]4ǿ`۫"5Yy#q]2k54mTГ6h B¨qwZwW@e+ S->`[bNZmag"hS)ؖq |o20HS4U{ZSS$eE.42'dUf卵ݠ#<0t`s BL`L#h4@ $-@4;yDE .MZsͼHv$ePBR랾==iXw;dg\AD/b_ vU&&.$*16qez&)s.(Jkl04L1N/˷0`_Pbۦ$m9=io΃8'Y@*I8CLf0I [BY5@JP6A'b HA ԉ :Do2S_X)}N+3_[6}z~&ɹ''Q k>|3ovޫ0#{:=ȡ\Rtc>DjD:FRމ2NLYx,dF&N60) LĆ^@#^mx\T481Msb" 5}FtжU`_@4%(P jElX(Qɩ=HJt`@s&5vv'otC,5~kA /?ܳղk@DOulǩа QQa8eHu`hq<3R%A }aƩ^gOAvs{}0d[Bv"nM,lqOAъLtq"'sY,mcLh`.U`4Q |vK4aG-mw0/K]Q|j?x u@[7X&7/t[ X"+Ǔ NmbҼ֖=`Vi$\O 0(GI7;:Vl Ge!=[_{R[@L`|c4vx{..>o5>4]wwv/uIrt|8qj3, G⻌@cc!ƇN}! ."l:;3JPU@kߥpф.tU;30TB:^*Rմvk#ɯ HGiiSքwZw(7@OpEr|D`#Dd-q=]`@}ύLy^UFlfN;ONU+4xӨby5'ByqS(RED9haT}`+~x3KI PUEv=5c<*WTEȓGO{jbxǕ֊0$&؏I2nN+?{@Ҏ?[~&TQ%ظw4oᄉ;gkz>M~\~BIZ DRw2@%=b>ׁ%&f_sASHL(EK(;HΌ,u^j +1ހݽxs-ao~7kkf:ijeʣv @<ŕQ78~Zx40dE\K^˭S+$T |\4sYL󮇀i2ԆFqDv"s:>˻y ;r(nϳBc| SBGfgVGkW !ڔ:ovh#td҄4%Ey>qq?VqH3&R}X=ʈ]Cl6 S>ljKl3}$ڻ ̏hEJzUڞlSϖYJy߃?70!F)+6_ >$?|_Y.}yB0.A`+!YؼZY 5oQxzEХt.nي:볥eg<@fM^ bi`QbJ H=c= 2@STn 2`]RʞЄJK,!q|:,鎜fJsI,cl<p_t9P3Б]+5zl%B[mR ifzw1rLI]Q'N\o;kޢ%VPc%CI%HMjEbH<Dh\)_`ȸv֘E8ٜZ}fm,,*4Pi0d zi8/״Eرe|#+LN iiR5Trt÷ؖ a@c7=4t^EV ,'MzvSCxtp, ,W]VNP qMJ>ͷidPi5N-cl` Ax4hS+[  #! WX+&):'@ǥђ9Y9e5Ng,k! ڮ 0~׸R0>nر\s2e-ts/Zoӎ!Q?y.y5%)*i8!,.ΣRey>L̖~Ɯa0A7xkz5%Ə ##/ q 5F#rlQ3'L:-D)r\~fR;o\et(WڴsccZ+WQlSy5ˢ K''ϥNG՗˦ϹG4UizόNKޜ8wQbTtgj/􆅹q߅W. aQ볓%AG"_Ս/kassZ*[ztX66Ս`~'60.[^, ˟IFe5%&?+0)db } Mb ;|~Aӽ:=g Сi . $k=ղ0^_ `Tx[봺y3ϛ0p0@&@\ZV.9P0!iUY3r!ɷ |C#`0/\ /:C38Y=WV# Yv@aƱv9z~nOk3a|V,Ժf@r\7̻}vqul[x4XJdU).$e9㽹BkQu+HE*5Q,Kzl!@Lt/t#ba!D|E[O4rኂFIZ.6?.أ.h `˜Z^t>[ p_6/f@7D!(ݑ,?f,                @Ǿ}!z.,Gh7IENDB`homebank-5.9.1/doc/images/use-import3a.png0000644000175000017500000003343713604616712014063 PNG  IHDR7*PLTE5C7LEL娸<ĭD̸:ܘVb횝ɾ񿲪̹􏅜qpϢڡ񖜮ӂ逸սI葔ַͷƹ[UדҚϻšc퉬둒}欣ﺞ̭¦Rͮɱ笗ұ̐{ԑ矋׾քո׻εX㉡қٲ+s̀?ɠu㨗Ǎw|Ϝpoz釷Ӯŀ¥3sД쿹28:`גjѬq}㦇҈ܛjerܲ닊_s΃jq^bNLBLX^ofQvszZ{tqrjͽOftzSPQ\#i>o}Od2?cRbx3IDAThmh疀;tgg h@LBCjeFZL$[l)r,zŦ`?2CbmI6 ƻ a .IGc+3IcGwޏs3;9;-J]SS%>"B('l9n N#B;BZr"Ptc0(q*I4F!D^?n8Je;-&NhIH'OR:D !~"o9!<4:fB3B_,!= H)ޗ $KtɑhH")P+$v_jczNmFew`ʳF vtgqw˵fTy`G{,r 5HP34XՈw~l\6+y(B I./YGڒDwE<3>ړQ.. !1K'1-V-5I=GH'bL]Ґ]DKrRP"B9!$-E˱ܭe 8qGGEh WZŬ]3Q0sin&p`rcCB;| $[t~l<^\pg,ۥDz0 U" U-rTy#bЦu4gle`$3"cH°{|5~0sT[*ͽ l}BR}/wVS=P1P)=.?r|lX- >l( uDhWPKk#U$ $DtRLu/o>)m)ZI;V@'Td$ nn?z6GIHؼSÞ<Oe˶k.]sua/sS|(y:&fS\vv" &}QLPF8G(2m_ !B7Bg"ļt撈Pr4qϡuj'Ri/jUVTg2L2Sti {- $|#=jBQ\n xZq#>δc2 Pg'Ĭq+|DKI7ښ'F +,_>\ .m?4@(GH> ?ˉDaN:C;%M$;nM":]E`3#Q_jf)v߼Lt0zTJ38{+)F5qPɶ4.EB^71e f2R@$q%=+wN/W:wնث" X/j9LTs!Vۤc!;xX)R; j ]$ ѢQiN(Ьh'PV5GC 6P؂vN" YX%1zEa14ɁAS|_iiPo]]?O6):7V;+JG~=RprZS?R yFrΝB-at Oѝi-L yQp i>vВӐ ~H ;f$";n@刓CNO鳜.ge^J)8I"!M #?ފ-9w7!M8vJ9 (/PLo0=^/m84!d6PWJ|]TEνo~1xt1v )i$pJX[,5}Jw= ]-?vBu ~5}xX]=1B  }DFlP䵾sňMQzx<_'Jv3Y`y׊m-H"Q rNQz)*EPnxBLB(ƪ= "q4="7gГMZۥ k! 7omZWI̋\$պRW,գp`.7|52'aUDmTJnYeTmDlcʤrM< +F`<<6B@gJ".cWoʤ.7~WյT`^.2P5`AjTkL%cD5r'Tuu`hxT?4Q0Vg9uk2Df  r&\MKo^Z^ݽǵ'kO>ּxؼi^Kr3BX( nvNS5ET\MUoc65lw*|^"4U8P- 8vBj Aѱ~P+ {!s(ĵWy+$/ frB,24Na-ӓdG&m'7p dfOS#4xù9x¥&)Nԩ&H#cO9u Hw0iL)yf|.*]pyB.J+َT0_k'w]Jo#ԷOq}]܎Tuu f\%h]Y@(4W)?j>'@<9TZmX3t>ltrlgYmdv}5KIFp`7 nnywؽ&Z3ݐz7?mn^e?.)Z<<]*4i;W E DܺfqooڸEʹvX!aK1:F_3P4TB"g,"IdKͼR q(n(j]ӡ|J t*dvoR]4Y*r(QyA9'vυ u!Kozd Yx_iShhWa+4c=ae=3p4Pt:r̤AATs+3=AADDj+," s!Ҭ1P>^T[~S*㐪yd#U5+felu4 PyYSbeeG?6m%Kd o`C{ Z,3Bgr/r!!;s$;:wrz of߾hw?@/e6?e޷}s}i[4orA|kT|%o4!CmڌvB<]=ƚPG; "5vU`~b Uׇ~E=;r=x;woz64cY;k[y7z16h_ 5j ~h75chv {㛇V%aV7OhRRmhށ:6b[a{'aWgE)(Wu7a540R}O2wfh9jY{P5 ۺY80C;fΛjjxߌN,((fz5ShC=طqhN6t@p&T"Dݢ DMzZnq(~aQʰئfiF/ebq:ʞUNDo̤T;fmpsdE#:%_dcQL]T/4[]Ea*;ph?Q!d_Q u6?G?F# V UJt\YkbrCPm*a8d0wbSʨB]0bɉN7mGx}ɹP.d#ш-|E{ZsWW3b2dA+%G[7'y^q/salɊ+ Z/+iM01[(ZJróEV,VV7Us}= HŢIWФ0Y]׭hLèk(5׮"àvUWe*ڊ~h`?a4yAP#hC;# SN&`!2BGGo ,"ns9dQߝƌ1EVgQB=Ce ke Br҂ M;ת*:C|IK*VW"4)о>/D$z%f,mɟo66!lh Ja)Pi)E ADه5xTPWE%_[p+rC'8վ8>dyfeSHtq WM[ISGF~Ú!OCkt.4*v`\VlSkr&=Zc c`6GbFۊ 8s 2(&EbCrȹ[(U)mpbbm4h".UR!b uUJX$ N@K]n2aa\.nwUR#Q 0H5^ul6:C'jI]"V8<|e+(7fjnxEݫ檢4 Ҧ(-i 7I22O>+7t_k̉=Ŵ&ƒ 0T@@ $RX,!*R GA41k@] >սM%Uw;_:QhAca_.=\{?6M:yHq)ssۣFe'ؤ9eݧLz`&&NrS#B{(TwWhnQ]](MHB@asp*PT)mt rOn%4JԤ wZiQw5gRb 1|kf:UFDoMf+sG!8eGUxW6m3) PxUOhaAm$ E-uPv9!IRdK 3BaYs|kT3^,TS;G-+NPVEywUN:ZVRd%jxErcKQ8ڒ L5YF?8ZW/JD օsA)¸8+!n\iJ) Tk$k$s<7=bvTԨڵzYvwPyFTWE&T֏?}mjCTFrVJOB-”YU)Qѥ)QѥK FDN(]v?.!eQ LAխy~Nh ɩa9޲V{%T5DFTc(leiAׯ(q'ןPڕɥUeeYsrc}qNiBU>YחggУ+BY3-I.-YXԺ8_'TZ9om ڥSsUeޡ6dUNKH-Vy%I9˂Q>ӧ{F,_3=/WN~F('5ޯ42Tp>@Cu$9Y)QBNPIHൾ܅(łS"2kS!s )D7 FY 鳣c(*," CkW5ӒU5b9x  WTy5z<:xL]YmWŔrT a8WGX09~% i~eC8H@ Uͩ}y`h ST30>*MAnCKrm"Y{`C /=އpW_kjy=}K"βt/t#C8˽ BFrE!Þͯύ_RsnD1/^ 6(iJ;[Ad)FuQ!Svk4MC PT1u YT6Qi3ln-&ꩭy4[Lە+? BV^%BN^ ;)jfE"Z)`\Rhf 4_0K@a5rPkmb_ vY!NۥiƐr&¹H~}&EW4Ly!_/5m&HBfHBzcHm zsޠmz 'X)k]r!B3E>B? _TS"!Bɇ æI30 LD3u6XoNpn- Bb+hjMPݬ:D . Tfvtb(}{>O7)!]w'"e A f [F!aw=1dv)Zo[:^C!}VR<b!ۙYe|sk0BZQЪwz`U!T$u! 7S&wZzB>fu=:0)P#eA `jT3JjeZ/W3 To֨QgBNU'G{Tb-&5S-U E9DOD9)441إbIoГ@ n,.z$ Y~bO?%i5|M|F )"zڳҴzAVRUdT[mclP'peC0i5(pMm5IDw7H{HDn%Uc ZBߌBMNClczZ=Ttv1$`c@ +U3_d=C_H:Bc&?B!/?N~G?/T !NFcl1Z p+C,֥ Q6L܇d +fDP3vdȍFucU=C)H|Ѣ06Nr$z4b3MvQάQVjAG\~27Fi۬ KB'7*r#4i4Bmc#Bci4ڂ1(mlL|;bY6Nۨɛ̍&,6 Zn 1K~k2urN׉P͍r)s`!DHR4!5A'= }ihBTA16*:t 4i[A6[lBL]:Ql%gFsEʡs}s >HV|cs'&Ăa㭑:sWFC1`@ɔd2ݕL[\/ⶍ.Mۜ=ËJ=^,Ti/@?htƈ[IG@ʚ .f4BMMfBnǝ!×>:R[ڮ gfМ|m tLXvGG]XSaR@ ɰ^>F ryr,i,NZ0:I& J%-otųIr7pIƌDn~|qb gfɔ,o&5]&+ǃH= Y&K)'btYÙ7E& XV@F\!g/8~ Go {L/$iew13:||B~1[8̯˟]y gA(foל] l[9&z趝VG4rm [jWoLķf A(n+ qcnQ8w}6jU{ZeN&^R]yEXgWX'Gvm?__8z ICu^#a] D_#T=ݐSS:LDzOLE?sCNio?[]|WZRxgGO[  i7e~ŕbv D 3?hj'lEѾ47ig\}I'%tܘ-OB[O;q|g=CH )j) $\rޞ}ӌ}ľ} ڳľ$!_OٻhƖ/C^8m#9fpbk3#;rV'uF^A8%0>_}&<. 6!BWdr7.[Q3G] : "+c[y"$ sB#r`2Dg.Nܷ_`މ3uD-Z~Ok8XBm'Kepț|٭oރCy)K]`ǼpUۯ+]QjioYÔ"t^O̯[=rpe)`ǜ,UA۽mN cigŀH'S/| ±g|1gm}y'p*ѱݧT˟<㡶MǞS-ɫD%7r!ʁ>BkQ,R|=p.[pUD@ λ#RsBUD@X3ܾ+l5g" >UN0OVM|铳\3O hN/Q9}ceb0T80N1'?pf)n^;tdS{,phE֘?4,)ͬ/.Buᅧ|J87܋bۥ0. 7_mDyr>H_|ZB#WtdЋ\3!kc"O'I<}ZɹY0X͝[>*癧%B|^2h,z `qH> ,DcI,TFu5 %Υs@ Di:N >DÓPGbq^8 inu htT~PI,rO819Rf-h?YF;:a؃G(!`Z{Z@(gQݕ;X'wrM?JJ&'x0}^ 7x5 u=-cҥF&ugC=pCqd|d8}'m |8@#- 9/1{s=HUd"DL3<-}PgǗɒ`idD[\5Ρc0`=LFjO"Z 3=$3!( :֫hLGgڛu{v*DIoeYٗog|?]ׄYڭ@38xwHz1'x-ΟnMzd&OpvRY}TV -{JEi6"">/ʴO`|?u\4=儕 q{։/ xqfIޖc嘻 Q-F!k+>eJá@&2%[L޹֪CćnbGP`c Sݞ50aۇ(z Gz&bgg&d/PcjTt";SݹCt:khߓ҅N]*(i8+% NbܮP댷|cxq]RM~HSCBvdTw@ ؞*8}ѥWg:C[vCLՠc1胝j7O1uq_5uݸ": jEnmRAz9bCIe c胦P+. ÔCM,zM!"x%;HL| ̠E`߀F!$kק$Q'$s%< L>M"$@&9K͛m2ՂzBh/`,@ 9BCG?qxTLj4vyQ1 ;Hp(b+b4| ё :$ce1 "%GUa+dpEpȐx(ݷ=ջ#x‹%xT6Xr v䝄mVLIC}E 9uzz!Ж8zxE|qe$z-BlVʑ= 3gs ?}qbÇ*ErA^νY@̵hNj7>;t^aB~ۆC1[P$I 2Tn w'xs /Y 7?A«V܆1NiOxmڮF#̛ڙ@ }Ek hs[E^xt@ka^8kB9g z@, ;\AӔ-շq|> S=7 @KߗJ EꏓQCП\!}So&dno e'x\~(z,5{%6SF6mSh97wvksq<Mx!?45J2ϕj.9(ġ.ʇL|/S52$[:n'xԴšm}2($)fBAsLg62D|蹷ph /}S@y&d9(h=ϩ;wclu^tsTSwnF!S]}exxNAݗSpgQV>;ܓoI]1tDYe9g,oXzv$5Ưyr07!Ƨtc5ցyki~.3-ui‚#LtfC<ʱ~^ M<6ᢒ{Qw nI^׎,uwR`¸ٗ_; /`C)Kv1]>@«~Q+$Ћ GBE/VM:md׻ggl~5N)Iӫom}'9[}u)aL_{xiܻuL )i LJdb %IZ/12f}A`sD1g]{9WU`q Ȃo{M@χ#M^9ro5)kM():V":s,E6_Gpv rz>RpWh!bwPlю}Rb+9nA>{0e)p<d:PA/-O>vN/В^G-߄גmC [ĖEb&~rZ>V(P  WXp-Xř}IENDB`homebank-5.9.1/doc/images/dlg-filter4.png0000644000175000017500000002620414617624320013641 PNG  IHDR64PLTE5(}~onpJ磿̰ݥidf0<~hXٮ{X[fbWLʒwWؾk~ѵti@]_nñSRTUiepߧ^Wan^WiӽƯaAlZݸeW1~~?IsKľ[C~`lE Y g EX՗'YGX 7dž=GŖݏܾ݀qt4I9i\Uc/ 59Q8>|tllD *8޻6;&&MVRN#$pԚ&(jf)*** cKM8DWA\؄_ig6g6 2t69Wcmf>/6iL 㓝kvJMU vL:m>PVhM,6ttz4B߼ټysZ2A3jhdn)7R$2e.հؠ7'M:C s[{$`ˀOٱDپĉHl1-D4oQlWJֶk mymčSPp8IQ6%XbF) ÆaۙTxnqP34o F3`om}@@3֗.g)l2`\C))s* YeAa{|-b~NNm{콺؈ڠáёdž/^Ql /_ra;0zC.6Ë]9f]NJ=W{R1]hxN nțZz20>RnF0hàOR/:Æh4fИta/M!aCq{9 mt_oto]v"RI55u>A׏;&2DŽmXs8D1DGeQ!P͖I'*URayVx4ŵ,<* casSmJ ^9*}#zyujH_*>2=k~ =INeجM!d&?+2S ft2rL3YtH glfTy-)E&cɪexh㵴 +=ܞF)U+£ӬM6)<: ަM>r^R.@OwLF$ݾU2+]|ȁ/%g]s`_s({b[Uv >doaJ[L_$dX9Qȧd`/nsGIݩ}5ւwJKLﴸV_-x<q2&wY\7˜F;T/;rnEWŚLC HimNQCӈzR5>>>Z}zT^{uTK^WGXzOM`QsFp].0|UF%8ESHՍWzqM[/;FNjnL۲v)|ܾs?PlG\KFҞ^Xy4Qweyţ'->i+(Rwu+_Gx\[j3˭.]Cz>M/H dXiGJ" V6LI6°6XfD:HсcAwȏa="X$W 0 J`& KIY BJ):)A% Vmc x}wLl0l6  Æa¶` ۈm״6ldRs;ц/c8a[PzeW Vj&n ո2+Wt,)l6ΗM`ķLv=4+lmlg7Κ?땃,ؼso[pj3|+F1xsd9%T<l z^oy^v`"lI kY|τ!;$,yo Z~A /mkNi5Pڼ|}j΃+-<cGv|ʎmxG xqVKŃ2/eմݬ [5ֹ |JɰXr%:J''MKaILc(U.*=Zھ=ưՉ9$uZPA7]._՞?]J]JZO{d՟Lm[nb;a;ˣ5ays{U̷m?D–/a6겍L6Vvvu_;=c{N6t~`~x"7;acH(5Ȋw Vb뎹w޾X!][!/꾎%ʲG"}wa [WO2ueɣJ/+mC)qZw\qw˾cD%Wŝ|eoo Nbm"3Яa [$:7U,)A [.!H y&MyP'o<ޕف!+} ݟ6,qF@-"N4'Jptͪ"Uo!>lc(`[fov r9bΰ+ss銮tg4"3 A`i+[ͳMaJO6A7`[f3L H+Y}T*NA!e̯id.oQn 阞6fPwo[x$62xJB.&ac,@Xs@i8=7<7<{~ҁڠCԽ`VPW=|= wx8m>ܙ8F.[X/`SK)¦WZ{*0wiۻ&g`ہbkҚ`vxO<%F ?[ڲ,0]eNL@i[H$~)56dj)nSn[ױvBf fz\(PjlG{(V'봑h ۬.rzw}%_* <SXBGOOi7la8!;G 2EZ AۤQ;x$.]!(~=wWts'o[*F)im>+HMt$<r"[sd]- _p_;7<z1lX Æaða]e"D9`5KͥoBb1h@tv>lhvdbz>Afyvֻk!Yc?m}aV̠ 5tX?^rL!g9n^ jc,c،{7k+a[TK%q\1L622Ǩ4lІ{LhQb.S袼MN}̰vY5h;|ނ =6RvfwB SJ~B{K%*ds=~3Q7:s^ZSm=PS um{ -MwTN+dzbCG5e2na߹z?f")cFXd{gpJ2$)*s9Bw1R]4-)>Oqݧa ~/ӐY']O]Aw~0/伄;Ŧ~!'Yc k& HOVK KߟvYwf;mW !\uUpGq5A=ْ}K'[ rL "[֫{7o^a:ɱEG_$¶fMggwaXLvaFYNFZaO\ZxE}ȯM7NBl 6A|6R ;"x(:aUO%~Ǒ+lM?u?ob#Ɉ27<62('֝=DA6i vh2Dg`uWGX>OFljNf˧Q߸3p{/M-`demVfٲPl&<&kݶֶ|_ 5IotHA/Z^t>CEOR [2П4]RN.yNrlWEj7QůL%:c{'B  61< >dUGMZ#,;G3SVBd6ɀ1ph#.,Zm?<6)gg %!*{O5dxC;=OQ4$p6 Æað=' cȳZ8BrrB;#"gEG_/@z@b4)=9!MYQ67NsrLf:U;hSUYyuFf.VxfyGBaXn@OM遮:=3,MY:/XaB9*l/;`8W@ }Jj: rm"!ϻKvX7 ~_zIaG7뭠}) wMPl~=4͉Ɏ.0輲_;=.6yVC'1fs Ȳʲ (>2G1HNx~\=kgH= g!T#y&7ɆY9yaM Tð6d'jP0V_~L.cxcB\c֭ro[@ff͠Cm E `!dLw.˓i=DnRoɦM[lQ;l ίoTero CǶvg}wmғ6G Hzs1m%a=^cJ tGaa{CTIOM@,Pl]iE]kB˦?imhgCYΐ,lhЧWbݪ^sX۱< f)[-獵}T=欮xj[8IB՞ I1Lǃ&}F"i(; ٟ),%W)?6g-3 lb15#rw:zmG@hm3$>*&|Xl2SAx$ js ~X ۿ/ \=׋MhrJj99o 3ۤ<>Rذ)?I)(KL Ŧ#N4PrqZ26烵5D&[`-R\GVh&a*\hI'!t`82 nO%"+K|d#am ssstE-Z0lCc[IVE Z5(暩>ش0l<؈*">(&&&I FDBeV*R#k+)NM Hj*p@D+_ 6~a8X,ȉ5bRŰbRÅHð7Et}r"|ð % ۰Ɋl etGMVd7Ue< V*?EOޢt>glΤ E@ RB8ct'j-q&)p$*KlݳB)M.,acDDdr$%Z|r9)55t85o3DxErdjR,555nO{Vp;cx !n_.$tQC>w $GqU5[Cu6qra'&T1f䗆zUUUFMgJ[Oɤaҡd??%tkɡ6l2D>RB:s0%) v#N6xbbe871Gkr{B:R] 40ݸ}D TW:cRC+tSkӬRBRe\#Jr6%~(#)9k绗҄a厌%T#D%qbb8ILK<"/Ynlb"$3TGNR(61"D$"596" 4qF!^lc9m O6Q\-)MvRBOұD]!4t IjȏbdHt c5ATI#VN>Ahި<̘%4e>]`:Y;U_w yR 2(s!LA8‡>Qbq"qt(IQϺ" JKIENDB`homebank-5.9.1/doc/images/web_title.png0000644000175000017500000002026214617624320013500 PNG  IHDRgBPLTEz|z~zzzzzz}zzzzzzz~zz|zz}zzzzŘz}zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzĻzzzzzzzzzzzzzùz.eUWT#K*Z,FGE+RMOMBGI8Vu;?A(a!]ǧ ƠX\^Gko@$4ZӲ*XP=b`}wmfjl379_BdTi'xX˱2xty{?_wkprԼFİUyp²h«@3G-5ItRNSE4X% ,M%d0XWqG0dΎdεیuGZqW{00IDATx흉[և; a%2jLfsFA65d;uyd>U rNW_}W_}W_}׿\<-OOo%nw_.FZo..w!'R??T?̟5;43rV=XGk/_;==z9R$"6{0(`Vk@w)Ve6Xbw[z/vk{?幇ioXA꺆Z K`~orˍҹ7Փbpov'7/׷n WgjJqI依K5vsL<_sOmHvܕץr 'kauFx}was8u61:N:Ty|3cn;>>9~wo&r{3'lpRZ4##nN[4+$_nrXY\."\v6_ }nOJGۚtGl ֏R/2qomAGp}~5n?Hr}b3l'4Xb@kt9PٜM aSG2n*LJn/q{]<<ͧ(Sh18nCnvmڛ[<5qt'zjNn6xCr8;`{RSesXY.wO&}5novS)ʭ9UQl6M$|6QDrz'jQ?fvzfffz,[ȲH)\%)꿌@"!n*6rX,OvLAp]XETWh7n!s׷0gnX=~v:] ekpJNoomm5B> ȠE1 t߲8kaYF+aB#ǾfL/KhA8Up׽r6[qmV-Ztz>*C/ }6؞I>)d )ܜ&6em9ԁXos#qӮck=7nQgiYmIiH+p5n˱v;tBUˏɦa^n [vOŔڻ=pٴ:C 37;wd?=qɍߌjȣ*7H֘N[TXKnlz H2ya7„0Ӓ3n0I=r7D2q3b9|*7r;vʎFjYy#Cś9r<# ;w'9 E㙰nW8Fnԛv<Arln<~s٢Iu؉[ڨ-7}+^+pܘ$ZBdv]>`}Ůe/`ndȑͪ:o'ܦ fk]b9{.֫t5.급"lZnpX7,bB;m1s;ټ6nj=\v|2rCEݠ3#aggڪc,4~&K &^?JbsI~XOsGC+]`g[n39bqV`3г^gACF հȸ Ԏ2o#zQg]pkQA[|b^\,>N5m Sn;ujV t&3!b÷T ؆8nCCxUǮKk5tv-)8[Zr K& ն"FnF=8/W2ۚ%c~GtPQj"q7 s}%*酻&fwJu7VoN3+eְ ~ې}ᖁ pmn^T[7 2=^/ $G0[ְ8eC+&Timc<8)QD-Riݦ V0g}ޅœrsNV3Xq;h0v7ܹ1n2{.qI%lP{ ش-t-ݼ=\WTn6{z4%&RqYj<"jo=z=; tM;B`OQL"p8N" \pƍ:+xkan>DQt-Q-plS/˲8G\8~$ @zܭW1|Km>`˜v?:73]p%OYSbn|!ړ^q7L{ ֑\$`c[>J0y /'ݳ͛.DATgwrspQK>r<@:#nTl7}W[2uz͗Íc en|M = 7b]v v9ͺ{YJe?;U-Qn͛C> @E5XW&k3ܲ7ۼ*'L;_>saTG6.ݝ9J~Ԏw87.3mGdm/Ykn! NA*2ڛfۦqʬ 8%+>![ ')IEL{ǹꊛpbZ;;C>&tHrdy7CmzXz7Mڙ,mn]R~Ԉ]榽l2t{;nGuFuO)WMpkН7Pa T"r[璭mdYt7zO}&ĝ7 ->"7W%0R ]r#0ܚcu q k(siغPBG]ćě† Ɔ罝3O? 7!Ho [nݴ&ٳ9#c3 !$OI$y;l 1ca-YmEčd뾿R:p',cu{΍˹yT{ j$n>!75¦Vh9= 'vg'EIRF7'm-l4 U0Ս,STnQm,IR Psek1hGYG5i%k.,i5=K?NPkv 7{,wR!>%Y34,Ҥa~]J40,$m|8-?u2?2iP(l . Rs^S.CAT#үk[ 0]ʈ$HiI?idzz ֒DDrnwUT|o7+!ek] K#4/r32b\a~+ .  2H##Ai1hU"I}՛yٯ%|n7(;"nI5L޸V{淚v!oeEo=r#Yp E/G2ý"Eq!˪ UX썛+ԢpX[ɢf&q!"WxsЖ4ٽn" a.*>d"lh,6!RYQB QVtzh|-l(PhRi(b$A(4_^ m-Wp 5˕RV+hj\JyuPW&Thi>߫ (1ò¨R>8f+tTV"Ku!R̃Ieu|yэ>/eıV* X(Q!7d%޳5n5r l5*)!D%.ϫr,Bz}0,,MJH!aPQiHkT*K|SRBLj4V2 J~R3Qr&!!EV%beQDϤǑY* Y-J G5-p%GEAR|%91 AFEV`&Wzy&-$ݯd/%P|˲46S&nNa?6ରQ n@) u8"V6/+, j|.m2Cl T  &QTgx4![kJyx~w -G8"+!@ fjCY CBVԯȢTIgv|煺S%i/z -Fb|cPi79L'> ܄^qld |Ru`v!U O~UTne.PLo=4Q\֯rkJ4)B(JUyoiBYѐpR:@>r m s!@u͸K>pRԬ]ITID25>nΰ#6^- jpM|B-B3p-IQV#yܮdCAS/XR/ &#*jG@ iRR,IQ UHa-/u9#Ŷ_z`i։7%"*.4mp K֡,Up]\?TҔ<@ܠN,F[WRS"liBrłnܘZ,\PRnPQD-ҀrH*!f$fG՗mRFA^]d|7Ť\_CwZB!j/u I>|u)&^~|8 Q:lq7V^4aKqY@ .\* zq%NF/ 6]\Xh[ؠ?t:&ɐ匠Ci NSh^ OnS9=d a{3@p,VewurX(܌ viw;{EYW.Vhm.:n4 |"LE{.Le$p]^8(ML,ύ?|uHSX/f4EXmm6/} ֢qҼW`.y܆N=;߽{zcÐgrsՒnS<-7(-cPs3;`8 !STa )n>^'t,{Sa)pi#~eD,^;rl.FItUv`f֧tr]L#KFn#I#:#Pn6B2\0MM8ɗi?&o_?-nN&ߞ% .W|.5ԵA+$;r6_[ЯJ0(.}w8R[h.4 ?4s[ԈG}G(MK\jrZ5Az=>lv:r ofE\EKoޠS!ن[15pڠ`IpYu.8p~]I z[:lj\+Kxe.o,Bڽ 񒘰(fpY"!7T..i,)D/LM%RBgQN,I4Ք $_7.^#%8Áe 9nVY`i@\*OD*5l&l_ A++mЍp(^C=-ms\:lծ_\\pAMEg˛U&7=.j1ƜbXsvk櫱v*pun?YqrE7ST*wwnrƩqg39XlYn@misuE`њw_~J?)Bơ}1xlЮ5^H>o-@M%z>cևPFkx{׵ 4p>\Q__ChzhRX_}}C-`/]IENDB`homebank-5.9.1/doc/images/dlg-prefs7.png0000644000175000017500000002112514774772452013511 PNG  IHDR4*\FPLTE5-)ýς嘚rtuߧ{}~kmmx{{moppss_bc#䄆⾾즦nqruxxfijcfg~QUV+3z||᎐kno'/26wyz|8>@EJKsvwyUVkhmmClQQωtػHZoD{ʞ^k[zrύǑ2("IDAThw\GngYr= PH!(2Bgz`` 0 v1sرC|v|q{vr/ߛ%,w4_ofgF;@y1 ξ/B< ־!4( J EhҖ塘zJ[_tEe#6ey72]]]e#QVAǐR=|SU͏<+JIvOi)<ޟ>q?<+ G'Ҿc?>{)I)KDږ9Ox-[Zڦ!!!e;vla{KGYڛ?xO%Gf---SGryC<|n{4W?_7S!677w3s s~87ycŠK^\>} gf Hꍟ7>H*VWg--EsA8qsHW8 6z{,W*_'F*U/ifq]sqf!?3[Nt HG?BnR.ؚ\>8-9Çf8:t !{֑~u49q‰Ss÷]kbiw 9_:x+s'N! +{7懿5]kn|ܼA0m޸=|pq{ֹy!l?vtië{~q+,Jxٻot>2>oy"qc/t3?}}P=Oyg\9MD]ƫl)2 "H['\#U)GWɋ2#*ȏk+?UY<Ѷ7Du:"O}Rؒȝ}xO.Sɝ8O+S#0O;"C2}]-=+8T*1iF|{#Cc]ڰ< -хI Iҙ7=ޅ`z_3U7Fx F)Vv2+m$ϱKnS:.iu\'`-cEp /HIZcH;TKZ*~2܏zf/M-}ICC f_Y?lh(0#I['9>H"J-Qy#<؆)3R .f&J\)mJ$!TQvT V0DGFL;M9Ѩ C9Q]%Gt1Y%/@)@ ex>>l9K-V-R&fqo|EV7%=( J=Pʥq(X)&o/G1O bbIOzio"B8Vj-Q@ťEZ-vVW؄XVR"_Z*UR`?<|p\[cl-Md᠅l.in ->Ùx$mjӸx&<̨'L+MdK1DkU!Kr> H~wcLM` NPv$uLU:^Mnim;d*tEoĐiy$K ›Z:IR4C$Є.iZ&,"qKKlWLmjQiAkZ&&:&0Q4ޔK'TJ -vl1ibXMU|38VLZ7&Q曒># b2y^ݰg|||@ @ kgʀ("po Ϟ2gBMwOijfĕLD/9,)C[=)-HE2DNvcHM`SqqWE/N>EE\&)ēΎ*aCdA8b+i\cݕpEqb14&T&ޱt9s*s|"^4E=P؂4GĨwI> e:zYitjk-#r,ɔŠҬKZsu6M)M>ݮUPh%,aϦI[F a {AVg-+Z[$`+"'. .  .!t@ e2xm_<2HoRkRG+V; _1bNi\LEX@G]W\_U)[^DZqLغ68x}=88v6CX_4SZ]>3ĸvut-nܔFG`mi:2OLtdӂD@@Q*1_ 9jJ#*ҔޤtՅc-6<Ͱ ֍, ֶ$ԉ=&̵5IS[ 0׆ŭ;`QJU~,.,@}9`WfuJ)6"[%;BSwˆ֦=@ق4ʍL]Kj9Ӗe fKSRk-=BmdM^j7)k׋J P_Vz;955*VPR8@)*,"e\^~yָfivXmlReKklngG&&%w謩)KՆdm ?@?\b{4(=ػ;!#V&>PZԏv%S_^ |{CWl~ @ @ ^ݟ&WS-|=0^!r%Ieٸ.|g{n΢>MUQZ#kij+tƨ;Yھ|TՐ}I )G Q%{?Kc(.-D®=v=6wF`% +yxd4= '( +lC#a92,8 '=".0%JP69.?DcU8N.Q3QyQ{&vTX"iⶤHۓ2!EVl4[UQ\ZTQV"AURTv42 Hۃ*ѭ!*]{ *.O^TjBuE4u7 t"izEvHY2Ķ={lkמK.!"(%"+I#@[{RT#J31܌=욐x0&@[3,}KHld6MOLIŋ4R<! AuB9!W#`T*$("UA@!1)/?, :U4@ Aơ ٻuj OQ??\w E+hTL-2^r "iπ註?]HCv,-)$KpJLP`9gDuJث`Z_"]"H?R!TtX&RuT\eo"?жCDVġ`7ı5fb͸2=b-HhҨDU T*NkZO%n:]׆oQitGQ1ǐ<sm$?+Zlˊ̾V׏;%4Ys<`JZ5B.bc>ͤpJ3mG`0߇ЈևmҴv-sCt}EpcGFXDЦ(Ry,,/ CZdIIq#'%^Y4+),5.tǘ%R5xlxkq%ES$}/c{O1ŠV5meCjZUPԕ[g9UCgנSL-9Uw!/ҿbZ|W+t[d2C%˔2v#<"h[KQY /?r?J.>zHuWP^ )*w CChJ3FZ6ʮ HI%<[EN \@͇iaݾCݰ]y`twt|7godдf').mCB#z>땁Of)Yay[#H$ӳC!"Y!G`sV|NZ6B"! W,M(TfB/*ۚ/2|"Bv] %J1tfG_}OyNSQb())?qRV7 cPZ^! @@uʁ,Fr|<y߽$cQV =0oGC]Ldb5oZV-maaFae 44(gn< #\Yqܬ%B7*̮QjR{shͶ\ȸ5d[knK[nLɽd%5XU`c~@\~)-%X? ':F n7XpwJ 42Ѝ@3wڀs'N;+کk-\6B:w|Dl# TIJP%4dYh{5vNjgz&%$!&io74o5=!^c9$ )1'8a4Pvok):Il3|N'op,ON)ia3tn2.dfɨ/4,,H5$ PP@ G~lIFT~,ax\=⶟ɂG/69Փslo nΑF[/gI 8]*{xCO1CJܦFθq9R}MlY盦 <[/=%Џ?P75~@P6zj?OǕYכTQ3T_0xx|jx>=MGSXHϲY5<Zjøw|7k{M @Fs5du2Oަyݔj"E. ;#2) n=`n2-o5混w%b Mɢ4=ñ÷HHHH @2|}#qRvW>$CtOqPx^"&L-=#fFWbD_|AGh҄}Kv]pR_>AD'e5ů9fy*,`ľM{Jw.OkRo4MP]1\XW2Q/)!ۤyR;2A? .6Ǚ,,͚>^ FHҠ 켴]uIb'vkEiʍѱ 9@O"l*FiI#mUWjYU-^Zkj+2]Yh 6a ʡXH  J_૟W ǂ:K\HHHHHHHH|I|qɿH.>~E$"ɯ=FwO2~{$TQ}yW G һ~>RՅID9a`_~dr/Bf~9?h;~_R`?[2{U~re2"Uf:lh܈BrfB@abVn,ښ^ˏ")>~@YR\—SZ4ycQOV8iv\йi5(n[%od^.B 54]؃ ĜUe5i_ؠ\m'o'.>!%C$ϞlK;- r^@8k)'zoNWɶ~zYB󺽎gxiժ%ՁVKͳ-f?Tln]|NdK+0g&/m50ZOKizZKsi-/͋u8Cު10 X^SAY ri8/"H;W5Vհ^Zq< 03JCiV] ' l7AK a4MjԹc/AYu-;ՙWuscf0hw"S\Y^ʞh 1x) ̷,V6%↹ArZQ{}0'd4uah~Kg {sg0`2k@4.Ýed,J Prrj3jˌ (fBC@XAhVEv 4TEG&@#;5f1*ghb26 =FMmT8Ll#$te.tWTn+.ʗ?C> Oae&e@=Bb#B$$$$$>1/n3IENDB`homebank-5.9.1/doc/images/4.png0000644000175000017500000000045313604617042011663 PNG  IHDR exfPLTELiqyUHyUHyUHyUHyUHyUHyUHmdphyrzsƽ"+IVtRNS/b8]mIDATxeG0D1{T}&CPW Wu;Ǔao IgWYTى_QS/XQ-m9':o}79eIENDB`homebank-5.9.1/doc/images/dlg-prefsA.png0000644000175000017500000001675114774772566013542 PNG  IHDR-"PLTE5鮎l20랞ijj}~~拌lll*䇇ggg?堠񖗗ڬ琐noosssΛpqq{||```xyyuRuvv굵bcc49:deeX\\zzz:IMNRTUBFGjbt]^_kSWX^ab.䡉qLQR=AC\\\%2¼9>?jmmXYY/pdghwwwA}[-45GJJ|U&.1!') 홾FI,wZh|솩6N恩@~~ozeimR]u{tD$IDATx \ׁQ:dÉn$YR%(:a B$@rs%!,19Kvcwk{}MM>v{wF">@13hoF罁 Hp YyfyVيmp[5r nN-߽ᶾm}on a?ޥ_y48+[#ą`ǿ_`u}!?]8ýnِʏƻ7K~ "_{n]w[^ Vu[F{{"_}# .]-:_xfïu}~q/>?k+5p 8q[3~ڙ^}a>>zk ۺ/\;sOG>ԛ']:tӓS'b|ɵ>l>j_=jkߣ[of'gM8 f pjoߣ>9իlBW惫șk~rkQQmk>om][(,يztFm> ~ ]t_wWm=y*xmۊ:#p AN caqگ?J/♵j@=pw>վѕ9uO\G n m}o7($( ~඾2-n Z+v?s{nKk t֤CDJ fYU]&LI[ CG,!m-( @g lF!ytVCٟX)m퐱c pzd8kQ?4k؁:bs,<}veʰݩJ֔*B\?5/:/09hǣUUu]CGchRXjhBmu)vyזf|@TYZl} v{YhYGllH^2W?k^[{ٔifYYRl5KgSP[fn;Aa<ĕcŵd,zzWep7>&8۵u$#?ڶ XlV5_oܙ==<4+m(YKmg=j].Ț˭VJj̈́VBN! j[tLorV-D OI\ev1xʆ͉+ټqUkMjZȴ\yŕU틏Q#ֶŶC6Bz.it#F_V`nn.mVkjK2WqfgWJJR hrCq7 ιX–;NJ(LB*[B2y=WJ@,_̼QQj 1[%~7TUQ| ؉R~jVs!׈:uhRpTzQh.'TJ ̀ngv:`.*i#vѥaM$)=S &)L= yJRRb](`t %]0kf[/%)*~Vw{-.8pt$܎C橴d-I{=Tʱb Boh aUfZ%EdWYM gzAM.-OQtZksJ :5T)hFԭyJvb -S}zP`ɇz&@mKĴ x9^,v2gUә-+Wsf Q'֫0lJ`!E<VX]OJ ,z@g$Me-VЖw;A&<`2b0]$-&LNo^[cl|% zYE %bׂ0\M $6 e&(cMԲ,6#H˞bYiˢ@zy/H;6dYtZt0Ceŷ@V䒛).bIc20FE}5pk\ET`N&kzs$=[1ho*R@2-L]hmMb1U% QQ`̵m Uق/h,~'gbo}kF? Ɗ_NCO!nmSmPV^ߢm{5%xdWvuzu׷^#ݾ#ص?c"ptmّ! &FSbCe}z?BNת/Ƿ67ֹ:_F"ӏٟ/UJL-W'Vu pW<} nvktC[[[WɪowqWhD\+WZc}Νh6(ne{q}5Ꮆ 3BonEUZ`ByS*,3ﻩQ&2_5}ijqt7¥՚ ѕ"J%eQy1PLLe4Z_͒-(C9M%Je&J&1-}2-iL d*-ŪSO&4aBn&@k9R` hV$ШĶȪl{LK) \Bf4@a?-`ʮI0UM_ mlZ0YGQXP)MڑQ#I3Y{l${9b,ŜNppd8`N$W+f,h/v}U!19ç8V36Y̸J9o,(G0eLKs|]q3yIեM_gn?JUhx+l==_WuW@]B1`LSVeJRrG:\NXt x_E$P)\`V& ):1-` ݬLA# 3y*D|. .;%RHrFT8m?!1 X-! m)?Ub2q @fӒOi-ɘ,ٯMjM"v sf)ϰ5'V` )<٠ iڴ2ͪd5kJ#q@r'n'ގrNf{b MI Šc.֑\-%*7CՑ0t>_FYual,-@P 'L_2HGQ%7@#O'H'oUV O/ TNczY?zVRc+_T8qjD| U!9L`,8 O¶N2 l =ec28Z5T@ҝ%&:Dl1[ cEScmkі:W:^ƥt-K.2P[:V18?]fX)kRYg]uGw۫.ּ ;&*;:70_V5n"@Ď=Ʉ˰Б׶`T !Rb(P YJbL v$`lM c ᮛ~ayc1 o|ޅm߼IHmS|97?rϺ^@B~=b=G&9C<|wѶ^~:Tom5m 1ׄoDzX[p0ĕ=+:fw.wp8} m{s6:,- כ"ͧ'0(DBw 7FYyk&ulS}R% -;"%hSP 3ޜ!VRE;Q/H((J5ǺkEn­܃rZI@ͅv%KtvtQh4uH\@'}BR$y|,%O“J$9>S !ZyhSS9J!0*Vv51/ ʪ*n\ukۢ*bRAMRpg8:H4k-'IĦvkdjJEĭyB$$@TeB*Ӭ<~KRA ΄<[n7Dmy-Tj4"'uU+[& W vu+&$ TY震>dݚ)]BVV=kgvB^B`_L{H}V  b[ץH-)q<=fle9 sVv 3 n+h  H\ di$'eIt1SbBFÁ.6Ž<\7Tԩsi Rh>dICyՀ&"9fb!GAM'a$”$Q\'C7XfHϞ⾴.L7LS (]_>|]eJXl%n7#o> w={{?'>H= %iCHmߏ'ߑ ?}W [בFV=+kVMʹ럂|#oYGHu]Gke˹#jG!nW=e+)Ⱦ7%0k![~~p!AZz؈<<~a GwBE< rx1CITZ(FyQNF\ɷɜ@d:L$'M$q3{t@QTYsxud"e$y&"+Fjր~yF=uBjq7a7yxGL= aqUwA67f ms G]]Vm i]XIjW竍cqٺ=%m ٵIYS @b<;LfRvcgԪhĭӳ/BfHLRbI<=hHp䐴Ԏɩ[55EvnM…Pʪ{ϐ:33/LJIc^=PtiiŗjJIf]7jOidܯ]LXHZvP=MndʻӠbDYjɣϏM++XPK+Z̙Y̝xvy{m=yXvIvzrcO̓fЦfɸFۛ$+1at}*>v\ah?чT5e[\e^IR[ɽw{4ƜK0նɜnIDATx@S/BDH̅H  2*DQD*.unZhmjvy͂0}5w{=w$D#4H#49ы"S)ϥ  h"?ӌD/ϩtT1qDF>m 2?GRou]վ۱ C4,;,`1K/-s^v_z6,.S]*7;B/\eVJ?8ƺLJV(+ԑdG=*J;س8nREa"m+%Cxax3X( D<O-|G$={E52I:TC8xy#h6˛ x߿D=e/~TmTԉ;k9Vk׫^:o%eX _dPn9S[[l0oaOwG:rRL̓_&Si4H|ŗF,ܰS/_FPGzŒ I@A8$UODxoI;>F>>!uVk|]kgEVDW[m}aZǓ3QgD8sª &#(om={UR"z|9@k%z+D(G=#:dF8k#Q:Vs#=G=@տAw2aER2d` S2ÙEwFFD; R JkL Nr~~K\=ghB&IU+v%w^MSnFPz9 N 𳜗􃿭y xsA'!s`i=t6,lHwQc{o1?^s ^ͭC?GCT=gJ$a[|t6w}@ KG:8Mf~X AR%a?0izXf[L y(`md1Y+B2Dq;pN2!Ow BAWYh*_*oUG !f0D[ 2 mrЃY<Ͽz0~H9,* YVޙ#߹Au:<|_ >}gw/Q^P{$p*8#+yw!1aw;?mH7>| Q]fC7]CG>j#+Jk>.*iC7W1KcZ_ՆLKPvᗱZrUWɉFee_=}Xق粹{.C3=ܮayN1Yǒ®e&[ \ycʙ,A,(M&rdlE)o?Α }jIl 0=j-x.pu4jXȹlϗy๬ߜz6q'!/"%Rn)x2Opbd]Fc! "j5GG3K;:>썓m=Do;!.Ҙf4 vw|IKh(![KJ_7WjOzPDd!4 L~tIg%VHXTH2C@^U:9*C>~QɐTZZZөW?ОLcҖ3|.C4;yo$Бe029[k)w/ j=~`s)o2ы"^s)H#4H#4H#4zaD'K?&;.$S-4ȟMij{Lm.4uhp3Ed kikM -ʐBuDe03#)lxEУqC0]{i?Hd=f  ކAS^NJ^X*Fz=#F Y+>0atײxjgS,1 i>A-233SȟK G X`G/BCq㕶ŘƩEJ&:,D|6 *#}9CBX@%Cš"eJe ̥3b9 7dAOϩhwVO!Ic-6[ s+/8^i A_(*JKrs}qX`s1Jn$?v GsVld >rOE͠߸/O;Bj]ܻ{1 6`噧t:X[Jp7,%ǿ%4 !mL2Ldv&9C067ЖEQIs"*61lsp ED=T g*fl$r0M$$9$q&`{3@gG_8G2IT*it=\)J@99IvT>Cgrst88: Q"{32y~G8H$Щ1NY|3 L,"a6o- ImV,I>k7FV6BNiМ':B:]9ZlpBjgy޻S Yn vEDi{9 aCS5YAj؀brB{}WzYy3)2h؉/#CXgO#I~$):b7 EJx?t:D {:3R;VU}wjXϤ,I" ,]),q 7KR0R ɱ& 9"^0_b3-Xx =!q8H`Dz!x=P2TiR DW+詝GN ^s evx?zx'$f(sP(V"qe'#YL֑XEOwHz`qXiNV?s[=Rd  P=?c Hc~<=&} d!Bΐ(wE鎐G p%, CS yjNiIoYNىs{Q:]/k(:Cd :0D9CK7om<ZvB!<4 w+ %gEJwD.dEj+ˆZH/NBQ!Y?΄Āsh^r~^uy-~׼8#+"JZRu|𽙛 RWm,8,GCN䘧v8(i()ͪI<q^ʮqaF/K)i[6,eSwHMe?HKgqzثm$[~(rrMᬳ˜oĉn#P8Sv:%狾)t '~ѻF(tX@~>bD1d?!Jת}Av!2v-+;ᮔ-E5^x&I ghjj6$~dHLbjN\] ϔ3\yZ̏!} ickFy(&A3gnɸeK0y+(M%_|Thi(s-ݑ䵺U6 sU&ydd#3Y`Kyb {R\Pb+zkj#H0!T*{w < r*:[ո$;X4d qn2`c(!zV"j=IxfȂ+>|4)CbqƷ_4o6:,QRʰq(7̮Ң/ C3ngVCM,܍!90KT,,HS3$b{HQnl+,o i5An7!CI0d)_1l 1{Tΐ{w$5wS1-ԁ%mm1mݶSA\\mH *h- dŅ1ٶ>KHm k^(KAƵvGP)_ ɶ:j"lئ63X%lD*e } ":e{V37wG$5~HbZtXS/6a)B5j`HO V#>p|H(>o| 3 7rÃFsٞ:w/uLLU L8 |-LPӈ4-#+Q;C =|&V%C쉤6]3pO1Eǝdt ɎcO00fyyXyu| {xYyt'E11+ñ3dh(Py\}| $#~1۱@-R2dm4z~ :zPzܶ1dZdt"?7&ƒH6iFiK 4db ڣNb?ٳU_Yu^1$.Y5ZZj$ 1H?MZxxxit)zngYc!avR+k!wLgJMR'U}gA?^4%C> .V24o%G bk8\jjQQ:n q:E50gֳ kE䨟_kQUvӖ䓪}m樴ړUf^>.R'zCB0DIhBeM&=KQ@iOɵJi;.K TUDiQ*isrLqEec 7ܩph&a4CUG~IENDB`homebank-5.9.1/doc/images/Makefile.in0000664000175000017500000003450715006363044013066 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = doc/images ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(imagesdir)" DATA = $(images_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ imagesdir = $(datadir)/homebank/help/images images_DATA = $(wildcard *.png) EXTRA_DIST = $(images_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/images/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/images/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-imagesDATA: $(images_DATA) @$(NORMAL_INSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ done uninstall-imagesDATA: @$(NORMAL_UNINSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(imagesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-imagesDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-imagesDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-imagesDATA install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-imagesDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/doc/images/46fiscyear.png0000644000175000017500000000432213604617136013502 PNG  IHDR/5bPLTEû9/67Jc:Ty>`?QjHk٧&-LFEF0HnTFYnd'KYE?7KzUHR\[`CduXELh|lQd䔹̮p~α%*0'1>125F*-:e4>K<=<7IqHSZdGSZQFT4uX||eYРdIJŭȋΕ̎Ӭ3)<:8BG<5<>T5TBYbWRYfkq`W~aJ^E{hRr|^`ÍUݱvz~욽mܳǭɉКҒ׽۞7&4&CY0>bWA+DIbkL,JqxjagA[xsvw~xsmQnOƠ|]kb^ڒӖ[}̆תī}ĹϹӺʿͿ̟ʿϻҰ%?JNNG2cMKuGBsP0G-wj`}zucvSΞǨȺƽܵQXWZIDATxP[I $@{)-R(Zh"m\v~3B:KRIssLogw˾2`ƌ3?z>T1uJ3xm𔄨R`aKtPFD0Q<%s-֟ ݐRB:mWP[5!Y | O4< fh~Z6:68n1<|mmc=Ci))a@̪" [¥K܇[Pgfx Lx =\? W["8Z`~~oJo;ߴzr-TLj?b6%o2eb1E;тiZ6:ؽhTC4(,R@NX*CnHR eהY|@rxhR Ǭ}Χ漺 acM-tbd躵}#7-w_i+Xlwg9G':P6e(̨TedA 8B-kR}~uxJ敦yAHSHr ǙֵwBҲ>~P=nQ >ąš+hlq6zS#֖ġ*CuJGJ@ #Ȗߙ0rPuDJ2er؃I'#:NOŠ+%}]֭}l?c!(/-Π0Tz +M-ۇx)G޻=OY$Zώ&7O`)fYM =uv*@߄eއf̜_Mp#-fIXO] tB&ǟZX1\w>{tbdDdp> aX M~ЀPs@acdneFþ<僄$,/NQRZ\]臫JNO~|Xns蠶~㜽ſP^荳&*{XL%M|h2RV5eJg?oyrZbEuGbj~i|ڷ~~uрx¤5ytRNS}}'Q'sIDATx xסݻf K!I Du 12+Ђj-!ay}^1Ɔ;6KJQ(aˊІ [V\m4c!(/,P⼃\ .k?iq|j;tVTbu׿?&P+k&w6-^ݹ)ծ<.j?ԫ$hWIڕōMō(6 92 E]9 5;crŽ{˂e]|sSAXl0oo2(?Py2ן",9}/kpΑv_o/5^4מUdjP?[|ML&쌽˼ܗy1xnmM%gWMcJM$ӑ̩%1\To,ՙמ)S%&MGu'wZvjM_NM_NofiaLwc꨹~$$c \O~qE1XsT1Xӯ=JNR_}:WS)$sbJ=%'J}KOwE z뫟> wߺz;P%]ak~ulZCȼ9M5p۫3tl *'80D_|_^r\SM+uk4Z2ѵi4UFʳkF"aT8~1Ej+(/*eju{y6݆I#7X )/9ʅaL@q{}Ua9ǞPU ) 0G4Sc&g=8jaR' o6AЧ d$7$άoV&xIa0DLBaӹV'-&+Q*GOts1}_;VNڙ[\_0Q(LBևQێ:t|1=wt(uwbV5&Ɍ)ѩ+u' 9 }s5bB* fw@o"ܘ!3X.HrnA٥'$1C^ uSރHDS;uD˗Nnшs< 3[N'l \ @&!NB[HciH_U^/ն1NVKmvӍ1cڅXr.7V& gЭo=w &EOVˏ)d:'$F $`jEl"WPhqØ] ƞ4L$%O ԏIL9Vוl9!S^Em"WⲸ}E2pN98蠂"XmRN$wn()D|[a_~knnwc3_K䅧koˌH1a +!mݶm` ~&$S86Gc¡45lqt䖈:R&U0Q(L& i>cA.ڿRFa['ڐDt˜LmH)*3er,&4W5e?0Lla@r\ĪE5CUȺE25lPw:d y_,iVJ:/[g*eL-5 3pisԦb0cyFA +G*D*$&\bSHD\EWjV 0x/:+)52L= Q:wnMaK48qkKCPԝ6!l3OϻQɮ2Ӥ!5"2"t0=:)g2:"8->כJc,k LCQ;FIy"Ka0Q(L& 4•#([Hwaܵ6ooAhKض60q@CWPotun hPse'p*{x\WJ'<ض1 v<Z q;_Xm.AEƆ\Wa- Fk.۲ZEIKַ*:W5FE̥*m6T~UTiL UZ1D,'Uaҁjd6 /~B:AJg[uCdap[۹rE[ n1`T )M\aXtJֳh!̞R0L3 6vةp#% &DS(\ȭ tis3/;d&cu:\enMJ&E?44' `p9L?ySW&}?D %wrtUy*yUZ(L& Ӛm\q)-#̍p}iuG:HG˄)}+G]L0 [/ںmaڽ0mԎ'(Lp1Et+',evvO LlVz d͘6X 8`C#n51<bTJ:t$ ]1Xj.2/s[^)c@鼠vTυIwW Lat`a<@D!k]&H  L_jL"Ak![Q *Vn6҂ρ *)|o0ؽn˷+qc 7qxbB3.sP|#",(70=a25v7PoM/&"_'T$1Mv:gD@YM\6@WnSkӱV\^aS1m\o9e 0m{NtH),j1:˼{M&`)xRZ.gie1Cz0!@~v0m[BBt#V .쎾@? J+!EU}"7-KiLˍ[z^g#~V\9+ɩC]OGٙ& DDa0Q(L& 4ceoco'( O<0.W5Ɔ=ÂA yyA-0T֌/p8CA38q%:<33s Prk' "0C:9nF{8A/B-LtZ^A##0jmV^B[<S ;9=UjF.5L|5y&HgVXЖS*E>%ub \[TV3tuHCֲY >'TrLMQ*+w)3y%r'L>ҫ91yzBgG$ȸD|Z=!4Ē[MYK)FiӧOj1g#,Rf پ]|LvÙO{R`0Iƀ΀Ni/;Lj[|Ld,:seD)Rm&RM~ |L@N_vDM{*wBV<"hg=9SI#跁u' υuH15"&ߜ:{i6-43P:_d"M/ B:{+hԠ3C65[޽`ڷ'(=(Vhe'?Ojܲ9;ٳyS0)q+0!fs^\ p Lbq:x<չ@FC`îJFvp۪*u!v" RZkp/y.L[1_zJ@z~oԌz沴Wb6US_{?I /[9ی|_7DnHA֎i"QbDG]ȁ52i+fKڙ HM$n+ŲEJ+ ʧ#^sM νIcIQTH&S4L&emZ+h.ͮ`T~դAKUmzds*骞9:6҆,/ ~ʠmJSN%]lDD`"8"cRx!]dXlņiYy7_N.kA-p#$2k"ִW^03%:}Oob>&TCl5ߥȠtt@8j 1ebU 'O{/ȱI 4ipicA9Mh((y%|Q= tkGN] /56:up ^-4 ) ڜ 5jjEh .qDIZ0 PG[  0"WSCądiz} ӓ@a |[&`&?^ OJهw||_|6V0䄔b )m#+qL&`)#  f 1m8$mbH !90-b))?%s}Dt>D-;2qoЧoN &h[J&xuck)# (0`- 0r-ʦ*+Qؙ|+]Y#bK!y3\_4a&s"cٰu* wi});kPԘwQ6#Pqydǎ#ٚf@}w*0d06g1n0%ٳ~Nbs;`fhL>bBrH>rpYrXT;eiWMk jP`>#CؙR$G O04 C4ѧΘH|Ey ->'>f4wnƁRZVWio7UХjĚ`Ե[+ G#e`o33wr} L;!0#WlgNP 1{n!ϒ]S|~WWEb}՚tj2UCv.7h ΅Wj+t>!Vt-[wPqq Q*4\k--`+[_Ȭ)϶3{?!0 vfAm- @Pk;QD馳q_vvLڙbQ)UƵvwUTponϛPevԊګ]n7Ze7/\WV= :&v$^95/ SRZX ʹ阈|D`ȼBs8%HMIחv.f-iҽsXLtLiFzqIPQG3MU=31LKRixY19*d#>C'+:|#+8R!F D6Pߝ Êd#X*C4DML%x%]&Z+7p}5cOni=ȄU UnJǧ{k20es$񈘞x뿄srNO9wd`,vΜ.F&.#㉱\o.Xa3߈LX9҆өKеg)816F8>mZ\X1tPkhh|Py/wZeSOy"=s;LXk=-0Ah D&3b -c sbZ?uA1mz7]r͉Hݿw{0@LdOR߿$~['Sؼ'BӤ] Җ0=99;g{{wzbtLOW?d=4oEFA,jDohۃyp'91nI9 >\Ϟ":~&LEq3 9lp9 Q܂M<:oSU cgSr+=ܷ9ꮾ/9yϗ&>ے~R]na@W1hKXf` 1wÕa2Lٙ{[S =H:<Z\,T t:fv p L߄1cgh6Z8N CU^(<ϗ**NVtdf^}0*L{ %?ynk jQ66i.1ϡ39t뗿|7,lTPFUg$i4z WX9='5Vߑ{#\,N-$% IܙhH$E+g07_LS﩯[c hs+ J@4 ڪY7Sgi(O]5:U"s_,Lgd'5Wx4GKBV,6م5:Lt Y& vbUD#a.6XiXѱs@y%/gXb1e)]Њ a䴴N2n 1(**JK*;F̛c[Ң4iE 2)E8FWVZN, f;c@,=y2ld#;1,PCCqF0sXSYx_7RNxNhecc Frp&6Ƃ\et&^ j ⡇,#6|d g&~;i]~V%ι0qR^5J]%0~H?͚9)ÃoDqI(#[0E13]{XF%ۋj,YN?z~'#FgT,?L@yة^ؔD"N8q}o{('±ROvŴ.uO<`Jٽ̘N$SV O>NjՀ̶tbAR-鱃9a{Ea41dr~n0=t$ L\CV1NP,L3]_Dgj3LOEV hk2* ˇ"wpmjsP[PZI Șl+:~<˗1hRΘ,JN$zϙg R\)]B8XdL&p3]]޼)߂X5 ɺ0AM>SJ\@4B`L' a2 6QaCIk+UJmJ|cr<|q|Pq^pD2\>*LGCw„ B^o p`6& rCܚ L? h&HtWVn zo_%01Mt诰:]x`bc1wrc&`ˋ)}}\D|D8opV?6;6R>j(L&J& Da0Q(Q(L& Da(\m~o6dk@w-eБ-O&fpľ{q`zqDaZ9ÉI$I1Iy77^Izv,:}0so.TWp[/ح>Ꙙ##=`]~s\ru ݲ &Y+sUaҩ]\7e3lJd6V'6CW j@Wf'Tk@jǍzluՄ  x %(eߖ7] (5]`Ab*y|zǰ_@b#-jZ;3j "6Դ+ӾHpb߼RϚOŴk,dMt+l`>~OZ-?qiWY8w)$Pk5r"ҹ+n1>(bsv4:+48Vaa6IL{"Ua,VkDD3n1%OCڰ9))TaHƕsRRaQi8pT$sp3xII͒ C} k|!֍6k1avE 2L'08Ċ4 y9:SҳeVLJ-H~V CJe܍d'-fALO4flg^e@OBgEbJ8']>M[L tY/SL ^Ĵ B:1-8ŴdC/OL.`zԝ(sg%gsѽax.<@\m(򳻜]g{_$xra qa:+(~sY( ?y{rIENDB`homebank-5.9.1/doc/images/win-statistics1.png0000644000175000017500000010737314774772452014617 PNG  IHDRC%PLTE>yUHE酢ýxmedꢢh駈npq_dtxyxhhՎܰαٚpgϳտ\hxkZͿ«_wƫqtwg㡑־U}w⡸Lj諚̲m[r{`xҞɵ·qލpSm֎yʱrұs뷖t۠нy뾥lY]ԟwa˘6ys貫Ȣbz뽿[UUSof뾵tpUfUn}XZ/28]PiwKXrAk_҇z]X三ju__ڶqLNJV}Wyʹk4<\HHPccdꬎUF]^{)G}`G9ȄG}§a )s;]S,)F֥]Ɇ Z->jъئ2؛IDATx TSWqIyh . B M!KyEގ8Ӻֵ_,Z;V;Yq͸jqk]oB"AK8g}N'~`5?-3Gyڼr|Y MNkjt—\[;eꥯ\<rl5\'-Cr%[ |q&91Zolpiƨ7bӻrW4i"(ZrQ޳(O[jd?C{{=YWU ]ɆWքF7**Ȟr"K eHH×HS}\KifUux̐ ̾v{wxVkꋻ+vVSKQl|. 4C g|Eۡjs6Q0D#LcSRsfH|^Fb($_.E EM+7Mun}oC-yk1fd,h2KSWW\L' k(d=MKJ:m#WnG;Zx<+?d/I3Ad:% =fSs+o7ߜѶZ]Dv E$n!ouiВLA D\2WCqy'"HW~^C/ލ|W<`$_dh䩠no1do%+WSC]bG{3d)nA*Hn4bh:OMMALl)rc@ ȸ6*@$ H'?h{.>"%)Cq\/EɈ!hfhŷ?7HoSO28z2Ӄ")uoB qtrtJ7$&^s?.C0d( #soivݝR"R_r9#Ctwe PZŽ{cbyؘ%o;3#mbsd6s4`PXݯJ̕FE*幹 x "M$a?qm I 5me_-8CbϚ!oriAjC ዠ"+$_I)~32dqm9b0y=8Yπ$bh-ӊq-CkE u|Ce?-Mm+1=D"WF<#s{Jf3̚!1luۙ.72| MGf, bs5fּ>]6LDM*Tڈ!y,PG$dMƬgk*9PS>(9o1?(QT2ęB]r$5upAWGUTG.6UGr;Y-u eTcwĐ!4]rCMQ\TyffS8ztr獔%8CL3ŚC0o |΄ bB&$Xp zM$> RSblcl,13wɾGɾ U $$,yBp\甥$cOݓs?,S|#y\(( H|1uu$4]svߩ;pt;’@+]La\{)W'o<ưUk<,< fPIx=H3=9=rٚ _s4&;5}SH5,ͤѤ xw [ExfM@yF>gɀlN`/^kthS_iCiQ/n[t*d9٭}> K]ĔR;o q#G"aшop]u5paH-Zv i'8*7=m.C,3ivBjP-j,艌Vek[T!³;qᠪ12-@ItnJ7$&FEXxτHNƞp "#xjWUV$uHL1$ᰉ7"bIY"hjn (E!+d"SZ/x0{'4E RCwUBb")IƓ%kZP*H30sC YBr+ xeΨ7 2b&'Zj1e$@^ÎʒkSظO2Td-Wn+.T,Նt 9mQWe;dfQ~~Ndw_O΀3^S e6K%'ceqQxg.&P6 `uD IálXZ\"2Ã[0qjwPTc#ZkZsG&6#gg;Ȝ٨W|ZeP%C+rs`C15^|Feڢ h7CC{ss*ҢhZ-B]h(~X,~ r 0*Pfx-r!irXCfm0C!`/p8Ug^M(P<Զ ԕt I;%tݣGKuKl6!W23xQߵ>>Q'N䇮&0PV5ݗvcvd:? =CS -dJN^PLvK#b&+ >.8!4BLUAUiz2> 0Y$,&Q89ΈG4xp8HR̺1T_#WVHN";tY6ؘ?qܹ'TEn+ ;eǮaYͱ>z並c Ұ#u(gH b-C0yR1!=|JeZE>|PБ_omjqmCeV6V)6jv={T 飮'TQ;1{3V.3`|:K⩊ b۲q[@ pIͦ3f[ѧAԆH DT8 3 q % {EKQ$F! n083$^uHI5N66-%$T6\*-~mX{!֡3hdfMU+I<u^s,OMnX\wZzTs/#VЈI,Ѳ6nl7([`5[Ew%!%5y0D.z<#Xeɮ_Ϡ7O҈!UlbCbd" 6%JN6< Hdj8-N~11b):+Ot<[+Ps@yu֭` Y$`OVKŲ޸bvH!aUPP\"(u Vw%mŌRyکW"(3?ؔw!$ 2Yd[ٌCӝ+;}eWxqUbBؒd~P } cmeO?_>PJSG33g|R>Cqmq`-LL\mй0Ғfe)xѹ RnmTmJ>Q^G9 eف7`M$CU =۞#{~>$fV51 l){ E˛<[4Zv$CfbS Ԉ!1w$xPՁ4, i$Ej ӄFG)eDfۖҸPn6Pzxs*\ }WE.j6e/XSȋiUqqc Q|[);>u"]YOhw$C\C廣l cvy+{=@YsB H;'jҩGh5jI\kz+Dp;d gĚbp#Q嚗aKKT+Z҂ՒMB5P@-˨́}:TgiDњfUdqJVKZUO>MҊc'N847P>(1Ol0f+Q! z#641{#~]D()$C.-VTAAx(*AAŕwr0д'!JfYuhQosiQ6AAqb4CAh䏲2e^QK2KhiBBt C鸕AoLB2dZUq=C'tk[.l)_iΡ^:šb5_-*$B [+Eve"#BVsOz&C/Y[[ESv$0`ŐܠQ3|+4/kE E)S[VZ jL+ծ0`ȴXMI* aiM1s5{--jI)_>+/Uk]h-ˁ{<:uo.(6EĩŮqq2^2$jЁB"bLmJU\PfQ2cd>M JƳoՖt Zȉ )s5Mx͞grųҢ\ɷrC9Egl<>ϊ:oZΊ! uG/qX {+ݫsz!jDod31Fk9SSص0ȹ`7N_h8CѴ`7'diq&!o6x90s/jdžm{vgZoL;*7ՉtHL ^` C^qivd.Tt;kkj t`"ɝCӕ:.Z?22|͎7XN>?W^Bɖ!m[ۨiyeړvu{W<9%֣.ZkѬȽŻᵇZK;h?^,.\g ?{VP9Ϥ f Z-@3e/2ijF!akv?Ed-ܬ 142 !#|"KϏ!, D^$ȍ1bɖX4 KE$zޟ<r&'%6'5 Fq%5 Fq%g0D $L'\Qt; I`[Q,eK@u 9܀!O-x(G;nxa0 e8J0]V$ȓ%. ч3M12> ܵA% ރm-Gjo7~ޓߏYDnEa}03<$<5jD{Qעɵ褔se7k1DX.BtLVn.Mi|ˊ0:x e ;e.a)xϰΕ.apIPv= ;`my:͒1}.ʈ``[77TEF-}܏apCw!%mע;oc[۷v{xW@Qv [aK^mtUJG.@ Z8)`&?)ǤXZ%Q|y-}ne6H환➻g~)sfT^WV_+\I46Q 2[8uOV  @b%ZoZ5e5*7u'<f<6?5fb(xTx|v=#Plv RRi3Y{7*ƬBvzb>D_lW 巢'}/~Y{_Nfzj땄x>eeCEu>ݭjo YWV@1˼dum/luf{pѱj`vtqOQDYP'Cэ `vD+Do ;cX;X!JC(0p+k, ԕe,*Zv"^t,,䳔ex(Wbֵ [O-ޤB zWbR}% g1-dm yr"aeJ.c%@*Uyo[v/73}aXDY!(K2gwJgb` B o es" ^7X ВѼb1O+(엌 &Oie?YGNw<栱l< sa3xoX,9e浮|.=A3!縮cY  ׹|\޾ʨtɟaAa#| R 绵"i{tG\NNOeC>o ?5W} -B?w+: s=\R| 5{UPf`Γ:2gZmn&zN|滿~z޼C.[#\Vc~)GSF] iR[!ƒO [vu@ ZCWB17l5bȭΩs͗!g&f1~ [b[0M0~7_׉e|YTYf !va414OnV6/e`BjW7ڎ >G5\c'x[|Ǝ-0w SOcϡ%Ϟ K3SϺxʎݍ{CL@AeNGZ *j_}k3NjuA0fȵ)ߣ ;ҷ;lJ2J/c,:[0ԕ0y2k6OkS.C4T7`KƊG}"sj>EsCkh Qn{tpm;B)bF{*k <֩EfZ!ّƉQĠi&aA䣉" ^p (UU||!N[lY - 2"(F_P?Y!x:WޒVPh1Tgֿ̣" I h(V!1$ ! C@32 "ʤ (NE ^Wъ?[ֱ]q]_ֻgDDo,y>1!NNky S=q|WPӴgy~IGWfY˪B/L#:&}ٴFV!.xgn%Uz%RgT94{tB/0*R:k:+te$<^5K 41jĵfx1Nkk#bg!0ظX/Ch} 2y\1i9:o]i'?ЭE{Duv3Op׹,b#$"Bڰ(5'wM@6>6y3'"<86@`+'}{.w%v mb:"o &M. _m3dn &p/ dV\8NtvWS#{(Ԓg\RPOgNLj#r97N$2rCgNF޹?1;/1Z>pSp83dғ#3N%~;'QNO=Gu E<>=iob70Lh~"Sb\Ͼ8sq'tw2{2p!ۗu u!ڡso! F?5H;OCr12,_`5@G4]ށ{DRP%{ @0Cq#ޗwN&;'vJg'C==<C҆puI:aml L/Ǿ2^alP8{`W0 kt$8 slpwFR: D=X >v%&0#9d^1drd U2 7 ݝ>لJw'We}~~14ȷ4đ4ΐQ!LfdQ# >zdy1}q ~t;d5һ ! t~{!hfv`71¼ /_O6L_9(GDF`:->kT s^޷b PrDmi!geKU` T$=x_K20 wק% !fF ԇS-Q,s5v{-@ SwC rKW߻|Ix=M}C"GTА׾Y_HoD/5jeΐ]A(V]'D``\m$ *To#[c2B/kmNu^ŃV^09avE.[ͅy*W=k˥qP|\x$t^M`^ Zop5{oVxKxvzM[h6Bˊ pq}-OOkv9դ.Uwk~J?#a;,;2|ڨ{cFPm^P-M6 ԗ k/tWv(LMMIf YYϚ!fcl΢)/kB(xG x3ѽ$yDyyyEI>^{2[Cesa\MTREXy^ 5C|smAPyB&_nofOc! `a!Ftjťk\ VeM8cyOP}+Bpxs8:YCք43' PTF\}FX+?|5+"8@#(2hXB ey͘FT3y! s&amrt"JƜ#rc/sJ0ӨM_WDb~{H {ؙ5MsF M$349WspA4dgQq;AvL_RN@ؘE(Z݈kxtQL ɧS5Yi=)2G1=&9! l͕>=dXv[S/-?(] -]*(:E&IΣ_KGP ~z#^<{$'rr2LS!,OT-+w*~ 7o WHEM3sTWZXj}~*{xK!3UVUT`P|'\,5e{W"%|Ҁ&2CN,^HLڞemr0LsռPnUswj%O$$T\=)2Y-Yr`5W(h"OO}MedmΈI-UP1Ti Cba1mM0M}e~Jox Ϻ:㻽,} 8;kFם< ]bw/To3d6.l (U$(b y$O3*RnnK;)!1D3F ӸA,X4ʐڡcXXY(( ݬID[[s#޻ [!px)6"(z<[}2նSql }BP$TdcKFhH Qh :khӇ>/mny'[ZyEpK\ZyK¼zeHk5Y2.:iA2 `ȑI3,9MaVm1Ȑ?C Kðd66X5u>qk:qClAna?h=8oo(7!a~j#C Y )]Ypd{L[CQd2 Pn: HGfgvyVv'uJz5N z$7Li+cӖzZ@\#_|4?;M>! ӭ09h .4m;-KǐNNЁ^^QvXDyF ͍)RHU ѬFEVj.Z,##B-m<2^n[bwb#Eݢ&u}Cl\f;4{?yu̥"'f]FуJN^h5fT;9obz%j9951tDeUG]E(жKAG&2T) @l\Q7Zݱ'P8Cn0[rQ֛f!14#ZcJGGqs6oGXj7g@+D'l({Ah׹<<¡I`YddȂ!&fl&d#>-Y-̽a'3tJzeJw/ w 憭KroͰ5=Ra|j*K2Y e-V(HUams'4jF*&ji!n&y~urf0q_ q&Z;0*X3fR7/.q7]Y4٬-V/{=\٥,B]Via^f]m usl\FbR?c!l(Fvl\n|euDEE5?C1'{b`o=EBg{W,:<Q8&5xA v4BRY?.Dh>>o率BE[rCAYJ#U 0rBȿ'Pnd C ʻ0=[SER;+k,!"KhޞB}Dž݂&骉{|<{C=V`Qr dk Mđ~Cn[l$(0ݖpɔ~Ce1--ɣX:?bS Y/gD;po7b ~hq_Bl<"tq[̎Sv}Vڇ:7n $ !.4."(01$ݘӤ 1 gi Х1lY3Kn> [S Uz9C?K/HT}VzFS OT3TѸ|͞GgrW}-: G!"S`>fWї(iI K_yC~2j `Y:p~TP >(*~GQ.Lg.>3F1L ) n߭תy_?H>gV6=,y J8k7uqwkƜ 6CcT !*Hb j'.ApuK5G-Hoؙ֦򻛥jdO_LVl#{@d$Q|!_N`slB1L !a8,+-ų嶓rdM84O weG>m er?܈KAZ ge2 XX1Mюcf9A,(Cͣ(CE1y`TA[){a? 5?(vT Wёsf=U:;KE~u]u&@j̓OW-C]u~m6+ +L`\V^g3d82 h㧚FHQds <(˾Ok-_sU4 a˾tyre* Eϔ0+ wr.4=g]u**MWeP-BZ𚥇m?@ skU"2F%Dsݬ,20p_( ~ ڶs{م %?"Qڥ|ζU*~3CCߟcaE{̌)K!Zյ3^S'å@az-Y'@G!J/)@mݮ:H.&ȣHJɛ3DcLb_Vr^7,X).~3_:|_/|mgWGǻr_ [%[*HuN?^2s VVU>Zk}_|ܳSBD (V^G=ϷAnZ*82VڏQl${g⼒!ݠ<L6@6DՍHaDQ}y7@THPbb<(v7m`~gnA׷ߒ3įFQa6ۄȬtyl7D pᦜlյ0 q&J_*1CԐ8\;%[Eqwϝ>5[maq/Q,(MUܴ_BDziQ6\_գ!ߘF7ujeeruml-SjEOS*$V8CCl`hrҔ=U|޴(nl#CC >a 7CbeG8|M~o5Y;k[ZE+ӑg8|Q|/|Ήҏ }8NS?kӤ q=dj\A q,^zj*CM\%S۸Z)E'zAbX75ػ5S]p` 1Ws8 o 8k=k0sZPч>2jvb3!T6.>:~8L&2Π,^D0di|Szg>FPCNҋ  R r\@2A?<*QS!  [E (EPjbQ*GmV֭֯Vkxiso6*w.3;rծӔgeߡvf&q2[KyIzF1dko\\ijse`7Qr[ lМLߜl ͑V RX-VCmfjiehN|20H1dhdgPGМ24xYD҈!MPGh CF-sK#o9 CoE-C/`L|RK#ud_TҘyyC1|:fJGXCAEh#C6Ryq2 7$"LҌ!34lL^R%`.'Ybn^"LX-_}CK_҉C2*`*(6Q~# Y(%0t^JlC*-4Pk CN[RWnqCh*, ͑*VΒGea!weW(Un1d0 ͕t0R)Y0uWEڄD:%ƪCv+JHɐ9hΰPL%R~ ^1)C-hPb B|YK0 gTH";]RrFB- lJ&CF/3d1!'dLo #ynxQzUib B g̞ګ~k lo]j89ElFb۴2PI224G_0d<‹Uz+ep}X.y;?X\ѦP⻊"Tud(x//!^nGӧNx{2^`vi2203FQnVvӔ嶆#e&eVz/+d, -c\:A:+-2Du#e"bYD 43v{eޞiE콍A HG(7ܦnr|j-DsWNSpjgCW+4{ߩG=фҀ!ӕ˴zrן;1&cHWK[wx"͊y?qfOR̢w~B21`$*Ca9=L!Ӊeh0da9GFhb-6 {}H0΃bcNy=3B 0D!O'9M_C4}eHr4\ධR>C$~R5b&%RfzE}?)*`(:i^b5C4|QfO #@r%~VDͧE,C9 &ked,2"Eh+ _~5?%8(0#J,$C 2m94ӈ!K(HvcL͐Gr2/Z(V \Lds!?9$#ͬ7c,8t &!  R- YOK$)鵰_bH / ZUGg $i>attԉj ~ 0Ir`uRd߳:L$ SK;lf "t=!)U(2ID/4)懥y$Ky|nfrX"Jy%CBB7ݚ,s!ch11)l2MC0um-_Vcתh-tP!4ۙȉa84Kݖ>猔DD Ff95'9Qs$)+HF]{ d;>ښfHZB::#E 'C ʡV!&2&m: D@4PaV/Iɇ՜Yu!,T ЖzxI4:<|8N)ށdC˩lL3b= "aS0D Nb0%"(مFW3€1 HR~|[ ht{ٹN q3Rrpyu@y:!lt]l1__ *Z"L0W8Z=BYEC|YpJkN0_*I,k-,bU!Wr\U,&g"O V2aPD/aHf!3)Bd%:8Ys2K`DiZeUP$lc^3D_&񒤑JR).%n0kiy/ HZ$u+4ٙB\/~v2D_DCHL!S`c sJII" )q )!IS)IcJ*|bIa6 9X|cԟHfW=TS [F&)[6=A]uLq^d2^q!X:cĄbmme#ʏfrB)skvw|-׺3rq2'd`t mZpn/Ҍ<'5jϛKo2&2gr֐{q osC U",dKE+7.qf[rWHj4_ 32T0(!H=ʅxx }wgB"fa8 uKP14iHHgG&}2~bH_  a> U vHi/) rN`wX/L . IGG[n|YNgCSK.Cm{=!O7=)UUq`#p4!޷?OfZV2kN`L]_ʼ輢 <o;PSq4 I8yy*۷׼{u3Cg|Bh?;!YЯ;dUlQy"!޹SkOcyA(6:^n[`EQ1Dh .!CP*:tB~V f(^BH,Ծol9D rwƩkvbqYçv`ecL gb+Χv;pv}P:?==+,f2 "<π5# m5kPCPy\Fg{/31*= '5m+z<ҩi,j jP'U ub I- ap..bg3>YR0 B Cn.ˎ\-_yKmg!'5Le{Ok',@b +ް@0G&@[>ݎf0q'!ݖe<59hQ Tcmבeu0 !NON{U] ݦ_Q˲d7+=sm.dLX+H4{^gyֵLw'\O {>aȣ>HnCY^Pnf':XxtctUc ŘP]d p s--ث^2^ NZ%/Vs*@UG!h )N1] !b72RRpki(ASV[T&QCa|֑ILh>Ļ=g !B<_Ɣas!6 ꏑʇR8 9[׫\> ]pY9& :XCID!{[[Ycj6M9:02_of1!-Co~&ĦCDg7\vfZ3jA9iC.{KeH+eH7J1,<ʫ{1otpOW2C>7DK͹3D|КCi䊏TIoK;p!!QBgP~HMT0D<|g+ˡ+D!!7/.^"=< wyѴݬ?;ZɆÖH?}T^Ox~PB}?c QLS/:U[x FT܁r!=aZu}5̝:'~C:ۻ/Myԋ<?.COC.$bgl Ѻm}!fbbuYcnxT_ciWϤ6/Ox{:^= ԁj^#`Z|7]π:nw 8X_+%pzBGJD unA]VvwC[w05C]G>b@QY, 0D[F`a =n0cߓ'U6h0PWhv*ϗHYVV%e`<я`ȣYQc)>e!YLLh 1{; Cb W3d9}q$#BI]p2^T=pz j;lsl,BϣM0DP n:W=4̐gij~bmM&/4˚wSȻw=}xg+ u*%/O@jŜ SnA}C*}W`{]v# XH]oZu{6۷+cemisQ3`W,Y=:7 C/tS."R e oV2t-@J~`U0D=v^ OԈ!Zo5Iko+x׀5.@@MԣI>=Y"5ClwCٷA{]L6i L2`"ˆ=cD"ΆS(xך -x2# S$uB2[1DI>UH C$d?;%.RH#(G q__2πD"B莚yMKYȀ](C LZBZzzZt_Sֺ"ɿY~۽ !޼rd;oZ%-C\N1^gi!0D$o{(zD$gG{1*Y8n::Ģ((B3Sc^z8]+{Gcնw"a=S+Hl SLP$^ єy/!)ʋ@hraH]lXf/Ծ~q6hXݡ"鸾g+(;"|C"۳G٠f%<ߒTv$gul*-Uf//k*&A_%S"ufF|X= ! #g@jYR) MbMJ]BzC_7ذHJN@<<`Ed]x>EGw.Ӆa !n=ؠe>jqᆠg^GX3C_ME٪u+ ep js.Hx>g,Mݷ"SI m\h-rwʯC?/< ^H >{ȸ| "&+z[ۭUpz Kj!t_Zo{ݥa!3䚞~LqFZþp7W?Xopzu~ oCԛOgT] Vڤy;ct#/zmߵӈ:xßڤ(yB 5>X[U ?Ad }r !R3^6}=vm pS RC:.dNDVe#!.F0fn|]{7och;F`)lzɎt;c\ϱl)3<'wnusLQ׆ިl!0>#*?b`q\' k}t{{R[my'_e / oelf^2J|~lR=)" XW^G T'BvAt{Bi|΅TIIA$yxbgڹIrF$Ne??:9V]a)R{<;g}i |0҆`e^1 2]ėzE& Bq?֞%|*y== ]\!'w܎WU+ ,$s*3{j*T` \`(A9/j=P6\,X5[q 9 eރEO?oӔG ,lh$Npnr{rĔ%COoJCmKT}Xr[;O(]^="k~ vckO;k:^ߌ3 |`~i{VFQ""2`E޽`PxVNCOeCxqJc2X7qU ]pdNc+ ,X̣([|j?Iq CK"t+`7+<Rd?W:Y GgYWh'gk9l لl 4 9P9Z[|"_nȗYMl PGl r!gGWLÛ!R"M:S4%I Cw*ynB#1R(:p쌿mb$u`޷1ZTs([@sXkQ6(6@44mx'yAN6:‰ ]}v#7^49'I/;u*Ί!%h 26;w!</C@1mw v_JuΈKld`I<$CvCocZȊHgCw!WP)xAg z]Y,ۦ%h5=c(@6":r-]ƺP J3JhgRm˂u׫viXkC)AH(ҙk V!ElZq@lW-D_[/hIzo-#$CFY2DG( M sOEw2D9_JYIE@@$V}櫣}D9A? ]~j|sy3FLBP~ṛupCt ,CW24}Vqr7Ơ13n%_:,aùHSx#"!+?vlyu<#?3~p *6gV 9跷F:'?޵48dg{)d9(<̘⇄;3?~fE'D !8-zHB1Er>SkGt[3C.nŁT;XQ|`es`2ͪ'ZזlcLIr5~7vL>=4Gf3KZMb;bBFψWg`T>[ʗx`c|RñƹEӒ 5H70T~ a|: #"^vvDN.e\J:̂!fE[¡<;" JRg7>sH$C.)-ͺ $L2#CF;h"v2Ytcl5ZH{ȆhZtJPnpAмՙ&y}3R yu}[~qVI1#MS9)S+dh,B\2`LIűoj P56pQ ?ҸPrߎȾe(^"Vsb.z4Ӑ\ON>,\>br\.ד``Ezz|kWa .J&Zz{"A4B>x(W 18 grC_XT4˛# 69Y;1 m 6FMccc5oTnNgމؚw,7C+(k4V%"(z S| r?>~W:;y c%b@ ENJ`;88#*d莔5-^+Pͪ42D/Q;Pl(]e-r6u4 kߞuw4*Z[8оSD3y7VX, .gN :$xR4@LɵÍGϔljI2 ޴@E8SԐ#ApZ[|doQ3ɽoC;NP}fŭ7:.!n?dO31Vdm"3,$BbơpZ;~ܔ)ܐ?q`Bn8vSp EEi"_/q' *HݴvOHQ p(j~T3H*+ۿ\&p^XQ\m`NmܯNCɤڛqYECyڦp$[wg+f)@BE.9U&?-X=\S5S 'ILR:Yj$ _jne*,cDY4dj6*xS#^6lB9CMCaΐsՖ˩=ͦ0ok==蕓a{=\8P^- sȖ@d{5 :+Qq Y [(e=f-SdO -5؃|N+ϩ)څlX% N4d7`'$Fw7S;QӞ9. U95ȨĄzb EM'oie5ܻt|6b&4~Ӭ}37oqkڶsf6\bf̈\ٸVl9e~ެպ|lŸ{\m_ݭzCޣ<%n(wi~ւ|Ϸ#SSQOdz347EOI&k? TDmE^(1+]TsnƹSLy [+uA V.\=ɸsʥWX*i:}+9md+b4l"{f`X> ԫMU=4 ޹99cHD]jNhhh`ӯr#CEV,U-" J(8*8deH{1gtS^R݌&`ī^꧔:vѧRV)zaaDfacKfo#W Fk0C}qjA1o>w<"t9M6hPަ_tWV1{*%C5mF9p.{,/Ŀ޽0c?{~zQoNj_A:!81qGQ-i.JO7םP4ߑw!t"eI5tD&%ؕX-CsNF/mD0BW 5vu_P(DiIGxj-13X#쾯\pqac -5(GC+_zeC͊87=rE@3ڡއ~z#?)#!o[Er p0&|-pe3h \{ IadCiUA S,(@( [!6UKOi p1!Mhz=3}T!&c\əuY>qvFZ}ڻPwOG=+[NT<-e]h7|2`5q'B<9n,\K1D:북oQ%Zuiŕ Oxo{e0tD0nZJ"o4YпtsZQhݳcI3 AzK xs'4Sߪ7k{Z2uO,|j WeaE(bqAG AC^OeLymx?`5cAoaND7.*5>R*qoM_'gg԰k6< DwůBO}E"+ ha<=2r,B&'2l{p]ѕ;ۓJy\WR.(ǰBR6P=LR >6^oG}CL7ǗA$Ǽ_fJ]<mP1'c7Do,\&~kwa !+5 . T;џ C6!C6 l ل^o^O_f|GѦ0oMC/CG{>|K)9_W^eJ9}%b:O>߼>H ]b;Ԫ!5nyq Y:՟)2?CT,YG*pȖ L~;"L+g%h|~5/AsH?=5 ((huxl'yr`u@pgށ`v޶RG),a;;t ![~pG&~8B# lg'Eztaϓ27]o͋YTLhcm蠣[9)5u‰:a5 %손 U$dhMP&*gE@cEw2J;$PbGqYnu.L(g-9OO8 a#UȲ"+iAp!]^®8sZTfE[7zo\H1Fu3>:,15|wl +\Z\1$qq!p} 6!BcҕFµ㰙aSe+v-|XH/YMw(t1XKvз}BCF_i>hk62t#>Yi :6o_'kO7PH2{CʔloUJRrh:p5hx}ko+@eDF);m uF4)2N Ęn@YVbMTjm,VCyDr`g))M{B&1'g>ѹrD^^HTMXP0 (͇3K,9'Z2Py?SϠy ^HR W'}>S=gp[KG sl $R!׏^X>7 &l%|Ln[]I:T·,V|24',5|Aai&M͙4`~&e'Yh|nK]V..llD؂]蚿Oz.-K7#`>β K8rRjd/&pV{b]臓'Q_:] k׷'~E;;]61ʦWA#3C621dC6 FkB/IENDB`homebank-5.9.1/doc/images/dlg-budget2.png0000644000175000017500000006236514774772452013652 PNG  IHDRTr[PLTEGpL5zVJzVJzVJ^_zVJK/9⮯ۘwxx{ggg}}} sttkllcccmˮvǨq쬇Fﺓ'䁁ѹ^^^Խ℅oqqϴ﷌YYY﹚ļlp¨?搐wgGGGQC111NNNi@@@ȳnfqTTT999uV焬}d錳((( \頿ŞN]݋u3Ív-̣{E׷W&mŭՒ{tʘHΏed?׵GG}%촧PRR::,vӠڵoܣm~~kD@ tRNSb،H8 IDATx윽oZtOr@ \hJÀXHL(D Bb`y"J2#KwKwR ^o(M%~Rp||_[14˂hԮ k/<,TKuڋ1< Ո_7Ks!4CteU7g/K36wIN1DW`1N8 h}Z)BX]e~z!D>YF9hJu9ŷS ѓZ,yEj4=R"n' yEL=+=݃K4 S;y *Tw/R} ̧꣫TIGoV[{t` zwr5ן7K,߸e=>Ri67ɉq%}?ǭIrs鶾p-6~UCZ5`FHշ1/Fnc,&jc\Iu\>\9Z;I8Ru/v3:TgY&Lq)2^9YTt/C l(0 ( _ s?o-ey/Ԗ $qfT!xh)Tʊ[xNKmڠ`ڡF-?>. ٬b(/hr򳚁P||Ͼ@&s"VtI#:gtSE5>Og!R ^EҐ*ZV :[,9s9drPĩRg}k^*_jq&''թgh9ʐ ʐ W" ,n>dP<?+ZK#C#]Ru6{l^v1#d'7^͏J_pRL[fX5&ª9*=*.ER>5iJ>n6B*t:PBb-d'.?5]$Rz,~]d,D|CN'1H* =,v!nģ$׊}t,1dj\`v~D0Ji c NM/7A_TR.WtB8M'[)/w;<SrC;'NbIUrƈȇ]Ru6K{OC%H Jf\\.=ˉfЍ NsGkp|9"|Oe3ۘ Xjob x%q/|VgC%;Wa"HR{0A;KC^LR&F^Ta%&u(! AXFq&Ru Rl֠:{0ER50gOfk)U2@"C-#ը&r(UgnD1 :hT2j}fHē34WJշ1yJ[HlJ>Rm[R!3Rl"3Tc<HZnt/jC"@m%ٖ#KI@˯->贈FҜLNcPd ;)TTUcKPF2j؄*) 6C5Hӡ4:V~γKY?)%Hv1$;PX-+5&\(HS C\!"P%ƑݟI>h CQ>2q FXÔ687TV2cYeȺtn@uL jYDP *C%BrP7Y@)(O  EnXf [AE؋%FT+PHhP9UZvOT TNV|5^P}2_LR4$dTSe6-+ShYbbCܶEUGE|ն8-9Hs ߆/RmM"Ƿ UB L%}[P\MPaKa\@=$TRT' [DEsT9%UE*$@PP6AZfz? *@dt/ l1zۼH6N#l͕a˹)S?/#r{Pj8J-YSc*M _~j`8ͤj{RD*'h={}T,Xf*v)m**Zང/(U ,ʦY<D*HS0;z;T,-l #gP!]gAELxf ef<2=QDT QD +I~b3t,iDNmΧ5rt+4g fPʼL’?nXb|6YmBbQg@`z奖akΗP o@SfPz"JH8(K؝'Oo'AχW;&T_lAu C$4bM:AA,%JW" !+yLasMW_ P鲨 7jjh )iCEb!jHgiQ݄$Z\3ŒqyCJsYA kq<m3EC"CZ_?[TLہ4G U*v7kWc/T$Saȇ;SP]1`7jw7x ~{v5շ9W6O;.WwjFst4P|4}L螮;zw?_r 7o\r}N(z*ܺ}ݻlT+\g8HLg$ܼ.%zc ܄M(~rɽTt&VFɋ [CW90d3o\}/\Y6fo g_~]l^+`̕a0.p$95FSա]+ޚSC`*p@~[ЍL\<w>zKCi<8}]XUt`EO^Uth/W o**Du¡Po׈Ⴥ_,߼YCW4!>r^_>澥?y}7sܸt_Ǘ!x^?5qΝs4)o@K94  G޵/|mfsGV|-K0 oj3g9` ;A=i)CL^O]_0 ~2. 7=sX~uU84=ݾs6\SKΟލ[Sm+z5E{BEm")%Bw9RSKg6&`;}#+k3 !lh1h^ۜ;ԇkUԧJ THݵO?=|aw;jC5wu '[{ղ@-m{l:3/@gK0Ru]~]w PVCo7G-@w(t-}*\:fyq~C C tK [m7;An)qX8Vtu;2 yGYa]'eXw@pw{B=ZWBʅKB/^(@,VIxg8ܷ6Toj>׮:o}O7Ѵq˓?ZS='|6Gw†#p 5aFώ dA^'+t")Cq\xh#. 4`TohMV;ڽ-  ^a/(J =|t<ҰYޜPжjNQ4 '4Z(T<j9.×jr jO85vۀ6P!аY>ao6cVuUP醜ޠA?FCC6ſr%i^^GWB,~GQנ4guU݃BP;5JBoUP-GYEUP];3l;J~oUVLhim-pRJ]-N[mʒ3`NQ!T c!7˴tmV@5_{ʱZ٪SDo\s[(s?j]A3%{k P4vFP{\l;qW/Zw5 * * f@ hlnu c:)TVGh-~Ҧ^(//YYC ˙VAx|:BRiSIyjFqLrfb+/<=ƚ+T.V4 * E{AP$I .J.xSYG*%@GS۫R抵#5]ILu2 bp'RFjyPY)5KKI /;iP$JL %Y`Db YV`sttT*L(¢y$Rj)P%2 T<JfY* Fy®5*1 h$chY#¥XV0ZLI$G2\HQ¨4HYS8d, {gIr9 @EfYhHKPh&TT"AtK!1HspLĐL h1: R)pt gcx,^̧&PsPy΄׀g9\2p]AMӌ18Cx.jB9x )&$tK0لD9Bfe`t3b\ xTBU R%qքAh r07pAH9PEF gYLuKW~>-{,AG5<6GԵ4iAӠҠҠZ+m*H)ueg ?nW(4. d|:BkA~KmVŞ}c˺l֯mu:nXwuQߵ]?rO~CJj0X!A}__C61ŻoݲPmU1 e@uվoYT?S|_fRԩw;]W-}B?Op_ 1<V`?袁nn { )H`@^d*'Ce[AW00X*uW3?Zkt @ cM,5룁QGjvߘf V)B]WAOyqv}x?__):G9pZ}'DǦg:NMORU;~*~WBpzǃF{D  FkCe}9`;1xK"0<`/;gV94$u.0x$RT^RAkDt֨D=4cqMLa-LƱlܽ$n<6v;\sΏ|y9'B,W͓T]0*.=T y#k^T7V74mj>Cݭub59ȕy]/znzHs2A~yC2UmC @A( -nFbe U*X,в:,=ݡ  i!ۃǂs@4q /mM--|.a8; eqCbcu}ڣ}M#좕P镁x\M| h]@/f eU5ZA'ߗ~ȇs?J,Y]{ рdv8xQ T<F'| @ /J/AwG dO2@%O5X=2#H6Вf,cBǧ2P]0jzLX++qsc(c@qK,)JEXpg!=9`\c鐫)qPy4fȎn+s./gM@*ۑX/JɨA3Wzg zp&2_.48OM~/xgo5\8Zi3Ka=2z60 IDAT_%/%;Lfߊ%6;M=Cg3LxsW5]$4W1+-j$bB籓oA뱱*,UY̦,RsW )jDG6IݢBI-r8#;ݗ #;+j PT>a:ETO!N8"@$d0%uŋ(#9yrA7 7v4цoО*CO9Ā!Z'N#=|ZUuóPB7=8SX0 ;Pmg @2$ZGT,tCNj_ 7/Tw^hYDbkcLxzI$q=Rnt02@{8eG@0Jd]sQu|b] vt?E'579jS;4g:hАk/aqB%"_΀4 "Z֎(ffwjvt7ӝ5t6ٹd}UGײ=I|yy/sr|rEfw.@E:n. v0meWFSY+}䪌K J>BīϞ;&%oTԻfe*`v ߮9$`tul*燡Wg\PP}*_wZPP TGm4T4T4T4Tj ;wLjzpU˿p Gxt5 # 3G5U&T wS zMECuBP=ܽ6Tgiֲ g/KL5nx,қh޾n 0l恸`bF6lά\﨧b+@bD։>dcA`hN7?`iK0 tz^\2˃5S@ի=޻Jv|)d0&:nӀ$/D0w@wr:q:{Y=G OZ˞_ @CuV?I@7POG ՙ@ŜrC@T;,,4Ti>Q   C%/],Q}T③b] 49 _ lS\}*PPָv&o5UkYWLCEGɟ@旷o3:yv&=xgҷCm9۔SE嵵tx.]gIq**UzPzUfVc#g.Q*9Dau;I}T⦅J>y[$ҵlCU/;{1'qQg`'>\qU?H(>(5Z|u:TM x;@FQyk2#TsP;n $'BI~ΣCLW%w 3>FPCrPȡ ^o .*ĕdž˷*kiQ{feyFv蘑tdA38$hȼگ}.e{9{H)ڲR%:pvTjT2ZTu%AѨeeg$L 1_t-i:u V*m'Ӡ?Ea;r2;n3n:*M~ɿGǃ%O'IpPd0: `mr[Uiq%t֪f<ߙ4LZHxD$(g^P;w"h3齗=RP%>P<2c)I3IDb Kx!I};Τ OA,P eJ:2I+ "Pg:RB1j4 g{BL)}P~|-0wHNZ$A[Д2tQƈpMǚNzc0`60%ӋIðnMEDb\X u!A dTZ6& I롼!p.}P=* v#LJf Ӑ+qg/CómgR@i,k,U9@t2*E]DIƃF9pk8(>e!Vx{|%OAQD)4"l!}( ЙT/ᡅ!I Ur](9JʫRf_pβ!yےl4mMLm@U2/4^MV3`^eZhQ_7_Wr]Q7s9a-Y_\Wŧ_L,oג3=|ܶ^ݵLƭ<I7Co.@f{vQvw:L1rBo)ZVƽ9Kxcg6! 'aɤ9ƕb=4! ƽxZsȨ +d)^ ŭ0ek`HěYf.c"e2l"ѫ gDk+]*$LԲ}D~BP7drѯZ^FT+:uX[\ j Qn)W5Q"0҈i$a1q+JG0J\~#Iea% pw%Db8IJIՔIJ^IPa?by4R䓳P***hŗ^BIK)!T-ݹ48?O9b"~sQ? }yct0鑨DuAHT웷KTwKB&64+}_{g}^o7o@MM^oFjNm~TǾKt_}TSMGE酬?mzvQl눪J-rx7!fǛ-%UWfIJ9h4 3+=d?(z/{xG>JnrQ1F,p%Փwf/dRQekY7 ۃhm9QpDuS_)GjF{$mP/M|do+"W$D xe& kAw9E|T8$rQE:P=˸30.\Es1vMOOKxqJ% \" kXGxyeDj>a9t;kQh/QII,K A,~'VQTSQ=RyhlESBb'H_xx~[(U=n+]4HOL(=R- TDF_Q\@: LX)+J1~ Vh03%:$]}":EIW|/F=ˇ??,IYBqŴy\T es8R6,WWh 8As2"+ʨ4 3_Vd8#§͊DrQ1OzD}!o˓~'CT᝴.٬htkOԏfY=w_gnnuo꩟=mm7w Mm)qʿޚlyhNYl}t  `Z137+ԕjH }pk%/~>a1A@c۪W Cl 2{]%  'ׄ(n Gd ?%}E zP1d0ǁ^aϙ,HTU!b}1VXQEU@TK<QEXED(CԳKt } T{&>PD5XgSoZ34L3L}ɖtLk5=0zőJ'8z2")驂Λֆ=[M?}V 6֏렘InG({υh4<3΂Y v5Q&*={to];T>@ڍBFnmADD'Ţkh Nt+mB,p4|BFRљL~UQUr}tih_lǁ\ ,*x C`2!Ҥj"?Q r1"!(qd2Ùǵj$gaBJvذ%[n{b{ aߑ-ږR珻4:|{G;ҺUb.b ZU!z^kʜJx&?&=#, Tf zE@:& +dJD *\6 1•"tY]3xO(ΫQ ۧ6jSݟ+4 un$B +BSP+TCC'<{諏SXl\_{i#SK+Ǧ/EPmqBodvM14Z`j]vP3 74c B.C"1AH2@LeǞlVF) A$.q(bZqv 0lsf$$c>=Wh*,B~54ۄ:nPr=_PE o7~rN,]01ָy!ԡ f|I+,${rW(DSiU \;Tf nplA%k1d\Tv``.Vr kry,t*t*:B UȷIow} ߾41pO}/oѷe Q56`%Py, utF|ڤ wC&D:۷o짢 2P1 "mQ\-+3 mgW+Knjj9"<ݟCd 9?'R.U2_ڧ.Tk*rXhP W@z|Uh=v_ Tn9pẃSg&o}C[5!bZZDY d!OV QtqMN$bX,bђHoh $=#)-WvLřHĂ=Pb2Z*IDRy,P9E OȜP+L2U%W ,{Z :0̈0H.*P}V;]J,% 5; n$k&ѡvn3GХC3;Ό٢G |Iq(%pVH3ؒ*XL*(I$JC7K<"ŒJIR  F,qG دDkKWky*i܅J2^A|Kk6%Ѱ>aDصoW("4(wweئ=O>i=_PΛDoUoAUo,To -lܔtݿy9c|BhNg/;  H Zŋ2;B.4zP 1~DHЏɷm/vYBQXT\^Z.36miLcg^g|w<=q _T?i-1xS{yup߾pOM*J?S T?kUvt!*QUA1)Pu~ {YZLWQ>vt:+e>W_KʹK(r9~;eAvP|,*kyYzr0q^AP/_AEUPiOk{*{{=Ãb6r\j< |Rseu`巴o"q1!.-K*QjF`UIӋ8WO-`K9 tr]PBuXihns= G'-jw=`S2j# }VA TV7J%)_ou9e3F)U1Dc7c)i܆4!'&@%,<$"|B?k8\)[U[#SSmص~4T"p\ ~8j*f;6p+ڡ`lM3u6t2fbJ/JJMOV"Ig#o}R-U> Op%<, -{tyɧʤ`{}*qm%'9c a`O#KuIJsnABBe&b3/K1R \3T0*,'9(+KP:ړKX C%+)OmlX "Tu75uCg%TϊMx;tyU`r"NT8#(!Jyks+"VTʒBdt9~Xdeu2BSU4rgiO8vB^sr1q턐 NAP8vɬ>ac[ ` w⎐6u%r\.#v;w6q{P:^WŻAE7IjwK2靆w&(5ꪠ=ˈ{%1d?$O,j1z/vv& Gre@ʾ>5%0jAzSPXRPiĜրՈjTDd@Z.̤A.AA]u?|ktjxE@p~_yPc X_4$(2틹bBUiPw?gB]KP$L%v7PiNrrAm"aJj/4 -8xAEi ؙ8IoPu=vS!=H(s2pl3Rb!RQc^y>:szF+; *!Howm =-10A ̺T1 x41?G: OI&Lw چeZ'AzeFP*鸸á¤\p =&T Aj=TOWO%"Z;O7hT?E*{#^S[|/|Q^x̔JTMȧ[U#껡WUɀ_@FI >Ph4X6W2[x?tȊʤ;L= h2EP _޼{wCLQn w = PdakGP5ׯ߼K@ȉE:!(\DPa LM̘zufD&0xhNZS)TO3ջQ`y*{\)UC>퇆IS3-ūT,y=jrE; gl450JdBVMYv(.mW`{wSQ(P_?ʤb 9r>ɞa嘺Kox717j?b49|zxz ڞ$h >N{ӹhzR .)Dr֊2"#/~u D+jQ%DuP7^iL;θf'6fjm4 ̆{cq[abʤ=F*FTäR? z8SM:/1 .)| TH׏ Qݡj&?\DY6Mnv|ӳ7O; G&K]f(D5 *،)W #P(EFSk%]#||T[4ū0*fpفF(jT~O*JcǹyZ aX)cp^QcV,CTZ%I֜BX9@ Nkr&Ny je-fkFV4Ttkptܣ2iV&Uf?p0hR'g& y;UV 9 DOT $`-‘ju|(+*zHʵaS1z6=;|pmӳDL`Z;XC~jW#UIE|k(9{>R\>Zr]+clP /I$T ]`Ň CeLiCe8zЌ%QMq| *XtlnNeҙӗ*'2̽*hRM.ZzpȨEՏ8T#T~P9GkKҮ-W)NOM>ʤOS]ORsgQ}B&H$S'~ZP'=ݙQ}fs2YD_~/߿=* .JB1&`IXќ@j.x@d/JY&Uq58%̼`rKU>|PǩYbXj6&W?qⶼy_'{b'grF`Ҿ M6*2郃SnuS$-K) zٷ^QE,)MdJ"褥txmRRJPbfQLL% Nm3Nc'.xLҋ|^NIoK?ozTTT8<;K59CBl%r쭀˃K{՝~8rYoznmYWX*fE Ic"~k;JMD.i?,*t诅+F­Goݒ}ŋ׃EWB%Yz~ns(we:Aݤ M&ctf8R*m̦c <lT/ڛ;\ uzyL\R鏻Y O5@T0Qn DQ!A q9fGNLlj=3@[kofn9rŃ=Pby,1HZcc ㄭ'&2teR8Sy3@TQEE5u +~QT56d}Kɾ`YEծLzڹ?c״ɒvR]E Q^Tl#4ݢS3Ic"JE)FDH'dI.7<(y+Y慨aGeRo !y,F (f6ӟeW$c1usp'Ԇjׁ۩wzT&uoz7;J@~" HaA~^ZrDjs oT w]*-Y"RΕ-T9 .AU+pHQ-,<|t-ʹ AxVl$FD o'-T W^kPzO˥:Zp%c(1-ըτg¤N68I)AlolpG0$u*L V ՄjTTV\ڕQBu?D5T3mUA[Tj[ kD Q]y+;zAFDux)ldǽvzv pmX:zT:R2R{*xO Ԣu[gpFBfl<:CDQ PZ(ͥ@ ,HTQi_BT@0{^cK ΚWx) 4-z؝,QATMn.,`=)?ZݫR PL]@b?"ŅlD5zDt-x]L1m*Y9DQ NE9`]M\NbPv*!B@T\;g8bk3ɲ6#yLJL@)hܐe;")"Ѡ ٱR0MLHH)oL_l|d d_õǓӱ!@* @* zRÉ?nW/nĽx"4Wp3߉NޏcVRNR1!ݚwo.2ʨTaB]Vu[3o䉝aDRyiR~+uO3T{e8[ڜ6nGNG~s! +5 }FonpX^2'wpRik}oKUm%׮RG6˚}kv7,;X_ұn#Ry70SLn32?qkEUUH<`oM}p(N_nAӚѳ5GB4ГېVnxGB#a{.Vv 3zT2RLެ|=N*^vZB8QYZuA"5+TxovR$zx%Ե 59zdH-t|E%s,jkJq(陫ViM݂RO:Tv\e)R6ڭEӱuMͰl^ehޒdqIbcGz|Ƥ* r5ۭ QCה(Ss)jH:RU)52:s(iJխTf_ʉa%ʡ4wbFE 9t^*%5J'-dAi[ÎIR1yCfY25 37FY+-K[IG*jEeX zʼ]6tҬ~*TiNF!ʉY*yO`z)!3TCƥd^d9kT9ɉRƆ5_MqYHӃ`/ƪSڷqLTU2(\˩ΕJՕO@Ab'UahW%W"(aHHJOb4,z2tyഓ)QEg5o3'{I"R̖}1*<}wR.`W_7g Gw!|(~> ȥrʱ8MJ_׾t yzRJ!a#xzeլ#H#9BIL8'T V|!/m'R!ϤkROSM); 4GDj-i? ͞y9-wKC_>߬|By2\A.'n @*>+@*`Ṡ`> ]wuBqvIDATT$Tp5&*ǵe (U[d2O&K^d2 *w9.Z6FHL*8 {.zVӤ T4QFJð1ab( *&jQq$)_ Q 0UeBU~ne+mlKF@*`T1]6m!'AJz2RӤbQtMSž8IY1Z( &skȫ!je;ŀT4nºփ֢eo3F,2j&@*VR kp "XLS@*`"̻F )JϨӬb9~  zXg58}IENDB`homebank-5.9.1/doc/images/dlg-account3.png0000644000175000017500000003027714617624320014014 PNG  IHDRlPLTE5yUH)p½npq։oeۚž诰xkɮឍl.1468>̺к2oVǍ=tz­gUnǺAEHhijchԷPf!~~Ѳ[oټ;Ojkv2CYpyHƪtj^dz{ahQɄ`wzL83}ƸvfXSWBplreyZy`!.K|\Nwreٲܳ\Š˽kI8PZs[є^R}e@suzjasKbHZ]^jA{zi}poŕ[ˎ߬ɣʈyɢӽ>\lWSG춢ڢګUyE篲ЗVXrmvǂW:նxE&Ic"'MH]Yۥh P3p}I:jcAh8K@-zIDATx\SW8 !h^ $11Yd (D6JEENlݣjuWOھ>UH| 7ޛ͹3r:@0tv0OF iT? <Ԡ!ݜYj #ݜS 0Lsj6C:9%2}2<4͠trJrW: '[K)@: hN-@Tp>hK@r+Q#gt}CR9%F RP1SV|Dyy%)-qIKxS!A@ $" Cq~RyH Q2- l7 i]в$- A^T?| $[rFtjd4X rTz@-L*H&w JFS5 FaBSlvnlRG p9.WHFFN͍Pg9gA0mņ`ܝ3၌| c1~⦢48"$<ke228yuq <+yzVgݺ0j*((:Q}i~%V& I"oFsK4mg'bl:8Xv%2~@iVKo,+xX4Fm f[Kp?Yc~i0vD*[^\YYGK HdNnVN3O9PK q(f"AE,㗖f;^ώen r h5lvK%_*;z呕y';i _|LpYMW"&5 1U!r:^͜_cD H-s` @dbcf>:c:K @ ['_Y[j2$Y!u?Mtq=n^Hg#cOjZ Jdq \Q k@8l#ʼnfG\!ef"F x)7qk,bs@7̱?!Ϊۄf|H?#oDscOT[Mӓ]64cFv3ݼ矁 Ѵ p橙Bʯ3:R32JY1pru![{kYmUG=)#N6vԌiO=`(o@n斳ooI09 N R`iV`+ Y,ͭ+Y_H‚FzԀ`SzHc@*ʚD   IM @'z_L9x`N $^;|&#P@IH~:P Fl,UϬ:Mh "@(*@ D H4+, _4P m&sI}Ļi2 r [ҟE@k8(sBR5*(SSy3ytS'8\.w{@+6/+ϯ<᛬NXŁ_n1XZbfuYQ ̌8[9HC })T~ײ962 .''G :d3 C̎_mŁMo۵i3PZǧe>@7*6~C߂_zuzw+ $}ٖnKCnHhin,:u"x xn-O$_@%oK NL_U\^$퐻[_ 'NEwĻ -ObLr!lk8z?՟BDar=b$.bNwݛ՛N~oL$.Pz}os4{h=ܽs/vXneZ dw 'dxbU"悒 Z{oMhbI#I; w{ڝsz *ހ&? A#C*fc $oUErd:%PmФ룢W h p{STr(0n]ᤵs {(,Z;ܑJJ:A+CTh^EO2=ݥD1lvdyh޹\x@ hp~uyl&Z_3{`bP@$%E2@{>9ՓFᵭl g#tU0ުo+w WڍbY2ڷ8G?t3:]m'sAȕ.Š$q:%ūb$J~ͽf jWimqj. +@u[) _ܖ c!K`|ÓuZ16!Q"OĽ ƆIhC#/T\If Gʳ"Ny"+NP!n[ H#8-I+<J<= MBd# @>> A9)cc) -AU͔+׫EZq`{!U]Gv ]@[KB[fE/W!ԋ?"C{JPmZ@8-P@QT͎B8=rO_0vtm/JP39o$O"ޢPœw%qVF^]YtuΕ~[)<ČC⨗<#6p곻#ܟ )َE-6 eO%!FwqV1ntQb&hO盢uf%KGWz&4\ȡ ?›QZ$1)hs!o UpM!'͚>Zu9Yy\#zܥNW qDqH 50>\uMXB|JJPJa|qO HQ%Jh8%^WFT'֑39"Rtu:Ix`d%ߒ@?Ok_, c :)8U{s ޳S@eލؚ=މ@ $L߮Nܺ}I@ZtD$ͯ m-@AY{bzb3=#+4VQfXSr>;՟q0qξ>ۑ~e}ڄ0*h$?oWUiU JfoQY*҅`yof܎ KHu. Ce0 $-G5>7T%rz]Lx%$Q3n;@@!0hd =gDCg ;f.cH5o2߶(>7?fȺ$F %ddh] #՞A;`+p :}AG38y@A;Gͫ@/1?hB %ڣ:N*cWHx О`1U?,3qȒftRKw|K^s*:kozT]]]U`S0@rh ]Kg+ϩ1 8vQaubLޢ4{9g^UXS=~'p TUi ^@GBXt#X5ڃzq,0ceIЏN@ճ`s0RC o]8GuA#GVTQ^Guђ/dic>F{P >+lD稪Y)b.Q׻xqo"!AVIY"Zô5őn q<K#7K`f۪c" 1TYQ}KsNQ:]EH5jP:7n \k>!Wns(HX($usCa5Q%Lחʼ-@n4-wh8 ]e"D sUXⲸr7֑޿X9'(.7Eg' Wׁ8춊0g3oFٙG8:Seő`lmTs@864Egg3ǚmp*6xmVLl@hʶw aԭ:ÄF}Ӿ׾⶯/#w\Bߊ7||x_߼em.`m> B#;~ܭ k^bOò9%!WoA_@EM;uҋA@_6N\;U su>OےX* elmbE}B]Aʼn^>` 7;NulKmzqۿdGcseNzL&VQ|>)"yk yLUA ~U<N"7~ulreۯˊ@ׁek|L_ҴbQρ f(Wx~ç[@ב'M1 +M.?N5u/<\Zb;>/()>жhm  ЛQs=ؕI;fʒ7ZWbzuvfF9x>>r%v3cY ;+.dK%uWX=ZgpȎ.u.5=*1M&_e-B&n@ 14Fajgs -D|My* 눝>v |Y_f~L25$݊47#Ҿjh23P͝h怮!yG"K3uFGR:<ûw$grVn3:M-þ ..tѯ-0xmBFxVYأ_V}CI䫤#L' u_8D8[ю"0UWf'$1q,SP>ӑ^$Cm$hJ8O%it? @aǖػ?azVu@QHL knn+';6A"`&chK8,:kp?GQ.9]XULIЩ?l>|L-'Y{Pt,I.aᝧ.WZ@SGO6b"\M~쁐2(t\Mr7ԑy7)8-mXр/OFF+DQ/͡BCALlbk] M8@e9.V2R2K Pee2 JRJ8?k/ sg7H(ڴƅE"Ha c1G4ϡ^u A¦Gn{{'5cN(d[1SIf@Ԍ[䬬 ('r1:NN|[ZDyWω1]< { Dvz>.&خ b%P"U ftVMH^V"h*g%F )-pur`W\0 b$,Gr:Q @v|{jB]+@M 8@a#ǯ}W9^g7"+*y^&1!mVש&] ֹۯB4Koe+ܻ;3WknVP^K@JTWq[1{Bl؃ r+)Byi%-Op\4qah~=g!<:R-Ml[@8߅h{ Z1 @v:sF<'F+Rf@tZ@;@>F>PVြ#QPhGћ:,CC8~x|`WqE;bx^.!mܘRX'8u 7CkklVDX<8^i9esnaA{;9a@NK olLz܋j|`?R5kmo˜ ȅE|,lk$)3f{Dۋ7m AvsZs#v5εY!n5[@% +=TN KpKbv3K|OP/&yD;Q]\xq!P="Q G5HXcth{%;"05~h7|Oy藎nI{x5.V1Y}IgEKum*SUȊ-螃y)xnxΓ^m3jA7"\smgXsy}UH"U?v̐n gBj´Ġp^hwAL| \1m<#/@F -6 *Ǡ_$!ؒD69DD6'׉ 4S^@rcD[lu@̄C\z[bsiWOLXb z[gb?=oĢ8W3GS˛g .v $0BUl~Vb%Q)rhbšieA%pǕ=m_BVk`@H`/e Dɘ&vLYqN΅j 7*uv< @H2ocl8&~*zY Uj$ud쀰/TU [4H~dd޵A 7~TU5tɫMeL. q͵&8sx!LQ5ujN@ր>DFlZaʥ8nύf׶FP}iɮLdgF r )ȗ'w8 /O!H@Lf܍[;㈽y/_N'%#^:_L=M )P c6 ='@#K]kkk}.DKС@*x 舝k[{z !"7{zH@Ga\n9',"w $8pu3Ҽ Хl.C܈flugm]FUϿRvY9n+Ny̧f'U)!8.@)+qhAҴfë) CSxU_* FS[) ]<2 JA (/TΏ$uU@X 6v7Ll %) 胤9W0+ JHmʴ7S(s@< @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A $ d21C 'fC F`&)*|=F~́P@" #) )FcQvP?MakAဌL,tT_ 뉪c#\kNHTձ01@M%ZdmT4m j} a^Oâ jcAw H[z萵1RdL=MkLSUL %TІ@C.԰5@~ 9rFm<4aj)k`du^#aR::\ua u<8^w@*{:-?Zx#?RDf6<ЌD9{__ r[[,@f>9:vr0&@ivv־v"uh}_a-,]4j24Y3Mƈ ]Q.^GS=7V>@@3Z, ϟ  t C BUNu .Վ$O% &v>1[_0ZZ1_gڐ5R`0@Zgad"6J?"ZE$i1F03 հVjagh8 Y $^ 72h(~XT0ʈY,o:FH :0Ҷ2}}UY0>}FԌ :FFj&Ư FˎXk4ܰ+P0^SMsT 4m5cVc;ˈPHF |o0@0&Z@ A @0  8Hz>ʚoS HZ>dY7$2T'yOт@)@ZFq 3v!GDPP@yЂ@E>l@ r&m5H?{w: 903 L?@zizoF-F7ߏivݪ 4 I`PIW_~G ^=X<<`Ύmyy)+3 u肜.}g@ $^@ C4 @R<BI)i7QPvR;Ƒfi( aN@ HsIENDB`homebank-5.9.1/doc/images/hb-ope-remind.png0000644000175000017500000000133513604617136014152 PNG  IHDR(-SPLTEGpLbDb<&uWf:I3hA%oSeYAhM=%S7hx^?%I1}agM[CE-lRy^{afW>I1A(G/`EdD*cIrYg@(Q7e~cC*E+lReC)Y?qVuZS9O5]LaP]RdR_SaTbUeVf[g\gWiXp]l]lYnZs`o_p[s\v]|o}ox_z_}h|`~aluebbncgx}}k{厃琄瑅쒈풉옉ퟕD4tRNS"""####SSSSSSSS}}}}~~~~[FIDAT(m=K`@/&RP,"Bvt-A (H}.g<ہ? cS%e߂nju=>qc+]c]&EfT5.ADLqw,*U0"y<ʠjAZup))ZW%.:٥H{<:s o끨C8l|&4wEmGl!ΫIENDB`homebank-5.9.1/doc/images/dlg-filter1.png0000664000175000017500000001302514617644005013637 PNG  IHDRO:PLTE5{(vδ򹹺öϻ^䵳dͼʸtm2Disŷ=78ͽXT^tos}z©۸WXv:yeO똶ުduVgvƎٳJ`bt{̶־@_jllhxֽvUHgc]Uml^lDn͊޿ƭӧ:>NdIs~½×!.BUZRŅpˤzϰĿ&#)lAguY\?xigȒӿCJpoE5hjwcnQrfO}wzbx͗Z}޷]EvRr֥ͣң8SvگsQV=cG$SF?SFIDATh\;CAlIɂ!{ Cdo٠,AA eU[{Wj|>!o-iB b"|<=sH*iB5 6I2&yb'yb'y9 lNZzҥu. %s{dyN KӧNGt񯗖'E֛}a9 SKA_[ٚ7a{ n~pVO=)MOF=ӟt: bHm6d|CI|rӳ0%%]d 7v);Į1OS?S@LƘ?oU"4eNQ^]a`^}4h7(|x'.Z"dIIŬZ'Jr7 di,$HNj}:t/.-dҡ>Ƣ%bg׀9y7 r<(2 MTVWs*Xh,9>,ƦP&1<"f"E0AW2sU67Yk>4#$f筴S|k),$F"|Ggى&v~3r7 m]vc;FݳpB,"S_dӂ2 p#Cȼ#f'w6E~N)?A[<=wdV5,Lfu2kx6L~LoWխ> A6LfYIqAf F9d|U8ufB2\koeaȖƶZ-NLO-D6yJT\\\Oe?7N;uHczD^Zq̦{{F+gEzPM"oT8@و~pAK>L^˭thQ_ЃFw2[ETMqlڄA~|OF_RspvIӦB&+Ql7OddDox;0O<1OS>=I {*$k牓US='wl*Q6U*cOY{)˛&^v8hy*2Uy#ȥTF1gy}VHDVc5*ãFUPTH3X(4Ȗ?OۆAnfdш=yFSQG^[3C c Z(J%t\H)t1}̮13+v`Y,rEY#`IH?XuI dMK42@,<5uycSWqˡފ4]v=RBЕ@{Y"v9v|eеK*qF *]}|gŬ99/W{ڦ!O`J]zzs, n{+&s~`K!0A RD؝Ulh2!n+wEQ?7V;^B^Ic܌V-Oywמ)/W{@x9խc霴EwSRK;jFԤ޽Wp&2rL4.nO-y=2VI+ןAU[pqЛ4 Aq=I7$OzQ\ik,JouLLIQTcOvQ=E#wb%n"x_UrfTRakCku|OeeI>P؟xϱ<,}/OS?/nAap2#+gtf?Ltmu s7۲1yxB=$D wsګҔ%(yJz} }5蚓h..=0x lpz  FB1SV#P KMblD1S|'{o^'0~3Ote޿S<2|/G'ˎS+Dq!Z2:A YSF$^=!J [w*yNl}yU0O<1O<1x9XD$Yptb(+3 ?&iO2< ڴ?>$]O[EYcNNã7a9yPhQc 9 wKSMG!x:zHSO>{YSdwc}{)>Ei^U)EEuЖߑP#z*hD9E㽰'RE҆됙 PӃR'ɷw =a}iz>y|#Ag/)HȪ__}^\?Zƾ{e͛I/zL;WRaN皬+y.,̚=="]ĘCgɍ2B,__C(&W'4G"Ayt<[ *`sdSuX?8ۻTMx.Fo,Φs)aTAc\j+oCpEx\Ly64Jk4Chdmm4%Kyaq{%C,)0KSz̍YQp!<6l:5u5d6 <#;BO*? 6 >ksougk@y{"6Q6vS=x+ ہ'u'~>QOjH=} m׳WsfXoȳB4┧.H]rFY-/sglαDP_Q{*:!~ֱ}Ucp~m6ոl!5Kx24Gl1p+gcab+k$Q0DN3SPψp SJv>L,s|8O`tJd?\'x&mhi-z &NO Q$$47x"A2 uj>9Rk(d)oSybߞ(sSҏ꟏RdEx5-O)zzx-XҥFƫH72-qL2x8Zۼ~s;䧌Urj2-pw~:tnڌLyږu__Oϟ?3S'LXp_y`r"AcyvO*))1-?W{S@hrp$i qɆT*nhCqɱJ[OtbxI< ipTHu#zfܓ]~)/j g z3`!:1m|ajadZ3W[?uAx*ivHɳy[Aox֒4fEqK\7bӴR;+(Kwl|f S7笌}<}xjɓKlZ|#'vweWL`X{SJb=q!~zuQl1ߛO[yn[Nj_>ZK9_B6Lb<m˲;??Ϋ0or-{3m˦1ڦ0,^ܛͰv//yywZG/9>iׯ,:Wml2=!_vcE/Xo38 a[f;^{LlzwkOvimh6 Pտêt8Uym8>H -N)^P'l{X.ԩu݁y~{\9#maz0/*l["GT$YO'>_"&L!-ִ;~=4,rhz5>Z!u&Trx+IC!ќMDO.tfE\3f e9.@Ǯܕi$\A-T4zбRir\dLqK(r{|?P% UyABRUJ JLEPB2ԎERv㋋̮vO[&j.w*/}S;WS/p+1L仢OJb֛:5z6%%:e⢓бYaBj +yХ#A|E$9s`mLc%ʅ#"@GIf P_uT]vRTe6 W&rilg9Cg C :pEI`a?'c{^w[GCdi@_ &XO,BfFûl+O),S0p 4&DžlaGwS+WBݓnr]Z,ܩ5nx,ˬ2K߼9gw 漵c%W=V3W.bb|Q]wqU7G)}WZLH*ehY],Y>3SdztƖB:2,doj k_%˥ϳ_[z8W}C> 1vdtJ@/OR6":MZ: tt%5>!}BdžV~7ÅhAPB驇"-ڄ^L.C<[2F]C!uh;K==Y>څ?]6T5fyVݚ݂ j "OZB^\2CgK؎Z0SL]~> .緓[8HNڒ|jdh'm0o,Ck-˯,TtX(勅Z9TNLT?Э%< =fÐ Z~G` cr UpybU-I쐇UmVٓ,Zgg=nXgK.!l*:'<}zK܄yV5񐣶QA:L(ՒuM" $Ӄ@; %a/E?jQQ EEPw:AN]pآ [ !a)w!.i {KR85,eS$#>P1N( PymXG~,B U$P,#X\P3kyPe9٠;BIC)TbNd t`aaDAnohw?ɒ9JP=%%aLXX60hk`0EGN&h -D$범/Ce/J2iIŌR9#}'R2C> . Q&rp$KY`)ק鲙] *W 6MLRr]Uꨖ%(Xg0 +t%?#"(d%T^QDu9 %P-\(.;ZCRG"-{tB9$z}vw;?ʿNhfB5E t/u N䞄R Q%TK:~ 5rvqLmOnXo`hZb53S`*tē ab*mŻ Hu#fԥ9đ;R 2\L#ۘU{(,aBb0^5~}(Q"vmЎ;GMG;B#GlDڀ&y,!]BWf ٨o;`ć;EB eXP>Npȗn| nX|?7S<ѧ6* ЩCdUf_ƞ^L2P khjϡS˿9!*}61[80PP/3/}GraąB?QTm +P6Ud$tHBޱג!9d48hzFۨn71r_8]W-]:݈>d939̜3Aggqʝ06ZpꋚU籵ޖ=býfc#sTAǪr U-$9fUM%U/zdS$Yv9fxU3ko֜QXñ-^ :l>Qx5:ly1p(~۲䏹WWkoi_KkG')9XNYgZnk3<)uٽF)nٱg:ש@wl=ྨPtnO5ϵ4mim^S˳(ꩴ} +]k\I<}ѭ# ԮpiB.m*wx3c'J3tgpRR4 Ct8XFak5t%㤔49(MQfHk`ݙcLCslܴktOPt[%?'D.)xy+]_ ,y<ġ OgLqp~{QӰ;D(0$&H2q~5~n<%wѻ}✮fQ)`R 6 PԱ6JB3ΘJՀ;8Of3=_dž'I h;s%#)-@>7 ~y*kTp ݿQ'm M#oxz*G3W2x~ix;3svml9jo,$G\֕L>A!#z$4!s!0W8Zw^`ԀW#35*oNJ)k >?AWvG5 [qw/3w̃GRWݏ;p25dhɋTq,iAH~֒T8prH*G4u&seկԩb$iFWD>qi_Ќ&ca% t&J2qLd4?NLހb442,igie6 OJEFEYna;c1(x⟮ 묖2/f0000 EcE_,2v6/|73>SAs.hMKw^ObV*FU)AnfEu@]IB7 BƬٽs>qdٿ;q,s//?*,PwLb-f;"-j"(7yOPS9knK st Yajiԫ10rZspiύQy4G*t+vTeb} EO?C4+޺^kHsIFYFdXygq\i}?g,0P>p1|,d<-%޺.m8 k#+cAEMiZt/70ҩ8J[*%AMϿoDHWNN( p ~X iЄ.GpB$_ D r bA]*@b`‘A(!"_>8Oei06oѝ}-Pp)-P%s{h[M ^fwJ8p 6%7roz].n{U&T*fY1.6"O U4(ص)n*mCckmUnDZgb>?aj(GIUiB'uj<2M ןԙ[Giz?-wVWiߘ=-w Վ]*dAH4YΔD UZBMG,-3NJLV$BiB."%SCFƨ)))¸~kCc߅%>D+$5FyܳjuiPS|{,y7 '}2|+C"%d?8/7i4Z*[Q[ګ2Zg[Hkud/mmNΖB}xvj({=d,m  ;a%4j-n'T\}2;A=fjuT&\ $넎=1w/PPp'a=w׋8L?pH_\ݫU䅵\.wkD"6wy"TYܥ-Dڈx4idjq`y#,B^k+ǝHDBiC705QQ"dQD ?JC IENDB`homebank-5.9.1/doc/images/dlg-prefs2.png0000644000175000017500000001503414774772566013514 PNG  IHDR-`PLTE520릨*?䪫ǔݶ׺qst4䂄wz{H獏vxyڝkmnsvwy{|z}~ذadehjkNy45儆dfglop~^abqso}}zC揑=BDX[\|]ӈh駧7?J,254:@RVW{NSTq뜽XS脨ꔹLpꋲ풵"+/Z]^&,5⃰KlA{(*!8~|~y ~Yn3\On},IDATh xWbaY)d H**Y!Kօ$d[l[vvUuOlkmbu!‘p,(aI4ɶiAX~3oft{7oY֚Qw0? g5BZH i}'iݛfNG#kG꿞9?iݝ؏=Z?%H^ Һ' hG ^8Kl{PƦNZZS0*=YP9--gQ:{>)材V֢cejwר3NPz~/.ᆐE,Y7VjSZm>34T͖ A17?{LW 34cęo=|Ԟ񉖛6/hhm6ˡn|9s~l75t&e{Lu:}>sTK 5|1hs:k:3DMmZZX8c9jt 1 .x:plڽysxׅԵ=<d[+CZrAkiY2CԱ;Z_pR.# aK sa\O/df읞?F8q' 8''gh`DЦcc Xϒ?2Ur퇧7:|饘SG`C |h> _ui`wˉ 3cG1˳:gd/ҚAdzd"::z1Һ+񿣖xg si=TBZHk!k?~O颠,pZdĬ}ŭJD+WI%1$Y!E,nХ,7/bsnQ&PT,EfnHUEZZۄ;,Wk OiwԨi&(olͪsՉ[D@H˿n915)Q ˍ歡]7F.EZ_L6m{s@^oVolEZE%%"i)&%&Yh,BAZH i!--싷|=Pkko[Z_q)iA]vf>HH%Rq ]ZٰZ l-O[oS אHÁc&f0_J1[@dqfKj9sb-q_90BSnn~\%tvdNݡ"Jf6v܈h. *~:5}4MXZ5. ꜰa$V$%ɒ.],YBV0k^ZPU 3erNjm}l -m3lPQ,zL'A"+<JJKTnL)H@LJL΂ڴiإWO%M=p<q#KZhjank :çՑ$d2@.x' {TN*C tGU6**CjcQ:N!tF"Tւly*F Dт(J}W}|uJ|H<"#tUBZH kk/k~W>g7Wշ![IJfe{Tx{MR+@K]F|kN:ԩH3`=ݎ9F)sa5;,6ZD:Fr5Zgx~3bs2_.+݅5%G|s(۫UI"*刕.-=} #8SPZ5$\\ K1m./8K@bIn#3/;xdtEf+#8Ւsf8YW\%:cɝq, h|D`jRU[h}n^J-JS+QWYאaiٍ%SQV LvI"@٥p:LmT)_O2k5f;kj=2B/4pGzcY0Z[ly3Wu<O $a;MEU".[2Zt`/|LD$qPP j$Aj5SAg;MMI4S e 3x8sr[^i20#D"- Q KrzܫdmG1~=c$x}RfTG!ӹ ַjDUek_.L"2[e(4dTMxI۪֭p Η~%9$y5@ â(THs<,~ Wϒ{j8;Ir"?s) ۟o"^-;^psRMlY Bw|U\ҽJ*%4V^%dda{w[QoIKZ"*jIU%dEJ6Ǫ S%TR`/g;4yaʆn؏'8rIQ'lJG7 i}ޗ qc˅7p S  t1\xw̛`pwNx_o}}o:1pI |0]pח'w|(훸s|;njBZ8{Vݸ{9K~.; _cZ+OasWˆSsl%dw$?3K >7R1}dZϳ< ~kgӅ6Cy~*!A0¢"ſ&u%Yu*q6?£{{wyZŔد͏VA|{"P4e)fWq8q)v8[|(} XC=׬6ۋ3RӏI'W\8?Zx^ G#JNCt2ZQ25^ZViq|(H]*(tS%nrq'i},i鴵FEU["XNʣ'%V@-更\QlR-hiFѱ V2'--C@YV^[J-V-S.Q ^-fVY[9 P+)42٠©z)$/M&x gj{sͺg%̌28u yg$[R! ~Ϙ7`:¤"&o˿[G!NYH i!-BAZH i!-Pּj]з$YKbw;ϗƷkCJiDBZ Bi D"BI0 \ZUȵx~qh];uoDg]-agV06vzM[[UDyŮ&)27ߗb͒FS'ÊTN8RNSؚDKg6~ܢ*Mn81Xj,7[&MR 6tf84i@Gy wUlwHI+@8 ~%@Ԁ#j8Mc"F3&sыA'ٹl'O{dy`ˇc2l7R]>oK]cnkh]9?gc?y[ڝ]t^G);mjti2cka'9M8#(2۩>s n?)Λ V܉>i[jcPe|T+{ހUqZoNu^˫ut;*J 4~#AEgK+\le[ ~Ce ŗq@B-F[Pk 5ܙ?|6MV _աAAD{꣡Z2&/EՌN[#FZ!Z-CBщ4-[*rHH}(g!21 NB #Y%2(!(E߮5M|]y=8mTŝ!'Mzk ԁ[/28[/+j"FC1ki(g/8LleMMsTxC_KͰRf1 0h2 gf()W11/-wF3'eH#I3Tթ|YksRz`2wVEWם-k@%6[޷|!qLt;ͲӟnEY`'@[[[ֿ%!]HIENDB`homebank-5.9.1/doc/images/dlg-filter-common.png0000644000175000017500000000461014617624320015040 PNG  IHDRMX̊PLTEK5<538Ӻ~쏏suye~Fʪ԰5Igk}`R3pg-ِfi2;OFeѾk详]t_hzwmZQ^}lmՌjXƦvݢeMFFʹEvukvkvޜN+.KYmڄW;mG6#K Tn~VPftg|pY]pfMݬ5џ}v8-kIacdVٽΫؤF@f<WKV1Hۢ́.W2e3{oalwM;#` *ZYY"6ѐeM iM?K鯌f ڴ=gjEq̝ Zе5,AL*-b0g,SeK7^\2/*}h8[n++ޒQGț?9Vc!FRR!MnV̅ -w mҬ}R3FndpT]S%y@t?\x;`}᪥/" IIENDB`homebank-5.9.1/doc/images/new24.png0000644000175000017500000000345714617624320012470 PNG  IHDR8PLTEGpL_l-CcE3rzB='hzMLZI@DJadcm|~0=LKtv_`ꂀnq菏~68젡뜝Z[47AC:=ꝞDG}KMNQLOSV姦VX慅ގmo{|엙砢ᒓꂃ采ꇈꊋ뎎ꎎꎏ뜝~~둒ꔔqr딕ᄅ{{頡抋㔔{|┕mo ꘘxy熇⊋qr焄tunoxxhj腆ceyz`bbccddeffjjmnefefghghmnhivwopyzfhklghfhikhiklijnphiijmnhijlijjkhijlijjkmniklljkjlijlmjkqrjkmnstllnojluulmwxstjkpqlmstqrpqstuuvwxy~{|郄텆ڎ퇈܏슋华茍鐐唔唕锔쓓ݞ䜜蛜㡢랞颢椥ꤤ줥맧騩誫宮譭쯯㴵겲춷뻻徾yotRNS '+/27;{1<"TEgI'IcV%Jw1/ @JoC!;ﴇ Wv/tB:>5r֚NܛX$ ѓL]e-@/ U"qޥn(d/2_uӉ6fTٳ@X"$D֭hHu>o5",D;᧞'z:{̽&(IENDB`homebank-5.9.1/doc/images/58favfilters.png0000644000175000017500000000662214617624232014052 PNG  IHDR\3PLTE¼㡡发达iklmpqtwxĿnrsqtuvxzKOQRVWx{{]`aaefCHJjmnz}~179Y]^UXYdgh}YoPgրL쟎9y_~tȥ~mI6e(꺫"S[$snG6Z&y^Ȼc'.wàxgh PEUbQ][>6괙Ly- eW'Nn[wϽt5 S?{NysH7)a6l%uA~P[(3( S8Y{?%yTiCǎT t$бoNƛޒt ~8hҏ~p 7WJC3ByKܽk0+xMYz'a!q|ɹf@/ޏz&P6@=xsIK\e5Ʊt>a3cB@g>I"珥Xoo$YR>6cT}ׇ r<9^?:<{0IQݖGGDbZ| vw?ٛ Q=R\U(]KW/0KupDo]: :n4! G<>/^Qe)&uGş:%re@(k~~IENDB`homebank-5.9.1/doc/images/doc_balance.png0000644000175000017500000001232314617624320013733 PNG  IHDRonb7PLTE5 "GpLv524, 435|%3.U #: 9_OMNz.3b{K>gW]R9nDy>4UN)BbzKx-N1N3|/t+AjQMLNNu-NNNS#NN0N2NFtc%/L8\NDo7XNLLONN\#L.47NNN4NNg'-46S ?gm)) {/Ny-NNN;aN2 . Epn*/3N P 2QNDp,HN\#M 3 3Mf'NNs,M0NNMM3\"a%$: 1OQh'Gv.46_$<`.45)BV!6Yw>:W!0O-K0Pc&, OIx ;q,TIwY"%,G-373TN. l).46`$PrB24-35) )C!7 [gOgHNkE$; O"-45N7^nNrAfHi).46,I nDuBlDv=lEe~JnCj)a{K4t?|<5;' /56NUWSc~tRNSf3V1B9g|*l;TpH@]ɓcx6"q xINmsYBHZ`tơbjǟU5Uw!fۧ/kn׸}&i|}jghڶ^=u贩5ϝ(Nt@ܚ/y߯NLގИOք–xdduW֡_* IDATxmlSMw,φ{o{\F_z/]㚅6~#1nmq%2262ZXm8vˤntZ^$*1V[a2 MH{}MH@Bms mu{}V?=w\nd$yWDWbsfƥ晞mQ- #|~Kƕ#JL\L3 87]^ki/,Dcz? DzLxmֺ#1V67ks882 i>Gѡ!cER\MG#:1ȳA\&=P%&z0ia`h !`hXr~er 9MFC&6!40ZAZܒ\pi)&x.J@lb]`d+YF! ns)nصfÔIq(GTłX1XsT (AQLŠRd@XO5qxÈXpPY¢&[ |2$:MTLJaM>oqe a&BNUCP2nY1BVZ(^M0xkq?Pc "-o;E`6 )hJ<\+-`VH/2xBbOS*"p <юSm,bp쨘b :(p.)2,H%P'ƖTA;Vn1Ґz98%Y" S[p qؓ"`LnLG7`j5el0jamdbpj_Rv6*'xIE6?Za& c)CiG,N?q^)" ;Ť*WO4ykO e+g`?ki!^qc")3łt*dƔw%Yf~ !ϛaIbM3یdv^4ѪQ&0AӀq慫*U!%*k4R42GpH3DHiK{SFm.h EN}d #Jf{?y;'AY\plX2o Es[c~7i(J]1E+-hP%&XQVlB4E+\F&+i7e޷E!1TLXPGP(ȼJ DFC% Xk'ٿ $"KkqM0+mf7Y%p%s^(g L!M aqyDs^/Z0Rq7i6aTck6k.̛/Ũ5T7[νwxsa}v$) ݧ݊=gss4[W VC{ϓg!ZA^KO^;?OBZo%.qĥp<ˑKK7Q޷K\߉^3q7ҸϿ»8/Ҽ%ҼךO>R-y˼=T;;i^3B |SrEw!޿ğZyIO{Ԙ{P|Gʗolއ:|YsK8~C[_nS<ǎ-4?s?~wmy}]˓'۸Dˑ>[N~|jю[o~smCZ7S:Ckl]zJ3S(^PlѮ6~v'4,03 xН@EQQ'n ͑ӽK59G2bCnLУs@\_"%ސRBL?SC='88!ѳ}gҷ_עHn򚚴m[j膧`w>"u/p_2lTX-=hNڻE2<6Y-JX3oQ F"p! p.PDU/bY;v8ʋ[.Ϧ'b*wːT+^&';LX,Lݫuʶ%h{eN݂x(ooFpRҪY/x<z_Լkͧ v^GIAoʥTވ2* e.I߶o`l+W[ϩ4U٢==KSY,.UO6jF$j9 h1N,A2Bo rxh~WZ^Jhih0ahd;ty>s~shUo Q !CUHh-!3rpۡ_a1 J';we"}~'|,}ۏuwDE'O[Ƀ'O"O>ӎ?>?y DoD?s9j$}>T $uH",n|l% OD{]Y~ĻQq"N+gN7='wL7.#p _h+k _hx7*N`+p:tq2MHp<@K˗3Ņ& nïI^ NmFԧ[&IENDB`homebank-5.9.1/doc/images/pm-epayment.png0000644000175000017500000000123213604617136013754 PNG  IHDR(-SnPLTELiqUUU}{ac_tvr\^ZY[WY\WjlhtvrwyuVXTZ\X_b\WYUlnjprnY}>Z~UWS?Z~@Z~?[~@[~VXTA[WYUA]XZVC]C]Y[WC^Z\WD_D_E_F_D`D`F`Ea]_[`c^ac_dfbegbgjehjfknklniJsoqmNwprmpropsnqsnQxrtorupsuptvqtwruwrWVj}Z]`_aheehkhx{ΥЩѺtRNS<&IDATxc````uqvrtfx2K**K R@EbR"q <-;@sCdQ 0NC5@,EՀAl5pװ/| FJ~>n@ uUEr1D&fȉs2++(Ȉ f \i0GN&{62sIENDB`homebank-5.9.1/doc/images/dlg-transaction2.png0000644000175000017500000001650414617624320014701 PNG  IHDR'.wPLTE5.䥼yUHjYb~{bмJ驋kϷvvyϽ멦L\bbeqdt}}}Ъ`nqqrů{S^nʶuaZnfDZ^K~[Vfquϥlnn^^xljkeN\toI|ҵQbwfݾnwp׶ߺ^OrjZ{n騜èآzoءKvO\ףvoίۦlNiBg}}[ݢ_ѧˡ̿Ѱ}kwtֿp^t9xpp栯纱̚_SR̜z0?Z]87+K{vqšgJvA羫}bY9jIRk'D^m346THۺw6VWʍJFB$p.QvјMoIDATxw@HU@$ $$RB^ 7iJER.EH尡{wbS=+;4eE:'U̔*!7e4$ d>' Q4=BKM=ځ" ')+5Y1>T3S՚M e J ٩Zv֒I ڄ'o($A!9iJN1dC:PiI~ro(//Zo(%$y֎*|#75U+g3;WTmbyn)0a橔(STPWKf`E)o_hm3 1*8 CD\zk F-owщZx[Qjv߬7u̞x-({L$WМiYV ǟdwgk1BY0HX% %"ɼ7աU"~Y.REo+*zV, +*dW(iYYދ)*Pܦ+GUi~U\Ǡ6uh_^qm}E$Go;$5r2_'ʶ Vk,N<}8ɑ'J @mE\a,%-{+'Sܠa7l:WaqGp#8K]<mN[a!`z2DU< e%*Lqx2Ǣ<~L9O*W ςQz48 Tu^虾K>Ȕ(D\DdE\V7éqSSQ%DNSy3u%.k )PM5`TP%cfTM9$t>X1noj2 1Ujt3XaʉmUCyoB:"|I6'G15CzQ1(ݗ.gn "C[LH.`x9 * GolPHJlUPH@`((`E# $iCMޓ3;f#\1YO0ғ(RHRo s;?Fc5qpcV\;~Qc7hǠD 1d LU^sC$ r L9G@`5pPU&dj:((~}R6{3nz#OWg~~!5 uYA=+?o1{xQqVJLj싨D֛aM)f -n܍}as ? _]B2}7դ!O_..x5n3?. (99_oyٝ͟ \.~.c' l0*xşyO§3g?Οϝtiφ[fV(ܱ" Q,@ƒj# *0&wC{FS6n_6y`ԦipW/moyiEJ61Ѐ7zi;.~9^6EAKKZ&_!E:%=3ig]a͔@2dd_hfalQJ5WĮb//,vv,oEKLgCeܷBK_H8n2}AoӮSb^`l?ciI?CF,mҔPCXߩ djR`^j `ke+_W@'@?g\\:pM/pD@=ZrY^oMV<|zuj5'--'HÊTS# io7Ya5 J_-mOVOSV,(fx[3YQGK#DI?25J #@3,D3 YFF|kÌ娅f=͓a ߻m=RcEuzy(%0idz"D.~!LLH">hŖ iWxoX/#QzV̨je#<z +gNMPg7,5/vo868Êw]ozymey'FD =~ _-t >+<-mXA\ s40Z }v.dsq$ uۡ'7 x3d U2e8\m)( G]{Dq2moX=6J*h}o(hTkssUsVkGvh wxxunZ菢D2t)i$"j҂`xZjVdw[CoO+X~W{OZ}o.h"^\-,VR7UbEvE8È7r^5fQ D1R9dRPey@τ?IjQm 6l%pL?欣오3~fzy6vE D.qBw& ou^6,0Bp1*Gޏ29,Oۍ u2xL(tsrILͿثWpgO(~}j7޿5Q Lsu)x[뾙Pq\K*:2&gpZ.d8ciF(0d!VCI'BQq"6ApޢIpXH3wr B(HYt{u!cq Iz5*Ec.#%\>oF5s>3$o(f@!(D(@3 \>V+y})S{bq\1~ \XS\0" Ɖ,芅x[~͙\h/<?Z4|z /["S/uE!g!AGI0!x;YmZ5%h#haG2<|gO%ִ 7?GqlFfq"H`\8,X"K8Sk=ߵ6_J;yHd& } Bpk=1S/ yQ ||B7 ٞt;g4Y'N1: "6N<2ze1 *Tҝ@Lw~&Fᴉ|T v o$ָ3hŝLiOŜE/aDnThGV&f mz>VJ@у4LPlE bR"ؤM< tԊ v ݊&dU_tlm@ uŖ2cنwf)|J9jv*Aij!5aCU6#l9+1vOW[w1(q|8G;}$ /9f(^mZC7s!興nW1#쁈΃]k0*^"| +L$#7bZp*=rpY .{?PKIJ(G V9GDY@:Ν;sW85@g0#: .Im 5,jº"ΐMVNJ6߰Hs3F**֥*e<`Bߓfg7apL1#6N(Wi1f؎r.k}?%n/9;Yc+o;EaX u7H@ BX۴Q D(@*sCVEJt4 # ;@`F01=9`ޟ%V7y*Dwvc? =2PFD<#WH u7^k[5eL[QCp mY:k[hdߑ~=7B~D~-N(x PM_E_#mNBy2މĺÅBV(TCXH~^Haw훆Lw>Vv.r&|C°5oww^)/).lP4C[&fhϳWbejYې4)FǻQ^f(Y6o\1 Z#iN:/t||㊬݆ o _(T/fR-[-8 +[[N:?Ni$DJ-ᮛ~JC,bBs:BVD"(!VmkQ D1B&-t$ (^ BPR "F<ΕƂ@bJ/$b2p3 `5E ͹^TN[ nJ-Ǫ0 _I3!.%/\^BMTr@b cVIENDB`homebank-5.9.1/doc/images/56datrang.png0000644000175000017500000002143314617624320013316 PNG  IHDR z;PLTE5v.twwyli~lv浖yqrjۋqrƬnlvëѬ|ly{wwosunDZڶvrom{nxﰁi燳ސ׃}zukv~ymruz|©Ɨrھtlnk̠Ð⢻ɜcVkg|şȷҿfһηXmmѳҤb|hɕٲm\YشҾbMVnZdҺЬܬ/wh?TRaq&Cnͤx뾏GM\zƶrdkfTtm|Tɚ\˓}7|fDhꮲذȺU}XC?m椥ѴzڲҦyAݕYoY͵#h=IDATx\TI h=EQB#$眃DEI( PØsY8ꌻfw'S}KuSШOj+$%%Gn7!It(A_|*+PRBˤ ,dke#nwx iOcr`RnJ)ESG$Z)-K$b}F& Qˢ(J %%G?/MA H$M((H" *>w!2s$4{=w^!TN#g4|PAFT^>-C&ذ=5'l~ '[yB!0ӖQngbSʹ!)f~G5e~9{6ba/L bTϰm v/\hVW/a.P/qKN赩x+[בǁ~!ٮYgFp|n:#ZT3zu=%&O>:3b*aSJ*{OIJ/@U͸)5136{\eðZ:i|;0$i:93ax5/ u7k/LNQuT}DO֏@kh%oɔ_#Vf-bzLR-t1\rmH_sapH0$m.Ұm@Pm&rۈd 83!/Mys,V/DR6:O'%"&ϛ;HDMZEkK- F!}*4D6n&azgF[VrIĨh3Vfkn}A0ϥdrkAޜC o}y.7,3GH%'F3N I [ CCFd$cRiL.?!<;܃i>1TqpEC#;HIF| I$A<܍ q~Ԩ s7$1R$bۆmO L,YE*ԕʉH 8+k@fV5Sv<~v}}?Ek_DkB|{vm%ttPг=َdĐh=c&BWh[(=ԎV\Dhi+YAq'i]<1,)c&>!%!wo鏓YK粝<P;$[Мֵ!!;H(>MBoኈٯ|K k_grʾaGDɊƝiwcg0q'!.b<iQ޺gy,-1Id95%iBҵB:ewzd;Vh p_Q*3 RhZCͺY^5mg v D*;H°յg֦^S9=k9f=Mބ$1yw^;D8^ZdJƌWI7`薟{❫I 免봆D_ : Bk-f.hzajp.. ^olj$ѪOw*z[V0T*ԭϙ4;N}'=fm\6m\H a:<فzXt$-@#`Z@\(`-$GrvKph纉dduAvP:=$V\L)d&BPby!޾B6TMډIb 9k)0Ŝd=;yޔKtʼ9bn@&N]F@qD-̈́Y)gPwl4eg>wn?2H?f}$ I;I$A I|))IbA3Ȧ1d&dOM; ?uLB=22BnEƮ(U`.`.#/cF'h2 YrnOو17F{+,[? iNIa1 W9:ZrTk 840ďK ]9C}9_:$`h v"GG+b&4XR*05e#^8Q m ?`RAV/فk~M)~SMdt]5SwD 3Xh奌RpF.4)>Y*Ln3RD2օ1K`W).#9]tH{w.EVgeSnr. { dE ^NEJ tSRQlJS8)OW yb:-҄Ɲ<WB58O @⊐4K{2k28Pd5/ 4mNz,e { nyYR݂c6 O XcY] c@6潲wZ601i˸lhcϋƾЄ;=]Dhw;I,v~V&&DꎁiL;x1̝hdo3yȉg 1ꌛ%fXl], ˚''-_V_#&J%.*:&i:%?ML,CS;KWu*̵}IT4Ng0e ځI1$!wx_$8IbjWDUQ~ HTN܅ V.&HnBb'LM7$H9kYD&"^R' b1'#X.٧n)k뚖-$Do [ w]94bKB,EΒJ _|/jYY/4P"IC __}uբ @H×Z1_^He Bl(>* }WUP|vZ1de%kYŽ-S?8~l4)EFW.vx|ْe0"Ix~>#_n3o"eGIrȘ2$A I$HF#ItE!$A I}c?Lֹq1} #*_HtG6Qdupu3█m~CQHZGnM@`3x`v.]0-+hxgc O_?B5a?nDs̔wmfb6S^j\L#1fdtVLūwBo \s4)`-8%K6d!K¸02):Pt$4h; HԝQesYqupGoxqU^;@wXKM^4:gvzqf: ۉA|F^k ۍgma\)#Nf;_/;]W)dv 3÷(x$ȣ c.քM3Pxn͖e1ĉV^S파L׃ޜQGvGv@:x' ) ɡ]$/_FPC3gqB趔٨<H$yx$G X9EQv du;I%4 Ƣ^$2-}MLk}Gyx}O&&S[嶞q1 RDbAaae;5p6NR+Z+J4I eMuf\ ANWk(AI<}9z4c͆΋6F 4^[c#'ID4֚7^D{IiI#E4ƞyHܠjJEk!T{HzMɨمk_%#Kco$ Ib F$AI$!n'o$ DokT`Dsa=QC#d{ }dS0),l:55D۞Ы w7UŬcHzϒVeѠxϗkIGsKQ,d+n 8TYRR 9)^ؘÏ_xqB߰It0,,v sӗO7kvA?5G[`3.fv,26iH\fAbIcn:}@w3k!΂U= kO%Hhun:a'yG1 &]tm:&;]^>B#A5ޒ2Pto|Bd[n1s1"(:Ƽa($0Z=BLezJज़Ӽ)D$ctX=2kJAxd^}L`ah2z<$gSpQUl%x{xL2ib$3)speg(`È%wؙbmm+i :sY.Meꆺ7#=eu;$2pY,gNks Jr,ږM?VCz)$f+hgVڵ=UmyNS $mK(xh( x sCXuH՞m۸-Dڰ5B$D1~0O$Eqq9PD2kϊ>/9i+E+PٰČ_CȠ ZvċQެX f Wy*S#c3C#oh F~D,hJ`A~$H^Z?}e?2c%FNDH$ I$1$XN##3K_8ۣGߕxSLDwM?I3-~홐_.,9/5TIL?bpRd*P ={/" F7(+4$ĥ&Vu*JK$t7cI-+zw'=y(28?<3?u̇pv_s2wo{EĻ_E w^\؛kǽHБF]͆;Zwg)]joqaWs, TG b Îc֑sz v/,5;$\6_{xfc%q͙ݼ/ߞwǎ{'a_&ۗt#7 j/{H=CzlW| #)f=$خuZ:V3 zU[WI7O!g'S3y8ߞxYڛw<&1|\|"x]՛:ҋIz$k7&a\h*//: *y4JP*2O6]7ϱ7$ahE8g*;݁ۏ\ޞۛ}>7wJ|;'~\xG- 3nwK_̡TeYՠ@"^O=2ß|.@m`5 Qᵹ[кNr30ZxkUY .D#~^ZēD/<`Ij{qHlęxF-̈>3| (UZ'/̿L=$Eh5kX-OzGZu9կT_J(gd'F Do;~3XbJbh#b:^#i߬F6g;G%d!wIb$H"ǰ$!$>oUHHHglTGI I)%Oh?9:ҧ/>IQE!de>|RuVH~z&A-Y[<@IENDB`homebank-5.9.1/doc/images/dlg-prefsB.png0000644000175000017500000001265514774772566013542 PNG  IHDR-dPLTE205)3?̲ݒ5еʴ񥧧薘Ѷ0|Ͽϰػ-:άB=厑ڪ=UPcw-oMEqMHǡCZ/t4YWUg:ϭcmMm? B`x-eUOvT#GR4Z[Xi6YQi-l E rsUyƍcnڐ9m1[ܬ"O)GcڧPyQv4*8S**ƾ{V~>+[իW/`+2a8Uk»ҤkʅNtK\@"QiyVqh_Wmcэ0%xvt2-p[tGpmۣ7k(TȞϧ"|T'E0%^z@])Р_ {ph&Y$&BX,! #ѹM0-D"M rfa,!?\Kd\:˕(v 8e@bBf5tb4㉩!7ĝ@+vxS=%,pbTU.IV&gKo~@˟٦uo<ӳ@!;eL7V B>:1ټרTSSYnˊfyl\x),&7㖡-Nҥ$B@oPmO?{g6)h]mLeC0,X`> 2E .rS)H/y3&=Imz~#{$3֗mM׃v,tIrҴm K˚nj]hk]D$*9EIxMSJ!{moQ[[HxK_=zyP( BP( +|¤ᖥD[o5W> gCM&Js"&ۖ6ߜIh]yٞ3Rh1i(7K %V#>Nbg!^ݵuMM06{CpBX0_x:Ɩt6 ,֞r1?Z7;6䠱Y60߲%OHw0HvzPx#5k$(coSQoMk^7ԗD.A!y>ڜ_d$bkD[8B>#$4/pB6Ei##jP( BĝO`G!\mN3EǷEt JFdpgV&_d}ªI+Y^c <@SFc鶁R-Z5kkuAZx<djW,&uǫ I  TĿ`rBl8:pZN݉Z-|ېt[q7V<𳁇C;wxb B$SVޝ5{{ϩ]ǻ1-Y-{l=-?(EmQ[2p[pBMyQT5i+E:Lq%ʯn11J߉-pk׵V[i`Y=`jG`X- d2ig L8(g}'xs[qMُ;wl-lNXVtî6\sr66ℇ-b-uyOu5OmmYm%! 5qqmu yѦ(`Q0 F~a$:ANIENDB`homebank-5.9.1/doc/images/dlg-txnmultiple.png0000644000175000017500000005000214617624232014650 PNG  IHDRsqPLTEEDCBD:}@A=>:6u8y꿿CZ>s5qCpBI aXlDCߛ紴xuyRReεaƯ*/4윹˲yrmvyͺnnt|}gypXw^Ztq.5@Q]rԷԙxhl禦gȪUimƎedfin|y}lj{pǹ嘿׽{A63jܓĺ㩴׶ܾ<;DPٰTEB̟_l]JWǢQ/&[TZKiWtG焸跬eTpӧrqRDIU1Ifl3YJv3lYۣЌ "LLIDATx@$[ XR-{҅X Bޤ&E4iҋ *b{Ykuw}wgBՠIA̝_gs QB+Cg2e.( Rd.R2Gװw0R"-/ |gDYR9j-ŝ։b։G2nʖʌbh8+aB`pgu"DgUeeUQQh,xѳ8%?x[zK,]T]W]pĒ.2q$ёrѼ؝`QbBsfxW87⢓⢪•hNDG^L8'7R85~bٞ-s\D|:Z~r`J\e[K ũf>yXУm"0)ʶ ]",U3B7aX(&"^S|^ZͦXͅEHq LV]5VaoSҶh!⥬%]u 7GUJVBJJ7Ap6u0@eR:mklÀ0s\YVVVBA)Sv0],l#/Z0^fd^^+s8H\ْ>òn:>8(sb[9e-SEK$6E`1@QI0RLRuhڸȚkGHhG+}}i!Hqq'5{޼@ Bb5>l) 6+))a0йvK}K-#s`N0s-uQ~r"myX F yv9E`2EGA^Oh`ɲ2hy1ɀ$] ^MvX͑D죠Lr FI mE"p# uSV3FIь(L\T"tV߈D|mrqG3ȁY:4JFFCCCWW 1_z};ŏ>\lDWWC2@3}dD>r`UH20m[)DANUGv\U} G߉ BQ @WTAAA ɨQ#;SpyA#=ρ$So##zgN opW(W i뫨XXXUTy*** R⊺2$ B 0xa[qVׯ P G] LT_E-v}b-cW3 #P{4dܫj=x *OWG)IBw(+h|*eKp .V!ےۋC y4qp"p7Z`qr/&8(4)l7 0/C=*`3ڙ2;B2$ `qֻ>/Z٥(x TpQ<|ͻP,dcb,%eR#n),P-eb~/w"*s55EG}Ef.t1:8n梢HJCQJr vu6./_ ?ja5UاV#Hz,]y4&æ ̑hn+=VK@]gѴT6wn֮\(:( :Ĵ(Ȫhs<&&&{K?Z5a*"${W{L\ϓ=( s C0˂'"j}1KԌ=5U/6tTo颟FS0WN*6TΨO/k6w{'@MmMmpFSSuj*ԴXګrqAMmMMnj/)7L(:Fˆ'' [Lq0)cr\xbϽ'z9罵+կſl= z{{gx=ydy\#hjxq^o?Cs޵/׏=uAs'Rw\!ث(. n?j9ȼHB6.x.w-tO_Sf޾w; yNQ{ufrt1ܽ![O%l=xB+{>mg~U z $x7O_iLwVO'oN֮vڍc]}֭vG1顣\u\ b[Μa{ 8kIU䮝[?a'xnk…na:TX]2]!OI8y~)K/=+ƂT=ϝ̩x]"K sq1ϱw-a̷f0W%н*`1a6π*wyz?O3r,нCm{n :\D F0Esۢoa9'֛vazdp 9A{xd"̽sẂu9+bs_{`q׼sb58{뫭i'9Y|s`m-`޽лklsc4J,G0WXJCs)?} w+ ؖo`-[y$xg`rǮȁ\9KS%xC}x~+W[ >{m n/~ՓPo"KUA2_S\,[6GEDzh| VರHY̷4REqEd>+ 9*B\ڲs-ٟBR[!y~}K;3?o7OHl2~,Yyl;jLlJ@fJ307۹_˯̷ 98oݧv/'i;񈹇z}w><әڭf>u{'x\k?xd:[;9/-JWտ_*8osΗĎ϶ Oܜ*/S.̶̿v%Gn, #& 瀹&*k/q2Qd5Nƅ0"֔& *;Lyoirv:W<+*`g`p sJڂ̱JlyCg[&9{PfdzwDan̉'܈H& >h=(Q̳2["=}ё*ww%S %\? ?ݎ 8@C ě;G1LȗNP|( |̟WDVh^љO@L"Zٮ")bZ^*oTh_Rޕ>YMw׺?oyh=σ~©-?|oiB]o}wROE6~Dâޑ4BDLJ叀0 7 ŐExjJS9:u\p?~>d8yqÃTd潬Mǩf|D_7~s(Ic1bSf0 gCkNa--Q&w_ủOky5XӎfPF3`.ry`86ik3g7C^ 0 Y$WaJ} jJf БiW1i>DvV٣hPrBN?r;UxX1Y0=t0sJum;R[ᖝv#=hgK2k TuTO9zH"d'%%K[| >!] 42|א9s7ؿHCCC-|~lϜA&rtȀ0/?~4%q\M+EI}1פ&m? ̳o v$ ֝= ,ZngEP%%Y HgQaTI @G:زEg6ɐ=Zo!~uMbJ |!϶=RZz˅8F,z@ؖ ԅ{y"¡Y[htxaVy|X$}LiH'npa^* "F_s/Vў #Q=zuff5e>HŰpD`m?Bŕ# 1sIb,7.{^SZFo|d_ }ү&5ļ=:y=9>AӮ_odf 珅g 2gs817362ZLOp(k=+``cng[s`H,'L{>&sS*B+h" 2r/њ|%V>|\lDӲ|v|͙yC^"<V:|*ϵ f~ 31q~3.!̼,?|>q"3g{z@9H9r= c#710XmdĄI?tEJN8nPQ -s\39V̅HjzdNf"sT0IaB8o?|ul-߿O+/^( Qs/:LE}72m,bPfS`-cnʒ-%0]9 ?ܼy:[>Ы FO'ng6PJenǡfӪ~W/;ڛ yP}zXSô}_[!f*8GLIjmxMw}<3-ơan󛶙yhHq:o,t96'!WX'mNLsJS1R&~_:[&$g-'63JҡM<)BTk7g!)IT{{@pJضxL_|Oӎ}n@){Hwn84; w_k붏#]88Nv̟$SB훁0sk]&&r 9$m[`xNGBɚ$Dqrxٲw}8߁~k1><.ߟJ_u~Cq7 dm-hf;D4,!@%)\ &uV+&wvnPa۔Wc^a^5$ߠ3S9!mяdf|oaY2 hH&pwͼ2r | b yX /^r+90ϟ̅v8KA=pb[lmW8O`>`pXws4{g@D}{DGѻ~"/ %JXb͵0,7@LsUf5*Ms[5Q_1l` IΙu+~?tv=T2#ŠPӛs8W=M4;٦CbcsոAir!N|`T}}KoO2(&\ZPlw?;/yY 3_]wGR܃Zij7_? Re f˝~Cxlꫦ71EȯQc͐x8 X2TÎ1-i#@i ;#keM''}[7 1 N>9XTHE/N ;->Xϡ3|z]B#Hmf;q*Lo@l˘zraボq pbx%//MÇ7^ﬓ-#mG$Jϧ=/ۡ﮶D_*B-B b*H.w7T%*E,V\5CU!$w;vMP nWQJO E[IHH~n!k%!.goPV4WG?jV+*l{u[uo3.]A5WN?əSbk8SWWeAXDˑbzշ7́2|ylX6ױfu'XH\wCD@b4Ho\R+'aN\p%8f\W7 };h?ul uF0gx0'Xz>leYC1sTesؾ|kWdcXYq)Bz|v`^<:6.͟D[_WqL`2qf}Tz'1s{'X;S5lbcoteyC٧3=q1̌6(Evͪp?&fgOL,N3ў`WZ"N&'jɮOq2!d~wC͗Wo+mP`9{z ^s5T5҂ yh sIhZJքL"c D+A #Fx<لH"& y|̷%ڷmnnnxy.qb>*(:8~X[:dQ̇tO/T睛<5=q!!1Wnv`hhEm4N攤߂H0c.ԧ~/=s\ӆ9IIi/֦?|on?f6Of.P\Rp}F2خ&8Lf?g>GPb8}VbDHf"sK/rBXL7xRQ\C̿>>n 2+30s)̧m84wb¹t͜(P#g6#E Nr B4y?G:8pl)o{ol9{^q w;g=/ :W_@Vu[^DdںVG\벰q%ZŘcO8]0U~m1F{p-,HWf>UơWzM{"` _O Rj G,4|rc_%7ǞU,+u^A^YhI J_,QPњ ,;obj5 ~K>]Q@3eΧb 2ږ Qki125p}s\S` s\'0V r'",Tk9 Br"?ϛr>h# >8^Qa!獜0th.FP2Pj4fvG!8<0p >9E>_5`6ffݬa@+"t9a\#[ORa=8;.O#to}>Tӝ5g=[߸7SCBr 'IIy2ޙ['&qGr< ,z~yMm9-9P0woZaЁvbntEO(9Պ64䦮" 0?~^'Lwϯ4;pw`nm_29ãfVٙ:O{?YɶGB;eueYsXl=Ъrf[CWslhTy7܃Z:~ s=a3 \0w_~W5 ]> ,P Vt2aJʓf3aMNH;W3oǎ׼`n9'?˜+R. [)v#qUyYcnJ9M|\ɍڕFs )Ҍb9}eh[(%3FrpL 5hۆz85 Sŕ9Wwe϶ ̴I\1HP$s)v20N >CCkW-cYU\yƲ*-K߁m+]vvONpZ `>4tEe][vv ÜcMyx*CY|\f~m7S=4*3zKtgmm{4N=dFz}kSzꔏ 1W`c"v/d?kd>̬31ѮFmr_c(5.Ss\_xkQ B#s`kbw=yEҌ1<6q(7CZQV9999I+N9e-`7VHc1ٹK9w\.>h4'4߲G5 8+s>{{uNǾM`"xكla! WpY4'm~">,w̿ 4"fXMMoy ,<*=+(mF t^hgذoΣؖ}w)S.?I m7œssLX$$CZ 8~"7C?m  rm EOOđj\0N%\s|E_F`p3\qYK蹺z·X =C,Zr\ІBTy3o=U |s}f&'aN+nU| Y"..5=g/ނ2К v 2<.k6/>ot ^Czq8.MMyl17k%<3%bÃo2?SK fAp٦'CJׄrp0upuU_]NXu o64Vf ikA#WVUt**ޗU@8X ,,qPtz X^+;7/:vkQ1p9Ν3G$jU]ClS|d0Jj9U^pNB^e)mG{c-2]+J#u*R^4Vg8$b zq[.i%'_撷z/##l&Sk7uzMw*=os+{QPC30i4ڝ(Ȩ}z֦@պu]ZZWƊ)^oON7b'x(3_<\Mk9]Up=㗝+}:]`L֭q1w:9\RZT7G31w<ӿeJ-)KAe@} |%RPv#`?/0~*cD%fJ+8ס"q\A*N:'11ϟS?߲Ȏ8$eμsu7;_fl`dl|q"fW)owB*; \8 "¨+ލ%San,:<'0 ~Ϭ=fEd@*_B_ieV(kYsV[]F_o71Ex mԍ׻3V I*(B^p͗G1ESuZRR32@IyEC 1 G0#O(\,sO"=\b(sf.}bșp9_9 A9'G}s\:^qlLBPQpD4ll MI`E\Zmj1r9y! -hS}XX߶/a`9/ֶ@h V| 1 ~0ߝxkǷ%bzS@.`[L|RY|` wgRˑ-T,l˦pe}?G9p%Ho-eCϟ[lpb3)~jʏPӃ^0`U,-+1pLQ?fY-`k03RU40o̫ xd3$ߗlGD8f0b? Pz(*Y)߄c\_}sZI~܉| D8tyga4?;2C2gqM\2Effoi1usnfV2oN+)IOo=xMckכۼۺth60+69Ȝr\=,ГNI<)bחf6skC(0sG'! MցpjW؞O߷n]znv氤m#?I:iǰm9|i]}Nż)-c鹂i{pήW8AupSgwb<WnTS!Mn+(`_6+xoуD+4WeRw(ki5C2[1AvU[K9| oz‚&7NFVRsh 0>_25s%<^-_D ٞFE\.X{_?qÛ9foO~o @g7E6X*ȪX,r|@͖e̋U-l5dH":HJVAC!#f;( ;Ewˊ7O'˔UUde0819 6mJ 3]}f9~ TV"0W" 0,s2?f^j ^uZPkS`g99Brl-݃/v[̣57@Fq,l𺳬μ,P]Eh3wbçSN\SVۮz.p(zQOK,- _1QLZRCLqaGc~4r&p.3ZqED#+&J\o1UP԰2 x'"A&2R9HjdgޔG!%5dZ^1~@i<ؗd _};wkWo{%ʽjdzwix#(P^'$~Yϣ9n̄.݁ޕxX9?aԲp;?<̩'6K};/g*Fˑ蛡.&3_4!%s,8u3s/\jAw#i tkQ-%T{{Wr6sda(/" `*>9ݷ<7$1Gz`hA_0EJkg$t5?LE*/\_6oƮ`g"9rJȑy> ,aG'Wj5֙?jLHb~nIBVymky6߅奀yӿCkzVUvAryxTrcUU*F`YM n"y2pszuˇd[Kh:I럓9ɴc]"Ihj,pkH*`JRPӕQ/fʖ\C2?C9krSn$Tך7֞J/ZU3bsOX9˙p=TU՚q(5bC f o N!]ATBoܨUKLy?vk(8/qԙ?8] {>0ϾqTmc3W.Z! T"01D\_2g9 <\cغY_HUIsWқ^<0 r,op8#sllBuK;_j;&U5ȕYI0 ̜@~03On|V™9F0etQ/s捹f7[WGbȹ';'้Wh(4Ԍ˝ewk3\I3יi `9#̟u`A d'77-#9)]"pe֞2e>bV\_?B,8%U" ;A0_)ڍ;Am󖸚Ħaanq ]}=1˗<!wً豍1 !fBsi=EEyE<5ѕ+V"AQ t ഁIF Cce2/Nض$) !?h>A[) bֈDx?as>[]*c3Dׂ$GJLPg.sQ JrcZY/h DmC)F\%A,f/pȜ^2`z܈خ|"374|֥PJf'1ye@d~<ߊs~KYtfPB诌ZɍL%Aơ=p q̄w%\f#rfFMJO #'i 2dqd"z.u".A?? nd%vqt"fLOl'2]:餆||dki*Cht{(m d"s'7d >0#\z>+ik̴ R0VӚs$]ӥJFc~^Qdlr,=+RBzhi*$r|sK2~^_X7PVS2l-u悶Xq \AWKMvrB_Va h@k򄹈غ!| &,0sC _ #,sh(rG͵;u#"塅Elr5ӫW?N ,&gn5OEvQT9;ɜoc"\FdEY}pK],~e@\ EW(1ǁ 6t !-+.~KK r*&0(: ba|e?B] b"fauY}}ϢWqX!5 !$ :[Tx -Pr+ 90t`ӭH2R|Y-d@凐#_cvy"$#klh+ Mq\WWRf('`ك?šyXA0E@"Y0`-PsؖlI~ve#a0vxVEiE"7 $% Vq܀'Ĝ `|Gy|al{E߽7 EŴot ԝOĄCë:GE+bQnZ( #YP5>q1ӁP|l 51(Tvk'ԋh]j-'shޮ1T$fFlk -(3lei(L(xb Y"jʥ&e 7ni<r2֚5 [FC'uֹ=㨋`F6wfzo@}yDk{tȋ;yKB]?;`Fhi*3>G!:ۍeۇjuֵ^ې8ȞٚʤEڢ_2)kk8; D?LIENDB`homebank-5.9.1/doc/images/hb-ope-forced.png0000644000175000017500000000072313604617042014132 PNG  IHDR(-SPLTEGpLYSKKK66AACCGGIIKKLLOOTTOOUUZZVV]]``rrvvrE1-tRNS -1<=?ACGHHHLUafgi{ bIDATxc` ؤQ\e9P丐uؙs#bolIII˺XY((]m,y`4 y j)"LnFf*p>\SIWUggDq8+^; 8IENDB`homebank-5.9.1/doc/images/dlg-assign1.png0000644000175000017500000001671414774772566013666 PNG  IHDRz[GPLTE;;:54ѩyUH,8,:7LbNV蟡XET*13RPĿG˜cI_068>4[R汱opp8=>F印Bۦ୮ʉne0Ϸn詿3zꬫ,񨪫Y$,/t铳iTC晸+ûPSTjll^tuuMKOPdffCGHy{z~_bb~=BC{YMuǦ1{֡$퓯5boVYZI򺸶T[_`Lz$(-sh`®qi}uºEt?nwjٜզᚍW!mhtRNS|~~}ЪSIDATxoX*fhIJevTw{ZYZ,[ڱ [p0?"6'$b$!TDTp"rȥri`͏$JL_C~k5 nZ~| >rq_>A~=x|Y2 @||@1 _V SȔ.לN=5UaPTWk-?Yدa&_Y|( F5tx媿Vⅆ(b"Wkb[lת0ZJ&7|&gyΖhvwRE'o3Lt_US 1C [Z`ܨyz&I6ac&7#rξ%.j#re.oJŋjy.Kَ5"nZ"Bge>+ҭ|-fgXzO!9B6]".)oJycN$fSDG"..RkF8U1#&չm:#YԽqbvZ3+B솿%9ImBFDz'~f.exUnQ ڑl>۬[7jt1!1FQdў&4by?147tc?HbݔsRеv^<_$vM5Lޙ\XEv. o5Uq*q(/w1lgjnMHѼۄbΙg1}1/(Þ ')a 9g3L_+5 jݘX+kR$׹ckM Zr Ŝ'yFѡ!qnV΅ C1n1[~T̔v%teW2 Ŝs QΎLfPLa&łU1Ç]12F6(܎c.5tX7+q8☁ Su, O\s1}1O\9 T<3$ʠ|cn3?`KK.xٛ! 8| 7OtpWE#0ٻ 0b: |_P0u{>7_mw'OĽ34:Z~ַOYZ~=F=}·k-g^"g,xGַIVWnlU85\iz~n18b><71WGezMoB1}q/B%3W|thŴ/F ozN+`hx\Bu2($&MiiOTb4`8# _.`^b.jըԽ+fQ6<+&̬dqccItEl#eҐZAkBͼRUL'% \_IcQB1L$:H F= -S&e~MLbz˯^21,I,}1(ApeU"* j Đڔ*ChɀMj6 @"5dF.fFE"Lj xGE6Z%5+LW֐$c!a@1!xf(LtwZ1-'^{{le so@Y2[4\HX}Z1Jg()x"`*$GGbGX0G]/ήh")ccHD LG06,rԄI  jPFĚeH^h15GlӡRmyb0Iw2Ȇm{b4_2'Ξгx AN=y?do%0JX;>0l`[C^0( +QqdƉqv'NG<07@Dm#I]Y0i#=ٻv&S 'bbGɄS1H;ow+gS@(Ýsn+G3.`X/>aNxa/S,`:ι\\4\ wtx%}1i8pјdL$\ c\ ,}8KaAh IMV1*:&<x=#Yd n/Dl f _w+;:T;ͣX5rҒHo﷯زfW6b:“*UYݬrY~ZJB9lB ^ c@lծC[ 5(NUVl>YImM+^ZgdO; W+^?I )a lf)d:l-n"2<9A;%EiN`}YOoO7H9nS>·X40 A` A` A` AB`$AB`AB`$AB` A`A` A` A` A` A`A` A`$#C]yȩHҥ`>sHIvF6fԃ0]|}'W+5]eֻ;m3 L8%iRh1l!T BxU())4Ɖwp6a>|ȩSK8 - i^R(aI&=u;X}"ee4~$r%ٔ←&sZCmUYQe^%܀$+'.1za@p J1I4b!F#e(-V/ဵ JZIQPHLE@0i1 #ܷ(XKL%YZL6n{)@I(0i0Z.3! $(C JBߍI:eH &CoM1"f-x},E15t1ӪB#!uL%/l8M`,l(&N]h<|`e$Xb0NzicT* 9Z&Ks\ 5jo%&/F\Jqu00ϷfN=b#VϔWz+5?iG0a8N 'w4Hjg-b 1$|=^ԻaٓNYf:3.VqRUٰXTbpWGFbh}sAULVinNll8Xi9~⤄#XRPTu O,FzBp$'DjH$]+HnHW R.-gۓj*tE1Cgl_TiV*|ȋTNe/WceV.଻Sň[ݜ4 aiN\|G:bSrPS*cXeQH[ ʯⱹb3Lh;%7y1>mbD߹f}VI"R Zm!:Rcz9fټ3YuǥZ싅L۷bTb2vJnVsvzISruU\9V^f2$vɶ6v6B&/<(Sňd@Yˋc(w'Z)"&r"J@bF~1Jmbx^PxʜZxb( NeIGO΋z<zn%$DGb@Ff<LotPt7^'^_3/אH8p<KFt܉k8O/fc,Or{:[8bjGb"f9GG18c훫Nh+JTZ˥ۭPbt RZ*he5C|Pb]|bPb]|1n@1FlW?7  e;=f4\v4?<ogouc 7\~V#DIENDB`homebank-5.9.1/doc/images/7.png0000644000175000017500000000045213604617042011665 PNG  IHDR ex`PLTELiqyUHyUHyUHyUHyUHyUHyUHzWJ~^Sph|uI'tRNS/b8]rIDATxeOI0DZ[)xs HUuS ڝ0jާi@>?#~Ȑ7@\Bht].|?&ó?v  p}IENDB`homebank-5.9.1/doc/images/pm-standingorder.png0000644000175000017500000000160213604617136014776 PNG  IHDR(-SPLTEGpLn@rAa6_1uCCFDFILPUHEGMUKMSO\^\Xeacn*tRNS$%33:=?@FIOPU}*ORIDAT(-bQظ13m۶m۶?2Vcp7o qV+kԕᓽ^LGdQ AIܦVE$jSTR%ӝ?c B%GDD@2Y@l *Jխ?ߍé{{ektbG04_}uyk7򡂜ZƮe%ŃǺ@i!:*R @ IENDB`homebank-5.9.1/doc/images/pm-none.png0000644000175000017500000000014113604617136013067 PNG  IHDR%=m"PLTELiqM:tRNS@f IDATxc` 0(tI}IENDB`homebank-5.9.1/doc/images/dlg-category1.png0000644000175000017500000003426714617624320014176 PNG  IHDR]c&(XPLTE5yUH-Ʊ3ogÿк0bad閖˰~穚„¥nos򟎇vstҹ헴Ͻ~[Lkjjجz_exb񺢖ε*/4m陲辵VXoޞ?楄k˹Hsm훇|~oDho^a\kjui檴ʲȽq~U{|}װ]RVHcrWdYzyZr_|txyQeyfԾSS\Mz̉LMR(@gWʢlГZ}]^Icױrǩ?LssKdpθyŢ|iT…KJAEܽN˒]J3ꡇXtB齁Th6HK.An$\Z)249Ua]on EZ▙0 %Hѵ9U#˚A؄] d%P,59UYf ]yKjӵDV' "is])m–$Ʊ;qw`e– uJ=Yڡi!DtJ0阡Hi3ƻr3>ޭUxkIZxʒ&*;[Q !rGؖ8NViIRi*[Zike"h;Մ+gv !*[N37_Cޒ ̧I4s%\ ;NVdOp+Ju9SY"; ar 3ErW  "74}"#\{['Y]_M/w^Fty2XUmML$mBw}sѵ]AVt{6=冬V ty)[B NPt5y2];ӥLWk0\K_cm򼲟`"==*'5UV@קOTѵ7TFKgg%`"tѦ[d'+>|F[g; 'V{xuFK/L/͌{rk$|lz2!]2":2-uu+BP@C΢|2|5͟C??l4'ۍҭSt7Gj ʉm@]Wdؘ4n̰ՉFzV?u$;] օv^z^{rNzثY6 ~!U\.]3 6P|閹TW|.,bB1#lA$H$"ZIapH"nR&ny;{$Za0i U#0NH:NH+r"Ax&5Xur/EU Qp&,M,. "",V͂=5<〮K}UWAQe'L-JxMO#J߀Z'svwpE7H'kWGEpP$&ra˾.ߨ}WY*rj (@ή3sWjf@H]\j$Ʌ!PC7--m@ m–A=j5`ʫ]T~/?хD%ZGp;N̽5Qvc}70h=7AVW pа߸qWs!#twk_ЖT--+W'>_ j}^vRܚW~lޙ{łNz-@0k ߊe<}̞3t^֭-]}e>>kƞ:cQP|ٞccvm}ۋms!|kʟ)u!~88j`Ԗ򂳜.J&Y_@t<@R*웷sJnf&?f-ǫujK퉆AvotY AVAAgƾ̀W_֔P@7`===wVאR%NFwv<O#<~:0 $ԬuKc ;n9U;z/_#tk{9MMM=: &I߱u^vZ Sz{)BJ\pȥoe[,a@Lpse0M 0`Xe)P|-N9wQԧkM#و vRrrA& ')QNH8NrN1 2\teͥ-ZT*gu Ė$-{ REKġ b- x7_; *G83ǑSaukt0ڃV ;PĺCÝ/x[ψ㣑mm`-tsnܸqGAw;S ?*VCBėVw,KF+ɓ_6=z/ ͭ<;Ǹ zO32g3evkIs.tBjGWv.FA?} q\ \]t']9jtht,a˓Ӡn4TI"5diE2t?)hMn_VSt_nު5] ~7}\`Aڦ5+zùK42{vd*s:$&tYQy5 ߾z?@K(,HԦ zXm]H @9]ٸ3&ν l.5>݃?jт z(ˣGl.btg"lI8=m& n.u],2Lcdbt1]l'Kܑ) ^r]h^]{*Le5>DV|\Շn5Wj߈ EO_^.;Q{\,Vmғ;1Zx()/nMk\XЁ>~Uܕԕ=΋߯q ږ20z̈́ [FV6"i6Tvļh0$oQ~EbA?$_J=it;|t#|o~6=nx kH8ʄ+wJ˖ӂrg;s6Fˑat1].Ftax8& ^0 TeK$!7"w1nbjw?7FW!xӳ 2.c=HJ_ctV?kdrb.Ȁ1G0% F"s1=AwBHqî#k?_x.okЙ?Z_">[g©ЁCw"ylI8:f5|>х$ Acg՗o!"G&ZukRͳeвzn*~6pGZ%h`)ȋݍwoH[VqM^C[?sY`BO1(8) /v vaq7#["Jqu;Ѹ \ǯINwqn[SVqN_t%I TGbyqG%IV'GRjf fmM\iٺFW tH(r&mi ཡY%C6>t f<_lG3Jw;lQMLjvg;FHp`,ې^|)ټ^̠r(道VjaHp#R0@>r 5(|j3_:ʪZyop >JF#@)1h䘱\_îRVSu+e#f(JZYFD7lX@ۗ[3xfEn-rvoR|_Z7>Vn;0^6>?[`x6fd;rZgUϵ]Kada>w0p{zk t[zz[cˇ3bF0W-1൴ LP'tFFG)Ɨaw x+(=< f pp)lG(bpXؑcqW{/" cO" UY( _ -֟yl.΀KFgg]g 6Ο-49C@Cy{|*!IN¢jxLt%mDt=ۙ<Ƽ}NO*eI8]Qp7Oרj8fm]o@dv&OQq"o7Oh9귻rm5bЦtcrK\Wn%ڵKۍ, L*=Ձ'YqiV8[ض˂`vh?eD=jSwL'wM!!^؃^Nu{_$LH;7bN_)k!E+CVՎ_K5)Ahګ@B*}7Yg"P|*\Uy]Ƽ ?Mydtfb'A2Kz-od>4~7 ZSBto2 Ejע%9('<BaB\b]*@U\4J "dBNNWB,w=EyTZljPlc5kg$e0\beѯrr5ۆW@~l9+J l슳 QIG+Ӝ=HC d*R BߎS[iѭ)otq]١RG8/i1DWfeđX޲ɗ*Ȁ㘮`5r'Q$ k?I2i/ERqۤ}db5u'GoA_L"_@w.tN,.*ǚZhk 0M$TY,`upg0tw+ t}G F7 4 K\rbgD)5}қbPo:O AgF# \LٳnBne@]e(o2UqH O=e fYܡaVh<%z!~Qn C]tkIBryDah z#udXf.5WKp4Ap䭤*2,P[3cmš_v=3*53C#lc؆tJ\pxU@6ͷxY'ǝrƉi;N`0222AvP\.4$~- n 7ݮ C ^='gpsiߺ4.W#Rt*DM,p]z{*nٟSS/B#=_. 11Zg, yT2{pnO͗.i#tMo2.NN`Ds[do!,ڒ XN$ACKYoiem!~;V ЩVδ){h `K:X-D ``XLe{Bu}m}t(:_ϡ~2nK@ byrB^nJWec4]5{a9, NoNnC$n̘ڷEy@}+!V,0L][c~Tzz>&)/'Xn`+9R4INu^{^B)?fאؔed]^Jy;t_O*A0 ZPWӧP0c $a9)<^5qSmS{r~$/tD4w:2 _ckf]IԮƶbo^GܪBk!dCV 7z#hp;x ɞڶwJO";XvTLԽrV[YO%x란HCMc<]r7Uͮ(E9+OO [g(PbI8ݷAtN_gt%qL;_CLlwt*S@qu8],na7VHS'tEH*i`vX5q٠cKm? Ck.7 ][t~\s1xuj s5EV4?Z"n!oAGvj(L>[3Nۓg/]_1-vxx®6ݰ弩 zx~ޞX7pozb>m·;(\t=Ž[l +M?9h$ճ㉮FRտP[NY!XWR幮 Y^z U1Yo 'H+ϐDQ/Qt͝uUD'\$ִ:tE%|QM7Qœ'LwiT_E՚@QXKgH /^]i"Τ7dꧫ:CEy'E՚OWqH? $/tE4q$MN;s!L]t iJ}~LQv}t=lLwPu|w+(̜:SEEeм *bǡJ]Ei oTS]])"4{݁ҙK|e7l狉c--5?p-+3lc]1 /Cq"V[ HV%ݦ!mDZ,ۦ-*^>Tj}KK`R[ 28]N5 ?uf1&VxDtc6/וkd 7rsUqN~Td9ZPHӍ ++3@ ɴkrt7AV7C B`aNj@IG[4D?n.9W+{c(].0NdU 넀. tpx3=S+xq+.0L9g_5\f< JhM'ƽO#!sIOtt1 v6E({V [RROW L"e]c,H7G:ChiaFw]"1}Z#czHkbU%خ2l]TIԬ]O݇nfJt .N*W}t5 ]NL؇8%%jr#7aJHM@*I#HXK"7AH,c7I%MdRzSS.R-Hai7]Slh%]l` -aȞO7Ԧ3龜&tϸtQ,꥔E|݋.ԡ ҅ttII"T䒐ɻ&J9TH?M!@M@[)P. Kw,)]󕆀oe %LSzӐF ݋Q#6gҎOU%^jz(cW KE5mW:O']7g60(w4XlgǾG GyO7JgE`b@ ;og3{=r<7naݘ >s+B{eԛYȥ~8lۢ-t[ek:ܧ4U8Z8yvTpk_x?f|$ݴ0KyŗdǴ&OF-Z"Q9QڤIqN9>s.3@\ep&}(\E>O/C ]6)s"ÁQ ۃwY[+bv X\ KEe{p DWⲐ@pUCWEOEta^Hœ҅ H҅t!]H ҅t!](H$\BH7L1򠒨nXpUy"#t?3Yxpn8tWo\TOɯ{tnte nV.,>s'%&]Vw-@aVnDttFR^|_ōOn͒!0n;8 @d!=~_J/IOC H:d@_p|'}(Jt#U=I>Ŝ]u'P㇪f8&],T‰[w:ʪ&<] ҍ. ޏc:N#K2)8tnxt!(+@ntWyt$x) (<8MdSmʽx_Cleuzk1׭NO?Fk?pma*)"rPb6\JL99.ݻG($NlګC'$M#.^UTLɋ[k?*yoUl_{EG{w uViv8w=tg򳘦Ԇ:d1 ӋZ/jjR{)bkNsVPxf~~~[\/: %dflʩSnvH=,#=*[٦=eUs7MCY2#?E62KeCEDY2.Ct߿C************6V,)M4 gPHj]qhn{^M)zf>oN&?wێthz;9l;fn/ -V2Z.W`0rƛƚ21/-R13hvj@Y hdZ!;.:kxRV7zы=xs9#i{FR,m6.vxs%8= Ziib0Q3𦘂 C MV?tpV,RW)ZzT Aosk2p`OKqu < RG@q\w3r1qv jx`$vQ8)AZ+\g~5Ұz N Bc =^(ӎV =Ώ_^ON&W , u 8xCXGZ9L^:R<ر']dN >Է-$iKᅵ;/3!'\SK3X{,e!w+> "P:ѓ-ېRK+xL}pۣ9>#px( O/h3l Aٯ@=^9O@)O<^=쵆M+|#g`z~:o.RH+)zw2_B26pKxV'^1Aߛr$/Czq|#x3ixuGBxe7^6'QD it6xY?'^6݌]鶔7^^/;ꋗ)xٌ.`ˍw7^`)p,FZO(x@^}ǜ<yBkе$@ %=nT,>^T}GRϲuJH?/X2'^{;OQ.^|u}iܗj4̄q/yeG8!b~i }e 2S9f~zTx9Dx 5#mDz33tmrHN|~d\x9~`;:获.ě+!l%z^ e,42Lv~ܐxy1/ڂmL/i;x aKkrd$wnF)k_/%KLYeܖm6xَ/^wewxye˞x{4^v$x9JO>&x_xYlNr#\rew{\OeP hx٬D =i⧗bg7,^ߙx. 7.^㍗ / +%B>hO/6%n$fqǨ/ƕ۾!5ZBRaeSvГ:2o`/뻶??nPx9?S*JR#e:/3vh8P P4^6^5?~"w@=.wՋ H3"eMva(@OUvh.^4o.\!sXڿck~{~kH嶴^nK\\fmt7vI[~,͕İU}B/RҀ.j޸pcwBo%]a7h7nE>^Z\!c#B8 #(5Ո^o6#%X>V+#V /6fC8 xg 4Zxx%|f;+@pC]F`:'ozz$ׅSQWo[o~}\-[Ki ?-; DOkf%k%_RCӟ@,}^LyK??}+' !U iNCxyFkʕK'a5=_-[:|5mZ- iM+]~] Nۺ`:o\@ @z)A -F 7g`q-Kf@n R&$㩄i8 =8cZ&\$ JzF ڥo$>on0ԃ#t^9 q=G88q7Neo!C h1J8EvEg;[^ 6`ev7Tz͢qZqVs;}= X}~~/D/R}eϡ/5݇4݇~E݉ Nghh͢et·?9Z=ТDZZ e$:9:hAF%lv55}32AzJױi[7@ /??'o>}mG!$Y( op_Aa|t.@ ? mSd3qђ h.tѝRHV8 5 E734g1$ -tx&ڵ8%J`᳖k v>xqI]vM"qAtWDu 7΁t-ZX^;YgxB(*zN4fڰHBVRK0ǩݻDΏEcV JNjkGQо$-x?}:q%w)繞7r2N3w÷ՃcоE=s"Q4\qXtP6\CY\MHgB;tl,x q_ |i Ϸ_}</ozuK˟vMx7[G7wzYSyyB 7qfN@Ҿ$(a_y +!ܨY mDe=^ = Vv$BV8<8әoLp@q%<Az4mZdh{\c|2!hx妎fF'm; m7xYPᱼȐx9?^.Raix٬<.`` Nx9,dLz|9y7M˝&rnH/^v4lk='^v2^6+ +;DazhY9`D/ӥ4A?= 'e20ehcEWUv}EWkqr_f~\Ζo.Ba˺Zd^B+Zp7X@ USk^Sk&Ɋ+]iW|KO} ZzM2V@z©#?ᅒ#j&ᖚɫR*V(O29."eJǣECzj:HdBsrOӹ;䮑$i@FE-HBH9GmC=1B檼J=BШAq~y5`C)5q,~ZO -_ IYY[噣EVBz "^:³Bʔ伔)9PJv'פd&Jb5t>#%Lmw-ML͝#& /VM>jՁɚ倠,TKk1xKgV('9HSIoBe9fFh m`=NͶ'*|UXmëWxN^lKjbhٖ‰KK)pp؃ϪW7TdЛ*Ӥ\ll& &MmkmuDTuU(Z]TztԪ15?VUr“"K)把ދj'W1?г܃xYfg3i y7;鞋p&ku=9vd;[iX-o1/){t{&j-+{:*}omyz>۞оȦ1_ /ϿSjyW?Sλ kyx~_;_1׏n[Sqݚ+uC+*? ]> y>u9=ko:%O/uq=[vvafz_m¯r}|EW2վ.ouW^VMu0ti{_:} oNk|eZ gϭOjHoO;ɫ7³4ng ǔۛ{{{[~DU`즶c"m%'v{W=>ʽ0ߗޞIņߐӡ; vs:lZKMrQOL2tr!Og[˿O#JjXO_;xOPtK,'`-~#J2T7{/Kx6E%nֺꁴv6eJ)[|c I}Cmwud³Oov^kB w״s#b(`Ą3yLOŹc{/?Ү],4ȐUk7P'4kTI |zO:*ܥ{p;YQqnnH?qxyrsu"9}' 熝%]*FfnMn[pyLLzd-3$XIENDB`homebank-5.9.1/doc/images/dlg-filter2.png0000644000175000017500000001323514617624232013641 PNG  IHDROѱPLTE5)tgᱯ|²戥[kgdfqruvۯclxf[J讗}s~tNʹPTf_Anph¾ǴϰϼqU0}ڷƹҿf`x{i|bwvi{[aorcoht09杉xưQ30NP}qiloxzzǵɾxb]pmjZsgڱӲeU^sMkEu}|Zϴһ`Ju:rxn_B}ptnʕڪ,5FkD^rQOleƼװ׷mG:R]Ray\RǺzשrɦ[uɚdỏAEN,trt/Mj9QfVJɣ³C]N]dPq糲- 2RąK"j5Ggb` sXIDATh\w Äd R)X4&a!d#{#ʒ 2DDP?DP܊{:[[g[Oy +ؾ0@bO3wAHD3J ( 'D<O :6\8I|x >޶wU#nA~d&9 OwGlѥsOtѻ#=Z"3KzJ⽿ Nυ \O ,!"b|x ʳj`r =q|(%)!336FͮߵXfq5xu6? /iWшt=w}:i+撏FyѢx%478Y|4^@A,Yxܙ)jgy{ey yCxO<-&^d"jic5녙?٫mϜQYSNڥؿM,恒X5`\&uP @OZ%nqbmNNy`k+-.l#˱Ӭ3M޶+j>ovpѣgKIsEr{-:̜䊽[#Q}F{%!sGKv89@VECga 6DA囻 [1>/3NyrclMfW^NLCp=*b>wZ`|\vs}g%7KV+'hDVCmLuA&ۅ֧ӫ!v5j@w]aTz]. ~]Ր<ۅ!A#ϓ A;|x"'x&~n`BG<9㉖rDUXhPb)O%[ nPA =tTQz1=JbP+O)GR=>E6X'<)tSmaeD۳ZR^ ,`7diϗ>Л*AyZ2ZZzzR,ddH{_nY -,N,6гfm{*Lj Յ7S(ȥA-)JJ ټRT ٝ9w('tɿ33cg!sn?=Ai{Ojky[tPv}7lG?9w+J]+ c“nvvS>[CV)%[8,u`AEFg'!ÂKgcNW{nZhBO?UMaʱJ d i. آza;h{7w`rIBGVY3? աӮ%lNC2J ˠսA #--K9<;l<bj204LId%&q`ߒhP6&;ѽqdt2gGOjt$DžkjtJ#o9@O`=Yu=v׉ 4O߫%oT tKeEP٦ȘK!~*HOSy9 C ԅKM3鋄] O!֋1X!GJ hO#LS6j|Ա"!"둥&JDcz SJx '>z #j|)R$K.mXrt؉O!,`]ok搚XV`oP*1wۀRsN.t6shKھQ(˚Q ^,$祖+> b}vKa}cXT\ +%yDl6j~<հÄY]>V܁q,5r0[g si"x^v07/XoZJ;JQ#ssq}:N7پ)"h1*VoT@?x:QAҖ+DU8Ɔ{iGp=cj"49<'Pj1:mZwPf9*-?s?ֽnO+;.1MKSH5۹>ϥmf}G=,0>Q15sS#%QM67Wzu. Η "Dw ]JT_# rD5!wg9w6w%IXWoறPRpVJm6,-bٺ,[X=N:|KmYOD ~SGG*2#+G^@r>l 'rx"MB~О;OnK7m $|#@(0UY T6FO.΄Y d8 mpD6D ge#wYlEisBg_s^Ptw)6}0LH_Gf6e<l!!c*tHXP]G:J9湁Կ|׎qPO shM> 1I싺M@=#< xOZ й &_;63ġhEsӊ@ ,{Cg}v3ě5vN7ȿ8qʄ0#ST9TcIlgdXWjR ܛ 2ds$ԩ}(ݡ=5E wnOCa&6ʌc[.e94BX{vK]f wNsíOj]FliC%ΘivǘŗY>^&'4Zk;RGY|ז@ِuO󛜙t`iiG蕗͒ٻI׻w[Y{󢐝PB-.YTM,nP8eSu :|m|@ʅۭpfsy`Zچ{/?n@З>PrĶDč옌ƹެԿ_ejLx÷ڗ玆'i$Yi%=~oY] IDATx ToI@ ! e j"Mӄ/v'.%H#_ӫJI079|C{KOx"ig_xYXIw21dpEV&"5FQNaU[Q38Qءۊ%*%fjN\ JJFd˕8:d;* `#;&3}*jy&=d_xaF]n+ Rq.Hb%0&'Y EEy |&"`h'raahm""ښpE.x_ܦ}[ѢCÀ&:j47R<=lYq72˝ $+zN@P HU _k~ 2Z ahBPj0< EjE2"V87r*e[di!|$^#L pxxJĞlcx ܱan`l4(v~ ;YXp+C&1>;τh-d4WMl>;5AHX=m{}yxMb˿Z<}T+6 sYKšLMJKӚÓ !'2H]I=<zThciUNwr 0Cur)2vA7=71,EwXUfpG)r#d! s3BEdÃ*H$`荺Ao&? c`'eguUгdZ봙@LSZG G<vWkjh/D, 0 ^ղ!jnQqPj0Mxp_CsqE*A>vW 2 p龾9΍ 4⮱;>,yf-|?\__G_@!uK+R4R#4!!SK- ^T:PSq+\o&7\6,"Y58t_DQ?BK{vVz;b~@sWYJsl@ՁGd7} !^H."CU01)jLF ]!Ÿ-j'ϼR@ry5IR}x Л.O@$*vJZ7Gzel)1;J`:V]o>{pp6V J0u`">R'.ҺoqqݡsigcR\'zN8 %+S8 m0F@h^Ma HQJyܾ;-MLQ}sČ Eݣ Lnn1MPcB뭤GCvvjvW]%G힫'w Cp8T*C:/LJ L_,~4cAt4BhQ5\Ԣ T x~ywߩùO)"D!B/FL>wU|T~~/*q~{rcmi2'J4'f_ +Ҭ{('/~g`nO-~#*j΢3p?y܈Wi aXl+ped<^;v^Ӗ}E.:EVD@N/ ode>[Bad+YaO KzvT-6tJ WC]ITn&>^*4g;J0tS\ePf렋sYkȊ%`U`H3N (_ + "X?qH`G.A&FFU|@cV=i'/ÞpV`9+MzQ UMv\d4` $jN@P\lc`k|"=; &]|t4ѓ^@}W\]hȜ4[e=>/"D];;Q2j2cF(*YvW* ` ngόtn4wPg8mFSrXO{-p:}i:r3xTc'G;Iߐ+wx ]AԮy?ZRFa p^xh6lX5}G͇wNCLe\o߱6ccu̶>:8< ;:| ,\39{Bs벌mﲢVj> Ië<9yh7._t~teפQUȵׄvvB D5:Ly=7[/i 5xxczWo,kc+ PbBp/.5;'h*B+](-U=ī{4Ǒ"D!BSc\IENDB`homebank-5.9.1/doc/images/doc_title.png0000644000175000017500000000433713604617136013477 PNG  IHDR/@ qPLTEQUW.eUWUOQNBeSTR$^7dZy*bNs2`JLI[_aԴ=k󙞠TY[_cffjlHm~nrueoˉzvƝEIKƃ5"IDATxiwMچ KpX%uu-,!ܙsnuNGZGiwj1{$t~l6ֽtvL߾}Jպ ׈4FP aȤSV(:O Z<(Z- lg=ݏ{::{2y]=Me8mgxuy'~Ȼݧ N=f/^*=k,JPˉX~*3w_uw*}; v5ЊmYy)ֱׇ͂iG4X0~ty4 ȔŖ)a1={~$sFZik}|@xf;8Ol.`jPz?WCl} WC󢙥 EG<z!E< eh;pZhs,{tϧa.cr6RoH.>~#DcäI::"{at#-]L'ht'jɗ>󳝐@aٓΦ BioZ-7HsP= ? OG@ҏ9/UĭBCy4xklɂJˑ`8s(x%'g[UA7#s>zﳣ[Hw)<8(boT&XP,y ?"o Pggޓ~|^{]&pN:/}~B{O/EoJД~'i|n'S~8G_p>A%f\Z}33ы3(?IP'HYQ5]ͼ]7 }vL^f@I}:MЛVro?=0n|/L9"D@~#C}@͜]w^?mJrfxtMhݺc\D䑚~._|b~_P#B :i  e# d~}@uEet.$̒;CK$Yh>`* ܲP4"P:+^@wL1m υҖ@Tp)hYӠ݄Ԣ<s%'=mZ- \;Mh;|9LohE89ٸ-|YS.6`aL]^MBeVCiP$7N o3 j7g;ŕ>ԚZ()--9&* ,:z-v@}m66_쭖nj讉RFtHIK n\P;2lBmJn _pPYSRWԠ2ɇ%+"u#ˀa E@ ݧ֔za@%pT\JRCh<2&# ƂRSRU#%Lr rg˧RV% eDh(͌^@(Hc ˾I8Lq)uPmf2n83]uHFP.刲ppf~uuU/%T]!,>"}q@WeC!Wn˨#}Y'LݓY}`mbG}W_~xrnIENDB`homebank-5.9.1/doc/images/use-vehiclecost2.png0000644000175000017500000003123213604616712014706 PNG  IHDR9~Q!PLTE5ٶEL喏ǶμUϳ̞f枝ʧE席:ߴ≐ǜŸ8拌ԥ̴ͺؑ௣떖ֿ읶콽٫͕ꢯŠĠɬȶźǿ@tn蕤Kǰߑ֖ŌЦǭۮ躕鑴Ϊx츶Ң=D逜糱МҦҶɴⲯ׸ԮϤڟʭ;ղҁO஛uhsc̒ӯWݟTꅜ̣ߊƋҁt}^qyxriopxձ땺vuhYfP_YY:ak~lu@"W/UIDATx]\S'!-!{q [e@q!j@V{ԺꪳV[[Ҏ?%V_9$w=oνι'1AFM iAujbQ#$rӔ+i{QЩϋŶ2 3.}ksj`^t:/in_Mn Uj1U_ rpiuI߹uTܤ{y2 C/ 7@dx$ϝ IM CjaX3)t"vLRO 2snDṇP=LjykjQ)*i# gl55W'wd`ro/*aS5tɨ jo9S'ZjKrFݺx) $%5ac,Ybck`ӚLHgCbÆn]BOJfͦXP1{lx W*z&ڄrmlx.,sҬژ&;r ɄDf 8p଴iq!ظiN 3GRsYJ66Slxp[ʈș4$+4v+v+7uuu\U:݉)9 2+ySS:3\jRћGE=[e ~E]|qlrZw0VXԊBNVt vyvAg8(3aȡvbkk>;V}I^U{*MF!;Ūf wSi8ÐMrZN#/"T8[~Lc:1/OdW 5;/?0)1f%6ro}ͯ EJ =Ӡ-甜GzзDҳá8^ w{y,Or{S*)SS[bw=@aUnnM<y仦h%R](VÐ[ʹ跳Ʉ *c~9kMŐ죍9#i)Qj^Ė9O< ^4rdњ8[n}CE)\/ 6R~k?!G= f2ט$kvn$ٜ4݆&5?u# e#Fwu~-ugX}<@Ф%U(ׯVBIO&d'DէvX_o^m2#ƞ"ء*__x0:*#c%cKrJBʯkVΏˈ(m5E^'/LUիϯdejKȬ+ 9r h&'L#8x@Kys FC .lҮǘ=Xؕ1-}Hw}☐#~pT[ˮJ,+zgN^SQuͶgs/[06ܠ~c|Srz;t5^,踞sIGLпXbӐ$#ePtVsGڵd綪Gr0ͦML֕ G4v_ZwrZ uqzj/ -Dꌵ QaR:,D(9r*">Oc^uQv3)~Ca?VCI+k*OiόKyݹsLLˤ)8ӕi$ßyp #bQ!KE9g5=2 2%0=jO,SW"G6 "p)؂Mη} ݶj.Ј@ :&/1}gxE RS8ĕE+ +DbUY) 'zwVrTĕ9P+Md&QU'ST!(}Hsٲ6MTY>,%v5[ZAZ7qS$&zDiUi6EP@UU:qPHUU]&I +`b!Sxi8Cѽ$i4"M-ɣ̾lg$LiL{ M[qȉQ`8 ?my27<ķ#sC}0ܫh&AsL9qϽ<ʆj+uXנrd o 4nTO g s7 wHpNƮİphAY#n߶] ,\<\禀\e~>?TjąW~l']S5 !I)#!dօ05T G04`y8 s^yU*>92£DQVx%k#k͂ھTmy[ 5(?}ZW/d@ $^McPy-QdU和cI$_ ĜӔ"IJdߣp!.*4 4AEsf6d; r܍qhse͒+wA's'rkZUغӅxN$rg+`==r6 4qA! ׬+y/.`48]T$%Ҥbj|.%) LHb>GTp{ߗ -ϵ\k\W ?+6U7;Mqd[?`꘮Df]d9Y|}MoV=X ҳhqGAHW֞_)bv]xہiRqnPA V`wUM۷][s-F`H0ZZe~ Lb]Zd!C%p3cJʧ)rQGK?g:"rFqK&`y(+QN? #J|گM=K+hUs9,W53Q8Kvnix ,iYY3iU4qZԤbVV1Md=GN7d-##Qjj(8d횃Yǽ#V~O~Gcy N[kiYtжCM5gщ`a5/+v59ުcWW`Xo 2ɛ!sͱxHMߤ]Yq$ F9Y'mKSzr¾\0]NTadJ\x,0Hgg {4၇;Ú@ ;gyvf30B7%6%XK)Vj:՝R9+F FxZRթ>a2x'{eyƬ'}Q9g0JƼg,9wNؠJ;/ndM`~'XA(/n((x⇊B: 9>ՔLc%1SY+t`cZHx8S(5Tbb:,$ɣPH;A4MK%7i:a)bʹhݏC!?OTtKQ qc;[=me7*ʭ Զl ܦE?=m3*i~2n1mҧ8hDPi*?>;?>+tI%`6Pm#\R6rn8Yq.׿>F.+sMBͽ?GxxK'{?ҕtC7 =;gQB.Kl!wc"K, ]bm!ٚK.bw.9^ړ]3Pۃ|O+ ] k\D r~tѮއ7>#~kO?#JnT8bнBΓmW^ ;aƝ'=!nT,FR۽m ~@N*cȭy8ғ76l-ΠA2Wa js68 Ph{D@ !C#rPO_3cDڞʹY m]o 9݇݉G=Za< *v뇗xb{w0 E8ٰy㊃k& ʵ ~҆mO܍gp2t񶓡/m8q)AlŶ<ރo@PXk"Y35?c|Zc!rֶHn=m]BOmsv:ys G\[,ms67*ٵؒk:G]anfr=F*%9Qz#vnآKpǎ; bO6؃rmEΓƗv-qx7:4v>upȶ^ׇܤwi5r#7UHSGbSNƁM} I? %C/ X-{?M9B!qWahC޷}:EKDY -ó< NO ly!%o:u?:sf>K&g88ȭSDFG9v-g\cXl\eoH@U#_R3a# %&ŧyꦙ`^ͯ/9< 1@W5I93=$~ǭ O6悥sjbToMK}CS5|gH =*ɧϠښ+,id<gSmك'K_~L<-,l*Q y -r5d N&jdK˹9.@#iJ"66Slܘqi}{ |^է <S%S r3A4yJų]-wHV) |!KO >@UWhyƭ;buۤ$?$\z]\NuQ3h2[F&-B. uY=^ӿXoZV\j7gOuںd}J|F6jrsʡZ9bў8;eB Si&꘻VkbSD&`Gq|`>%hw*/_>:{M ܣxAڃcxػ`"|AM $tOKȧzG]M}|!ceL.xʀJ;xÞ$-v..lcUP-b LaƏ z8l&k:Q[4ߊc/&:}t=O5KAPA<Ǻ 7/UVK>TV%BZpVīaA{:T?~VJEoȀ{ЊsFuqVIF}=4ޱkٗi2ԣfJvs90mXm*qL\XHgf]kf2e\mI8}i!,5kTy"W@/iT9}vs:KK#_kֳLe<joǫaگPo}$amD[~-!^'NX#?ER6( s3vsJa]v|κ 0:rȧBlVO5&>aTµޏ$dǙcP1O-lC ,(ig|2wk| %ʰ-yjYz=CN:E b5O]&|QSpiȩN~9.JءȁENRg#''*aQop j=|g3gi;JT3|jev@*o{=g uŒHU^('IGȑbK8bsZGVRȽ<[rEJg3WX̦C*|Wz%]q& 821 |}3q`NʕɦhUNN,Yz"{4JBt278RFEa M{$Lj!ݧ<&o`tID g_ 䆥=I^7!h^?rxyWhj)MڐFC(g i&N QL(.phОlL5}A0q 0 S[M_HAHkSеA$!*0Z ^St~^-vc5Eg$ash(Gvsٞ )-RJűi6u3*%[<Y 4gi[8 ?d 琺S`?XR5\M"SVb\}' }uMA%Pԛ,6Ξ< 9 5M`?>h?wsIHyЯ^]􁥯\$xO/|k{XN`W![! |? d h@|r7`-H,;w] [< Uhq-c41-A}*?\˫!B79[C @9zQWX[҇na`юyZ X9J?l/e6+KZhITH)" `!, I 0q Jt"ѨTbL" %HD"MLQ1jdٹU,?{roys)=³!&^7=jpԥfri dw}2?ߨ7&+&37fq*E ͮ!ȱ9OKox}潙pDMMЕdѿ sء`S۱>G?{. ]唘1FSVJ,m}UqWuDFWrڣOIܳO"PTM#ţٜ˩*{Ul9Ό#d7>h^f A?>?%&̦:arp B${V: maAN7V#0W#ޫ EM#x7? KrwK99PhV}T*%zOGwAU_V+M3ytСEju{=. L2tfs׌J# 3^U?܎"WDJl <9{Ng%AC0 N4[tTB{-wF+~ct07 20H/RrVc(d+:@RiO`ڦh-Ys+gyY)CV؆OPj:e~Sq{)g|3 L$yE.%mt!Cv5Ȍ!rB"r&gQG8x1\sASݳ&Ga~#ʷIN>mտF.$%>%?'&mQJUYok:Ui1lHƚqO*xl V2GI2?iT&'J.l,S p}|E-Hmr6L'Gࡴ-'ِj[*IBkBHэE 5Inϓsb:tKXZj Yv4-wct۩#7 ٕ0qIb|缑rc[$Y _rϬoJ#|jEnǏ <"L oaWMIrS-rZR0r.twtZ" GX60'Z؊w!1RK1 0)pᷞ-uvSV$117r)Cλ**X~YUa6:~rܻ4uS%;Ɲ!"o5Dt|#Y@ds8r?__Ӎ9j̓S OuV8YtNHN7s BCP bLW[5Y65> IqVl7RV϶}c z:O?9@s$>E?_7 hZpYZw{5Z rt6~$D+>Jr92@oHA"L}yleIxý ZVulMa*s e ZARR+ĩ˰ₓ $^QZ b@(5 (ciij$9? H_9Qze>g_whH isWM guޙ<ϋ0qӣ<9uW$Kc?8lM:13 40{ f;L6еL`j@SDDL""L<@ d-tF)Bgk f [X<èNdHYH?d\DD#ZicǨH9 j{#/)'uiI_*xY!kk 6 쏽 x*.Б#^u~v[i3TrV̓5ձ662x΀|Ǭx *Gv#KO䝬,On\m!vB‡ڐmڶIGO ]=LBL?QHkEq͵kΡ0p!dgW؜ iX>;$v E$ӯS6W+"}uL\ҋuRfY3-@+>^Dx]vjW Ɂ2܈p b+r59NR6(ۯveA۫Sű>oẜt5j))]5Vm{EdUeWۜo c\y?4{\ȱ(pE~fl5=#::f(W}*8\GKS@V.Ov۩*/W~m{FZ~I1 /flmb-dnql| i/MF/TB\r%dڍƞR>PrMR@~xrw+ꍜzJ38}j8P#R3. y޼Nՙ!'^t).Іo| X6 @0"$.OjڰTv?GM[-+m1>W>XHeVp9\~j$U=oo Y Q )р @JsR2 UE]1Im ~!@xԼ@@ޛp,/E@d  d?ZHk yAZ4[9$[! NIjf)TqYo>i )RјɐQ! Q_Zܙ )m"M*Ήo'IQZ 1 m7fD ŏ3"hHE]nCQ01 Wfך: %K^:n9u 6}a-y: ̃7ǼL ȉ襰{s7"\ˆ<9kKǨ.I86O}+-P%ZR5ȁ&Á<$Jbc}sOp5`i _Ȫ罶 ^VDԤ˖-;cY?U*Y=ޜz,NSu746UѪ&=&$A!gmt+=\ H  ޱXgn%Rpd٥|[HH!2͜:@: M7gQV] fh\Sڟij]]sڍ@vQqw( NNÿfz )Fh n{mZZ?2 K.Uwq/Ι{oGGA )fkJ BKK>*k?TM} lP@~0))UV]jΙП@+^&5 oʣ? sO>xcšq$ʷ)hn>ʵ}V~JaOW aOi#[ ΅G??B u7 ,_6䴃qp87W{olf a91;rWk:tO\h׃C>p9t<'?#_\`ګV蘧gc])"H-^8qLW&+}q;}ѫ7o_uI/k?D ozSH23$0i@O6>ګ<9>x'>xWCXNx=,=X'\őoZ/V>? :z?M% H*3$0y@}szÆ͇@+n`fWOKsjk6f>| ?³Cp~/̾8]ؔ@)=YA˗^,\aB_U@wL9 Z#*UBXlHFMrѼGΔW3*_LMxo t5=0}QLY0U)hL!ڴ\$H}Mwa 0@/ ?[%ۑ@/eUiwHkqS&%ZG4JN@C\-'ۑ9oF_eSu3{- aWGc^^Tv\gN.Kef:d\K@g#U@uh::6$;:E ҆lY5f:&By<@XiP_-T U_uթ,4̙Z:~N[z}Ϫ|ic}G* b ~B[s*}bxueayNS~V{75yqE߿g%U3i/z+ XOiOq9{6-jvuMAa_#Ch۸7glcӰ,Πf@]xa@uwu'FBp찗t7ҊcHOzbw{c:~kq'h-2 {.[ǕE1z a{e@L/7Xտ}*z@]@jNq6m8^.u4ڜ&<6INNѦd͇y)7l|A&ASL[o4$ƑZ?;,v!g\;!k sX֍ 56qZKDzu?@;`7"xU) I ]7/*ywy~nk71Z6+=hXu4ÔRRb*$AR5zg4A"@@/(l*FZ -E=Ƚ.ֶ33'Sic:S "*k/47Wӓߴqwc؞goWWk6a|AQf2[璕3-)` :w3;Tef%:\$LlFKVsoQ5g"Ѳ8Mb_N&2slh^}qw{5`f7OQS{'c{׎n-Z рUo更5tono40taw>?] 3D[ xohj tU  JRn' A o T Vlv؆z*M2{^a-K9|M4 T,爍E塄$ c?| ŒLF" *JQb`D_ k-3޲*6-@w+JM芾^;M;+mcs^ܝ^'R=qwLP8UddkQRSi[4v {`}.aA ',0l5i?=k_N/7M;?'+͗L,=+Φ {hVo[Tf˅m_3`kϟc)@X],)aCObb4ٜO9U)é3=_8Qsބ^mH:)89H/3gG=*yOeG97/0Ôw:2{2}b@,IOTB2yFYqxWl6dABMq19"q5n ^SZBjfZ Zu;;vβ=ճ/0ʗZr+t-̭Wm}igެ#BvjƯ@Yw-n {6&xeek ,tSbۦT]b Uqo q@I@6) 3,36ů}& K$<C}NknY\ůi#x ݰy9ZgĈX]\?~}h.X"u beC KBoTvAck(i[ ?DIT1s@WYiq×|*U6W6z9@ ^>nJI]9Vޒᔮ*,ׂ[o ցGٽ]Vq[8cMvI&MܦہRaA2, k55 &zRw[ ʮ?1I@Մ gәb@`Cةe țHZ]]ʻ=]]-粶Th֮绶2ѕ\]·JeA!MՅץ)C"$TŚ$@.!Wނ4@$*S &7T9rbJ@F*UNޯh،1wϭ,Y|gZS DbBhK~̊ {ͬ"scڭs;G:k\Ex  U)2P#0w7gv3)@͸ZZT]QрmKpz?79PC֭^rv*<2"`m=G0F7cotq@@]_u8 ç|^ [PϢ`hJ*Z/ ƨ QUe4jΫmVlI5䷨^uxܱTOЗbBz| `V i?U{{{-9)"F^(hxA@=la&t;&8zb<5 u'3xYmٮ_g1OS b(% Hz,@Wdc8 0(y~~[/UX@9~S%ƅ̰ݰ)V : *%Ĭu7L 9insp[n)N$%Qᰆc6w˫'<DOkyJ2XG[8n,뎃@lחŁ֒x,ZYpll$lLoc XunoutaeGZ)L1{y|*a-&8?t !Ji=I^չEٸp`(Ms V%*s`_H늆c(mii$=kQ̂ z"WzeY=Ց=MK6 eRfh@_;pϊK-SRR҅~x*}X͆`C3U 0L[M-~tׇ+ QSP_}}ݥ6"*RlM! XҹpFo 6~曼׿bgYD?kTU3?_E@ X+&ؠRun #7@R<ʆAJ;pͰ!|˯9(  ̜) /p2D S^ ,@ ;]n۽Aw8\GOHE5رZhECn߅I\έ.Y~b Кw,N1g]@z`hWiF֔3g2VUt%׮@ ^:ɻ_Nu2;j祿UIɛ2{ʌxBx{RFFΗ$|\@rRL&qjDG`]ːdd444TN%A-3ۀ"cTP?QB@M9H&C"#B'>z4$ 6&a"@7{H4onBuL'{G}dƸ_\alNueQXs+Tǯsvnď,4̗@bIZT+Ru}6%1&GZz l'vyDK@<32S̶n11)a00 ؼTJY\spf,S ivƲ8 hmhliHsmsMU6wfqEBiUyM]owhj=) ="K"ma-0}mgR })><7`C&e^7_}̾\QJR*譸Pa" TYB@RE@ (1%w/5ŅSh }, fWG f0( 6(FK?Rs4f2ĤQL2.y 14qC: $=Ӂhʁ(CasUb&]gυ] , r#]#::T\Kwd%s5@Q jZ:wսRJD ESwq"KlaB+6bG}5sY uթ`Fh>@sjUZ6v&U8Oߙe0ܵ9 6 6HmӏnV[ݗ?i*lqJtdvlR }S)xaXxZ9R8G#/0B#`4_AT)(}.^-ؾ %@ͽ,ȟrڗ\kw?ij" w.$mkyZS:s ީRj z5=zjf@/'w*[Iʃ_b#,jaW磵%uַaH1[S2H>JKkžJkINO a&h C/T5t QkfH:jn.N~ 6%T fVH^IM:Hڦg2LՉhyIHl梨Hfx_4HEEuBE4"A41rwB@!wHEMpI"+Dd?^Xa['.Bg[oG@cc#uЋ1:Y't941O{"ҋ99q\=՜fd?s> S*B=;qA@{0e7'8>ԛ㏱y:q:io=al54A :+x&w5mqgKaS%?\!>4p|Khc0U;J7`9_ZfB\jJ._7Vw0w_Mhb@T~,3xIdxaw:j[ӿ(Ӂz-=*F +7ɀoYx6 YW{ll_`@KhxYx®l ϳ ;4>N&< 4u@[zMAuϬȳx;" ./l]us^JWU6TWcaK@(9ټ#G;,~JJ.t&z:jH׍lÈ}lV eqcb\j` d:Ί&Tn$OUɥasudk3K5- `b؂\Zd+^VqըF5&+p54V5%.ZBU$zL~(C@! B@bHhHkG@@B_UD>>j"! D@D(ɂv~4$@5$|sN__PUqg'li57ѿߍ  0;!jw÷BP z%;`;"趌mq$ V0Cs2XQ;ٲ]*.ޚd hn/.}WiOJ-da@eVpsNc4anfvϘn=75*o|w8s> -ya?1 =[Ex 8*@UX1oؼڪ🪲Ma@ycGp/b;^DUɼGb({-fm[)W +Ϝ\t~)[P~-uérlK ]i ]Ը5oEd{KX8fQmQCsyD5L=̢Z"䠺| O <1*h̢-҆)ɳfRVsv*[N ۚiѫn_VUR=7YQܛE9/Ty&5j֕u7:@(G5 ! "g$# a!%-B9sPQ400" W|wE#x 4HXJ" tB@! B@! B@! B@! B@! B@! Z$CT=.eHԀ|~9 ܬvTV9̂ F^Oyv6'6W4!  Ouf meڼ5ÅJF@t=ʮwfp=?NFX,NDVuAؾ33ΦhO1sJ.0\ַ)$:H{% {Ȁ-Qh%\C9]" B@! B@!  9R$a@jRSKGD6WD@@ dG u5 @j2zCF7rAH l]m9!_"d.h 2 +'9?r\u\"3244|Y%#C$dM7_(lRS=@B_Sv>zjyV# KXBst IaeP Eyp2KĒA a4h5?BDȁC-%(@zC lrh ,UNi~3gB B"I=녀F2.sMpj b 48h9\ m\-x$h5dYo,æC=h@1O3wwwl$ r$b)JS|T5_tTbHg-3? 75⯦e F%P&4I!L)y h|L@De ? $)ȩe6eerx!AA |E`YtO?Z1Ȅ Sj`=eˌB@<[HB $t30H,3>XHXsv+Kq-'c0 (J !@sk .ed4XS~p34uK@NR8ԊBEIH :tPZArƀLEUt5 %*4W0ƨY*5$:1κF] @$%t^QPA4gH^Ry4@x{ܑ!k d\)(liGSN84#рġR\9_WVqlQ@p ".3_H >h&oE ( h@f+#Y-׈BvPR5Bf*|مl4j+)%a$W|M]%qǐ2x7R\` $և(@b𙾐 ߁ B! @@(B N!0C@#=P/ˇ)[0Q]Zn!'5 +ޗE@$I|F@$= ".DHvxEM\ neBh^>Z̩>#^?9t)! %DO?qop{S=9IhTl )LA7TFy/t^Tbm>^!@O=õWs"mh#ˎ)_s vĸ9,7*:E]MM{=o4RҪzl\4 M#ˣ-TӒZEbҒ{4^^ Mkq I4}@sp4}@ZhjBJjh8W`ihwuw[}}a͍I~dܓ?'盳LP(A&5 d ͙4dŊfAa_Is &:HelCE?箎kT::(-qo`DԤA1_xN"(W5GT 8@ԐDzGE=JA e6 @&1 "} %-VV K60Sܭohv 2Y\+ D 3Ƽ]b@F][X$aXY,P.IuN3>qv9;pǂ`|U w)a֙xT0]?%Dhj] (v[v`+Sa;0)|Vh 0=(=$va/1 B'v %er*dn.J#ҒsciiQrI݂bxa81yR%b@&'iZBbe%Gr珂h +d9 Ie?uJIմ5e$D]hȢgҢN%b#OĶ%&ǂ("40LM|"x]J&e0蹺ҡU)*zlg@KSK|`g`1C)()),@y6d&2dj,]K11 "}z2#d"WJiRtI4Q8)A TAh9DGf:}F*RD]D1RqJRWIjsQHdb%jued2UOĵP-DbD棆; BWl 'FQC! ǀ"UmI4K 2YAȸMgB: d:gj !0vvh4}}&vdm{Ӕ:Pr_es_+m |N4`= "@lGpvK㲨}GgH@ڗdGs%DL弯n$?rj5zj2Mqf⿎ovaF{Q2 -MnMk,*ψ}6fǷnYi0H>b33Y]^}!x!pžO5rYqݖ{-oG4 ۾ | +vKO_xjosnf3\Njf-ǯ2VyA0%`tRZ7v[s-V XB"y Yͥ Yia.v@IhyU4aJ߲F kW]FŒ7Wޢ(AD}} ƀoDj@ B~<A 3 |Nɳ0ܓ"\J bbAؓ2P GtTAA^1A Ͻ o~j!-H{LOϗ=iԔB!=_r>؄A| ϥ YfqyAج= F*%N 9r9zBL&ҙe ܘ9 rl;XNs:hAxtnޣ1) <nZg}=3Ђ5SyXxZ{m̼ 1>흛;{Ӳ֙iysP|Ac]Yy?o4PC8m䧙{ZjYgmZ>EOGyD9+A&H э$Q+B ;VJ )3rtOkxqE48&Ks8 Cf q#\aA(hWje܈e]ot 5;F[-?1ɻ`<嵿T ?0ׄ۱.C [w!/Ckr]w^ԏу|K2%nMz3h~9M(r²Ͳ%uGWDޟoAAcSw8v#{ݍ|/S{+~S/J8xzKsG~AOG[ W<:YB}zǺНv-Ǜ>D\[I7k2| NL EI[׭jk.];8 nϡ(, wK츲3dwվ)ʯA𫧔^#jW`aC=oDmUkȗ`ٶyPz+ь2}K#ğ ۴8 hZh'ZYV?=Dퟨ\S5T߭xGO޹4j~O&İ x!#3;s[ hŀ$z` If)A J%D ?n:*IENDB`homebank-5.9.1/doc/images/use-import3b.png0000644000175000017500000004060613604616712014060 PNG  IHDRk^PLTE5~P5؇8嗲鹹⧦Fͼ힣ܿ钞ʺ²=ʷӽYɰ߄뗓̵ļ飴檒˫Փf犗衕ŦʷsöԷٱƼ;ٵǦ{ɰұe^ah_dvD隉~έ㳟̒{057ɠ}v^fw3{ɍtlLVDՇʢktvxvy䴭⵷fd|}o_ޑuݎ_LNPTTnrke}ܟϒxelִeUrƉHPn<[g->AIDATh}PSg5hj\e='$ܼ6/B^@4d!@ aIH]X V^AVi8:ؙL;:9 A\n/_''?~<9sciKJq[Xo&ՅXSͧD&{qaemձ7m:Ѵeu&QIl땱(r"enꕱ&3Mdl=C6$o\IY&XgޔZ7Ue)~=G"Ҹt@=5lK[#B u{ad#x[*pvV1Xmfvjqv.9Ŗ&3!%CC,J k¨kƍX;\TJ$l3ݞ&( CM!Y;g9k|L+YWR7]+o6vG:k}6EV#-6~5vWBs~u,p`XS\K+œIlyq?AJ艇5k4gKGٺY՞;y?Rq.=Z.(:˘1,jϛ߯Ԙ62t' ;?`}d!`k775GU{dxro`VGN\(=* 5uFY_q+1(n?Zx?wՠG~;=zG!=aUqZ'#'JYLz?IŬz['O&)k`+`=㝽Jr嫢JQ#evr~v9V3c݂ !_y)&H,'2Y.eڑauʉXQkUTZwo1B - , px|Wpq# C>1*!N| Y`-(ڄh|Radպ'C}58k>bz8poLFYp*-NIx"()ϧ -W;FϿ>;7;c|۽7$;S0Q_5:i9%J[bַ}n^MYP3.̔QmzaNJ?HH KTf@3! 2dhm4Q1jd{@TPEy[ypo,9F;}_W?tAZ!HS6YpW ?֢:sʣfB9PL 05BmhH4&o=G!im~KSԠ4 *|hTNjL Eh c3!PXSE"Q :0tUDN <DTHc D3؀"#!b. y6kLcPh ,|t.I(HDfPq* sE!\Gg@( l-{y˗@Es>&5*7q' 9bYhC@bYuYKJČZZ&i!aIdK[ƚ6l\9iWj?%~^)kdLoF1Xz~Mf$3VԫۗAXGJZ߾ `l6lԐoܰʶ^>:K|BP#lKC{zl1o@POztJg SbˆnKSuZcz[º%Dւ! 4 1K%7v^($-wxA6Ah/f5Bۢg47.Ȕ-ڙ}-u*7d)ݻ_|q"T;S>ִϮ\ &0v&`Mq;_)<^*|(77oO/Hsux A l . HFQ )$7%!k_d)#dx#]t*ՓП(YA`5T2^* wkw(`hhQtXJxC!GWCE  S*_Ӈ<(/Q5:B#sr&kK#w\WSޮ\owo:cnwoS7cwSATZֹL1l _vKEه/JwH6fCUwmvαGUkJ3]lx'kONUd oq5Zb6x:d5ذ,HogtEINed*bv5eI=7)8!i[ W|KB>}:8ni7c b֐qbF/ittR ֵ̙KعZmVF"2i? -;|;`^|k&O%?WQc[gM9=\7Z;Wxk|D;/pљkazϗG}ODd('1K|@Iٝ7ssnwz@x; fhnn^1|%pKaDe,no&)x[& "ZbX\gT)r"oKs nl3Kݷ6;/ZU̫L _YGa%0\%0q#XlYemX$&zNY%ӊx)*ئeBbyb_V5TF%G&,2|h&A1 ԐݐAnPXۙ΀O/h==.L2TpHsz#)䪌xCXVT%b8,j#,*I bAo6 $xnܠt52bETJX&Pd!0J<+ǮߧGK9#Wz-c}ɯdٗ-?i'HN%ٶֶғg2sJ'Y7]{Yg7Ϛ>3AܾOd,FGujOnwVd}|>^Zo8+"Fv(SDſ*ÑmXSs 2s>:cQ`G2g}wYڦʷMGF,%d 5GVdS"ߑ'T&QO:O%}l91u)gZ\&GVj9پR'l<>-xV{1L)xJnUx 1:=#SUs,"DX}o4Hwo~Ŀ dPL4CR"9DrC|kWqȁ@`x{>~SˆJk_3b[Ⱥa \Sق$$A}*[HKqE@\F M,,₊H1Ʋ}">RZj]ޛ7 b5q~ ̝{ܙ{v.b7o {ԿѴҦJ]{ Hht RF%u5 ]>u[7?^+ix|diʖIƣHeM`K4rT VV׍gJ4zD#ME4#MBuhv!ڶr d!Q Z!4X ccV~{4 kǬCrAy-a4r )8kO?(uGɣ&*5y"ژkϘd].JEo4G9ḅy-zjspssj`e/(O|fV}N߁}::4kO&n[tj>| ~4Ú4ʚb=iYI*<[ʱf瞈˟w>=p#yJ ȷ" %~{9Ɓ;u:g3]|pJib&Y8\VcC܍\}R0Ӧdkgy5wT&]u:љ[e s0{`Z+,,.4%`^?.aUZlb~1#/ uv[ӭ^d[ϚU=JK6YP ŵYnlcmyrL[Jkw9飈 Gn8N}eMm8}c8 o_AIVC [0k}֢ZOC+Q-Y86[JV~㧚cmǚ5fEoo/8-eow=lE@ ?ro~{pA?8ga{D7Moh_<9[2K_?DS=؂wнoX6u$з{x7Po¬K{& š.RrI\'BIkEQ'cݝJMk&bZ5Zyp۠WثbSSSU3M&)^Nv3u(؛:|T`!9C08cN`l9<(;8j=#Qi3L5IbsoGp/qWcF(vd}}||,{%&k |Цz"o| L4=,k艌=i5z/?Pii<ƫ'u5%}p7):l0Ԓ O}4  LJ~1Mp%XQGkB<}ҸNB)ȟS >fnk+xg|-Y]zL#ͮƟ3MZ:Jtv}X]vf?دlIcm X:W+wsb3+r'@ RT` ݢ8=ԩJ]]YV3L ͠ktiGqk^kLA!(9YUrت(y7 i4*@sJ/}\۠-W4 38*tϛɚzȬrg(GѭBEn~ 5HvOf7:R'9rs0 0*L\)JxNu Ǎ_)qN1r'v,ƄSʅwbW8傌}`UJ`7FR7nTVg !>%`Z|<('` "% >a:& !%Hn IA%0M 7XIu ӀaJʐuXW#c d  IÁZǔ/1?YuJ$߻! ~M] ~8k˕é'JpRn\(XVV@T}+ܪ<Sx[' zb\\˭/FqNJ{'uXsLp^WƖH3*X YRc3쪨J(&QCk]:+g"H^%攄+Ͳ4'Nc86S” i"^{<_*TgpQҴXYBBZ71&UiYZ V4A@%*RJ9X vW¾Ռ!lJ@`LQ.~n_B]L6r?1b (cH(`Y]$p` p{hfe#a7[aІÄO+=g({AxUWvxs㗿~}@[5T07^n9 ZR^I~"-jjEA aUOk@ð.?݄m< EpQ-'Z_SַP~hk=LU0adM|=Y-Ͱel_nsG[Qɠ榆`Xr4J&@P}ߊ;d 0$5BsCTVBBCEw?|sݍ(4gg=c%kE"D+].Z~zX$DD x>9溇.]$ZNAxUB(6ϙE GpQ|}4;uP$Ȗ[I(h& "a~^C\wRI4ڶ9tcU؛q?NܧO' dgF.annA{xM Ͽn9$U)b(x2NuF`r"H$;KVCr(B w(D?f;E~9u.6mcgY׶BEm IBOPh z vML bauۮT*[풻q'9FO!jFu/Kt%{egЁ"μ 2ӛpgo>,jgʮg`|,q`ɵ"toAӮ3q@=--Kkh쎫@kjgTyדJ]uٕʫKA'~8."Rλ:c\cā#>gx vhY9c߱C3k~{a:1. 9҃YquKv3ޖ$8<+훯س{gcH}0[XP_Ԗ\>P@vhh-sHFjᬋ@힩ƦxN?A\zQ,j)DO֬bi( |0 \}ukN}MYXiXzx..eҨ7wI@,?a /8~5?97 v#]>MNf߉m=,Κ?7rBBkeS-J B er<0 P׌qx&c^fz}]M59v\wt+L)\w71䵻o$5pfг'h@Q(h$Kxa 2lC*XS+u5 +!l$ Fk$FBk FkFBk$FkFBk$Fk Fk$FBk Fk Fk$FBk FkFBk$oz6慱H Mx^#!ֈ5bX# `OIJ6\:/5C=Y6+(zCp/)+,U9Knf߇o њS+ي=}K4O1`ély~&~0B-]gD?=%'XS,78Nv̊Оy}h0hǥe^V"-ʊ#7\:u찞tXᷔN}Ўяw}5.ye\fufs5fGюyPWQIXeɀA7ё$!$$t A,&>pc7);.|N-˱sk*13U}! Ʃh{__w%-Hh.=^E.>~{bckhcL0pZ cְFSu T /a+[ew-| i6S$k籈dժd,+uJ:y!Q=Ksǜv\[^P>`(iTى,Rׅ^ i~ Ç͉$^g/ ->Cv K3/[{̙#fHL6X\ R//hrBYvK1L7xgBYOho`}C9:8,t}(P<#Ru9$JI\VP.+IkT;xl-Q'[*A6+SH ƌ\q'."O+-d){V =lRCVCfrljH͉ݲM@P;m2qJ#R-لJE:!c7;D:Ƒd]Jrf+%aڴ5kkgװ"*+0ҤW0>f%מS1 TnVdnى:EٔFC3N,aiNe[qnb~?\M73[Vљؖ9ԖK^Us3=O=WQϲt[2i"kT#xQ7eYbSus>BDt34ꕣK/o~ ~WSpNBlwgWx/l;u7 AzzC׿O<']q~T͡'ىznds_fᩞG~IH;駏b 뚝Tޔ[D) q-/ WA?^\*땙o`Mv9z5hjHSݺѬV{[JҙEe&MigRnuuʹa<:8ۗ{B8S=%5oV+1}m=#/x]^SYfk X_zkEJ0rR4`9\hޛyp}%rb1CnbWll(]u2JҜRKƸXB+Nńj*t7 l͢paFRTTx\uU% :n@Rklnb#7'mwfehVWLH>}4&zZ(-",=+|'a ̏Z=<]s7ǻ=XozV<~_{{"=6} sKK...XCYur.==kKN:k4~%ju;G\r\5|+׹ύ.5>% fҁ9E3\w_wwS|pQ(u׿u.]wfvBhפ3Re1Bd!= yH𡥸c7eVl^{`vjwwҸ-F"]AEĵ-u/^I+>uvZ&n[Go<"0&<8>{7e@s/f3£l ^ԦduG*"sSD L#s󃒘p"7WL "hȨ( !bōS PAJl'34_ly`HCWd@/7F)LI`i1j,$}Ϥq*>eMԳ)~[a^ EkD m󀷶GDijX'sdP@a5hC𩵹2h~ qDp7ffPӽ' -)۱VeDž~QooV B|Yt~Lgap?_`{חIDDq(@FF1hJD@3W!,!b|B 򄯌H {1! ?@oڇia"_?;p' :H*H۳F$+m/L|Bc?ܖNIEUK܆5i_5Z&Xk2kFn^`vvf&KK u'묝@!o ?q%i߯>%ì`}Bsn߲q lz@Q֚XlO<}uf,YRCX| }Lhc̻uG$ 6A|<_OI %KP$9 N tr `%vxkgwg ;Xl d;o0|ƙEmPT XMLâJFZGKŹ`)atCIS~??aF,.(a>rxx9_ԭH2/?\3,w}=&kʨR;*_+\*5 qMUnH0s}Yo65cS6[*4jߧ>}:# 5đ&Z=g4Hդu i!z-Pd"',^Ap Oji)ZS8B &DH A<ԍX9iuZJzf-IR&Q).=̖Ҟ_,(lڋʼn*?$_V=Rɋ%U?x3ywSV3ʤGJKP_ׂ8告uÚA"qəFsX3+ޘܫX4獯'oD~_ nϱpy2o%uKw υ\W= zYwasšg,{ycQ>ff~E(&~ȸ딛?rUDݫ)_ΐϐJHv\hYM \zǻ_Q'f.{viKE'1\3)!gC k k kbóu8<IENDB`homebank-5.9.1/doc/images/56filter.png0000644000175000017500000000511314617624320013160 PNG  IHDR8 ~PLTE4C߳͸ŵH9Ku@d뵵iefҽ=j蟺ͮĻɷ:<>ȿϚ©Vė=CJC]۞i;ŒH<4ugNB&*GQóʶgXQ_T`xRLvѹhX]WXi6DVUwȭ}\/49~XS~^ڷ¼ꪳŜUUbȭ[hvP~}cLr^ѵѳeJŖwYomc\U?7}Q9"L;So¼Ժɸs-Fr儃үt[طuyF&4eѬMLIILYڬn>dtf}Vv G5 )Pj] 鶴)/|拔o3yJO׌xQT*Tml_U.N a \1KۺGҊxCKsf/7ľȣǶ. r=w翳>S35^>he5-9y%׎}~o#}7Zٿ:ʎ۽`u#7󫎿$_T:*d۽҅As^ۓSJsп)Ʋ~:ߙ}EKqXd* ܧ =Y]^Ro,Ev]d7rW.|{#Zh=;Ĩg'@,ui:ÕSDqjvָ^Fθ Ri3?Rjb]q$eRw[dM~B Njڌ^Hv/c. \x%zx}d ) L*,,f%ÜLϻyHFL;*.{HKZe 8u@Kޝdj^?{'[sOGOK'? ;:@RScgng'Y{Vb <U' tV[YvE /{'%+G)kgT{zg ]ՅeNHP3'%`5uY flOs>nw _<'>~adrrga=Bv >7C'%MOE~>צQS 4PkeĆLnV^KTHkQ}p _gjDpa'߮p譃G] P;rO.QnQw6$d䐐0y{l}Vz\bjSnxØV Ⱦ.|xTVfަ 186Le?Zl7;5"xeOE:ٱP`W3-+=l¡${pB~¸(\.karV`/*5 d25]wYo^ƬRKubPF cTVnIĘt?²MoZN qHZN.QL^t mI\~ކgam<@,Q 91gi lzG7݄i\oвqdIhh, Balance report

Balance report

The balance report is an analysis part focused on the balance evolution during the time. A specific purpose will be to visually control your balance.
The transactions are displayed ordered by date in order for you to check the balance according to the minimum set in the
account window.
The results are displayed into a list or with a line chart, giving a visual view of the account flow.
Void transaction is excluded here, Remind transaction excluded is depending on the preferences. At last, when you select several accounts, transfer with both source and destination account into the selection are excluded.

Window call

  • from the main window-menu: Reports / Balance
  • from the main window-tool-bar.

Using balance report

Display

Interval select the interval to display result for
  • Day
  • Week
  • Month
  • Quarter
  • Half Year
  • Year
Show empty line force to show interval line with 0 sum, which are hidden by default
Zoom X select the X zoom factor in real time

Date filter

Range fast select a date with predefined range
From / To specify date bound limit to restrict the results to

Account filter

Select quick change of the selection:
All / None / Invert
[Account listview] the list of account to include into the result
Include transfer new when there is several account selected, also include transfer

Tool bar

The tool-bar is the main control of the display. All tool-button have a tool-tip that will help you know what action will be launched when you click on the tool-button.

Info

2/28 under £ -500.00
When a single account is selected AND the interval is day, what is displayed here is the number of overdraft/total transaction and the overdraft limit of the account.

Result list

The result list display according to the current selection.
When a single account is selected and the interval is Day, overdraft lines will be displayed in red.

Transaction detail list

The transaction detail list will show every transaction of the selected item in the above result list.
The columns visible in that list are those configured in the account window.
By default it is not visible. Use the tool-bar 'Toggle detail' button for changing this.

homebank-5.9.1/doc/use-import.html0000644000175000017500000001407014742663146012551 Using the import files feature
HomeBank User manual

Using the Import files feature

HomeBank is able to import one or several downloaded statements from your bank or credit card, or maybe exported from some other programs, in the following formats:

Recommended: .OFX or .QFX
(Sometimes named Money™ or Quicken™)
Supported: .QIF
(Common Quicken™ file)
Advanced users only: .CSV
(format is specific to HomeBank, see the documentation)

 There is a UI limitation on the number of account you can import here, as there is no scrollbar on GtkAssistant, so you may need to split your import file.

Step 1: Open the import assistant dialog

From the main window:

  • Select the File/Import... menu
    The import assistant will open, with an empty file list

  • By dropping one or several file to import
    The import assistant will open, with the file dropped already into the file list

then you will be guided you through the different steps for importing the files

Step 2: Select file(s) to import

You can again drop some files here, or use the +/- button to pick up some files to import.

Step 3: Adjust what to import for each account

For each account, you will be able to select what to import with several option, depending on the format.

Import xxxxxx into

where xxxxxx will be this file or this account. If you put the mouse over it, you will get some information on a tooltip: Name, Number, File, Encoding.

Target account

  • <New account (global)> : is a global account to merge several file/account
  • <New account> : import in a separate account
  • ... all your existing account ...
  • <Skip this account> : to completely skip the account

Automated account target

Except for .CSV, HomeBank will try to match the account by its number at first, then by its name.

For this to work, of course the number (for OFX) or name (for OFX/QIF) into HomeBank must be a substring or exact string of what it is into the file to import. For example:
if your account number is 1234 and the number into the file is 1111 666 1234 77 it should match and preset the target account for you.

If the file do not contains any reliable account information, you will get a icon right to the target account dropdown.

Import options

Depending on the format, you will have several option, similar to the one you have configured into the preferences.

Transactions to import

Into this listview will be displayed all the transaction for the current file/account. You can check/uncheck each transaction one by one or select all, none, invert option, and valid to uncheck again possible duplicate.

By default, HomeBank will detect exact duplicate (within the current import), and depending on the target account, the similar transaction into the target account, uncheck them for import and mark them with a icon.

Possible duplicate note:
If the file is an OFX/QFX file, the FITID will be used, identical FITID means a duplicate (since 5.5.1).
Otherwise a simple comparison of value: date, amount, memo, payee and category identical means a duplicate.

Similar transaction in target account

This section will be showed for transaction suspected to already exists. You can also change the date gap here. The similar detection refresh when you change the target account or the date gap.

The detection of similar transaction is done in the following order, according to the date gap (default is 0 days = exact).

  • same account
  • same amount
  • same date (with the configured tolerance)

Step 4: Confirmation

At last, the synthesis of what is to be imported, for each account.

Option

This option is to import transaction as pending status

Run automation

1) Enrich with payee default
this option will use the fill option you have set into each payee

2) Run automatic assignment rules
this option will run the assignment rules

homebank-5.9.1/doc/00-previously.html0000664000175000017500000007570714736553223013120 New features
HomeBank User manual

Previously on HomeBank...

To review the complete list of changes, please use the Help > Release Notes menu from HomeBank program.

New features in v5.8 New features in v5.7 New features in v5.6 New features in v5.5 New features in v5.4 New features in v5.3 New features in v5.2 New features in v5.1 New features in v5.0 New features in v4.6 New features in v4.5

New features in v5.8

Favorite saved filters

From the statistic report and the show all transaction window, you can now manage a list of favorite filters, saved for each of your wallet. This will ease the grouping you want to show those reports. Read the favorite filter usage for more details.

↑ Back to Top

Tooltip of active filters

In several report windows: statistics, trend time and balance, there is now a tooltip that shows the active filters, as sometimes there are implicit filters you cannot control, and this will help you understand what the results are composed of.
The whole area between Filter and the filter button will show the tooltip if you put the mouse pointer over it.

↑ Back to Top

Color flags

There is now 6 color flags you can assign to transaction, colors are Red, Orange, Yellow, Green, Blue and Purple. The assign can only be done from the ledger window using the context menu or some shortcuts CTRL+x. There is also a new quick-filter to easily filter on flags.

↑ Back to Top

Life energy

Life energy is a measurement of your expense by hours of work, based on you estimate earning by hour. This is an alternative and interesting way to consider your spending.
After you have filled your estimate 'earn by hour' into Properties dialog, you will be able to toggle on/off an additional (..h..m) beside the Expense into the ledger window, there is a toggle toolbar button on the top.

↑ Back to Top

Payment re-order & hide

A new preference is available for you to re-order the payment method and hide the ones you don't use.

↑ Back to Top

New features in v5.7

Cash Flow Forecast

A cash flow forecast is now available for the following report:
- home report
- statistics report

The capture beside is a graph of this year (2023), with a forecast of 8 months ahead, taken in may 2023.
Read forecast lexicon for more details.

↑ Back to Top

Budget Report over time

It is now possible to view the budget report over time (month based).

There was also a few changes made to this report:
- a Fulfilled column was added into the listview
- the date range selection is now bounded to:
From: month/year
To: month/year

↑ Back to Top

Chart drill down for categories

Chart drill down is now available for report that display categories, including the budget report. It is available as well for donuts chart, than bar chart, and you can also click on the legend text.
If a sub-level is available, the cursor will change to an hand, and you must click to drill.
Then to go back use the breadcrumb and click back on Category.

This new feature, also leads to the removal of Subcategory selection in profit of a 2 level listview onto report, with expand/collapse for categories

↑ Back to Top

New Home Total and Time chart

The historical Where your money goes, showing the top x spending by category is replaced by 2 report:
A) the total report, which can display the following, you can select using the gear icon button:

  • Top X Spending / Category
  • Top X Spending / Payee
  • Top X Spending / Account
  • Account Balance
B) the time report, which can display the following, you can select using the gear icon button:
  • Spending by Month
  • Account Balance
  • Global Balance
This report also show a forecast, when it is enables and in date junction, see forecast lexicon for more details.

↑ Back to Top

New features in v5.6

Charts for Over Time Statistics report

The Over Time part of the Statistics report was introduced into v5.3 as a standalone table view.
This version officially introduce the graph part of this waited and powerful feature, so you now have both a Stack bar graph and a 100% Stack bar graph, thus those two were already released with a back-port since v5.5.4

With this version you also have a Balance mode option when you select the Account as a source

↑ Back to Top

Filter redesign and improvement

The filters into HomeBank was completely rewritten in preparation for future changes.
A lots of changes have been made to the filter dialog:

  • reorder of the switch part menu on the left + added a visual indicator if it is active
  • each part has a separated On/Off button, then an Include/Exclude radio-button
  • Status part was split to separate Status and Type part with ability to filter on useful individual values of each
  • Tag is now a filter part itself, with a checkbox list-view like payee, category or account
  • Amount/Text were regrouped into the same part

↑ Back to Top

Internal transfer with different currencies

Transfer with different currencies are now permitted. When you select transfer type in the Transaction dialog you have an additional amount widget.
this amount is prefilled only when you Add and if:
- the source account is into base currency
- the target currency have a conversion rate
otherwise you have to fill it manually

↑ Back to Top

Multiple item selection for trend time report

The Trend Time Report was until now restricted to display one item at a time or all the items.
Now, you have a list of items (Account, Category, Payee, Tag) so that you can use combination of items to be computed and displayed.

↑ Back to Top

More date range option and redesign

The date range widget was redesigned and enriched with a lot of new entries.

It is divided in 2 vertical part and 3 columns.

  • The top part show preset for past / present / future
    day, week, fortnight, month, quarter, year.
  • The bottom part have the other preset
    Last xx days, 12 months and the new '30 days around'.

↑ Back to Top

Hide payee/category to lighten the lists

As some items may become outdated, it is now possible to hide payee/category from the list or drop-down widgets.
For that, new 'eye hide' buttons were added into both the payee dialog and category dialog so you can control what to display or not.

By default also on those dialogs, the count column are hidden as well and a show usage button was added.

↑ Back to Top

Feature to lock changes of reconciled transactions

This feature enables to lock the reconciled transaction for any changes, this is a missing protection I wanted to add for a while and asked by some users.
By default it will be enabled, but if you want to get back to the actual behavior, you have a preferences into the transaction section as well.
There is also a ON/OFF switch into the account window to quickly enable disable it for quick edit.
At last, when this feature is on, you cannot edit reconciled transaction from any detail report list.

↑ Back to Top

Assignment dialog changes and improvements

To improve and ease the management of a long list of assignment, some changes have been made to the assignment dialog:

  • the dual view dialog was changed to a single list-view with more columns
  • you can sort the list-view on every columns
  • a quick search input to filter is available, as usual with shortcut CTRL+F, then ESC to empty
  • editing is now done using the edit action button or by double-clicking on the assignment line
  • the drag and drop feature was replaced to a more convenient set of move [up][down][to] action buttons

Also you can add an amount into the condition

↑ Back to Top

New features in v5.5

Print for graphic report

The report graphic charts can now be printed, or preferably exported as a pdf, and this directly from the report dialog.

↑ Back to Top

Your account new columns and display choose

There was a lot of changes in 'Your Accounts' list:

  • Bank column renamed to Reconciled
  • Added a Cleared column
  • Added column to display to be configurable, with the knob on top left
  • Added a tooltip to display:
    - the remaining amount until overdraft
    - the remaining amount before the maximum
    - the last reconciled date

↑ Back to Top

GTK override for font size and dark theme

You can now override the GTK font size and set the dark theme directly from the preferences.

↑ Back to Top

New features in v5.4

Mass assignment creation

Like it was possible to create a template from selected transaction into the transaction list, it is now possible to create some assignment as well.

↑ Back to Top

Popup menu on transaction list

Now a right click on the transaction list pop an action menu

↑ Back to Top

Multiple line scheduled post

Now you can select several line in the main window scheduled transaction list, and post or skip.

↑ Back to Top

Reworked the welcome dialog

The welcome dialog was reworked: added an icon, re-layout, show next time checkbox to enable or disable to show it at start

↑ Back to Top

New features in v5.3

Added a transaction type

The transaction now have a strong type: Expense/Income/Transfer
This bring more clarity, remove the Internal transfer payment mode in profit of the Transfer type. And also the Transfer payment was renamed Bank Transfer.

↑ Back to Top

Added group account

A free typing group was added so that you can reorganize 'Your account' list in the main window the way you want and independently from the historical account type or institution name.

↑ Back to Top

Statistics report shows items over time

The first part was ready to deliver into this release, this is the table view which enables to summarize items by interval of:

  • Day
  • Week
  • Month
  • Quarter
  • Half Year
  • Year
A future release will bring the stacked charts in addition to this feature.

↑ Back to Top

New features in v5.2

Export transaction as PDF (for print)

You can now export the transaction of a single account to a PDF file. This is the first part of the print support into HomeBank.

↑ Back to Top

List of all transactions

From the main window transaction menu you can now open a ledger window with all transaction of all accounts.
Most of the action are available here, except:

  • export to .qif, .pdf
  • the duplicate finder
  • convert to Euro
  • auto assignment
  • the running balance is not showed

↑ Back to Top

Import of multiple file with more option

The import process was completely rewritten starting from zero, with all your wishes in mind. The goal was to enable more flexibility, like import several files at a time and to simplify the access to the option. Adding to this, I added some more duplicate/similar option and a few other refinements. See the import process for details.

↑ Back to Top

A real backup mechanism

A real backup mechanism is now available and enable to create a real backup file once a day, with a configurable occurrence.

↑ Back to Top

Duplicate transaction finder

A duplicate finder is now available from a single account ledger window in the tools menu. The feature just mark in place the transaction, in bold for the one to keep and strike the potential duplicate called similar.
the similarity is evaluated on: amount, date (+gap).

↑ Back to Top

Default template for each account

On each account you can set a default template transaction, so that every time you create a transaction on that account, the template is used.

↑ Back to Top

New features in v5.1

Multiple currencies

You can now manage accounts in different currencies. When opening a file from a previous version of HomeBank, you will be prompted to choose a base currency.
Then you can add several currencies with the currencies dialog, update the exchange rate on-line, and assign different currencies to every account.

Take care as the currency formatting option are now in the currencies dialog.

↑ Back to Top

Payee default category and payment type

Payee now enables to set some default value for category and payment. So when you add a new transaction, choosing a payee will automatically fill the category and payment. When you edit a transaction, choosing a payee will complete one or both those two fields if they are empty. See the payee dialog.

↑ Back to Top

New feature for automatic assignments

New capabilities of the automatic assignment are available:

  • assign payment
  • overwrite is now possible
  • regular expression can be used

See the assignment dialog.

↑ Back to Top

New features in v5.0

Cleared status to enrich the transaction status

A cleared status for transaction was added, to enrich the existing status. You now also have a Status column into the transaction list to display a new set of status for transactions.

↑ Back to Top

Stack chart for budget

I finally found some time to code a new graph report dedicated to budget, please welcome the stack chart that clarify so much the budget report !

↑ Back to Top

Quick search for list

For more detail on this, please click here.

↑ Back to Top

New features in v4.6

Quick search for transaction

In the transaction window, right to the balance you will now find a quick search input to fast filter transaction based on text column.

The search apply to all columns except status, date and amount columns.

↑ Back to Top

Configure fiscal year boundaries

Starting 4.6, you can define your fiscal year start/end date.

Previously the fiscal year was aligned to the calendar year, starting on 1st January and ending on 31 December.

↑ Back to Top

Scheduled transaction date before or after weekend

Insert a scheduled transaction can be controlled to avoid insert on weekend and to automatically change the date to before or after.

↑ Back to Top

Ability to individually play scheduled transactions from the list

You now have 2 buttons below the scheduled list on the main window, one to Skip, one to Post, and this for every scheduled you want to manage manually.

If the scheduled transaction can be posted as it, it will be, otherwise if the amount or target account is not prefilled, you will be prompted with the transaction dialog to make any changes before posting the transaction.

↑ Back to Top

New features in v4.5

Ability to change language

You can now select a different language than the one of your system !

↑ Back to Top

Where your money goes

Top 5 Spending report !

Top 5 spending category new report can be optionally displayed into the main window. The date range can be configured within the preferences, and changed main-window too.

↑ Back to Top

Category split for transactions

This is a long time wish which is now possible into HomeBank. You can split non internal transfer up to 10 categories. A new button was added on the right of the amount widget into the transaction dialog.

↑ Back to Top

New filters for account window

The account window now have a new filter / information bar.

Here is a description from left to right:

  • Account title
  • Date range filter
  • Type filter: expense, income
  • Status filter: uncategorized, unreconciled
  • Reset filter button
  • Number of items displayed with total amount
  • Number of transaction selected and the amount sum

↑ Back to Top

Scheduled append until a day of month

You can now insert transaction within a specific day in the next month.
So for example, you can add until the 28th of each month, the selected date excluded, which mean transaction that should occurs on 28 will not be inserted.

You can keep the previous behavior to add xx days into the future from today's date.

↑ Back to Top

homebank-5.9.1/doc/TODO0000644000175000017500000000141111023413036010216 1. Introduction 2. Concept . The balances fundamentals . The Archives . Minor currency (for €uro countries) 3. Usage . HomeBank: First start . Main window . Operation book window . Working on Operations . Add/Import operations . Automate recurrent operations . Create an archive from an operation . Validate operation with my bank statement . Multiple field edition on operation . Remind operation 4. Dialogs . Properties .1 Accounts .2 Payee .3 Category .4 Archives .5 Budget . Operation filter . Settings .1 General .2 Interface .3 Display format .4 Help system .5 Euro options .6 Report options 5. Reports .1 Statistics .2 Budget .3 Overdrawn .4 Car cost 6. CSV file format 1. Payee 2. Category 3. Budget 4. Operation homebank-5.9.1/doc/win-statistics.html0000644000175000017500000001350714775006445013435 Statistics report
HomeBank User manual

Statistics report

The statistics report is the main analysis part of HomeBank. Its will allow to focus on your financial flow in the details instantly and dynamically by filtering on every axis and displaying the results for a period.
The main view axis is on Category, Subcategory, Payee, Tag, Month, Year, with a possibility to focus on Expense, Income, or Balance; then a complete filter is also possible on transactions, see the filter dialog for details.
By default the internal transfer are not included into the computing of this report. To enable this you have 2 options, set the default preference or you can change with the filter dialog.
Results are displayed in 3 ways: list-view, column chart, donuts chart.
At last, you can display every transactions detail of the selected view (Category, Payee, Month, Year).
A tool-tip will appear on every column/donuts chart after a little delay,or by pressing the left mouse-button.

Window call

  • from the main window-menu: Reports / Statistics
  • from the main window-tool-bar.



Using statistics report

Display

Mode Total: will display the total expense/income/balance for the period
Time: will display the total per interval for the period
View by specify the item the result should be computed for:
  • Category
  • Payee
  • Tag
  • Month
  • Half Year
  • Year
Balance mode (view by Account only)
the result will be the balance instead of simple expense income sum.
Zoom X (view bar/stack only)
select the X zoom factor in real time

Specific to Total Mode

Type filter the result to:
  • Expense
  • Income
  • Balance
Items with no results, or equal to 0 will not be displayed
Sort by amount sort the result by amount instead of the default order alphabetical for Category/Payee or chronological for Month/Year

Specific to Time Mode

Interval specify the interval when display mode by Time:
  • Day
  • Week
  • Month
  • Quarter
  • Half Year
  • Year
Forecast enable/disable forecast
See forecast lexicon for more details.

Date filter

Range fast select a date with predefined range
From / To specify date bound limit to restrict the results to

Tool-bar

The tool-bar is the main control of the display. All tool-button have a tool-tip that will help you know what action will be launched when you click on the tool-button. The icon appear or not depending the context.
At the end of the toolbar, there is an export button that enable Result or detail of transaction to copy to clipboard or export into a CSV file

Total

This is the grand total for the period: Expense, Income, Balance.

Result list / Column chart / Donuts chart

The result list display the computed amounts according to the current selection and filter.

Transaction detail list

The transaction detail list will show every transaction of the selected item in the above result list.
new In the time mode view:
- selecting a specific cell will display related content (View by x Interval)
- selecting the first column, or Average or Total will show globally (View by only).

The columns visible in that list are those configured in the account window.
By default it is not visible. Use the tool-bar 'Toggle detail' button for changing this.
You can also default keep it visible in the Preference dialog

homebank-5.9.1/doc/use-budget.html0000644000175000017500000000571613560017662012511 Usage - Budget
HomeBank User manual

Using the Budget feature

The Budget feature allows you to monitor your spending by category and subcategory compared to a budget preset.

Step 1: Select the accounts to exclude from the budget

By default, all accounts are included into the budget.

Open the Manage Accounts dialog from either the main window-menu: Manage / Accounts, or from the Manage Accounts icon on the tool-bar.

To exclude an account in the budget tick the 'exclude from the budget' option for each account on that you would not like to include in the budget.

See Manage Accounts for more details.

Step 2: Set a budget amount against each category

Open the budget dialog from either the main window-menu: Manage / Budget, or from the Budget icon on the tool-bar

Enter a budget amount against some category that you want to include in the budget. If the amount for a category is 0.00 it will not be showed in the budget until you tick the 'Force monitoring this category' check-box at the bottom of the budget dialog.

For example, select the category 'Cash Withdrawal' and enter -50.00 in the 'Budget for each month' text box to allow spending up to 50.00 in the category 'Cash Withdrawal' each month.

See budget dialog for more details.

Step 3: View the budget report

Open the budget report window from either the main-window-menu: Reports / Budget, or from the budget report icon on the tool-bar.

The Result column shows the difference between the amount spent and the amount budgeted.

See the budget report for more details.

homebank-5.9.1/doc/menu-ledger.html0000644000175000017500000001066714774454723012665 Main window menu
HomeBank User manual

Account window menus

The menu is the start of every actions on transactions.

Depending on context (Show all transactions), some menu may not appear.

Account

Export QIF... export transaction to a QIF file
Export CSV... export transaction to a CSV file, see CSV file format
Print... export transaction to a PDF file (for print purpose)
Browse website... if you have filled the website URL for your account, open browser to its website
Close... close the account window

Edit

Copy copy the selected transaction to the buffer
Paste paste the buffer into the transaction list
Paste (today) paste the buffer into the transaction list changing the date to today's

Transaction

Add... open the transaction dialog in Add mode
Inherit... open the transaction dialog pre-fill it with the selected transaction
Edit... open the transaction dialog in Edit mode
Status > None change the status to none
=> confirmation will be asked if already Reconciled
Status > Cleared toggle cleared state if possible
=> confirmation will be asked if already Reconciled
Status > Reconciled toggle reconciled state if possible
=> confirmation will be asked if already Reconciled
Multiple Edit edit multiple transaction value at once, see multi-edit dialog
Create assignment... create a prefilled assignment from the selected transaction(s), to be edited later into the assignment dialog
Create template... create a template from the selected transaction(s), to be edited later into the template/scheduled dialog
Delete... delete the selected transaction(s)
Find find transaction by giving focus to the quick-search widget

Tools

Mark duplicate toggle the view to duplicate finder mode
Mark category sign toggle the view to check for amount and category sign don't match
Check internal transfer... run a consistency check on internal transfer for this account
Auto. assignments run automatic assignment rules on the current account
Filter... open the filter dialog
Convert to euro... After a confirmation, this will convert the account to euro major currency according the preferences currency set
homebank-5.9.1/doc/menu-main.html0000644000175000017500000002021414617647363012334 Main window menu
HomeBank User manual

Main window menu

The menu are the main start point of most HomeBank actions. Here is a short description of it:

File

New clear all, after a confirmation if change were made to the current wallet
Open... open a wallet, after a confirmation if change were made to the current wallet
Open Recent show the list of recent file history
there is a Clear menu at the bottom of this list
Save save the current wallet
Save as... save the current wallet with a new name
Import... open the import assistant dialog
Export as QIF... export all data to QIF format
Revert revert to the last saved version of the current file
Restore backup open the dialog to restore a backup of the current file
Properties... open the properties dialog
Close close the current wallet
Quit exit HomeBank

Edit

Preferences... open the preferences dialog

View

Toolbar Toggle display of the tool-bar
Total chart Toggle the display of the total chart
Time chart Toggle the display of the time chart
Bottom lists Toggle the display of the scheduled/future/remind lists
Minor currency Display using the euro minor currency

Manage

Wallet... open the properties dialog
Accounts... open the account dialog
Payees... open the payee dialog
Categories... open the category dialog
Tags... open the tag dialog
Scheduled/Template... open the scheduled/template dialog
Assignments... open the assignment dialog
Currencies... open the currency dialog
Budget... open the budget dialog
Budget (table view)... open the budget dialog in table view mode

Transactions

Show all... open the account window to show all accounts transactions
Show... open the account window for the selected account
Add... open the transaction dialog
If you select an account from 'Your accounts', it will be preselected in the dialog.
Post scheduled post any pending scheduled transaction according the current rules
Set scheduler... open the properties dialog to setup the scheduler

Reports

Statistics... open the statistic report
Trend Time... open the trend time report
Balance... open the balance report
Budget... open the budget report
Vehicle cost... open the vehicle cost report

Tools

Show welcome dialog... Open the first start using HomeBank dialog, like you were using HomeBank for the first time. This will let you choose among several action to perform, like creating a blank account
File statistics... Open the file statistics dialog, showing the number of account, transaction and so on.
Anonymize... After a confirmation, this will change every label to anonymize your accounts, payee, categories, memo, etc.

Help

Contents Open the local help (on disk)
Get Help Online... Open a browser to the support page
Check for updates... Open a browser to the download page
Release Notes Open the Release notes that keeps any change made to each release
Report a problem Open a browser to a tutorial on how to report a bug
Translate this Application Translate to your language (on-line)
About Open the about dialog
homebank-5.9.1/doc/Makefile.in0000664000175000017500000005100315006363044011607 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(helpdir)" DATA = $(help_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs \ TODO DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = images helpdir = $(datadir)/homebank/help help_DATA = \ help.css \ $(wildcard *.html) EXTRA_DIST = $(help_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-helpDATA: $(help_DATA) @$(NORMAL_INSTALL) @list='$(help_DATA)'; test -n "$(helpdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(helpdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(helpdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(helpdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(helpdir)" || exit $$?; \ done uninstall-helpDATA: @$(NORMAL_UNINSTALL) @list='$(help_DATA)'; test -n "$(helpdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(helpdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(helpdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-helpDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-helpDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-helpDATA install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-helpDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/doc/dlg-cate.html0000644000175000017500000000717614617644776012147 Categories dialog
HomeBank User manual

Categories dialog

The categories dialog is used to add, edit and manage the categories of the current wallet.

Dialog call

  • main window menu: Manage / Categories.
  • main window tool bar.

Using categories dialog

View buttons

Show hidden Toggle show/hide of hidden categories
Show usage Toggle show/hide usage columns
Type switcher Toggle the category list with Expense/Income categories only

Quick search

A quick search text filter. You can use CTRL+F to activate and ESC to clear.

Menu Button

Import CSV Import and merge some categories from a CSV file
Export CSV export the entire categories list into a CSV file
Delete unused delete all unused category

Please refer to CSV file format for the file description.

Categories list

display category name and usage count (# column)
the count in parenthesis is the usage of the sole category, when it has some subcategories
the usage count:

  • txn: transaction/split
  • cfg: payee default category
  • cfg: template/scheduled transaction
  • cfg: assignment rule
  • cfg: default car cost usage is also by default 'No category'

Edit
To edit a category, double click on it.

Action buttons

Add toggle the category name widget visible/invisible
Delete delete the selected branch or categories, i.e. if a category is selected, all subcategories will be deleted
Edit edit the active category.
Move/Merge move or merge the current category to a new one you will select
Hide/Show toggle the active category to be visible or not into drop-down lists

Category name

type a new category name here and press return to add.

Subcategory name

- select the category to add subcategory to in the category list
- type a new subcategory name here and press return to add.

homebank-5.9.1/doc/00-intro.html0000644000175000017500000000601514617644231012010 Introduction
HomeBank User manual

Introduction

«HomeBank» is free software. It's an easy personal finance software that will help you managing your personal accounting. It is designed to easy to use and be able to analyze your personal finances in detail using powerful filtering tools and graphs.

How HomeBank can help me doing my accounts ?

The first reason is that I want HomeBank to be simple and intuitive:
=> You do not need to be an expert accountant to know how to use it !

Also here is some of his strengths:

  • Easy import of OFX, QFX, QIF files with duplicate detection
  • Easy management of transactions: bookmark, inheritance, filter, multiple edition, scheduling, reminder
  • Easy management of payees and categories: automatic assignment, direct add from the ledger, auto-completion
  • Unique fields for transactions: visual payment/status, payment info, tag
  • Import and export of many parts of the data in a specific CSV file format

How HomeBank can analyze the use of my money ?

HomeBank can anticipate future costs and also helps to know where your money comes from, but also more specifically where it goes !

  • Anticipate future costs: scheduled transaction inserted before term, future balance
  • Dynamic, easy and powerful reports tools with graphical charts
  • Monitoring the balance in time and alert on bank overdrafts
  • Simple budget and vehicle cost analysis

I'm new, where do I start ?

If you are new to HomeBank, we suggest:

  • You read the lexicon, it contains a lots of essential information and concept
  • You read other section you may be interested in of this documentation
  • You open and play with the Example file, to do so, use the Tools Menu in the main window, then Show the welcome dialog, then click on the Open Example file button

If you need help, see the support page

Ask for feature and suggest your ideas

Finally, HomeBank is not only open source, it will also be open to suggestions and feature requests from users.
That's the reason why HomeBank is what it is today.

So... Do not hesitate to ask and suggest !

homebank-5.9.1/doc/frm-main.html0000644000175000017500000000117215006363130012132 HomeBank - Documentation in English

HomeBank logo

Version: 5.9.1
Compilation date: May 6th, 2025


© Copyright 1995-2025 by Maxime DOYEN
All Rights Reserved

This program comes with absolutely no warranty.
See the GNU General Public Licence, version 2 or later for details.

homebank-5.9.1/doc/dlg-wall.html0000644000175000017500000000551014775771222012150 Properties dialog
HomeBank User manual

Properties dialog

The properties dialog is used to edit, modify and manage the wallet properties.

Dialog call

  • main window menu: File / Properties

Using properties dialog

General

Title the title or owner name for the wallet, this will be used as the main window title.

Scheduled transactions

Mode the maximum post date (MPD) can be set with various option:

  • Due Date
    trigger on due date
    Ex: today is Apr, 18
    MPD = today
    > pending with next date [* | today], will be added
  • Next Payout
    trigger is every XX of each YY month (when you receive your Payout)
    Ex: set 10 of each 1 month, today is Apr, 10
    MPD = 9 of each month
    > pending with next date [10-ThisMonth | 9-NextMonth] will be added
  • In Advance
    trigger is XX days in advance
    Ex: set 10 in advance, today is Apr, 18
    > pending with next date [* | Apr, 28], will be added

Life Energy

Earn by hour the amount estimate you ear by hour. This is to evaluate the hours you spent to buy things, see life energy for more info.

Vehicle cost

Category the default category selected when you open the Vehicle cost report.
homebank-5.9.1/doc/dlg-filt.html0000644000175000017500000001326614737010472012145 Filter dialog
HomeBank User manual

Filter dialog

The filter dialog is used to adjust the filter transaction criteria, it is divided into several section.

Common element

On every section, you will have the following widget that control the way of working of the match criteria:
Option
  • On/Off = disable this filter section
  • Include = include the selection or items
  • Exclude = exclude the selection or items

Always show

Remind force remind transaction to always be displayed
Void force void transaction to always be displayed
Added force transaction in 'added' status to always be displayed
Edited force transaction in 'edited' status to always be displayed

Date

Date filter is always active

Range fast select a date with predefined range
From the date minimum value
To the date maximum value

↑ Back to Top

Type

Type

Expense / Income / Expense Transfer / Income Transfer

↑ Back to Top

Status

Status

None / Cleared / Reconciled

↑ Back to Top

Account / Payee / Category / Tag

These tabs all function-the same manner. You can filter these using a list of item, including or excluding the selected items.
The account tab is not showed when you filter from the account window, it is showed only from the other dialog.

Select quick change of the selection:
All / None / Invert
{Items} list with Categories / Payees or Accounts

↑ Back to Top

Payment

Select quick change of the selection:
All / None / Invert
{payment} see the lexicon for payment detail

↑ Back to Top

Amount

From the amount minimum value
To the amount maximum value

Text

Memo the memo string to search
Info the info string to search
Case sensitive set text search to be case sensitive

↑ Back to Top

homebank-5.9.1/doc/use-favfilters.html0000664000175000017500000000473414617645652013417 Vehicle cost
HomeBank User manual

Using the Favorite filters feature

When you start a new wallet, there will be no favorite filter set, you only have the unsaved (default) filter of the window.

Applying a filter consist of select it into the list, save, rename and delete are achieved from the menu of the widget

Create a new filter

You can snapshot the (default) filter you currently use at any time, by using the menu and Save as..., a prompt to name the filter will rise.
Please note that to avoid weird display, only the 20 first char will be displayed into the combobox, but the full name will be as a tooltip.

Edit an existing filter

To alter an existing filter:

  • select it into the list, this will apply the filter as well
  • click on the filter button and change the filter the way you want
    • if you close the filter dialog with [Use], the filter change but will not be saved, you can save it later with the Save menu
    • if you close the filter dialog with [Save & Use], the filter change and will be persisted

Tooltip

In several report windows: statistics, trend time and balance, there is now a tooltip that shows the active filters, as sometimes there are implicit filters you cannot control, and this will help you understand what the results are composed of.
The whole area between Filter and the filter button will show the tooltip if you put the mouse pointer over it.

homebank-5.9.1/doc/use-lend-refund.html0000664000175000017500000000667614611207755013454 Lend / Refund money
HomeBank User manual

Using the Remind status to follow up lend/refund money

When you lend money to someone or someone lent you money, you need to remind or track and remind this.
The Remind status of the transaction was designed for that. When a transaction is set to that status it will:

  • always be displayed into the ledger window listview (until you force not to)
  • will not be counted for balance, report and other stuff, as this transaction is a remind and not already a real transaction

Let's take an example on a way (there is others) to manage that.
So let's say you lend 50 £ to your best friend John Doe today Jan 1, 2000. You can have a dedicated transaction for that or this can be part of an overall transaction (if you pay for a group of friends/the whole family):

Step 1: Create the remind transaction

Input one or several Remind transaction per payee with:

Date01/01/2000
PayeeJohn Doe
CategoryFriend:debt/loan or Family:debt/loan
Amount+50 £
Info01/01/2000
StatusRemind
Memopayback for the restaurant

Do the same for any other lend you make that day or others days

Step 2: Follow up your remind transaction

As the Remind transaction are always visible, you can see it into the ledger window. In a near future I will add a synthesis in the main HomeBank window.

Using the report, you can easily track if the payee is at equity or not

Step 3: At payback, change remind to a real transaction

At last when you get money back, you just change the transaction status to cleared or reconciled and setup the payback date:

Date13/01/2000
PayeeJohn Doe
CategoryFriend:debt/loan or Family:debt/loan
Amount+50 £
Info01/01/2000
StatusCleared
Memopayback for the restaurant

You can change the category as well, add tags, or whatever suit your needs

Final note

This is a way of doing such tracking, some people reported using some accounts and internal xfer as well for complex tracking.

homebank-5.9.1/doc/use-vehiclecost.html0000644000175000017500000000607614617647240013554 Vehicle cost
HomeBank User manual

Using the Vehicle cost feature

An additional capability of HomeBank is to follow the cost of each of your vehicles: fuel consumption and other costs. It will for example display some cost globally and for 100 km/miles, and some other useful information.

Step 1: Create the vehicles categories

Create some categories for each of your vehicle. You can use categories or subcategories as well. Optionally you can set the default vehicle for the vehicle-cost report window from the wallet dialog.

For example, create an 'Audi 80' category:

Step 2: Fill some transaction with vehicle-cost data's

Modify or add some transaction with necessary data for the vehicle cost to work:

  • assign the category 'Audi 80' to every transaction for this vehicle, this includes refuel, maintenance, repair, insurance, or any others costs.
  • add the specific vehicle cost data into each refuel memo field transaction, as follow. The memo field can also contains other texts as well.

d=xxxxxx the odometer at refuel time
ex.: d=92458
v=xx.xx the fuel volume for a full refuel
ex.: v=45.23
v~xx.xx the fuel volume for a partial refuel
ex.: v~15.41

Step 3: View the results into the vehicle cost report

Open the vehicle cost report, select 'Audi 80' Vehicle and view the results.

homebank-5.9.1/doc/dlg-arch.html0000644000175000017500000000761114740724141012120 Scheduled/Template transactions dialog
HomeBank User manual

Scheduled/Template transactions dialog

The Scheduled/Template transactions dialog is used to add, edit and manage the scheduled / template of the current wallet.

Dialog call

  • main window menu: Manage / Scheduled/Template...
  • main window tool bar.

Using Scheduled/Template transactions dialog

Scheduled/Template switcher

Toggle the list to show only Scheduled or Template

Scheduled/Template list

display the list of Scheduled/Template transactions in the wallet.
scheduled transaction are marked with a calendar icon: .

Buttons

Add add a new empty template.
Delete delete the active template.
Edit edit the active template.
Schedule display the scheduling option popover of the active template.

Scheduled popup

Activate set this template to be scheduled
Next date specify the date of the next insertion, when you first edit you should set it manually, then it is updated automatically. You can of course adjust it later if needed.

Recurrence pattern

Interval
  • Daily
  • Weekly
  • Monthly
  • Yearly
The < specific> day new
The
  • First
  • Second
  • Third
  • Fourth
  • Last
weekday
  • Day
  • Monday
  • Tuesday
  • ...
  • Sunday
Week-end define how to manage the post date when it occurs on a weekend:
  • Possible : don't care
  • Before : move to first day before
  • After : move to first day after
Stop after xx posts limit the insertion to a finished count
homebank-5.9.1/doc/dlg-bud1.html0000644000175000017500000001270114775771153012047 Budget dialog
HomeBank User manual

Budget dialog

The budget dialog is the main interface to edit, modify and manage your budget. Please refer to the using the budget feature for details on how using this feature.
You also have a table view version of this dialog since v5.3, see below.

Dialog call

  • main window menu: Manage / Budget
  • main window tool bar.

Using budget table view dialog

Summary/Expense/Income switcher

Toggle the category list with Expense/Income categories only or summary

Quick search

A quick search text filter. You can use CTRL+F to activate and ESC to clear.

Menu button

Import import the budget from a CSV file.
Export export the budget to a CSV file.
Clear All clear all budget lines

Please refer to CSV file format for the file description.

Budget list

the category and budget columns.

= category has budget set (and is also displayed bold)
= category is forced to be displayed

Usage of this list:

  • double click on row/column you want to edit
     you can force the amount sign with prefix with +/-
  • when the checkbox in Monthly column is ticked, the budget is the same for each month, and so only this column can be edited

Options

Clear input clear any budget for the selected category
Force monitoring this category By default, if a transaction has no amount (0.00) it it not displayed into the budget report. This checkbox will change this and can manage such case.

 This dialog is deprecated and will be removed in a future version

Using budget dialog

Expense/Income switcher

Toggle the category list with Expense/Income categories only

Menu button

Import import the budget from a CSV file.
Export export the budget to a CSV file.

Please refer to CSV file format for the file description.

Category list

display the list of categories and subcategories of the current wallet.

= category has budget set (and is also displayed bold)
= category is forced to be displayed

Budget totals

This is the totals for the current budget.

Budget for ...

is the same each month category budget will be the same for every month: Jan -> Dec
you can then fill the amount below
is different per month category budget will be specific each month
you can then fill the amount of each needed months
Jan, Feb, ..., Dec The amount for each month
Clear input clear any budget for the selected category

Options

Force monitoring this category By default, if a transaction has no amount (0.00) it it not displayed into the budget report. This checkbox will change this and can manage such case.
homebank-5.9.1/doc/use-tipsandtricks.html0000644000175000017500000002040214736553717014122 Tips & Tricks
HomeBank User manual

Keyboard users

GTK has native support for accelerators and shortcuts.

ALT
In most window, you can focus a widget or a menu or a menu item after pressing the ALT key. Pressing this key will reveal the key associated to an item with an underline. In earlier version of GTK the access key was always showed, but now you must press the ALT key to show them. Then you can use arrow key, or press the same letter again to cycle for maybe same key used for several items.

CTRL
In most dialog with several input widget, pressing CTRL key with up/down key (or left/right) will enable to navigate through the dialog widget.

ESC
The ESC key usually close dialog, or abort menu display.

More information and other keys can be found in the Gnome HIG keyboard input

↑ Back to Top

Listview multiple selection

SHIFT
enables to select the current line to the next line you will select

CTRL
enables to select several non consecutive lines

keeping SHIFT or CTRL and double-click will initialize the multiple edit transaction dialog

↑ Back to Top

Listview

The column width of some of the listview (ledger, detail and upcoming) is saved to persist you preference within working session.
At any time you can adjust the width of the column from the header.
If you want to auto-size the column to its content, just double left click on the header right when you have the resize cursor <=>.

↑ Back to Top

List-view quick search

For some list-view the native GTK quick search is still in use:

A) if there is a search box:
  • start typing some letters into it
  • the first item will be selected
  • you can use up/down arrow key to navigate through the items that match
B) if there is NO search box:
  • select one item (one item must be selected for this to work)
  • start typing on the keyboard the first letter of what you search
  • an input box will rise, getting the text you are typing
  • you can use up/down arrow key to navigate through the items that match

↑ Back to Top

Date widget key action

On every date widget, you can use some key combination to fast change the day, month or year

  • up/down arrow key : change the day
  • up/down arrow key + shift : change the month
  • up/down arrow key + shift + ctrl : change the year

↑ Back to Top

Change the account order into main window

If you want to change the display order of your account in the main window list, you can do this from the account dialog. Just use drag & drop to re-order the accounts

↑ Back to Top

Automatic check numbering

HomeBank also manage automatic check numeration, this will occurs when several condition are satisfied.

  • You first need to configure the current check number into the account dialog of each account you want the automatic numbering take places. You can use 2 pad of check for each account. If you leave 0 for check number, the automatic numbering is disabled.
  • The next check number is prefilled into the Number field when:
    1. You are Adding a new transaction
    2. The transaction type is Expense
    3. The payment is set to Check
At last, if the type is an income, the Number field will be emptied.

↑ Back to Top

Duplicate transaction finder

A duplicate finder is available from a single account ledger window in the tools menu. The feature just mark in place the transaction, in bold for the one to keep and strike the potential duplicate called similar.
the similarity is evaluated on: amount, date (+gap).

↑ Back to Top

Add Payee/Categories from transaction dialog

Whenever you add a transaction, you can also create a new payee/category with seizing directly a new item into the payee/category widget.

↑ Back to Top

Euro minor

For countries in the European area, or those using the Euro currency (EUR), HomeBank deliver some extra features to display to Euro major/minor, and also to convert if necessary. This covers the 2 situations:

  • in waiting a future switch to euro currency, euro is then minor, and your national currency is major
  • after a switch to euro currency, euro is then major, and your national currency is minor
Display in Euro currency

Setting up the minor currency properties is done in the Preference dialog.

Once the settings are correctly set you can switch most of the displays to minor currency, minor can be Euro if your country is waiting a switch to euro, or the old former national currency if your country already switched to euro.

When the minor currency is activated, a minor toggle menu will appear in most windows.

Convert to Euro currency

From the account window, menu Tools/'Convert to euro', you are able to convert an entire account to the euro currency, according the settings you configured into the preferences.

This could also be used one day in the hypothesis a country will switch back to a national currency from euro currency, the rate configured in the euro preferences just need to be correct.

↑ Back to Top

homebank-5.9.1/doc/dlg-curr.html0000664000175000017500000001103414773771550012166 Currencies dialog
HomeBank User manual

Currencies dialog

The currencies dialog is used to add, modify and manage the currencies available for the wallets.

Dialog call

  • main window menu: Manage / Currencies
  • main window tool bar.

Using currencies dialog

General

Update on-line Trigger an update exchanges rate on-line. This is disabled when you only have a single currency.
 Please see the additional notes below

Currencies list

display currency ISO code, name, symbol, exchange rate and last modified date

Buttons

Add open a dialog to add a new currency
+ see the notes below.
Edit open a dialog to edit the selected currency
Delete delete the selected currency
Set as base set the selected currency to be the base currency

Notes: add a currency

- you can pick up new currencies from the official ISO 4217 list
- you can define a custom currency for discontinued or cryptocurrency

When you define a custom currency, please take care of the following:
- the Name must be at least 3 chars long
- the ISO code is optional, but you cannot change it easily later on
- the ISO code must be 3 chars long and cannot be the same an existing ISO 4217 one

Notes: Online Currency Update

  This is an extra feature relying on a third party web service.

Your currencies may not be supported:
- as base currency: and nothing will update
- as a target currency: this currency will not be updated

Since 5.7.2: there is a log widget that track call and return of the API for debug purpose.

Default API

  • frankfurter.app
    (no apikey): 30 currencies, Euro limited listed here
    example call: https://api.frankfurter.app/latest?base=EUR&symbols=USD,JPY,GBP

Compatible APIs

Compatible API means they use the same querystrign argument: base= and symbols=

  • fixer.io
    (apikey): 170 world currencies, including Bitcoin, Gold and Silver rates. listed here
    example call: http://data.fixer.io/api/latest?access_key=YOUR_ACCESS_KEY&base=EUR&symbols=USD,JPY,GBP

You can change the URL of the API and add a free a paid key into the preferences
Valid URL are so far:
- https://api.frankfurter.app/latest
- http://data.fixer.io/api/latest

Previous used API

- until 5.7: https://frankfurter.app
- until 5.2: https://api.fixer.io, see ⧉ #1785210
- until 5.1.7: yahoo, see ⧉ #1730527

homebank-5.9.1/doc/win-trendtime.html0000644000175000017500000000766314774677431013254 Trend time report
HomeBank User manual

Trend time report

The trend time report is focused on evolution of Account, Payee, Category over the time. You are able to view a specific item, or all at once, and accumulate the results over time or not.
The results are displayed by different time-slices as a list-view or line chart, giving a visual view of the item over time.

Window call

  • from the main window-menu: Reports / Trend time
  • from the main window-tool-bar.

Using trend time report

Display

Interval specify the scale the result should be computed for:
  • Day
  • Week
  • Month
  • Quarter
  • Year
Cumulate cumulate the result instead of simple display by time slice
Show empty line force to show interval line with 0 sum, which are hidden by default
Zoom X select the X zoom factor in real time

Date filter

Range fast select a date with predefined range
From / To specify date bound limit to restrict the results to

Item filter

By specify the item the result should be computed for:
  • Account
  • Category
  • Payee
  • Tag
Select quick change of the selection:
All / None / Invert

Account/Category/Payee/Tag listview
the list of items to include into the result

Tool bar

The tool-bar is the main control of the display. All tool-button have a tool-tip that will help you know what action will be launched when you click on the tool-button.< The icon appear or not depending the context.
At the end of the toolbar, there is an export button that enable Result or detail of transaction to copy to clipboard or export into a CSV file

Result list

The result list display the computed amount according to the current selection.

Transaction detail list

The transaction detail list will show every transaction of the selected item in the above result list.
The columns visible in that list are those configured in the account window.
By default it is not visible. Use the tool-bar 'Toggle detail' button for changing this.
You can also default keep it visible in the Preference dialog

homebank-5.9.1/doc/dlg-paye.html0000644000175000017500000000612314775771167012160 Payees dialog
HomeBank User manual

Payees dialog

The payees dialog is used to add, edit and manage the payees of the current wallet.

Dialog call

  • main window menu: Manage / Payees...
  • main window tool bar.

Using payees dialog

View buttons

Show hidden Toggle show/hide of hidden categories
Show usage Toggle show/hide usage columns

Quick search

A quick search text filter. You can use CTRL+F to activate and ESC to clear.

Menu Button

Import CSV Import and merge some payees from a CSV file
Export CSV export the entire payee list into a CSV file
Delete unused delete all unused payee

Please refer to CSV file format for the file description.

Payee list

display payee name, usage count and default category
the usage count:

  • txn: transaction
  • cfg: template/scheduled transaction
  • cfg: assignment rule

Action buttons

Add toggle the payee name widget to visible/invisible
Delete delete the selected payee
Edit edit the active payee.
Move/Merge move or merge the current payee to a new one you will select
Hide/Show toggle the active payee to be visible or not into dropdown lists

Payee name

type a new payee name here and press return to add.

Edit
To edit a payee, double click on it.
You can then change the default payment/category as well.

homebank-5.9.1/doc/dlg-assi.html0000644000175000017500000001035314775770713012155 Assignment dialog
HomeBank User manual

Assignments dialog

The assignments dialog is used to add, edit and manage the assignment rules of the current wallet.
Please refer to the Using the Automatic assignment feature for details on how using this feature.

Dialog call

  • main window menu: Manage / Assignments...
  • main window tool bar.

Using assignments dialog

Quick search

A quick search text filter. You can use CTRL+F to activate and ESC to clear.

Assignment list

display the actual list of assignments in the wallet. It is by default sorted by rule number.

Buttons

Add add a new empty assignment.
Delete delete the active assignment.
Edit edit the active assignment.
Duplicate duplicate the active assignment.
Move up (1) move the active assignment up.
Move down (1) move the active assignment down.
Move to (1) move the active assignment to a xx position to be inputted.

(1) you cannot move assignment if the sorting is not by number ascending.

Condition

Search set in a text or regular expression to search
In the field to search in: Memo / Payee
Case sensitive (Aa) set the search to consider uppercase and lowercase different, otherwise the same
Regular expression (.*) set the find fields to be interpreted as a regular expression
AND Amount an optional amount to restrict the match to

In case of leading or trailing space, you will get a warning display the space with ␣

Assignments

[Disabled | If empty | Overwrite] controls in what case do the assignment

Payee the payee to optionally assign
 Entering a new payee here will create it.
Category the category to optionally assign
 Entering a new category here will create it. Example: 'Wage:Salary'
Payment the payment to optionally assign
Tags tags to assign to the transaction, see tag definition for further details.
Notes Additional free note to distinguish rules with similar text/regex
homebank-5.9.1/configure0000775000175000017500000072666315006363044010731 #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for homebank 5.9.1. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='homebank' PACKAGE_TARNAME='homebank' PACKAGE_VERSION='5.9.1' PACKAGE_STRING='homebank 5.9.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_default_prefix=/usr # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_STDIO_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STRING_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_c_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS GETTEXT_PACKAGE MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES DATADIRNAME CATOBJEXT CATALOGS MSGFMT_OPTS INTL_MACOSX_LIBS NOOFX_FALSE NOOFX_TRUE LIBSOUP_LIBS LIBSOUP_CFLAGS DEPS_LIBS DEPS_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE intltool__v_merge_options_0 intltool__v_merge_options_ INTLTOOL_V_MERGE_OPTIONS INTLTOOL__v_MERGE_0 INTLTOOL__v_MERGE_ INTLTOOL_V_MERGE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V CSCOPE ETAGS CTAGS am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_nls with_ofx ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR DEPS_CFLAGS DEPS_LIBS LIBSOUP_CFLAGS LIBSOUP_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures homebank 5.9.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/homebank] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of homebank 5.9.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-nls do not use Native Language Support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-ofx build without ofx support default=with Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path DEPS_CFLAGS C compiler flags for DEPS, overriding pkg-config DEPS_LIBS linker flags for DEPS, overriding pkg-config LIBSOUP_CFLAGS C compiler flags for LIBSOUP, overriding pkg-config LIBSOUP_LIBS linker flags for LIBSOUP, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF homebank configure 5.9.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. */ #include #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main (void) { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by homebank $as_me 5.9.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated as an "x". The following induces an error, until -std is added to get proper ANSI mode. Curiously \x00 != x always comes out true, for an array size at least. It is necessary to write \x00 == 0 to get something that is true only with -std. */ int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) '\''x'\'' int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' // Does the compiler advertise C99 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' // Does the compiler advertise C11 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" # Auxiliary files required by this configure script. ac_aux_files="compile missing install-sh" # Locations in which to look for auxiliary files. ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." # Search for a directory containing all of the required auxiliary files, # $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. # If we don't find one directory that contains all the files we need, # we report the set of missing files from the *first* directory in # $ac_aux_dir_candidates and give up. ac_missing_aux_files="" ac_first_candidate=: printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in $ac_aux_dir_candidates do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 ac_aux_dir_found=yes ac_install_sh= for ac_aux in $ac_aux_files do # As a special case, if "install-sh" is required, that requirement # can be satisfied by any of "install-sh", "install.sh", or "shtool", # and $ac_install_sh is set appropriately for whichever one is found. if test x"$ac_aux" = x"install-sh" then if test -f "${as_dir}install-sh"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 ac_install_sh="${as_dir}install-sh -c" elif test -f "${as_dir}install.sh"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 ac_install_sh="${as_dir}install.sh -c" elif test -f "${as_dir}shtool"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 ac_install_sh="${as_dir}shtool install -c" else ac_aux_dir_found=no if $ac_first_candidate; then ac_missing_aux_files="${ac_missing_aux_files} install-sh" else break fi fi else if test -f "${as_dir}${ac_aux}"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 else ac_aux_dir_found=no if $ac_first_candidate; then ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" else break fi fi fi done if test "$ac_aux_dir_found" = yes; then ac_aux_dir="$as_dir" break fi ac_first_candidate=false as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. if test -f "${ac_aux_dir}config.guess"; then ac_config_guess="$SHELL ${ac_aux_dir}config.guess" fi if test -f "${ac_aux_dir}config.sub"; then ac_config_sub="$SHELL ${ac_aux_dir}config.sub" fi if test -f "$ac_aux_dir/configure"; then ac_configure="$SHELL ${ac_aux_dir}configure" fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu #AC_INIT([homebank],[x.x-rc]) ac_config_headers="$ac_config_headers config.h" am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test ${ac_cv_path_install+y} then : printf %s "(cached) " >&6 else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac # Account for fact that we put trailing slashes in our PATH walk. case $as_dir in #(( ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 printf "%s\n" "$STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 printf "%s\n" "$ac_ct_STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 printf %s "checking for a race-free mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test ${ac_cv_path_mkdir+y} then : printf %s "(cached) " >&6 else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir ('*'coreutils) '* | \ 'BusyBox '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 printf "%s\n" "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 printf "%s\n" "$AWK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } SET_MAKE= else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test ${enable_silent_rules+y} then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 printf %s "checking whether $am_make supports nested variables... " >&6; } if test ${am_cv_make_support_nested_variables+y} then : printf %s "(cached) " >&6 else $as_nop if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='homebank' VERSION='5.9.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # Variables for tags utilities; see am/tags.am if test -z "$CTAGS"; then CTAGS=ctags fi if test -z "$ETAGS"; then ETAGS=etags fi if test -z "$CSCOPE"; then CSCOPE=cscope fi # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # If the source code has changed at all, increment REVISION # If any interfaces have been added, removed, or changed, increment CURRENT, and set REVISION to 0. # If any interfaces have been added since the last public release, then increment AGE. # If any interfaces have been removed since the last public release, then set AGE to 0. # Reference: http://www.gnu.org/software/libtool/manual.html#Versioning # Checks for programs. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else $as_nop ac_file='' fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 printf %s "checking whether $CC understands -c and -o together... " >&6; } if test ${am_cv_prog_cc_c_o+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } case $?:`cat confinc.out 2>/dev/null` in #( '0:this is the am__doit target') : case $s in #( BSD) : am__include='.include' am__quote='"' ;; #( *) : am__include='include' am__quote='' ;; esac ;; #( *) : ;; esac if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 printf "%s\n" "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test ${enable_dependency_tracking+y} then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CC_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 else $as_nop if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 printf %s "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 printf "%s\n" "no, using $LN_S" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 printf %s "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test ${enable_nls+y} then : enableval=$enable_nls; USE_NLS=$enableval else $as_nop USE_NLS=yes fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 printf "%s\n" "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n ""; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 printf %s "checking for intltool >= ... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 printf "%s\n" "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_INTLTOOL_UPDATE+y} then : printf %s "(cached) " >&6 else $as_nop case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_UPDATE="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 printf "%s\n" "$INTLTOOL_UPDATE" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_INTLTOOL_MERGE+y} then : printf %s "(cached) " >&6 else $as_nop case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_MERGE="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 printf "%s\n" "$INTLTOOL_MERGE" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_INTLTOOL_EXTRACT+y} then : printf %s "(cached) " >&6 else $as_nop case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 printf "%s\n" "$INTLTOOL_EXTRACT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_XGETTEXT+y} then : printf %s "(cached) " >&6 else $as_nop case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 printf "%s\n" "$XGETTEXT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_MSGMERGE+y} then : printf %s "(cached) " >&6 else $as_nop case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 printf "%s\n" "$MSGMERGE" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_MSGFMT+y} then : printf %s "(cached) " >&6 else $as_nop case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 printf "%s\n" "$MSGFMT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_GMSGFMT+y} then : printf %s "(cached) " >&6 else $as_nop case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 printf "%s\n" "$GMSGFMT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_INTLTOOL_PERL+y} then : printf %s "(cached) " >&6 else $as_nop case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_PERL="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 printf "%s\n" "$INTLTOOL_PERL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 printf %s "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 printf "%s\n" "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 printf %s "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 printf "%s\n" "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Checks for libraries. if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PKG_CONFIG+y} then : printf %s "(cached) " >&6 else $as_nop case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 printf "%s\n" "$PKG_CONFIG" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} then : printf %s "(cached) " >&6 else $as_nop case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62" >&5 printf %s "checking for gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62... " >&6; } if test -n "$DEPS_CFLAGS"; then pkg_cv_DEPS_CFLAGS="$DEPS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$DEPS_LIBS"; then pkg_cv_DEPS_LIBS="$DEPS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62" 2>&1` else DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$DEPS_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk+-3.0 >= 3.24.8 glib-2.0 >= 2.62) were not met: $DEPS_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables DEPS_CFLAGS and DEPS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables DEPS_CFLAGS and DEPS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else DEPS_CFLAGS=$pkg_cv_DEPS_CFLAGS DEPS_LIBS=$pkg_cv_DEPS_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pow in -lm" >&5 printf %s "checking for pow in -lm... " >&6; } if test ${ac_cv_lib_m_pow+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char pow (); int main (void) { return pow (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_m_pow=yes else $as_nop ac_cv_lib_m_pow=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_pow" >&5 printf "%s\n" "$ac_cv_lib_m_pow" >&6; } if test "x$ac_cv_lib_m_pow" = xyes then : printf "%s\n" "#define HAVE_LIBM 1" >>confdefs.h LIBS="-lm $LIBS" fi pkg_failed=no { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsoup-3.0 >= 3.0" >&5 printf %s "checking for libsoup-3.0 >= 3.0... " >&6; } if test -n "$LIBSOUP_CFLAGS"; then pkg_cv_LIBSOUP_CFLAGS="$LIBSOUP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-3.0 >= 3.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libsoup-3.0 >= 3.0") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBSOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-3.0 >= 3.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBSOUP_LIBS"; then pkg_cv_LIBSOUP_LIBS="$LIBSOUP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-3.0 >= 3.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libsoup-3.0 >= 3.0") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBSOUP_LIBS=`$PKG_CONFIG --libs "libsoup-3.0 >= 3.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBSOUP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsoup-3.0 >= 3.0" 2>&1` else LIBSOUP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsoup-3.0 >= 3.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBSOUP_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (libsoup-3.0 >= 3.0) were not met: $LIBSOUP_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBSOUP_CFLAGS and LIBSOUP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables LIBSOUP_CFLAGS and LIBSOUP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else LIBSOUP_CFLAGS=$pkg_cv_LIBSOUP_CFLAGS LIBSOUP_LIBS=$pkg_cv_LIBSOUP_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi # general usage flags CFLAGS="${CFLAGS} -Wall -Wmissing-prototypes" # enable/disable deprecated warnings #CFLAGS="${CFLAGS} -Wdeprecated-declarations" CFLAGS="${CFLAGS} -Wno-deprecated-declarations" # extended flags #CFLAGS="${CFLAGS} -Wextra -Wno-unused-parameter -Wno-cast-function-type" # profiling valgrind/gprof flags #CFLAGS="${CFLAGS} -g -O0 -pg" # pre-relase # 2 - error as warning for #CFLAGS="${CFLAGS} -Werror" # GTK4 migration #CFLAGS="${CFLAGS} -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED" # Check for libofx ac_header= ac_cache= for ac_item in $ac_header_c_list do if test $ac_cache; then ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then printf "%s\n" "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then ac_cache=$ac_item else ac_header=$ac_item fi done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "libofx/libofx.h" "ac_cv_header_libofx_libofx_h" "$ac_includes_default" if test "x$ac_cv_header_libofx_libofx_h" = xyes then : else $as_nop noofx=true fi # Check whether --with-ofx was given. if test ${with_ofx+y} then : withval=$with_ofx; build_ofx=$withval else $as_nop build_ofx=yes fi if test x$build_ofx != xno then if test x$noofx != xtrue then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ofx_set_status_cb in -lofx" >&5 printf %s "checking for ofx_set_status_cb in -lofx... " >&6; } if test ${ac_cv_lib_ofx_ofx_set_status_cb+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lofx $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char ofx_set_status_cb (); int main (void) { return ofx_set_status_cb (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_ofx_ofx_set_status_cb=yes else $as_nop ac_cv_lib_ofx_ofx_set_status_cb=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ofx_ofx_set_status_cb" >&5 printf "%s\n" "$ac_cv_lib_ofx_ofx_set_status_cb" >&6; } if test "x$ac_cv_lib_ofx_ofx_set_status_cb" = xyes then : OFX_0_7="-DOFX_ENABLE" fi DEPS_LIBS="-lofx ${DEPS_LIBS}" CFLAGS="${CFLAGS} $OFX_0_7" else noofx=true { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Libofx header missing. Check your libofx installation" >&5 printf "%s\n" "Libofx header missing. Check your libofx installation" >&6; } CFLAGS="${CFLAGS} -DNOOFX" fi else noofx=true CFLAGS="${CFLAGS} -DNOOFX" fi if test x$noofx = xtrue; then NOOFX_TRUE= NOOFX_FALSE='#' else NOOFX_TRUE='#' NOOFX_FALSE= fi # Checks for header files. ac_fn_c_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes then : printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = xyes then : printf "%s\n" "#define HAVE_LOCALE_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes then : printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes then : printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h fi # Checks for typedefs, structures, and compiler characteristics. ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes then : printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 printf %s "checking for stdbool.h that conforms to C99... " >&6; } if test ${ac_cv_header_stdbool_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef __bool_true_false_are_defined #error "__bool_true_false_are_defined is not defined" #endif char a[__bool_true_false_are_defined == 1 ? 1 : -1]; /* Regardless of whether this is C++ or "_Bool" is a valid type name, "true" and "false" should be usable in #if expressions and integer constant expressions, and "bool" should be a valid type name. */ #if !true #error "'true' is not true" #endif #if true != 1 #error "'true' is not equal to 1" #endif char b[true == 1 ? 1 : -1]; char c[true]; #if false #error "'false' is not false" #endif #if false != 0 #error "'false' is not equal to 0" #endif char d[false == 0 ? 1 : -1]; enum { e = false, f = true, g = false * true, h = true * 256 }; char i[(bool) 0.5 == true ? 1 : -1]; char j[(bool) 0.0 == false ? 1 : -1]; char k[sizeof (bool) > 0 ? 1 : -1]; struct sb { bool s: 1; bool t; } s; char l[sizeof s.t > 0 ? 1 : -1]; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ bool m[h]; char n[sizeof m == h * sizeof m[0] ? 1 : -1]; char o[-1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ bool p = true; bool *pp = &p; /* C 1999 specifies that bool, true, and false are to be macros, but C++ 2011 and later overrule this. */ #if __cplusplus < 201103 #ifndef bool #error "bool is not defined" #endif #ifndef false #error "false is not defined" #endif #ifndef true #error "true is not defined" #endif #endif /* If _Bool is available, repeat with it all the tests above that used bool. */ #ifdef HAVE__BOOL struct sB { _Bool s: 1; _Bool t; } t; char q[(_Bool) 0.5 == true ? 1 : -1]; char r[(_Bool) 0.0 == false ? 1 : -1]; char u[sizeof (_Bool) > 0 ? 1 : -1]; char v[sizeof t.t > 0 ? 1 : -1]; _Bool w[h]; char x[sizeof m == h * sizeof m[0] ? 1 : -1]; char y[-1 - (_Bool) 0 < 0 ? 1 : -1]; _Bool z = true; _Bool *pz = &p; #endif int main (void) { bool ps = &s; *pp |= p; *pp |= ! p; #ifdef HAVE__BOOL _Bool pt = &t; *pz |= z; *pz |= ! z; #endif /* Refer to every declared value, so they cannot be discarded as unused. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k + !l + !m + !n + !o + !p + !pp + !ps #ifdef HAVE__BOOL + !q + !r + !u + !v + !w + !x + !y + !z + !pt #endif ); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_header_stdbool_h=yes else $as_nop ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 printf "%s\n" "$ac_cv_header_stdbool_h" >&6; } if test $ac_cv_header_stdbool_h = yes; then printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 printf %s "checking for an ANSI C-conforming const... " >&6; } if test ${ac_cv_c_const+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* IBM XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_const=yes else $as_nop ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 printf "%s\n" "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then printf "%s\n" "#define const /**/" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test ${ac_cv_struct_tm+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_struct_tm=time.h else $as_nop ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 printf "%s\n" "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 printf %s "checking for working volatile... " >&6; } if test ${ac_cv_c_volatile+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { volatile int x; int * volatile y = (int *) 0; return !x && !y; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_volatile=yes else $as_nop ac_cv_c_volatile=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 printf "%s\n" "$ac_cv_c_volatile" >&6; } if test $ac_cv_c_volatile = no; then printf "%s\n" "#define volatile /**/" >>confdefs.h fi # Checks for library functions. ac_fn_c_check_func "$LINENO" "floor" "ac_cv_func_floor" if test "x$ac_cv_func_floor" = xyes then : printf "%s\n" "#define HAVE_FLOOR 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "localeconv" "ac_cv_func_localeconv" if test "x$ac_cv_func_localeconv" = xyes then : printf "%s\n" "#define HAVE_LOCALECONV 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset" if test "x$ac_cv_func_memset" = xyes then : printf "%s\n" "#define HAVE_MEMSET 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "modf" "ac_cv_func_modf" if test "x$ac_cv_func_modf" = xyes then : printf "%s\n" "#define HAVE_MODF 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "pow" "ac_cv_func_pow" if test "x$ac_cv_func_pow" = xyes then : printf "%s\n" "#define HAVE_POW 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale" if test "x$ac_cv_func_setlocale" = xyes then : printf "%s\n" "#define HAVE_SETLOCALE 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "sqrt" "ac_cv_func_sqrt" if test "x$ac_cv_func_sqrt" = xyes then : printf "%s\n" "#define HAVE_SQRT 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" if test "x$ac_cv_func_strcasecmp" = xyes then : printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul" if test "x$ac_cv_func_strtoul" = xyes then : printf "%s\n" "#define HAVE_STRTOUL 1" >>confdefs.h fi # International support ALL_LINGUAS="af ar be bg br ca ckb cs cy da de el en_AU en_CA en_GB es et eu fa fi fr_CA fr gl he hr hu id is it ja ko lt lv ms nb nds nl oc pl pt_BR pt pt_PT ro ru si sl sq sr sv ta tr uk vi zh_CN zh_TW" ac_fn_c_check_header_compile "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = xyes then : printf "%s\n" "#define HAVE_LOCALE_H 1" >>confdefs.h fi if test $ac_cv_header_locale_h = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 printf %s "checking for LC_MESSAGES... " >&6; } if test ${am_cv_val_LC_MESSAGES+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : am_cv_val_LC_MESSAGES=yes else $as_nop am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 printf "%s\n" "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then printf "%s\n" "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 printf %s "checking for CFPreferencesCopyAppValue... " >&6; } if test ${gt_cv_func_CFPreferencesCopyAppValue+y} then : printf %s "(cached) " >&6 else $as_nop gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gt_cv_func_CFPreferencesCopyAppValue=yes else $as_nop gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then printf "%s\n" "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 printf %s "checking for CFLocaleCopyCurrent... " >&6; } if test ${gt_cv_func_CFLocaleCopyCurrent+y} then : printf %s "(cached) " >&6 else $as_nop gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gt_cv_func_CFLocaleCopyCurrent=yes else $as_nop gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 printf "%s\n" "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then printf "%s\n" "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi ac_fn_c_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 printf %s "checking for ngettext in libc... " >&6; } if test ${gt_cv_func_ngettext_libc+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gt_cv_func_ngettext_libc=yes else $as_nop gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 printf "%s\n" "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 printf %s "checking for dgettext in libc... " >&6; } if test ${gt_cv_func_dgettext_libc+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gt_cv_func_dgettext_libc=yes else $as_nop gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 printf "%s\n" "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes then : printf "%s\n" "#define HAVE_BIND_TEXTDOMAIN_CODESET 1" >>confdefs.h fi fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 printf %s "checking for bindtextdomain in -lintl... " >&6; } if test ${ac_cv_lib_intl_bindtextdomain+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char bindtextdomain (); int main (void) { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_intl_bindtextdomain=yes else $as_nop ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 printf "%s\n" "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 printf %s "checking for ngettext in -lintl... " >&6; } if test ${ac_cv_lib_intl_ngettext+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char ngettext (); int main (void) { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_intl_ngettext=yes else $as_nop ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 printf "%s\n" "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 printf %s "checking for dgettext in -lintl... " >&6; } if test ${ac_cv_lib_intl_dgettext+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char dgettext (); int main (void) { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_intl_dgettext=yes else $as_nop ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 printf "%s\n" "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = xyes then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 printf %s "checking if -liconv is needed to use gettext... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 printf %s "checking for ngettext in -lintl... " >&6; } if test ${ac_cv_lib_intl_ngettext+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char ngettext (); int main (void) { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_intl_ngettext=yes else $as_nop ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 printf "%s\n" "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 printf %s "checking for dcgettext in -lintl... " >&6; } if test ${ac_cv_lib_intl_dcgettext+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char dcgettext (); int main (void) { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_intl_dcgettext=yes else $as_nop ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 printf "%s\n" "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = xyes then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else $as_nop : fi else $as_nop : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes then : printf "%s\n" "#define HAVE_BIND_TEXTDOMAIN_CODESET 1" >>confdefs.h fi LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" fi if test "$gt_cv_have_gettext" = "yes"; then printf "%s\n" "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_MSGFMT+y} then : printf %s "(cached) " >&6 else $as_nop case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 printf "%s\n" "$MSGFMT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = xyes then : printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h fi MSGFMT_OPTS= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 printf %s "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_GMSGFMT+y} then : printf %s "(cached) " >&6 else $as_nop case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 printf "%s\n" "$GMSGFMT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_XGETTEXT+y} then : printf %s "(cached) " >&6 else $as_nop case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 printf "%s\n" "$XGETTEXT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : CATOBJEXT=.gmo DATADIRNAME=share else $as_nop case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes then : CATOBJEXT=.gmo DATADIRNAME=share else $as_nop CATOBJEXT=.mo DATADIRNAME=lib fi ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 printf "%s\n" "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 printf %s "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 printf "%s\n" "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES GETTEXT_PACKAGE=$PACKAGE printf "%s\n" "#define GETTEXT_PACKAGE \"${GETTEXT_PACKAGE}\"" >>confdefs.h ac_config_files="$ac_config_files Makefile src/Makefile data/homebank.desktop.in data/Makefile data/datas/Makefile images/Makefile mime/Makefile pixmaps/Makefile themes/Makefile themes/common-symbolic/Makefile themes/Default/Makefile themes/hicolor/Makefile themes/hicolor-symbolic/Makefile po/Makefile.in doc/Makefile doc/images/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 printf %s "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 printf "%s\n" "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${NOOFX_TRUE}" && test -z "${NOOFX_FALSE}"; then as_fn_error $? "conditional \"NOOFX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by homebank $as_me 5.9.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ homebank config.status 5.9.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "data/homebank.desktop.in") CONFIG_FILES="$CONFIG_FILES data/homebank.desktop.in" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "data/datas/Makefile") CONFIG_FILES="$CONFIG_FILES data/datas/Makefile" ;; "images/Makefile") CONFIG_FILES="$CONFIG_FILES images/Makefile" ;; "mime/Makefile") CONFIG_FILES="$CONFIG_FILES mime/Makefile" ;; "pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; "themes/Makefile") CONFIG_FILES="$CONFIG_FILES themes/Makefile" ;; "themes/common-symbolic/Makefile") CONFIG_FILES="$CONFIG_FILES themes/common-symbolic/Makefile" ;; "themes/Default/Makefile") CONFIG_FILES="$CONFIG_FILES themes/Default/Makefile" ;; "themes/hicolor/Makefile") CONFIG_FILES="$CONFIG_FILES themes/hicolor/Makefile" ;; "themes/hicolor-symbolic/Makefile") CONFIG_FILES="$CONFIG_FILES themes/hicolor-symbolic/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/images/Makefile") CONFIG_FILES="$CONFIG_FILES doc/images/Makefile" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. case $CONFIG_FILES in #( *\'*) : eval set x "$CONFIG_FILES" ;; #( *) : set x $CONFIG_FILES ;; #( *) : ;; esac shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`$as_dirname -- "$am_mf" || $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` am_filepart=`$as_basename -- "$am_mf" || $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` { echo "$as_me:$LINENO: cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles" >&5 (cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE=\"gmake\" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} { am_mf=; unset am_mf;} { am_rc=; unset am_rc;} rm -f conftest-deps.mk } ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi # ************************************* # ************************************* echo echo $PACKAGE $VERSION echo echo Compiler................ : $CC echo Build with OFX support.. : $build_ofx if test "x$noofx" = "xtrue" ; then echo ........................ : **error** libofx header is missing, ofx feature will be disabled. Check your libofx installation fi eval eval echo Path to images.......... : $datadir/homebank/images eval eval echo Path to locale.......... : $datadir/locale eval eval echo Path to help............ : $datadir/homebank/help echo eval eval echo HomeBank will be installed in $bindir. echo echo configure complete, now type \'make\' echo homebank-5.9.1/pixmaps/0000775000175000017500000000000015006374031010535 5homebank-5.9.1/pixmaps/hicolor_apps_32x32_homebank.png0000644000175000017500000000450011330305240016337 PNG  IHDR szzsBIT|d pHYs : :dJtEXtSoftwarewww.inkscape.org<tEXtTitleHome BanktEXtAuthorNathan M. WillardbdŒtEXtCreation Time16JUL06U]IDATX[]Uk9N;W2"X ъB%$a`5QÓ>`b%)~+V$0uڙL;3g_Z{0/kg_[߷>11B`41>\L*J}do{ۆJ k+Y񂍛'+i'o_17]a 1(buItɳϟfw7 ĸ56=5xmz{iPx4  XPuaav5sѸu1i~bW7v[=7[@iIr>D3 8]4Z%%A݃c{}nsoW;z.%;/+C+up;aGT#AAsdd'ز GLG_sۈ$ϠR>ݴ}*\oNDgsoRlA bQ8qݣc2m<V*{xk}Zi<'^k KMi[ |i<`.};o5z\8w^Egp L.gךyv{qcrXk w1b|Ko]L+ڽgݛT9@8f*s]Jc, cJ)k)"Xkox {6W*R:v^h\0iYsP 5v}uǸ2oɞ(U0  L5ܷbeY,ZN\W @f26\TsBZ#Qpvo߭_/pPfwg$IW 9sXk8ڭ6QR''r"A3MTZb\mtoՙ38D|haN'AJZUg-:<+0EqGYz_ub\m0br6`LJgC)n/e) T! ^-5  #-PLwR#1:Ir{,YJ'MZZyCf YGp^D3IW&e0>8Y  K+qJ{Ll.A%,wXbc@A% ըw7p[Yop8 ti%Jԃtg-Y4!Ib+\d%?l"̃8gNXQUD 0IiP5Kś"KgqYblJBVւ9)a,ֱ*R9*Tٮ#ҸmztLNsrNÈ4KPPBgBz:U tѦŢ~1I4@Y}֊B!/lRꋢSx95AH)5+ҴJ4Z G Fi/Nqe/(RTلU+Q/Not(B~?Ga'?m^*Ag8Qcq償0N0 BxG}O~ǪҎ90;yjƫ\^L0&Z% OiY2KC0;93v́U19ݜ{VwYl 1 @ _㡔}mȦ⺷Vgu_q0xrd%DWۇ_CkuZksdy*)Dt,œz{5w^`b\Q-zw]Wޫ83z/6i_"ChSh UtRO| щ3>v}VRJHCm!pqCv(Wza,Bt3<λO@1JћW7W 'o֖˶nΜA\bkuu eS'NͿZ?s@tYQQi(/\ݸo7]*EJ($$h^n.ϵzIJ\%`MT c_"M[ԮR4K$͖gyſpȀHKֈR i 9G+G sDR"ҾKIENDB`homebank-5.9.1/pixmaps/Makefile.am0000664000175000017500000000325012407562410012513 NULL = public_icons_themes = \ hicolor \ $(NULL) public_icons = \ hicolor_apps_16x16_homebank.png \ hicolor_apps_22x22_homebank.png \ hicolor_apps_24x24_homebank.png \ hicolor_apps_32x32_homebank.png \ hicolor_apps_48x48_homebank.png \ hicolor_apps_256x256_homebank.png \ $(NULL) noinst_DATA = \ homebank.svg \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(noinst_DATA) \ $(NULL) gtk_update_icon_cache = gtk-update-icon-cache -f -t update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ for theme in $(public_icons_themes); do \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons install-data-hook: update-icon-cache uninstall-local: uninstall-icons uninstall-hook: update-icon-cache -include $(top_srcdir)/git.mk homebank-5.9.1/pixmaps/hicolor_apps_256x256_homebank.png0000644000175000017500000011124712407562505016545 PNG  IHDR\rfsBIT|d pHYsIIEtEXtSoftwarewww.inkscape.org<tEXtTitleHome BanktEXtAuthorNathan M. WillardbdŒtEXtCreation Time16JUL06U IDATxye]]ޚ{fee[WwW%6F6#Ke6̜aΜmf|l3fl,`0J!]j޵W#۽ャ^W'{č_쌈p r Lq^ȁ 'p  8yȁ{p /,3v/^: ~% ;xi2psfL~',fM  f[/^n@KDV1B^4^8M.,<PV.8jI x&@t9 ,XzAtO&x|xdeA8~#eV8U8n̩@$| )\D>H.<2s pj_fègzǫjp s089b 8'88qCG}- :IA , 8p\~*COAmr !x~=8󳬃s810~z71 wu/ї'$C;8YL.܏s* x Q=N.v7F{>A^5x-qbYYfoX+,*%&ar~LߋjcZZ=3[]#thoԚn q|?Lƭ;}s돣8W ?g/Lȁ$r@{e ՏWk1М9Ju5Ww|x [ 3(Q I00ٙ)3Du1~Ml\+n|`c?x y!+8{k90掾SΣ֬qtc  @;%*L43n˪F1ZkOb_e3j+Dc$-0DV {=90.=Z OAoCb :(omvchCkCa}IYU;1 (tu+ؾYvhX K)ߺxQC߅ų+`2膁9+xNF0Ug9`10x!LK0Y}k1:[_%CtHde}_H;\4qT~j#9!AZZkF.X TD0wS̙m2A5~,(36p$2x:bc{s7mڒVïBt n9z9+VOG '͓X?r^E>ixxo@| :G(~ Ǚj[F/#x$sNup{F6n>[OG :W /^_(srW,y =En\SoEY̅{y? ~X](/$q2(vÜiA  iq뙿?@\K4z䗢 YPts0uM8z{19;0!hă/H~ Vۉ`Tb 3pp>a'6qEk3(ٞ| l Y|T'NȽ=*Eu|yC"Q0ŗ{(ŠuN}JI"!S}16o=OG v/@b+r]@$evqX8>>f u_ E!9w4bg"E  Ca7{m1D 3 V0ti^z>n?i?;)mF`e-lQG0t2֓EBo!9x =sZ nop!9VBU}6I F n5<ؼu׾+_p%"/Ey@rC?3(SqAs) l4E!>$C䣩%RLz*!姜F/&1,Z@6sV^zyFӸ;~h@^.7",`e-o;^μ<§wk2ouk߸{%? lv$e4[s n?5]DT%O+^aqQ8\6ާ[;~Ѐꥤ+P(Q@h$0l((W8yy1N 0 @~U(߭d̅[+Zy\>=غI% /YH~ י$a,z~c wz,/9XYftCRDq؞P 1=:'=It4똩_L94w{cn8pj)7*6[;xKz;3K,_!de '_ӯ0uD]ĝ?E33㷰7SK~#^N )tdY]L2faqOlt# (ϴw mܗ>ݍe߽TV$`e V}~;qZ]AwZ oasVwFYW.$R^oZs]s:\ׅp\1q cqsQ,c z {׌Řo>ũbnI8HO-im~樂'n_l+E^,'eV o5,Cߏcj:q{ν(`?N$Va}a>WШQ7ѨQQV{>\5t;8q'B  =t{=zt{=xzn&W0]=  ~n퍚[ "\'~wP|K+( `ey?}nKGνH> >Rf^`eCɤj!B?,;/_߯bvzӘD"6s=.(p v ;X F%=O_i$M:WkyEa[O . }xF-,3t;k?œ*D:(M%IO}'ꗁ;+ofH}3ӳ$*ժ\ʁ4Xj0d X763"ڻm촶0m\I4W` uN9=&S9V/?J_CڋA7w)|ocة r& mPt:h `sn;SC>cn~z]iu1&0tҴr,Jv$SgDi~KE#t2N}ͧByGMO98+8a\/"[ˋgf%M9^),?)˔3FqP`:f)'bw-.qh~CgHA@ h)}*`G0';eus66V8.?wz ' _G~({+_ (&`,N.0A_|_i/),otsTpS{?L@03^[oF//#c 38x^݁91N }9;!ÑM!Y AGQ6W]JN~S_ Ѻt 0ք70H8qnx~0/`e}/48zGt5,^ABNUVZ.t 8cij՚ fé(|9(+aʟ f`:{[L/:܄L >nݺۥSms1Uq7^0dLs|K_T|K[|EC+ FM+ ؽ 3σ'>t@nxϮ};V#8߯X0/$g9y`WAa Wutp 2H Džy\7HB!Oz nD̋_™C<hnp'V8gp@l = eN\x\_^#4?0Tr٭ᯘT77vބ+@sc8p)!Q'%st1Wf~Fj*CP%CuwH / q1n]6"ƍEY4g[VmA|?w((qߵ%/g{'e ;wqwëP5E7P\͇ )T=c'qhᐢw"Gqc f'M,HI0&U}9R01k..1pB"hVoat t)+d#\pW[Ԗk^{[3< JOxn7u8EAo"l} bl@ /U<^ o= ;18QMʢ }#6"H c}@5\ n\j!<_ĹC @lshnFzBbUSsfZlIcՂ/ؾ9/? sũ'&=4m;8/\BOLLƙSg 3<0 𧴤 ~و79bPFs9X<h0g @Ač[H}9u>0&&&`k?1mzn"3PN8-p(,;9?p6199 ߷km @jmcg{%0&*J&y=:\(21 ;M5܌̝?!i~ݝ_@л M8w]D~ݖVĹ_uu<3;z FCo[A: u`xb{ٹߚËK8~D6''Z/Q"#+."֪j՛[p@OK@ϖ]f|AL!(v*nt Bpb3:,Ÿ *yl\lB<<l$7vG_X |qyLO qs$n/\[[Z0aaN%aK˯`wTJ Ԙ1Y"Ye NkO?uqkt,ֻI ̜HԼ֓a!f׍C/?Ӈ<1krx:J_m9׶ގq+ggЫ^I}00A>T~3v?,;;. bd] tOʟr?b&BC1dSxU,t )|Ə ˧\Ưg<'̤ua8|5Zf[ o*ϫ ෡Xy'B}QbrIU7#.<~jH;c '#&$DC$u5Y](y0Z:hVA*aZUp j7FHGWI!i*Rɿ)MWo+eKSC dKӄi&[ 6Wk9 t}<ADȺxnF+ 1{X4[[G|3t8S.K}.eU}݌~وB+fKzJ8t o6o#L Ae^r @R-q g``I0=18,vẃ?߀P;?֭x `8 Y#wAOcߦEc({ם; #AH0Dހuv,Zx'5DʍW%LT~DOw

{9d2/QQ;SE|֏w]wA8=LG\+SusFiҐvw;Y<Z('8SDh6f#9GlE^_@- ϣxחS3~}ӭ%Œ+FqNK31Lh3 #~pkv?~[Ifc13?`]#eE=vGtG*h@ Qfk7?0Vw~ &'&33ubc08i_Һ76},]~Z]V,E8| 4qu J5HZFȿ`u q051 ?h&vDU"{g6[mD'8.Ñ{j"KwE^.4& -|=QQw#)IW[5T=qwa"d}W})@KALǵ<%10i( &'& @]OhLX[q%%b43#Nɟ8ƌx,~Ǟ}1j_045(b^?}cH4lYGcAO0r4 `R6p:]x?ĝ?h2Cq@=su]wT*դd<cb9,ooGKpLO: j2+Po q6֐}c,=lI"kbS#Ү_kY7T5 A~7r(Z{Q8c4I_UGN8q$]Vwn>;19kxx+ IXaQLG&{Da!4xa(늖?WA>`,'xdd`0y.z(&p0e0;14M?qNjT_t)WnݻWgϜԔF2A~7DhqZPYF'js]4dSڊCS%XW%9|v 4=L4(T*fly,A{{ { 8sݓςPSQdD7PW̛^}}#~N7\xSS ۈz+cB#zOɵ^yN8)=0e4dbt/*QY*0! ) CӓB@ Wsʀ% i.ypI5Ók? 6[EY<ςPsK01g=FS O } stQGFeO/&8h9O/Z]9 OG0^_w?br(@"hQ*q1jD13ӧNZUG^S lKvj~Y봠ʾ2{7GCGzZuGw s ;oWlsf@ӭ }c .W,bO?'q3'4!iGZUI6ʺd|4ܤ @9ly~pHAE AAy6@ԥn )h=ɝh?O!oѯ;фdxJ^~r1ǜz |FFCZ60ʌkrrMY[>{X1ΑU HB~n<"# Bu,*{"eUr]2/P?y<56s'[b`l /$'j* 2Jƭ݂82%YZ@Fbz ChH>˱Ǎ3l1WG8 &(2 Y[ՍM09UnМ{(9W$|`fF?~)őytA DFVD-[6Vpy0DS?1UqNŬVaaq@F_AB6(!n'7 T0BNJϢ.@:&`d9A2yBҴ2 t,eLRNqׁzs0?ZMmxnމV(Cw<)+無0v>`s,ً~ʜ_] IoZQb:G~OF j5z̋nFIUYY`bo"ev >=R·+RG/ {rr(9 ,A\b+Yw:t;GQ+Y9eѐdD &@& bHb/#3#3 $%;ub0aYYstB0'qݫɣ F^ ²&,j?@MEcJ>S|<*Lq/$-uCZ,+%Qڬ j(uV|j>`G}i1y=@P] 'M;B1sn3Y{IF~dhP.z9揃p`ltIKr.Rc@ǡZszզɅ2.n0H2JIf&G7#Ԏg:rs7Ç[ܢRK)=OWRa2Г$diHA~PUK,Nh-pSĠ,g#ԅ~t aXZZ VwW|i3jWqIZl C?˩`v)=$/]ś# P}_G:؛Szʬ;Pzhڙ PUqv*MV9cXt@?/T͕ tNTF -( 3;2 U zzjz֣1ŝ򻇙 --,}`1pՑd A} s#筿t{<zؑ#G0,`NjQbj%?uGb=i^!R (F\(k7{Q,eJ3W)%0m4H:@&vKnZ{,)A4rӡjB M6ErGИ= ϗD+{+?-ʻ8}4䠌hG,)s ynrep'Wv% ΥI!0YHPE&ޑꭱ.6cRND*]kmRy  eefz8>l-_5x;O)n<1cې<Btҧ tYNq6;3u[]`+T9v?`{g' </ɭ=<`Z? `N꘢>=ۀ(ś*'P(J~&ÿn~c}D D.Hbz.ff6KzWF@P ȿ)%ev%&ןB}B>*J^TEų}j~~sDI<R-+ T0v?uѐ9<ԧe%,Au19`D^H棒ҌݍG$ ۷9}Y1Y$x32% ]<5lv>:KyބکCeT `T?D/$,W+5M &8q-; Z vqhԳX«9J&R],ҟUa෴6%$ uB s-wvfChI$On޶FbR4Yi7ԾCAވ#L4':kp5+uJ܂=98.K^ZI&|xIF Z@lAVwIus3ƣayH,[ V28DpFI=[GRfJ4bm|XY`}{@cr( H;"kNյuo=C؂0S7_3wI q| BI9u \!6I~uƔp!% z8l6QbbV@jTyft+h"llnf:h4K3Dϟ5r2P$"9Q6'&/Ǟb*4>rBʎG9tY^G^򶻻A]I}i4l+6$ZU $|DPRPkN<vKexT7ZXFH}DsGꚆC}adY+hŒV!667c"qeWȈs19ϴ.hm3b'OJ,Q#Ywx{c!` ~0Po|n'$#]Yi˦JKML\R̼ G0 cSyRvu9nBP6Bpef7>ŃVcrHv:0V˕(}#M18 fC$?Oa /%d'm2Ž,]>ucdҀ%Yۿp%l4POfPV (nCyu8%Mc4^äM(xW!Z& h0; =#Q;eRP`g^TT:zƲzI~d5[nkJ+hnG72q-#$9!$I&uiȱPI!trPu͓^JUpmL݊<`cs+Ic3VڻN-)ybYUT؝iX Ì͵L̞ew~!fȓf' GVV_%i8L=-CKSgArα(91f%!" }pNfKj4E^F 9@]ȽJBj `RY+7 Fns1z.(|O4S[[چ.E߬XcRKג*3c SVuQD^֫@$%.a{yT΀HTQY?Z2Q&&cLjQa 3"\ASvW`P7%w3L4*}q_rU*52SCZ%dՁ]\eNԾ R')an'FH,&UMlmH˄[BK^BPJ{yI!MLijG~6l <@aY&6\Oҍ6!a?LNLJIK!iq9dUM3-Fg_+nnIi\/S"|uPPUͩU+>Qq!dǝ'՟TN%8 IDAT ,%i_Fr{D&V >]KY @DO4yͦk$-@^z2ʔ3!ܧ&y ogWjuq$*^RVRytVmI8X[Hch6p\7`0PgFTBMTX}&檳<=“ Pқ'H&A9s n7&QYֱc]b6b]([\Z_HW -_1ִje[MS"rmjfJ)cDfLMM)FBSwzS&F4 α2$fC\4J8[0VHu@PD34prl^R̝ HITe6` zRދT ζmXyJHL!F`iˈ '$d@YTǛiN#]N drDZ8~L*TVۈ ~M32s B2rc[]9nf`ilmm#"pp\qǎEZҭ@EO6CX2<6̪By.uXK}X~PsjcuLX@"Rح$yo} ֐W&l9W[w9~ ՞Vxcc N7*YZda'1yYҊ@WyAή8=HW" @"B".j3'4|u~sAq46qk7p1 BE1(h rj["ۧGi2^Fo_b>L@|ВDzV7ƽu&c-9v@[[[EQa Z%yAVfşAYB({6h'4>qh[X_[`W<)CZ£q@^0nv%H#d(Jģo!ȼ|VNbI$88•k7yRjQOVkq#Ulu.aN[n)`92 / \*"S~΀2T%*~EШK2q;-dSOZ z=KK9~VTi,RoJRz>װyTZ)*K0Nk[[gdY&YIi^aL"8|Z0B߫hQ2"#q,_>g&@hN 8'[9(qҏ4n1;v&ou 'i`\#-E`ɚuQCf " j+TJ*y'\ǁWlZ@;t=33F qYpq+p# ʣ1Nʭ%y։kjH08+޹ c67Dy+iOlj&IH&GnY;}{]lnnevJFCqKDžÜaqyhb)mq~RA|i$Z ib)pڀ *%\+FjzO2$HhN4QffvAҮMKdYAsh#.uպ+v$~+ {12kv[Ud1kuML6C#׷_`D:&dSqzmĦ[}J/u:llmX/V&É `8/vQţ D/ͦ^~.?W*@:BL(!(Q(hfuwqlIS쥬>\3#JnCBüӆu `G5ErRG 4ZaM5L! xlk wJt]odIg D8Iw)rza J|DQוD_OU}JʊVK`i][8cq/ /osu<R@b9q%QDqh4>!>\S'gKjS!5/۪:Aɢ4^H4%<|OM ;X@`G7,Y@@/La]ຮ^$ @E/Sei \c\LŚ]%Y7T-%acsݼ,E_NrQrH^&.0@{N8PLf-ʒ:YAϒ$Wh$A+WydV{d8' M Hg_ [G17ve8P088E$(-TZM^KLꮿ-)"VZ<q{m 5(m !'Egy yYYZMFRvwY{9gjy˚z^BǑ2|0:p000Eda~(;wJX8thD*Li+\@4Jl`h)}}0$B3UY'F$"ݫM12$(aA ^|aW%nZO;)$_MNLl/rtNG3>0?Z 7lەP6$ud  y `&@Yw ke>P@(;ڤn;\ 46&3f>g}-MF4 վJYZ^D$h`  ^{%ki%:>$]$jU9,ϔbzZ얜7Aණc^@ԕ&iH4z C)(- vDBkH3&fQ1MQg~Z(V!dRk2L~ 5o a+$饠[V<̧M}N {0*_C;R6BN_ o;IQ;0Da&8Dmd`TI$$IB+Yk˞qA6H@j0*(!>;۽=i"•Z 30B U=C3}2GxcbKN<{yj:(C2M##Y>snW%ƴ!Yˁ&C@!XXBK=|MmH?Vn%>}d$ m_ %#" "м3qf -ٝh1z$~A= vsnJ}ivZJ}?+/P? Aa^Dw]`Lu~Lt'>l$ Bq #Ssn%R4 igfOJ\,vHFVޑ-DK({BF${?~Ĭ>B,ۺn9p.BP#qr4O!ݠ3Կ%o5h/"m9zu;d܏KOvL@urTc)_]tjAb m+LsF$60 Tj>Ga Kup-lOa{"F? (ٕm;I[S-;=a E `găɤ_oٻO"~N[9X#^DWR[S۽Ūs?Q%_CFq6C&ݸrKM?w ]$]l~.c% %RjsGIfWFF'%*+Xe@ `FO(蹙$({W펺9g&\I諡@INhwZ~Ѓ'H)]KkМ8L05dV\ =ASQ[<$ō* qDХ_itz?-pk;־,gtV}KSB"܅fkq>+ܭdppDf "c<JIwitLIk y3E%܄0 ̯W$M8ڀIj* !ڢY@fg仐`Xܕ,xBwhֺ\,*9~Ɲ3en[Fp/o#0""ÀN1Z e?W52Aiפ% CEY}^t޿;Fđ(NZu\ZK#E7=D݈3CtY$x]Dv\$L7ceQCu_Y7q^LB4jY( oѢ5ީer~tIS<_ÈeR"2(V `$0[ gM`P頝ĘSRBIAa% C5Z$0š&y$0RW#a(Rsߦy| qH:>M{5`B$KDS*^Ƒ~(T}%m#m䟇bM>LafKiR8g2x [w߮ZJd-/U v"|$%;P'²UR ` 6frHHO?PM*ʣl/xO{C|Z٧o:w_8tU^D`'Q9m16?od*GJz%B4 #|Ż@n_;otl7I@OXJM8cû`) ):)kqm^KFɓWC4I KN-䟌|B{UD tAs~H=u&40=QѦeQtkZa@֪#@k$]:T}1Q_7BqI,Xt)l$lB9 NspNI>N:_Hwc$D{C*-v^ Ff<U(w]w#g{.9F#Q;"՟}?40y KH@;PO$9TKqooOV$;`z/*6|8< ~ IDATc'G2e?c1[M4]]9 4K/n0 ~,Zӡ/ ƞl6IH5R$֤@E,ifM@ *G$%=Q 6G,I"0Fr] p.$K)y,{@;PetX*%B$_v AP r|\ ==,j :COk0{ؤk_ja5 b`wDʅ8ɀ"$ߐi S{7/'VF88ɔ$F#ϩPDJ;;Fڭ<{8ÎL"&ww=ˮORW">56葢%!P(9a^rnhI?m h?'ŖUBh{3@ $Ȕe]hqW V@vl ȜVz9@MRDz|^ɰκQ&BtuS3I /}`2$K~n6PnT&b%L3N2FnyqO:ZZ=ajMMig#IEzUݴ\فIyPHG쀤@t/X|,Bmmd_,Hv Yto'GCA&A cvcAv4he|HfD !(`GWS'| f ~T{K۴<ѩܻBrS'GrÑ R&GiKy7 @4k8D%KIOe/4[Ps/ʰ&*b8Xa{۴DW>1™~8x;a8 ;{gvn)t+={S؛kR)א`FvH=@CAbzFc{|qoO/hq%ԗST4F?Sw[tZzPpWݤ ^y K gA%6P?V?3![ 7 睴'v Cs>2Ez|Ie)OcӁZziLQɾbo 05h|sfcY3e-v" P٤0.IO3n@?|Զ._|gK3+,&vlDRZuyhfmN:{Z[$nH@6$bah!(dzTgG%[t tzSh,P zu) %NvgۜP &S?83}osatԇsrx%SccX2~y]X*e/9 zGJZduL*X  C} pfړ0UBD̔,0`Sk,*V#YvG?8a۫ق?hݧhtŗ|7q<9cZ9&R2i fnO-,H-+Ct22psz.2u)ƹ۶P+>{S0+z-Ym`s`#pIu:;пS8%X%w%zcc@ۋX,YwmW@zK5*$gRuDl>5@QFe\q]/+,VbGp/tw}00D Md$1!)=lh:) Y_7'ET*3cKjK;"@7o(ԒF%aQ zlɸLZʥJB \~]9S" PTNӨNNv?g {16Q,w"_[ JX^u}}o^;ύUW/6:l7,>vuV-znB9ER;\A,bHnbDirI`[LG&w$kK]|Jb짹;+ OPU3Pz|#57?ӺNݝ\(8ӄKLF$B~z]_I(fssm ^bH۶xaw2#$=!c.3#JSW0vt:\q&ޥLw27WVmc-",ר-,VU}~[~ըYH‹:fߛ Ð5\TC0Z)M6 PMlkl zj>? 9Se}} ݧfKßd,Ucq$w;U6WW8yD@="29^hggooZli@PP3pVM8uZ!cY+w<p)1Ռ~+s~`N#OJuֆ\apd_8/EuߺK'~{nUI@$3䋛WVrg񔦀TUROL5iL֙e?o-93N)NYksc7NX~MvcUt&//pg 7?ra še ²uUS$'? |Xw~ZMcɭf;({%fk+0zHH**~չ ZUve"g1=eD tBqkIZNwh/~1L+Dξ/hqݱ,xpKn.)ʸTGq#qc'$^iqd|N =ɷ|ڎrnlQbKٻ4777i P,3nɋCJR|g"ܰn};){np" =+{[>۫٢yɤ-;~g6ƫܥCy~}}w%7% ƞ4a̰{Y*D_ܗC k1aY>'?^zkJ-=Sh`5vv/bVsE$R`oo59xAc}ɤ-Y6VijA1=&(hq' I)rY!7%/RTɵk+ܳsSh`m|׈045*,ϰ~YZBkALwԸggFX_[3 p3Ye[rIPRM6)q߲͡w{m"xאܿ!pyf:s1&aqav7-BLo_H /] 9ɵkڔXR|_&0 Yv:?Sx.xWSFa0SVl|N!=Ըôt᝜zrf᷻˕+WGyLun*ܒ᤻W^efPz{5cL\ެӟKbLUgk|0n_S_$<[~p#Gh8ZWs4[),8BPL[2%*ehǥKi4qp6Oʖ#ԳP$[1f.ٵqw/oĵl*_3C]'fk\<ۛIC%f:Rx[7cr[[\|Ni>5^?JQL{}KmZ|+"(\8/ :P$1f8}g9[Kt?AC&.2=yvvǏ+fRNCk{[.BR*.Awp2ݨLxC~IZkscs:sҺ`rp8Gw/VOq'G>c9pp^6ܑWr$h>B.O~'`av3מ$]\ǍKonnniɟ+>CD1wLKY?-?prLHK8 <{T+I‰1W+J{RıcSߡnܒlqB9h4XFeZ[ 1s 4ܥlq6}%2) ! =U@[ 7R/LpRkgwځ}<PH/nYu\ bfl\n(9;'x.Sn7VZy*rynaBDU8Kpv RU#,Z@8vAAj lc_13nRFEu WEx"Bpk;;I㈽J΋_2߹X9C]6U2ЩZr}n%;F@;m|ۢ/#\B8pUm{+}Ǫmjfp*[m'>Ci~}Wb PqμuTgxR6? <"p{fafggY\\Rt/<Nn4loot}]NzE ,Ɗ-/7pἸ*/&AOcQŽA?RDr.Rt:>!/NC!<ϣy7!RJ[[4qTg93oDClӬ]D"|NXn p^+4=x?~2Frdr%fffrs ? ;8yum.RJlmolOWsjw8ZӃgQ«|%1V.> ^-7!7 \8/^|md`ȫ8җP #C{AJ\o|#Y/K,,-27;{E &.]q!Z6~$#msv&"W(5C\%7UD=oԩ>.o;-:U~iD!)F^ڙ-KVl5"qgnnrI[;]T\'7"Z(gnvb\Gg1aa.A;'0!)"8ݏ=ZݢV7pDT('hݼExGJ2K W#`qeA9ܔ5FFpY8ZN}4h]Lvps̈́rnBr9*B!V|:}|jT){a"\>{t襋)-֓fG>h3ߞD߆#ɷgm,V  ٱc {k?H;8~UJ]Zw9EqK/-h/7Xon9[mM?ȟmn)ob4r>!06\s2Oc/X' Ho|ܼfh4;ihoW0NAIѽNٽLɻBٽBɽJ{P%:id.WEf!%;~Ol׍rL㧸/}l0 ٥9yTgARM-ƖPi'iO9°J +B B(##u\#+{ǩ=UJeJʁl}0"pw$ybO_k%O&JG=O2]PQp `3-RE {8<`˷P9aX!bA0}-ye+D}Nn)C|ׯUr=݈0vY|W3SoKEަY<?ssaIpVݒpxc1:m;m@_{?kj@BL4}\b8}~~~Iю½^feY"!8{q\uCXi~m|Pijw|Ug-x@G"KJHBx9=¯K{3)p?sbnq[͂88;N>SZ _@}wKLF r^qAEѓG>O}ʳwr̽,)߬.:A hL #{uu%`kghS˕{;0oK `DjBW˒8z@k/!g-1E88ų83.ul gٟ~'b }੿TT'}jRs^~~nL{ ^i/ȩy b˻A$wps}~Ҧ0 nO6!/`҈J)ma9&Ruis? RDf{9tcЦ72&l?7 nzݒ p@8="`{gҳWRI|o|M@>pB:X a0@ƨo8뇿~R"z)2tNLcUdX#,n7 . ) ۞ ݱ8,%--]N ܣscYHDΟ? XF31A0ip34'B(;xŷ7 @P(e,?D%qDzᒲ+7g#3{}6Wwٻ~1u~WW:,8Lu۾`Џ(Fm{8Q'sIVvaNf[E7C?0WO~o=s7n1xǘ=$"H߈ i_le#."8bfPj;ESk<ݟy- .TxSHӸf^7=Gx%f.eIfE&$}I `lń"D]@8 w!?FdoWF}"?xC$ioo{o9u+iYE8E>CTgqYp?&M`q7DNV[AԾcosNs-uξ:GxجㆷG 3&@ (2|p?|'y憤8 =B Ӥb(RFnEBaAi$ G3sӆD"R#zL ~(Dv*E%2E\n+ҪCm:Un.S>F-=*!$uMʈ$FuYŷ<m" TO2tK+ٰK?>A[@2@(Sx \x᥎Ïv0ܤFm=t|j_x?}O<.xT3li ~\ 0Ca|%2r8^MUΐWW-.R_b!3ND Fg:4!]?:?4Ϯ Ya٭IsPJLȻhZƯ鱸vKO[MVܷ߼+3E8xy"CTQq(UdBv@=;Cnfje>3JFi_;(aliOd@].2<[X&}Ah* e1 U|릯7H.!-PR, P(FWy6 Bt 5;m4;4u{m/l{ up(kO\;$,n些w:~V4(w-B6}xV)VU K!&Eq Cy+hЪi5~0J9()6ԧ6-6Ըzy-t=' '  ɀ!ә;ڽir r<8n ǭFq\sq`up\/wBCA a }l=;<%=/ 40~"DƝa=ހ# ΫyHM1EhbzT [|*|1SN0wfLdJoH~yM/+^n>sDx'gZY=ms?-\=_q?:4+\=_p4v5O6ZVF ݿY6i *=(@ 4myd{_k*^yNpZtA9vzK{u.mp鱧~kN)Y5KsOK+ˢK Y5| wB =2lgfl4&F@d-7ɿ=OPs3>~ӇfcJӮsB҄$o4N\|"$~J~PaIYzYay%M=xB}[GZa }5K_rn_cRfRZ*R-Q\f 4<0ܐ D!4ЏR7^O?-Lۨ$QvXr*xfX[0 +b- image/svg+xml Home Bank 16JUL06 Nathan M. Willard EN homebank-5.9.1/pixmaps/hicolor_apps_48x48_homebank.png0000644000175000017500000001010411330305170016354 PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtTitleHome BanktEXtAuthorNathan M. WillardbdŒtEXtCreation Time16JUL06UaIDATh՚k]Wukם{!N 1J4A 4)i* TUADUm"PPJ7$$)B`8Ly{{9;c; ij9wsZ{QU?cJ;1{1Ɯf#2p9w97[Ǹ- ׸ńAS?~{4 >? Kex\0Ғ}6 ȝb__edM݃o4A`qeUZ:$M=sOVΟV#SO1ޗ|tvvw_B65 EU EAb߉ VeoԪg_3'0wl׿/&?K_@@L>?8PW\[LpDuiR_?Y}/qj$p!$`n#d?'QCĀx%xInb@k|~:*/=}{o}fls|wnۼpdkEyDrx.1z=dAAEa$i1iR3|2q#IEλa|ÓYn}}zW&W{oog6U(x8d704T "M/n,_faq>Fj5uKn'O]w |Z̏C;C+4!1|sٶ*QOQr"11 ;wѮ? Kw's'~mz;T'1־ d4#u'g>H F_κRbCf,,,*"֒$1]]}3r3ĺ2oi[¡mo9,1#O[*}=Cc;J_ YL .YV$MZQQUsYN0X.sn\=BoӇ|7'z}uCGWg+x +X89Qvﻅ~2gK'BZ1i{,-/c<*0c;n "Вw'zc 96G'($McؾN}U)wI:#zF{~\IϏ3xPZ'˲ JNkx-$# sx$ILu7p#S+w`k1vm}פrտ_ƥ/3Ɲ$MβZ]CDlv$iv]s~58x,q,aJ>bu}+/Im6^kP, MR]ĩ+"6hgPI-[{U6>}/_<$!ݿ<E̶QGeE=Ģ8gYZ^A8Ipùfw$m@Ae4M즚ބըxNz@%* _DPKkފҒT^MFrŶ)m,Èavn$T$bGX_Bk y*ǡM{:mrz]X?LOh @1"qֹH"-BNsRq033+C#Na~ă*6``t{8" Qk`\AU ;8p8ƹ\sII%.'uFAbvv[_>to1˱e[5; u+Gvms,.\ qeBTU,-xAA갅[ei edxx%Cz^XA%xA'Z[AUqY?Q`]S8,"&/ls._A"EXj5D $?;n\w;|KL?OR yDa_;|^gNgߧ%|̩o]wo=d |/ 5 11= f7r +[;3|n}o/ ^ƧݏV^\ ݽLf3; ՗ "oj3&Cof駖o~=~9߻ۺDOu`~1kܺE{ ƘbwNV/<ɦlDZ?y;_W}G^?=3 b w:V'}amFYdZ}O1ChfH^zj>a,1/pȐloLVIfJr-Nb(zSDYzg0Ҹ rDm~1;z.iYK)>;ݱ# 6._@v^'K @ZHRc 8 e=摮o{e80:(.}Mx7#./dv'_Bdu$ y(mjR}|htw{!1fͣvuu6wl:opE:3ͯoot/M6F ll ン xVuxP=0$A#ƨ}]$ Q I=?72>΃Ǿ ֻK7(]i /9گK"orku(7ox~z~lƁ249SO>~U߰%mve}($w ^۹)M]th,-1h19l'U]_itfg_^tJH"K݆/忟][n. >3n^1cb EP ^n_;r/~z7lEV2Fv/r#Q|c Fl~շݣlD9/Cg`K{ o쀗nװgZcm4M'/ru" =\ʿӳW/k~A:xTE>HOaEBQUPP"cE%f}ٙ0H{my澃i<1s%iCD|*zwlr]Z48=$cj}Qp%6E'@4PQ%e4HNsҢQݕZ9 dyʲ@(>x2, Ht@f驇*Ic{b0dYh4DT1G1IJ' }@Z)j"G#!hIk}\*˂,OqD$h'H@< g,d*-. (ye)Ad A45Y+{`PiȊTXU#Oа "c$ *`WQuYS弝_PqZt+ 2ƘNA\T7Э./[koٹ}ٔ3h6j;>M(T>-GQ<x?큛տ5e+heZ𗩖0+6O~Gw:`n^7 ׹HkD1*<$&갱['6cvӽգV/F(~euɋT B8'e}W?Ov@^M}*[K[ks+Yf4c C``tU LptL%M`gymܞ@:5c" *%@8 xpyU $췱AIENDB`homebank-5.9.1/pixmaps/Makefile.in0000664000175000017500000003375615006363044012542 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = pixmaps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = public_icons_themes = \ hicolor \ $(NULL) public_icons = \ hicolor_apps_16x16_homebank.png \ hicolor_apps_22x22_homebank.png \ hicolor_apps_24x24_homebank.png \ hicolor_apps_32x32_homebank.png \ hicolor_apps_48x48_homebank.png \ hicolor_apps_256x256_homebank.png \ $(NULL) noinst_DATA = \ homebank.svg \ $(NULL) EXTRA_DIST = \ $(public_icons) \ $(noinst_DATA) \ $(NULL) gtk_update_icon_cache = gtk-update-icon-cache -f -t all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign pixmaps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-hook install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags-am \ uninstall uninstall-am uninstall-hook uninstall-local .PRECIOUS: Makefile update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ for theme in $(public_icons_themes); do \ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ done; \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ for theme in $(public_icons_themes); do \ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ done; \ fi install-icons: for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done uninstall-icons: -for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ SIZE=`echo $$icon | cut -d_ -f3`; \ ICONFILE=`echo $$icon | cut -d_ -f4`; \ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ done install-data-local: install-icons install-data-hook: update-icon-cache uninstall-local: uninstall-icons uninstall-hook: update-icon-cache -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/pixmaps/hicolor_apps_24x24_homebank.png0000644000175000017500000000267311330305272016357 PNG  IHDRĴl;sBIT|d pHYsXXtEXtSoftwarewww.inkscape.org<tEXtTitleHome BanktEXtAuthorNathan M. WillardbdŒtEXtCreation Time16JUL06UIDAT8}]G{'=ٝK` ѬIH̅d5&A "anRJ/ԨUPP@bv3lYddzg{:Njnh,-1h19l'U]_itfg_^tJH"K݆/忟][n. >3n^1cb EP ^n_;r/~z7lEV2Fv/r#Q|c Fl~շݣlD9/Cg`K{ o쀗nװgZcm4M'/ru" =\ʿӳW/k~A:xTE>HOaEBQUPP"cE%f}ٙ0H{my澃i<1s%iCD|*zwlr]Z48=$cj}Qp%6E'@4PQ%e4HNsҢQݕZ9 dyʲ@(>x2, Ht@f驇*Ic{b0dYh4DT1G1IJ' }@Z)j"G#!hIk}\*˂,OqD$h'H@< g,d*-. (ye)Ad A45Y+{`PiȊTXU#Oа "c$ *`WQuYS弝_PqZt+ 2ƘNA\T7Э./[koٹ}ٔ3h6j;>M(T>-GQ<x?큛տ5e+heZ𗩖0+6O~Gw:`n^7 ׹HkD1*<$&갱['6cvӽգV/F(~euɋT B8'e}W?Ov@^M}*[K[ks+Yf4c C``tU LptL%M`gymܞ@:5c" *%@8 xpyU $췱AIENDB`homebank-5.9.1/pixmaps/hicolor_apps_16x16_homebank.png0000644000175000017500000000174211330305316016354 PNG  IHDRasBIT|d pHYs|4ktEXtSoftwarewww.inkscape.org<tEXtTitleHome BanktEXtAuthorNathan M. WillardbdŒtEXtCreation Time16JUL06UIDAT8eMlTU{f:M!ɸi%MXB E]l… W¥1qƅ 0BHLT\EI6De{qі9D;R㥱=Z|]VG򁑜Un Cus+Kg<\&}XlOqw: kȥWkvkiXA<_<fGH  JY_cu!^85$$a}0$ ϕʳ~{e$ua!:|R@JML\yboMHRBhnlPXktDbœÚX{K %D_F7;)gcdF&F,Vd+Xue'Q* %",~S?]۱>L~+)7,|qh-/ /WҟR4 X&ܒE!yJ3ڥvֽ_܀9Ue V/0Ԁj!؉7/OMV\ yW5i}kT nŧzx:xD|iіD nIENDB`homebank-5.9.1/README0000644000175000017500000000044711023413026007650 HomeBank -- Free, easy, personal accounting for everyone. --------------------------------------------------------- 1. Web Resources ================ HomeBank home page is at: http://homebank.free.fr/ Please be sure to visit this site for information, documentation, tutorials, news, etc. homebank-5.9.1/src/0000775000175000017500000000000015006374031007643 5homebank-5.9.1/src/rep-time.c0000644000175000017500000016633315005633746011475 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "rep-time.h" #include "list-operation.h" #include "gtk-chart.h" #include "gtk-dateentry.h" #include "dsp-mainwindow.h" #include "ui-account.h" #include "ui-payee.h" #include "ui-category.h" #include "ui-filter.h" #include "ui-transaction.h" #include "ui-tag.h" #include "ui-dialogs.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* prototypes */ static GtkWidget *lst_reptime_create(void); static GString *lst_reptime_to_string(ToStringMode mode, GtkTreeView *treeview, gchar *title); static void lst_reptime_set_cur(GtkTreeView *treeview, guint32 kcur); extern HbKvData CYA_REPORT_GRPBY_TREND[]; extern HbKvData CYA_REPORT_INTVL[]; /* = = = = = = = = = = = = = = = = */ static gchar * reptime_compute_title(gint src, gint intvl) { gchar *title; //TRANSLATORS: example 'Category by Month' title = g_strdup_printf(_("%s by %s"), hbtk_get_label(CYA_REPORT_GRPBY_TREND, src), hbtk_get_label(CYA_REPORT_INTVL, intvl) ); return title; } static void reptime_sensitive(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; gboolean visible, sensitive; gint page; DB( g_print("\n[rep-time] sensitive\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); visible = page == 0 ? TRUE : FALSE; hb_widget_visible (data->BT_detail, visible); hb_widget_visible (data->BT_export, visible); visible = page == 0 ? FALSE : TRUE; //5.7 //hb_widget_visible(data->BT_print, visible); hb_widget_visible(data->LB_zoomx, visible); hb_widget_visible(data->RG_zoomx, visible); page = gtk_tree_model_iter_n_children(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail)), NULL); sensitive = ((page > 0) && data->detail) ? TRUE : FALSE; g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "detclip")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "detcsv")), sensitive); } static void reptime_update_daterange(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; gchar *daterange; DB( g_print("\n[rep-time] update daterange\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); daterange = filter_daterange_text_get(data->filter); gtk_label_set_markup(GTK_LABEL(data->TX_daterange), daterange); g_free(daterange); } static void reptime_detail(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; guint active = GPOINTER_TO_INT(user_data); guint tmpintvl; guint32 from; GList *list; GtkTreeModel *model; GtkTreeIter iter, child; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[rep-time] detail\n") ); //tmpsrc = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_src)); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); //reptime_compute_set_filter was already called here //get our min max date from = data->filter->mindate; //to = data->filter->maxdate; /* clear and detach our model */ model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail)); gtk_tree_store_clear (GTK_TREE_STORE(model)); if(data->detail && data->txn_queue) { g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_detail), NULL); /* Detach model from view */ /* fill in the model */ list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; guint i, pos; if(filter_txn_match(data->filter, ope) == 1) { pos = report_interval_get_pos(tmpintvl, from, ope); if( pos == active ) { gdouble dtlamt = report_txn_amount_get(data->filter, ope); gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &iter, NULL, -1, MODEL_TXN_POINTER, ope, MODEL_TXN_SPLITAMT, dtlamt, -1); //#1875801 show split detail if( ope->flags & OF_SPLIT ) { guint nbsplit = da_splits_length(ope->splits); for(i=0;isplits, i); gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &child, &iter, -1, MODEL_TXN_POINTER, ope, MODEL_TXN_SPLITPTR, split, -1); } } } } list = g_list_next(list); } /* Re-attach model to view */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_detail), model); g_object_unref(model); gtk_tree_view_columns_autosize( GTK_TREE_VIEW(data->LV_detail) ); } } static void reptime_update(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; GtkTreeModel *model; gint page; gint tmpsrc, tmpintvl; gboolean cumul; gchar *title; DB( g_print("\n[rep-time] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); //byamount = 0; tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); cumul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cumul)); // ensure not exp & inc for piechart page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); DB( g_print(" page %d\n\n", page) ); //DB( g_print(" tmpintvl %d\n\n", tmpintvl) ); //column = LST_HUBREPTIME_POS; //DB( g_print(" sort on column %d\n\n", column) ); //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), column, GTK_SORT_DESCENDING); gtk_chart_show_legend(GTK_CHART(data->RE_chart), FALSE, FALSE); gtk_chart_show_xval(GTK_CHART(data->RE_chart), TRUE); gtk_chart_show_average(GTK_CHART(data->RE_chart), data->average, cumul); title = reptime_compute_title(tmpsrc, tmpintvl); gtk_chart_set_datas_total(GTK_CHART(data->RE_chart), model, LST_HUBREPTIME_TOTAL, LST_HUBREPTIME_TOTAL, title, NULL); g_free(title); if(page == 1) { DB( g_print(" change chart type to %d\n", data->charttype) ); gtk_chart_set_type (GTK_CHART(data->RE_chart), data->charttype); gtk_chart_set_showmono(GTK_CHART(data->RE_chart), TRUE); } //test 5.8 //as it is not the filter dialog, count da_flt_count_item(data->filter); gchar *txt = filter_text_summary_get(data->filter); ui_label_set_integer(GTK_LABEL(data->TX_fltactive), data->filter->n_active); gtk_widget_set_tooltip_text(data->TT_fltactive, txt); g_free(txt); } static void reptime_export_result_clipboard(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct reptime_data *data; GtkClipboard *clipboard; GString *node; gchar *coltitle; gint tmpintvl; DB( g_print("\n[rep-time] export result clipboard\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); coltitle = hbtk_get_label(CYA_REPORT_INTVL, tmpintvl); node = lst_reptime_to_string(HB_STRING_CLIPBOARD, GTK_TREE_VIEW(data->LV_report), coltitle); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); } static void reptime_export_result_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct reptime_data *data; gchar *filename = NULL; GString *node; GIOChannel *io; gchar *name; gint tmpsrc; gchar *title; gint tmpintvl; DB( g_print("\n[rep-time] export result csv\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); name = g_strdup_printf("hb-reptime_%s.csv", hbtk_get_label(CYA_REPORT_GRPBY_TREND, tmpsrc) ); if( ui_file_chooser_csv(GTK_WINDOW(data->window), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, name) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); title = hbtk_get_label(CYA_REPORT_INTVL, tmpintvl); node = lst_reptime_to_string(HB_STRING_EXPORT, GTK_TREE_VIEW(data->LV_report), title); g_io_channel_write_chars(io, node->str, -1, NULL, NULL); g_io_channel_unref (io); g_string_free(node, TRUE); } g_free( filename ); } g_free(name); } static void reptime_export_detail_clipboard(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct reptime_data *data; GtkClipboard *clipboard; GString *node; guint flags; DB( g_print("\n[rep-time] export detail clipboard\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); flags = LST_TXN_EXP_CLR | LST_TXN_EXP_PMT | LST_TXN_EXP_CAT | LST_TXN_EXP_TAG; node = list_txn_to_string(GTK_TREE_VIEW(data->LV_detail), TRUE, FALSE, FALSE, flags); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); } static void reptime_export_detail_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct reptime_data *data; gchar *filepath = NULL; GString *node; GIOChannel *io; gchar *name; gint tmpsrc; gboolean hassplit, hasstatus; DB( g_print("\n[rep-time] export detail csv\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); name = g_strdup_printf("hb-reptime-detail_%s.csv", hbtk_get_label(CYA_REPORT_GRPBY_TREND, tmpsrc) ); filepath = g_build_filename(PREFS->path_export, name, NULL); //#2019312 //if( ui_file_chooser_csv(GTK_WINDOW(data->window), GTK_FILE_CHOOSER_ACTION_SAVE, &filepath, name) == TRUE ) if( ui_dialog_export_csv(GTK_WINDOW(data->window), &filepath, &hassplit, &hasstatus, FALSE) == GTK_RESPONSE_ACCEPT ) { DB( g_print(" + filename is %s\n", filepath) ); io = g_io_channel_new_file(filepath, "w", NULL); if(io != NULL) { guint flags; flags = LST_TXN_EXP_PMT | LST_TXN_EXP_CAT | LST_TXN_EXP_TAG; if( hasstatus ) flags |= LST_TXN_EXP_CLR; node = list_txn_to_string(GTK_TREE_VIEW(data->LV_detail), FALSE, hassplit, FALSE, flags); g_io_channel_write_chars(io, node->str, -1, NULL, NULL); g_io_channel_unref (io); g_string_free(node, TRUE); } } g_free( filepath ); g_free(name); } static void reptime_update_for(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; gint tmpsrc, pageid; Filter *flt; DB( g_print("\n[rep-time] update for\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); flt = data->filter; DB( g_print(" src=%d\n", tmpsrc) ); //filter_reset(flt); //inactive all filters flt->option[FLT_GRP_CATEGORY] = 0; flt->option[FLT_GRP_PAYEE] = 0; flt->option[FLT_GRP_ACCOUNT] = 0; flt->option[FLT_GRP_TAG] = 0; switch(tmpsrc) { case REPORT_GRPBY_CATEGORY: pageid = 1; flt->option[FLT_GRP_CATEGORY] = 1; da_flt_status_cat_set(flt, 0, TRUE); break; case REPORT_GRPBY_PAYEE: pageid = 2; flt->option[FLT_GRP_PAYEE] = 1; da_flt_status_pay_set(flt, 0, TRUE); break; case REPORT_GRPBY_TAG: pageid = 3; flt->option[FLT_GRP_TAG] = 1; break; default: //REPORT_GRPBY_ACCOUNT pageid = 0; flt->option[FLT_GRP_ACCOUNT] = 1; break; } gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_itemtype), pageid); //hb_widget_visible(data->CM_all, defvisible); //hb_widget_visible(data->BT_filter, !monoflt); } //reset the filter static void reptime_filter_setup(struct reptime_data *data) { guint32 accnum; DB( g_print("\n[rep-time] reset filter\n") ); filter_reset(data->filter); filter_preset_daterange_set(data->filter, PREFS->date_range_rep, data->accnum); /* 3.4 : make int transfer out of stats */ //TODO: for compatibility with < 5.3, keep this unset, but normally it should be set //filter_preset_type_set(data->filter, FLT_TYPE_INTXFER, FLT_EXCLUDE); //5.6 set default account data->filter->option[FLT_GRP_ACCOUNT] = 1; accnum = data->accnum; if(!accnum) { accnum = da_acc_get_first_key(); } DB( g_print(" accnum=%d\n", accnum) ); ui_acc_listview_set_active(GTK_TREE_VIEW(data->LV_acc), accnum); ui_acc_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_acc), data->filter); } //beta #if BETA_FILTER static void reptime_action_filter(GtkWidget *toolbutton, gpointer user_data) { struct reptime_data *data = user_data; //debug //create_deffilter_window(data->filter, TRUE); if(ui_flt_manage_dialog_new(GTK_WINDOW(data->window), data->filter, TRUE, FALSE) != GTK_RESPONSE_REJECT) { reptime_compute(data->window, NULL); //ui_repdtime_update_date_widget(data->window, NULL); //ui_repdtime_update_daterange(data->window, NULL); /*g_signal_handler_block(data->CY_range, data->handler_id[HID_REPDIST_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_ALLDATE); g_signal_handler_unblock(data->CY_range, data->handler_id[HID_REPDIST_RANGE]); */ } } #endif /* = = = = = = = = = = = = = = = = */ static void reptime_compute(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; gint tmpintvl, showempty; guint32 from, to; gboolean cumul; gdouble cumulation, average; GtkTreeModel *model; GtkTreeIter iter; GList *list; gint id; guint n_result, i; DB( g_print("----------------\n[rep-time] compute\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //clear all if(data->txn_queue != NULL) g_queue_free (data->txn_queue); data->txn_queue = NULL; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); gtk_list_store_clear (GTK_LIST_STORE(model)); gtk_chart_set_datas_none(GTK_CHART(data->RE_chart)); //#2019876 return is invalid date range if( data->filter->maxdate < data->filter->mindate ) return; tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); cumul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cumul)); //range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); showempty = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_showempty)); data->accnum = 0; //to remove > 5.0.2 //#1715532 5.0.5: no... but only showall /*if( (showall == TRUE) && (range == FLT_RANGE_MISC_ALLDATE) ) { filter_preset_daterange_set(data->filter, data->filter->range, data->accnum); reptime_update_quickdate(widget, NULL); }*/ //get our min max date from = data->filter->mindate; to = data->filter->maxdate; //TODO: not necessary until date range change //free previous txn data->txn_queue = hbfile_transaction_get_partial(data->filter->mindate, data->filter->maxdate); n_result = report_interval_count(tmpintvl, from, to); //DB( gint tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)) ); //DB( g_print(" %s :: n_result=%d\n", hbtk_get_label(CYA_REPORT_GRPBY_TREND, tmpsrc), n_result) ); /* allocate some memory */ data->tmp_income = g_malloc0((n_result+2) * sizeof(gdouble)); data->tmp_expense = g_malloc0((n_result+2) * sizeof(gdouble)); if(data->tmp_income && data->tmp_expense) { list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; //DB( g_print("** testing '%s', acc=%d, cat=%d, pay=%d\n", ope->memo, ope->kacc, ope->kcat, ope->kpay) ); if( (filter_txn_match(data->filter, ope) == 1) ) { guint pos; gdouble amount; amount = report_txn_amount_get(data->filter, ope); //#1829603 Multi currencies problem in Trend Time Report //if( ! ( tmpsrc == REPORT_GRPBY_ACCOUNT && showall == FALSE) ) amount = hb_amount_base(amount, ope->kcur); pos = report_interval_get_pos(tmpintvl, from, ope); if( pos <= n_result ) { //DB( g_print("** pos=%d : add of %.2f\n", pos, amount) ); if(amount < 0) data->tmp_expense[pos] += amount; else data->tmp_income[pos] += amount; } else { //DB( g_print("** pos=%d : invalid offset\n", pos) ); } } list = g_list_next(list); } /* clear and detach our model */ g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), NULL); /* Detach model from view */ cumulation = 0.0; /* insert into the treeview */ for(i=0, id=0; itmp_expense[i] + data->tmp_income[i]; gdouble value; //if( !showempty && total == 0 ) //#2091004 5.8.6 keep lines with exact 0 if( !showempty && (hb_amount_cmp(data->tmp_expense[i], 0.0) == 0) && (hb_amount_cmp(data->tmp_income[i], 0.0) == 0) ) continue; report_interval_snprint_name(intvlname, sizeof(intvlname)-1, tmpintvl, from, i); //DB( g_print("try to insert item %d\n", i) ); cumulation += total; value = (cumul == TRUE) ? cumulation : total; //DB( g_print(" inserting %2d, '%s', %9.2f\n", i, intvlname, value) ); gtk_list_store_insert_with_values (GTK_LIST_STORE(model), &iter, -1, LST_HUBREPTIME_POS, id++, LST_HUBREPTIME_KEY, i, LST_HUBREPTIME_LABEL, intvlname, LST_HUBREPTIME_EXPENSE, data->tmp_expense[i], LST_HUBREPTIME_INCOME, data->tmp_income[i], LST_HUBREPTIME_TOTAL, value, -1); } // set chart and listview currency //TODO: we should maybe display in native instead of global ? //maybe to be done while getting active checkbos and store into filter guint32 kcur = GLOBALS->kcur; /*if( (showall == FALSE) && (tmpsrc == REPORT_GRPBY_ACCOUNT) ) { Account *acc; //selkey = ui_acc_comboboxentry_get_key(GTK_COMBO_BOX(data->PO_acc)); selkey = ui_acc_entry_popover_get_key(GTK_BOX(data->PO_acc)); acc = da_acc_get(selkey); if( acc != NULL ) { kcur = acc->kcur; //fix 5.4.2 crash here gtk_chart_set_overdrawn(GTK_CHART(data->RE_chart), acc->minimum); } }*/ lst_reptime_set_cur(GTK_TREE_VIEW(data->LV_report), kcur); gtk_chart_set_currency(GTK_CHART(data->RE_chart), kcur); /* update column 0 title */ GtkTreeViewColumn *column = gtk_tree_view_get_column( GTK_TREE_VIEW(data->LV_report), 0); if(column) gtk_tree_view_column_set_title(column, hbtk_get_label(CYA_REPORT_INTVL, tmpintvl) ); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); /* Re-attach model to view */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), model); g_object_unref(model); //update average gtk_label_set_text(GTK_LABEL(data->TX_info), ""); if( cumul == TRUE ) { gchar *info; gchar buf[128]; average = cumulation / n_result; data->average = average; hb_strfmon(buf, 127, average, kcur, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)) ); info = g_strdup_printf(_("Average: %s"), buf); gtk_label_set_text(GTK_LABEL(data->TX_info), info); g_free(info); } } /* free our memory */ g_free(data->tmp_expense); g_free(data->tmp_income); reptime_update(widget, user_data); } /* = = = = = = = = = = = = = = = = */ static void reptime_for(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; DB( g_print("\n[rep-time] for\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); reptime_update_for(widget, data); reptime_compute(widget, data); } static void reptime_action_filter_reset(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; DB( g_print("\n[rep-time] filter reset\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //TODO: to review: clean selection ui_acc_listview_quick_select(GTK_TREE_VIEW(data->LV_acc), "non"); ui_cat_listview_quick_select(GTK_TREE_VIEW(data->LV_cat), "non"); ui_pay_listview_quick_select(GTK_TREE_VIEW(data->LV_pay), "non"); ui_tag_listview_quick_select(GTK_TREE_VIEW(data->LV_tag), "non"); reptime_filter_setup(data); g_signal_handler_block(data->CY_range, data->hid[HID_REPTIME_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), PREFS->date_range_rep); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPTIME_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_src), REPORT_GRPBY_ACCOUNT); reptime_compute(data->window, NULL); } static void reptime_date_change(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; DB( g_print("\n[rep-time] date change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->filter->mindate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_mindate)); data->filter->maxdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_maxdate)); // set min/max date for both widget //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), ( data->filter->mindate > data->filter->maxdate ) ? TRUE : FALSE); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), ( data->filter->maxdate < data->filter->mindate ) ? TRUE : FALSE); g_signal_handler_block(data->CY_range, data->hid[HID_REPTIME_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_CUSTOM); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPTIME_RANGE]); reptime_compute(widget, NULL); reptime_update_daterange(widget, NULL); } static void reptime_update_quickdate(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; DB( g_print("\n[rep-time] update quickdate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); g_signal_handler_block(data->PO_mindate, data->hid[HID_REPTIME_MINDATE]); g_signal_handler_block(data->PO_maxdate, data->hid[HID_REPTIME_MAXDATE]); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_mindate), data->filter->mindate); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_maxdate), data->filter->maxdate); g_signal_handler_unblock(data->PO_mindate, data->hid[HID_REPTIME_MINDATE]); g_signal_handler_unblock(data->PO_maxdate, data->hid[HID_REPTIME_MAXDATE]); } static void reptime_range_change(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; gint range; DB( g_print("\n[rep-time] range change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); //should never happen if(range != FLT_RANGE_MISC_CUSTOM) { filter_preset_daterange_set(data->filter, range, data->accnum); } //#2046032 set min/max date for both widget //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), ( data->filter->mindate > data->filter->maxdate ) ? TRUE : FALSE); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), ( data->filter->maxdate < data->filter->mindate ) ? TRUE : FALSE); reptime_update_quickdate(widget, NULL); reptime_compute(widget, NULL); reptime_update_daterange(widget, NULL); } /* = = = = = = = = = = = = = = = = */ //beta #if PRIV_FILTER static void reptime_action_filter(GtkWidget *toolbutton, gpointer user_data) { struct reptime_data *data = user_data; //debug //create_deffilter_window(data->filter, TRUE); if(ui_flt_manage_dialog_new(GTK_WINDOW(data->window), data->filter, TRUE, FALSE) != GTK_RESPONSE_REJECT) { reptime_compute(data->window, NULL); //ui_repdtime_update_date_widget(data->window, NULL); //ui_repdtime_update_daterange(data->window, NULL); /*g_signal_handler_block(data->CY_range, data->hid[HID_REPDIST_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_ALLDATE); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPDIST_RANGE]); */ } } #endif static void reptime_action_viewlist(GtkWidget *toolbutton, gpointer user_data) { struct reptime_data *data = user_data; data->charttype = CHART_TYPE_NONE; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 0); reptime_sensitive(data->window, NULL); } static void reptime_action_viewline(GtkWidget *toolbutton, gpointer user_data) { struct reptime_data *data = user_data; data->charttype = CHART_TYPE_LINE; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 1); reptime_sensitive(data->window, NULL); reptime_update(data->window, NULL); } static void reptime_action_viewcolumn(GtkWidget *toolbutton, gpointer user_data) { struct reptime_data *data = user_data; data->charttype = CHART_TYPE_COL; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 1); reptime_sensitive(data->window, NULL); reptime_update(data->window, NULL); } static void reptime_action_print(GtkWidget *toolbutton, gpointer user_data) { struct reptime_data *data = user_data; gint tmpsrc, tmpintvl, page; gchar *coltitle, *title, *name; tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); title = reptime_compute_title(tmpsrc, tmpintvl); name = g_strdup_printf("hb-reptime_%s.csv", hbtk_get_label(CYA_REPORT_GRPBY_TREND, tmpsrc) ); if( page == 0 ) { GString *node; coltitle = hbtk_get_label(CYA_REPORT_INTVL, tmpintvl); node = lst_reptime_to_string(HB_STRING_PRINT, GTK_TREE_VIEW(data->LV_report), coltitle); hb_print_listview(GTK_WINDOW(data->window), node->str, NULL, title, name, FALSE); g_string_free(node, TRUE); } else { gtk_chart_print(GTK_CHART(data->RE_chart), GTK_WINDOW(data->window), PREFS->path_export, name); } g_free(name); } static void reptime_cb_acc_changed(GtkCellRendererToggle *cell, gchar *path_str, gpointer user_data) { struct reptime_data *data = user_data; DB( g_print ("\n[rep-time] acc list changed\n") ); ui_acc_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_acc), data->filter); reptime_compute(GTK_WIDGET(data->LV_acc), NULL); } static void reptime_cb_cat_changed(GtkCellRendererToggle *cell, gchar *path_str, gpointer user_data) { struct reptime_data *data = user_data; DB( g_print ("\n[rep-time] cat list changed\n") ); ui_cat_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_cat), data->filter); reptime_compute(GTK_WIDGET(data->LV_cat), NULL); } static void reptime_cb_pay_changed(GtkCellRendererToggle *cell, gchar *path_str, gpointer user_data) { struct reptime_data *data = user_data; DB( g_print ("\n[rep-time] pay list changed\n") ); ui_pay_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_pay), data->filter); reptime_compute(GTK_WIDGET(data->LV_pay), NULL); } static void reptime_cb_tag_changed(GtkCellRendererToggle *cell, gchar *path_str, gpointer user_data) { struct reptime_data *data = user_data; DB( g_print ("\n[rep-time] tag list changed\n") ); ui_tag_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_tag), data->filter); reptime_compute(GTK_WIDGET(data->LV_tag), NULL); } static gboolean reptime_cb_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { struct reptime_data *data; gint tmpsrc; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(label), GTK_TYPE_WINDOW)), "inst_data"); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); switch(tmpsrc) { case REPORT_GRPBY_ACCOUNT: ui_acc_listview_quick_select(GTK_TREE_VIEW(data->LV_acc), uri); reptime_cb_acc_changed(NULL, NULL, data); break; case REPORT_GRPBY_CATEGORY: ui_cat_listview_quick_select(GTK_TREE_VIEW(data->LV_cat), uri); reptime_cb_cat_changed(NULL, NULL, data); break; case REPORT_GRPBY_PAYEE: ui_pay_listview_quick_select(GTK_TREE_VIEW(data->LV_pay), uri); reptime_cb_pay_changed(NULL, NULL, data); break; case REPORT_GRPBY_TAG: ui_tag_listview_quick_select(GTK_TREE_VIEW(data->LV_tag), uri); reptime_cb_tag_changed(NULL, NULL, data); break; } reptime_compute (GTK_WIDGET(data->window), NULL); return TRUE; } static void reptime_detail_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct reptime_data *data; Transaction *active_txn; gboolean result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print ("\n[rep-time] A detail row has been double-clicked!\n") ); active_txn = list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_detail)); if(active_txn) { Transaction *old_txn, *new_txn; //#1909749 skip reconciled if lock is ON if( PREFS->safe_lock_recon == TRUE && active_txn->status == TXN_STATUS_RECONCILED ) return; old_txn = da_transaction_clone (active_txn); new_txn = active_txn; result = deftransaction_external_edit(GTK_WINDOW(data->window), old_txn, new_txn); if(result == GTK_RESPONSE_ACCEPT) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path = NULL; //1936806 keep the selection treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_report)); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { path = gtk_tree_model_get_path(model, &iter); } //#1640885 GLOBALS->changes_count++; reptime_compute(data->window, NULL); if( path != NULL ) { gtk_tree_selection_select_path(treeselection, path); gtk_tree_path_free(path); } } da_transaction_free (old_txn); } } static void reptime_update_detail(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //#2018039 list_txn_set_lockreconciled(GTK_TREE_VIEW(data->LV_detail), PREFS->safe_lock_recon); if(data->detail) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; guint key; treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_report)); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_HUBREPTIME_KEY, &key, -1); DB( g_print(" - active is %d\n", key) ); reptime_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key)); } gtk_widget_show(data->GR_detail); } else gtk_widget_hide(data->GR_detail); } static void reptime_toggle_detail(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->detail ^= 1; DB( g_print("\n[rep-time] toggledetail to %d\n", data->detail) ); reptime_update_detail(widget, user_data); reptime_sensitive(widget, NULL); } static void reptime_cb_zoomx_changed(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; gdouble value; DB( g_print("\n[rep-time] zoomx\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); value = gtk_range_get_value(GTK_RANGE(data->RG_zoomx)); DB( g_print(" + scale is %.2f\n", value) ); gtk_chart_set_barw(GTK_CHART(data->RE_chart), value); } static void reptime_toggle_minor(GtkWidget *widget, gpointer user_data) { struct reptime_data *data; DB( g_print("\n[rep-time] toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); GLOBALS->minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); //hbfile_update(data->LV_acc, (gpointer)4); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); gtk_chart_show_minor(GTK_CHART(data->RE_chart), GLOBALS->minor); gtk_chart_queue_redraw(GTK_CHART(data->RE_chart)); } static void reptime_selection(GtkTreeSelection *treeselection, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; guint key = -1; DB( g_print("\n[rep-time] selection\n") ); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_HUBREPTIME_KEY, &key, -1); } DB( g_print(" - active is %d\n", key) ); reptime_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key)); reptime_sensitive(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } /* = = = = = = = = = = = = = = = = */ static const GActionEntry win_actions[] = { { "resclip" , reptime_export_result_clipboard, NULL, NULL, NULL, {0,0,0} }, { "rescsv" , reptime_export_result_csv, NULL, NULL, NULL, {0,0,0} }, { "detclip" , reptime_export_detail_clipboard, NULL, NULL, NULL, {0,0,0} }, { "detcsv" , reptime_export_detail_csv, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; static GtkWidget * reptime_toolbar_create(struct reptime_data *data) { GtkWidget *toolbar, *button; toolbar = gtk_toolbar_new(); button = (GtkWidget *)gtk_radio_tool_button_new(NULL); data->BT_list = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_LIST, "label", _("List"), NULL); gtk_widget_set_tooltip_text(button, _("View results as list")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = (GtkWidget *)gtk_radio_tool_button_new_from_widget(GTK_RADIO_TOOL_BUTTON(button)); data->BT_line = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_LINE, "label", _("Line"), NULL); gtk_widget_set_tooltip_text(button, _("View results as lines")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = (GtkWidget *)gtk_radio_tool_button_new_from_widget(GTK_RADIO_TOOL_BUTTON(button)); data->BT_column = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_COLUMN, "label", _("Column"), NULL); gtk_widget_set_tooltip_text(button, _("View results as column")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); button = gtk_widget_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "icon-name", ICONNAME_HB_OPE_SHOW, "label", _("Detail"), "tooltip-text", _("Toggle detail"), NULL); data->BT_detail = button; gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REFRESH, _("Refresh"), _("Refresh results")); data->BT_refresh = button; //export button button = gtk_menu_button_new(); data->BT_export = button; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(button)), GTK_STYLE_CLASS_FLAT); GtkWidget *image = hbtk_image_new_from_icon_name_24 (ICONNAME_HB_FILE_EXPORT); g_object_set (button, "image", image, NULL); GtkToolItem *toolitem = gtk_tool_item_new(); gtk_container_add (GTK_CONTAINER(toolitem), button); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(toolitem), -1); GMenu *menu = g_menu_new (); GMenu *section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Result to clipboard"), "win.resclip"); g_menu_append (section, _("_Result to CSV") , "win.rescsv"); g_object_unref (section); section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Detail to clipboard"), "win.detclip"); g_menu_append (section, _("_Detail to CSV") , "win.detcsv"); g_object_unref (section); GActionGroup *actiongroup = (GActionGroup*)g_simple_action_group_new (); data->actions = actiongroup; g_action_map_add_action_entries (G_ACTION_MAP (actiongroup), win_actions, G_N_ELEMENTS (win_actions), data); gtk_widget_insert_action_group (button, "win", G_ACTION_GROUP(actiongroup)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu)); button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_PRINT, _("Print"), _("Print")); data->BT_print = button; return toolbar; } static void reptime_window_setup(struct reptime_data *data) { DB( g_print("\n[rep-time] window setup\n") ); DB( g_print(" init data\n") ); DB( g_print(" populate\n") ); ui_acc_listview_populate(data->LV_acc, ACC_LST_INSERT_REPORT, NULL); ui_cat_listview_populate(data->LV_cat, CAT_TYPE_ALL, NULL, TRUE); ui_pay_listview_populate(data->LV_pay, NULL, TRUE); ui_tag_listview_populate(data->LV_tag, 0); reptime_filter_setup(data); reptime_update_for(data->window, data); DB( g_print(" set widgets default\n") ); //src is account hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_intvl), REPORT_INTVL_MONTH); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_minor), GLOBALS->minor); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report))), "minor", (gpointer)data->CM_minor); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail))), "minor", (gpointer)data->CM_minor); gtk_chart_set_smallfont (GTK_CHART(data->RE_chart), PREFS->rep_smallfont); DB( g_print(" connect widgets signals\n") ); //display signals data->hid[HID_REPTIME_VIEW] = g_signal_connect (data->CY_intvl, "changed", G_CALLBACK (reptime_compute), (gpointer)data); g_signal_connect (data->CM_cumul, "toggled", G_CALLBACK (reptime_compute), NULL); g_signal_connect (data->CM_showempty, "toggled", G_CALLBACK (reptime_compute), NULL); g_signal_connect (data->CM_minor, "toggled", G_CALLBACK (reptime_toggle_minor), NULL); g_signal_connect (data->RG_zoomx, "value-changed", G_CALLBACK (reptime_cb_zoomx_changed), NULL); //filter signals g_signal_connect (data->BT_reset , "clicked", G_CALLBACK (reptime_action_filter_reset), NULL); data->hid[HID_REPTIME_MINDATE] = g_signal_connect (data->PO_mindate, "changed", G_CALLBACK (reptime_date_change), (gpointer)data); data->hid[HID_REPTIME_MAXDATE] = g_signal_connect (data->PO_maxdate, "changed", G_CALLBACK (reptime_date_change), (gpointer)data); data->hid[HID_REPTIME_RANGE] = g_signal_connect (data->CY_range, "changed", G_CALLBACK (reptime_range_change), NULL); //item filter g_signal_connect (data->CY_src, "changed", G_CALLBACK (reptime_for), (gpointer)data); g_signal_connect (data->BT_all, "activate-link", G_CALLBACK (reptime_cb_activate_link), NULL); g_signal_connect (data->BT_non, "activate-link", G_CALLBACK (reptime_cb_activate_link), NULL); g_signal_connect (data->BT_inv, "activate-link", G_CALLBACK (reptime_cb_activate_link), NULL); GtkCellRendererToggle *renderer; renderer = g_object_get_data(G_OBJECT(data->LV_acc), "togrdr_data"); g_signal_connect_after (G_OBJECT(renderer), "toggled", G_CALLBACK (reptime_cb_acc_changed), (gpointer)data); renderer = g_object_get_data(G_OBJECT(data->LV_cat), "togrdr_data"); g_signal_connect_after (G_OBJECT(renderer), "toggled", G_CALLBACK (reptime_cb_cat_changed), (gpointer)data); renderer = g_object_get_data(G_OBJECT(data->LV_pay), "togrdr_data"); g_signal_connect_after (G_OBJECT(renderer), "toggled", G_CALLBACK (reptime_cb_pay_changed), (gpointer)data); renderer = g_object_get_data(G_OBJECT(data->LV_tag), "togrdr_data"); g_signal_connect_after (G_OBJECT(renderer), "toggled", G_CALLBACK (reptime_cb_tag_changed), (gpointer)data); //toolbar signals g_signal_connect (G_OBJECT (data->BT_list), "clicked", G_CALLBACK (reptime_action_viewlist), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_line), "clicked", G_CALLBACK (reptime_action_viewline), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_column), "clicked", G_CALLBACK (reptime_action_viewcolumn), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_detail), "clicked", G_CALLBACK (reptime_toggle_detail), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_refresh), "clicked", G_CALLBACK (reptime_compute), (gpointer)data); //export is a menu g_signal_connect (G_OBJECT (data->BT_print), "clicked", G_CALLBACK (reptime_action_print), (gpointer)data); //treeview signals g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report)), "changed", G_CALLBACK (reptime_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_detail), "row-activated", G_CALLBACK (reptime_detail_onRowActivated), NULL); } static gboolean reptime_window_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct reptime_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[rep-time] window mapped\n") ); //setup, init and show window reptime_window_setup(data); //trigger update hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), PREFS->date_range_rep); data->mapped_done = TRUE; return FALSE; } static gboolean reptime_window_dispose(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct reptime_data *data = user_data; struct WinGeometry *wg; DB( g_print("\n[rep-time] window dispose\n") ); if(data->txn_queue != NULL) g_queue_free (data->txn_queue); da_flt_free(data->filter); g_free(data); //store position and size wg = &PREFS->tme_wg; gtk_window_get_position(GTK_WINDOW(widget), &wg->l, &wg->t); gtk_window_get_size(GTK_WINDOW(widget), &wg->w, &wg->h); DB( g_print(" window: l=%d, t=%d, w=%d, h=%d\n", wg->l, wg->t, wg->w, wg->h) ); //enable define windows GLOBALS->define_off--; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); //unref window to our open window list GLOBALS->openwindows = g_slist_remove(GLOBALS->openwindows, widget); return FALSE; } //allocate our object/memory static void reptime_window_acquire(struct reptime_data *data) { DB( g_print("\n[rep-time] window acquire\n") ); data->txn_queue = g_queue_new (); data->filter = da_flt_malloc(); data->detail = 0; } // the window creation GtkWidget *reptime_window_new(guint32 accnum) { struct reptime_data *data; struct WinGeometry *wg; GtkWidget *window, *mainbox, *hbox, *vbox, *fbox, *bbox, *notebook, *treeview, *treebox, *vpaned, *scrollwin; GtkWidget *label, *widget, *table; gint row; DB( g_print("\n[rep-time] window new\n") ); data = g_malloc0(sizeof(struct reptime_data)); if(!data) return NULL; data->accnum = accnum; reptime_window_acquire(data); //disable define windows GLOBALS->define_off++; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); data->window = window; //ref window to our open window list GLOBALS->openwindows = g_slist_prepend(GLOBALS->openwindows, window); //store our window private data g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)data); DB( g_print(" - new window=%p, inst_data=%p\n", window, data) ); gtk_window_set_title (GTK_WINDOW (window), _("Trend Time Report")); //window contents mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hb_widget_set_margin(GTK_WIDGET(mainbox), SPACING_SMALL); gtk_window_set_child(GTK_WINDOW(window), mainbox); //control part table = gtk_grid_new (); gtk_widget_set_hexpand (GTK_WIDGET(table), FALSE); gtk_box_prepend (GTK_BOX (mainbox), table); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); row = 0; label = make_label_group(_("Display")); gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); row++; label = make_label_widget(_("Inter_val:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_REPORT_INTVL); data->CY_intvl = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("_Cumulate")); data->CM_cumul = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Show empty line")); data->CM_showempty = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Euro _minor")); data->CM_minor = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Zoom X:")); data->LB_zoomx = label; gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = make_scale(label); data->RG_zoomx = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); //-- filter row++; widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_margin_top(widget, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (table), widget, 0, row, 3, 1); //5.8 test row++; fbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_grid_attach (GTK_GRID (table), fbox, 0, row, 3, 1); label = make_label_group(_("Filter")); //gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); gtk_box_prepend (GTK_BOX (fbox), label); // active label = make_label_widget(_("Active:")); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (fbox), label); label = make_label(NULL, 0.0, 0.5); gtk_widget_set_margin_start(label, SPACING_SMALL); data->TX_fltactive = label; gtk_box_prepend (GTK_BOX (fbox), label); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); data->TT_fltactive = fbox; gtk_box_prepend (GTK_BOX (fbox), widget); //test button bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (bbox), GTK_STYLE_CLASS_LINKED); gtk_box_append (GTK_BOX (fbox), bbox); widget = make_image_button(ICONNAME_HB_CLEAR, _("Clear filter")); data->BT_reset = widget; gtk_box_prepend (GTK_BOX (bbox), widget); row++; //label = make_label_group(_("Date filter")); label = make_label_group(_("Date")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 2, 1); row++; label = make_label_widget(_("_Range:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->CY_range = make_daterange(label, DATE_RANGE_FLAG_CUSTOM_DISABLE); gtk_grid_attach (GTK_GRID (table), data->CY_range, 2, row, 1, 1); row++; label = make_label_widget(_("_From:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->PO_mindate = gtk_date_entry_new(label); gtk_grid_attach (GTK_GRID (table), data->PO_mindate, 2, row, 1, 1); row++; label = make_label_widget(_("_To:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->PO_maxdate = gtk_date_entry_new(label); gtk_grid_attach (GTK_GRID (table), data->PO_maxdate, 2, row, 1, 1); row++; label = make_label_group(_("Item")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 2, 1); row++; label = make_label_widget(_("_By:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_REPORT_GRPBY_TREND); data->CY_src = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; treebox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_grid_attach (GTK_GRID (table), treebox, 1, row, 2, 1); label = make_label (_("Select:"), 0, 0.5); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("all", _("All")); data->BT_all = label; gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("non", _("None")); data->BT_non = label; gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("inv", _("Invert")); data->BT_inv = label; gtk_box_prepend (GTK_BOX (treebox), label); row++; notebook = gtk_notebook_new(); data->GR_itemtype = notebook; gtk_widget_show(notebook); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); gtk_grid_attach (GTK_GRID (table), notebook, 1, row, 2, 1); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); data->SW_acc = scrollwin; gtk_widget_set_margin_bottom (scrollwin, SPACING_LARGE); treeview = ui_acc_listview_new(TRUE); data->LV_acc = treeview; gtk_widget_set_vexpand (treeview, TRUE); //gtk_widget_set_size_request(widget, HB_MINWIDTH_LIST, -1); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrollwin, NULL); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); //data->SW_acc = scrollwin; gtk_widget_set_margin_bottom (scrollwin, SPACING_LARGE); treeview = ui_cat_listview_new(TRUE, FALSE); data->LV_cat = treeview; gtk_widget_set_vexpand (treeview, TRUE); //gtk_widget_set_size_request(widget, HB_MINWIDTH_LIST, -1); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrollwin, NULL); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); //data->SW_acc = scrollwin; gtk_widget_set_margin_bottom (scrollwin, SPACING_LARGE); treeview = ui_pay_listview_new(TRUE, FALSE); data->LV_pay = treeview; gtk_widget_set_vexpand (treeview, TRUE); //gtk_widget_set_size_request(widget, HB_MINWIDTH_LIST, -1); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrollwin, NULL); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); //data->SW_acc = scrollwin; gtk_widget_set_margin_bottom (scrollwin, SPACING_LARGE); treeview = ui_tag_listview_new(TRUE, FALSE); data->LV_tag = treeview; gtk_widget_set_vexpand (treeview, TRUE); //gtk_widget_set_size_request(widget, HB_MINWIDTH_LIST, -1); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrollwin, NULL); //part: info + report vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_margin_start (vbox, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (mainbox), vbox); //toolbar widget = reptime_toolbar_create(data); data->TB_bar = widget; gtk_box_prepend (GTK_BOX (vbox), widget); //infos hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); hb_widget_set_margin(GTK_WIDGET(hbox), SPACING_SMALL); gtk_box_prepend (GTK_BOX (vbox), hbox); widget = make_label(NULL, 0.5, 0.5); gimp_label_set_attributes (GTK_LABEL (widget), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); data->TX_daterange = widget; gtk_box_prepend (GTK_BOX (hbox), widget); label = gtk_label_new(NULL); data->TX_info = label; gtk_box_append (GTK_BOX (hbox), label); /* report area */ notebook = gtk_notebook_new(); data->GR_result = notebook; gtk_widget_show(notebook); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); hbtk_box_prepend (GTK_BOX (vbox), notebook); //page: list vpaned = gtk_paned_new(GTK_ORIENTATION_VERTICAL); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vpaned, NULL); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); treeview = lst_reptime_create(); data->LV_report = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_paned_pack1 (GTK_PANED(vpaned), scrollwin, TRUE, TRUE); //detail scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); data->GR_detail = scrollwin; //gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW (scrollwin), GTK_CORNER_TOP_RIGHT); treeview = create_list_transaction(LIST_TXN_TYPE_DETAIL, PREFS->lst_det_columns); data->LV_detail = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_paned_pack2 (GTK_PANED(vpaned), scrollwin, TRUE, TRUE); list_txn_set_save_column_width(GTK_TREE_VIEW(treeview), TRUE); //page: lines widget = gtk_chart_new(CHART_TYPE_LINE); data->RE_chart = widget; //gtk_chart_set_minor_prefs(GTK_CHART(widget), PREFS->euro_value, PREFS->minor_cur.suffix_symbol); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL); // connect dialog signals g_signal_connect (window, "delete-event", G_CALLBACK (reptime_window_dispose), (gpointer)data); g_signal_connect (window, "map-event" , G_CALLBACK (reptime_window_mapped), NULL); // setup, init and show window wg = &PREFS->tme_wg; if( wg->l && wg->t ) gtk_window_move(GTK_WINDOW(window), wg->l, wg->t); gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h); // toolbar if(PREFS->toolbar_style == 0) gtk_toolbar_unset_style(GTK_TOOLBAR(data->TB_bar)); else gtk_toolbar_set_style(GTK_TOOLBAR(data->TB_bar), PREFS->toolbar_style-1); gtk_widget_show_all (window); //hide start widget hb_widget_visible(data->LB_zoomx, FALSE); hb_widget_visible(data->RG_zoomx, FALSE); hb_widget_visible(data->CM_minor, PREFS->euro_active); hb_widget_visible(data->GR_detail, data->detail); return window; } /* = = = = = = = = = = = = = = = = */ static GString *lst_reptime_to_string(ToStringMode mode, GtkTreeView *treeview, gchar *title) { GString *node; GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gchar sep; node = g_string_new(NULL); sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; // header g_string_append (node, (title == NULL) ? _("Time slice") : title ); g_string_append_c (node, sep ); g_string_append (node, _("Expense") ); g_string_append_c (node, sep ); g_string_append (node, _("Income") ); g_string_append_c (node, sep ); g_string_append (node, _("Total") ); g_string_append (node, "\n" ); // lines model = gtk_tree_view_get_model(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { gchar *name; gdouble values[4]; gtk_tree_model_get (model, &iter, //LST_HUBREPTIME_KEY, i, LST_HUBREPTIME_LABEL, &name, LST_HUBREPTIME_EXPENSE, &values[0], LST_HUBREPTIME_INCOME, &values[1], LST_HUBREPTIME_TOTAL, &values[2], -1); g_string_append (node, name ); for(guint i=0;i<3;i++) { g_string_append_c(node, sep); _format_decimal(node, mode, values[i]); } g_string_append_c(node, '\n'); //leak g_free(name); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } //DB( g_print("text is:\n%s", node->str) ); return node; } static void lst_reptime_cell_data_function_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble value; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gint colid = GPOINTER_TO_INT(user_data); gtk_tree_model_get(model, iter, colid, &value, -1); //#2091004 we have exact 0.0, do we force display ? if( (hb_amount_cmp(value, 0.0) != 0) || (colid == LST_HUBREPTIME_TOTAL) ) { guint32 kcur = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(gtk_tree_view_column_get_tree_view(col)), "kcur_data")); hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, value, kcur, GLOBALS->minor); g_object_set(renderer, "foreground", get_normal_color_amount(value), "text", buf, NULL); } else { g_object_set(renderer, "text", "", NULL); } } static GtkTreeViewColumn *lst_reptime_column_create_amount(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_reptime_cell_data_function_amount, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_sort_column_id (column, id); return column; } static gint lst_reptime_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); gint retval = 0; gint pos1, pos2; gdouble val1, val2; gtk_tree_model_get(model, a, LST_HUBREPTIME_POS, &pos1, sortcol, &val1, -1); gtk_tree_model_get(model, b, LST_HUBREPTIME_POS, &pos2, sortcol, &val2, -1); /* if(pos1 == -1) return(1); if(pos2 == -1) return(-1); */ if(sortcol == LST_HUBREPTIME_POS) retval = pos2 - pos1; else retval = (ABS(val1) - ABS(val2)) > 0 ? 1 : -1; DB( g_print(" sort %d=%d or %.2f=%.2f :: %d\n", pos1,pos2, val1, val2, retval) ); return retval; } static void lst_reptime_set_cur(GtkTreeView *treeview, guint32 kcur) { g_object_set_data(G_OBJECT(treeview), "kcur_data", GUINT_TO_POINTER(kcur)); } /* ** create our statistic list */ static GtkWidget *lst_reptime_create(void) { GtkListStore *store; GtkWidget *view; GtkCellRenderer *renderer; GtkTreeViewColumn *column; /* create list store */ store = gtk_list_store_new( NUM_LST_HUBREPTIME, G_TYPE_INT, //pos G_TYPE_INT, //key G_TYPE_STRING, //label G_TYPE_DOUBLE, //exp G_TYPE_DOUBLE, //inc G_TYPE_DOUBLE, //total G_TYPE_INT //flags ); //treeview view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), PREFS->grid_lines); /* column: Label */ column = gtk_tree_view_column_new(); //gtk_tree_view_column_set_title(column, _("Time slice")); renderer = gtk_cell_renderer_text_new(); //#2004631 date and column title alignement //g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); //gtk_tree_view_column_set_cell_data_func(column, renderer, ope_result_cell_data_function, NULL, NULL); gtk_tree_view_column_add_attribute(column, renderer, "text", LST_HUBREPTIME_LABEL); //gtk_tree_view_column_set_sort_column_id (column, LST_HUBREPTIME_NAME); gtk_tree_view_column_set_resizable(column, TRUE); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); //gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Expense */ column = lst_reptime_column_create_amount(_("Expense"), LST_HUBREPTIME_EXPENSE); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Income */ column = lst_reptime_column_create_amount(_("Income"), LST_HUBREPTIME_INCOME); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Total */ column = lst_reptime_column_create_amount(_("Total"), LST_HUBREPTIME_TOTAL); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column last: empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* sort */ gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_HUBREPTIME_POS , lst_reptime_compare_func, GINT_TO_POINTER(LST_HUBREPTIME_POS), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_HUBREPTIME_TOTAL, lst_reptime_compare_func, GINT_TO_POINTER(LST_HUBREPTIME_TOTAL), NULL); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(view), FALSE); return(view); } homebank-5.9.1/src/hb-split.c0000664000175000017500000001460714736461407011476 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-transaction.h" #include "hb-split.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void da_split_free(Split *item) { if(item != NULL) { if(item->memo != NULL) g_free(item->memo); g_free(item); } } Split *da_split_malloc(void) { return g_malloc0(sizeof(Split)); } void da_split_destroy(GPtrArray *splits) { DB( g_print("da_split_destroy\n") ); if(splits != NULL) g_ptr_array_free(splits, TRUE); } GPtrArray *da_split_new(void) { DB( g_print("da_split_new\n") ); return g_ptr_array_new_with_free_func((GDestroyNotify)da_split_free); } static GPtrArray *da_split_new_full(guint size) { DB( g_print("da_split_new\n") ); return g_ptr_array_new_full(size, (GDestroyNotify)da_split_free); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static gint da_splits_compare_func(gpointer a, gpointer b) { Split *sa = *(Split **)a; Split *sb = *(Split **)b; DB( g_print(" sort %d %s - %d %s\n", sa->pos, sa->memo, sb->pos, sb->memo) ); return sa->pos - sb->pos; } void da_splits_sort(GPtrArray *splits) { DB( g_print("da_splits_sort\n") ); if(splits == NULL) { //g_warning("NULL splits"); return; } g_ptr_array_sort(splits, (GCompareFunc) da_splits_compare_func); } guint da_splits_length(GPtrArray *splits) { DB( g_print("da_splits_length\n") ); if(splits == NULL) { //g_warning("NULL splits"); return 0; } return splits->len; } gboolean da_splits_delete(GPtrArray *splits, Split *item) { DB( g_print("da_splits_remove\n") ); if(splits == NULL) { g_warning("NULL splits"); return FALSE; } return g_ptr_array_remove(splits, item); } void da_splits_append(GPtrArray *splits, Split *item) { DB( g_print("da_splits_append\n") ); if(splits == NULL) { g_warning("NULL splits"); return; } if(splits->len < TXN_MAX_SPLIT) g_ptr_array_add (splits, item); } Split *da_split_duplicate(Split *src) { Split *new = da_split_malloc (); new->kcat = src->kcat; new->memo = g_strdup(src->memo); new->amount = src->amount; return new; } Split *da_splits_get(GPtrArray *splits, guint index) { return g_ptr_array_index(splits, index); } GPtrArray *da_splits_clone(GPtrArray *src_splits) { GPtrArray *new_splits; guint i; DB( g_print("da_splits_clone\n") ); if(src_splits == NULL) { //g_warning("NULL splits"); return NULL; } new_splits = da_split_new_full (src_splits->len); for(i=0;ilen;i++) { Split *src, *new; src = g_ptr_array_index(src_splits, i); new = da_split_duplicate(src); da_splits_append (new_splits, new); } return new_splits; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ guint da_splits_parse(GPtrArray *splits, gchar *cats, gchar *amounts, gchar *memos) { gchar **cat_a, **amt_a, **mem_a; guint count, i; Split *split; if(splits == NULL) return 0; DB( g_print(" split parse %s :: %s :: %s\n", cats, amounts, memos) ); cat_a = g_strsplit (cats, "||", 0); amt_a = g_strsplit (amounts, "||", 0); mem_a = g_strsplit (memos, "||", 0); count = g_strv_length(amt_a); if( (count == g_strv_length(cat_a)) && (count == g_strv_length(mem_a)) ) { for(i=0;ikcat = atoi(cat_a[i]); split->memo = g_strdup(mem_a[i]); split->amount = g_ascii_strtod(amt_a[i], NULL); da_splits_append (splits, split); } } else { g_warning("invalid split parse"); } g_strfreev (mem_a); g_strfreev (amt_a); g_strfreev (cat_a); return count; } guint da_splits_tostring(GPtrArray *splits, gchar **cats, gchar **amounts, gchar **memos) { guint i; Split *split; char buf[G_ASCII_DTOSTR_BUF_SIZE]; GString *cat_a, *amt_a , *mem_a; if(splits == NULL) return 0; DB( g_print(" splits tostring\n") ); cat_a = g_string_new (NULL); amt_a = g_string_new (NULL); mem_a = g_string_new (NULL); for(i=0;ilen;i++) { split = g_ptr_array_index(splits, i); g_string_append_printf (cat_a, "%d", split->kcat); g_string_append(amt_a, g_ascii_dtostr (buf, sizeof (buf), split->amount) ); g_string_append(mem_a, split->memo); if((i+1) < splits->len) { g_string_append(cat_a, "||"); g_string_append(amt_a, "||"); g_string_append(mem_a, "||"); } } *cats = g_string_free(cat_a, FALSE); *amounts = g_string_free(amt_a, FALSE); *memos = g_string_free(mem_a, FALSE); return i; } guint da_splits_consistency (GPtrArray *splits) { Split *split; guint i; if(splits == NULL) return 0; for(i=0;ilen;i++) { split = g_ptr_array_index(splits, i); //#1340142 check split category if(da_cat_get(split->kcat) == NULL) { g_warning("split consistency: fixed invalid split cat %d", split->kcat); split->kcat = 0; GLOBALS->changes_count++; } //TODO #1910819 must round frac digit, should have beed done > 5.5 //split->amount = hb_amount_round(split->amount, cur->frac_digits); } return splits->len; } //#2026641 guint da_splits_anonymize (GPtrArray *splits) { Split *split; guint cnt, i; if(splits == NULL) return 0; cnt = da_splits_length (splits); for(i=0;imemo != NULL) g_free(split->memo); split->memo = g_strdup_printf("memo %d", i); } return cnt; } homebank-5.9.1/src/ui-tag.h0000664000175000017500000000435514736461415011145 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_TAG_GTK_H__ #define __HB_TAG_GTK_H__ enum { LST_DEFTAG_TOGGLE, LST_DEFTAG_DATAS, NUM_LST_DEFTAG }; #define LST_DEFTAG_SORT_USETXN 2 #define LST_DEFTAG_SORT_USECFG 3 #define LST_DEFTAG_SORT_NAME 4 struct ui_tag_manage_dialog_data { GtkWidget *dialog; GActionGroup * actions; gboolean mapped_done; GtkWidget *BT_showusage; GtkWidget *RE_addreveal; GtkWidget *ST_name; GtkWidget *LV_tag; GtkWidget *BT_add; GtkWidget *BT_edit; GtkWidget *BT_merge; GtkWidget *BT_delete; gboolean usagefilled; gint change; }; struct ui_tag_dialog_data { GtkWidget *dialog; }; /* = = = = = = = = = = */ guint32 ui_tag_combobox_get_key(GtkComboBox *combobox); void ui_tag_combobox_populate_except(GtkComboBoxText *combobox, guint except_key); void ui_tag_combobox_populate(GtkComboBoxText *combobox); GtkWidget *ui_tag_combobox_new(GtkWidget *label); GtkWidget * ui_tag_popover_list(GtkWidget *entry); /* = = = = = = = = = = */ guint ui_tag_listview_toggle_to_filter(GtkTreeView *treeview, Filter *filter); void ui_tag_listview_quick_select(GtkTreeView *treeview, const gchar *uri); void ui_tag_listview_add(GtkTreeView *treeview, Tag *item); guint32 ui_tag_listview_get_selected_key(GtkTreeView *treeview); void ui_tag_listview_remove_selected(GtkTreeView *treeview); void ui_tag_listview_populate(GtkWidget *view, gint insert_type); GtkWidget *ui_tag_listview_new(gboolean withtoggle, gboolean withcount); GtkWidget *ui_tag_manage_dialog (void); #endif homebank-5.9.1/src/hb-account.c0000644000175000017500000003721615006222564011764 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-account.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = */ void da_acc_free(Account *item) { DB( g_print("da_acc_free\n") ); if(item != NULL) { DB( g_print(" => %d, %s\n", item->key, item->name) ); g_free(item->name); g_free(item->number); g_free(item->bankname); g_free(item->notes); g_free(item->website); g_free(item->xferexpname); g_free(item->xferincname); g_queue_free (item->txn_queue); g_free(item); } } Account * da_acc_malloc(void) { Account *item; DB( g_print("da_acc_malloc\n") ); item = g_malloc0(sizeof(Account)); item->kcur = GLOBALS->kcur; item->txn_queue = g_queue_new (); return item; } void da_acc_destroy(void) { DB( g_print("da_acc_destroy\n") ); g_hash_table_destroy(GLOBALS->h_acc); } void da_acc_new(void) { DB( g_print("da_acc_new\n") ); GLOBALS->h_acc = g_hash_table_new_full(g_int_hash, g_int_equal, (GDestroyNotify)g_free, (GDestroyNotify)da_acc_free); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /** * da_acc_length: * * Return value: the number of elements */ guint da_acc_length(void) { return g_hash_table_size(GLOBALS->h_acc); } static void da_acc_max_key_ghfunc(gpointer key, Account *item, guint32 *max_key) { *max_key = MAX(*max_key, item->key); } /** * da_acc_get_max_key: * * Get the biggest key from the GHashTable * * Return value: the biggest key value * */ guint32 da_acc_get_max_key(void) { guint32 max_key = 0; g_hash_table_foreach(GLOBALS->h_acc, (GHFunc)da_acc_max_key_ghfunc, &max_key); return max_key; } /** * da_acc_remove: * * delete an account from the GHashTable * * Return value: TRUE if the key was found and deleted * */ gboolean da_acc_delete(guint32 key) { DB( g_print("da_acc_remove %d\n", key) ); return g_hash_table_remove(GLOBALS->h_acc, &key); } static void da_acc_build_xfername(Account *item) { g_free(item->xferexpname); g_free(item->xferincname); item->xferexpname = g_strdup_printf("> %s", item->name); item->xferincname = g_strdup_printf("< %s", item->name); DB( g_print("- updated %d:'%s' xferexpname='%s' xferincname='%s'\n", item->key, item->name, item->xferexpname, item->xferincname) ); } //#1889659: ensure name != null/empty static gboolean da_acc_ensure_name(Account *item) { // (no account) do not exists if( item->key > 0 ) { if( item->name == NULL || strlen(item->name) == 0 ) { g_free(item->name); item->name = g_strdup_printf("no name %d", item->key); return TRUE; } } return FALSE; } static void da_acc_rename(Account *item, gchar *newname) { DB( g_print("- renaming '%s' => '%s'\n", item->name, newname) ); g_free(item->name); item->name = g_strdup(newname); //#1889659: ensure name != null/empty da_acc_ensure_name(item); da_acc_build_xfername(item); } /** * da_acc_insert: * * insert an account into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_acc_insert(Account *item) { guint32 *new_key; DB( g_print("da_acc_insert\n") ); new_key = g_new0(guint32, 1); *new_key = item->key; //#1889659: ensure name != null/empty da_acc_ensure_name(item); da_acc_build_xfername(item); g_hash_table_insert(GLOBALS->h_acc, new_key, item); return TRUE; } /** * da_acc_append: * * insert an account into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_acc_append(Account *item) { Account *existitem; DB( g_print("da_acc_append\n") ); existitem = da_acc_get_by_name( item->name ); if( existitem == NULL ) { item->key = da_acc_get_max_key() + 1; item->pos = da_acc_length() + 1; da_acc_insert(item); return TRUE; } DB( g_print(" -> %s already exist: %d\n", item->name, item->key) ); return FALSE; } static gboolean da_acc_name_grfunc(gpointer key, Account *item, gchar *name) { if( name && item->name ) { if(!strcasecmp(name, item->name)) return TRUE; } return FALSE; } /** * da_acc_get_by_name: * * Get an account structure by its name * * Return value: Account * or NULL if not found * */ Account * da_acc_get_by_name(gchar *rawname) { Account *retval = NULL; gchar *stripname; DB( g_print("da_acc_get_by_name\n") ); if( rawname ) { stripname = g_strdup(rawname); g_strstrip(stripname); if( strlen(stripname) > 0 ) retval = g_hash_table_find(GLOBALS->h_acc, (GHRFunc)da_acc_name_grfunc, stripname); g_free(stripname); } return retval; } /** * da_acc_get: * * Get an account structure by key * * Return value: Account * or NULL if not found * */ Account * da_acc_get(guint32 key) { //DB( g_print("da_acc_get\n") ); return g_hash_table_lookup(GLOBALS->h_acc, &key); } static gint da_acc_glist_compare_pos_func(Account *a, Account *b) { return ((gint)a->pos - b->pos); } guint32 da_acc_get_first_key(void) { GList *lacc, *list; guint32 retval = 0; list = g_hash_table_get_values(GLOBALS->h_acc); lacc = list = g_list_sort(list, (GCompareFunc)da_acc_glist_compare_pos_func); if( list != NULL ) { Account *accitem = list->data; retval = accitem->key; } g_list_free(lacc); return retval; } void da_acc_consistency(Account *item) { g_strstrip(item->name); //#1889659: ensure name != null/empty da_acc_ensure_name(item); } //#2026641 void da_acc_anonymize(Account *item) { g_free(item->name); item->name = g_strdup_printf("account %d", item->key); g_free(item->number); item->number = NULL; g_free(item->bankname); item->bankname = NULL; //#2026641 account notes, start balance, overdraft g_free(item->notes); item->notes = NULL; item->initial = 0.0; item->minimum = 0.0; da_acc_build_xfername(item); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if MYDEBUG static void da_acc_debug_list_ghfunc(gpointer key, gpointer value, gpointer user_data) { guint32 *id = key; Account *item = value; DB( g_print(" %d :: %s\n", *id, item->name) ); } static void da_acc_debug_list(void) { DB( g_print("\n** debug **\n") ); g_hash_table_foreach(GLOBALS->h_acc, da_acc_debug_list_ghfunc, NULL); DB( g_print("\n** end debug **\n") ); } #endif static gint account_glist_name_compare_func(Account *a, Account *b) { return hb_string_utf8_compare(a->name, b->name); } static gint account_glist_key_compare_func(Account *a, Account *b) { return a->key - b->key; } static gint account_glist_pos_compare_func(Account *a, Account *b) { return a->pos - b->pos; } GList *account_glist_sorted(gint column) { GList *list = g_hash_table_get_values(GLOBALS->h_acc); switch(column) { case HB_GLIST_SORT_POS: return g_list_sort(list, (GCompareFunc)account_glist_pos_compare_func); break; case HB_GLIST_SORT_NAME: return g_list_sort(list, (GCompareFunc)account_glist_name_compare_func); break; //case HB_GLIST_SORT_KEY: default: return g_list_sort(list, (GCompareFunc)account_glist_key_compare_func); break; } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void account_transaction_sort(void) { GList *lst_acc, *lnk_acc; DB( g_print("\n[account] transaction sort\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; da_transaction_queue_sort(acc->txn_queue); lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } /** * account_is_used: * * controls if an account is used by any archive or transaction * * Return value: TRUE if used, FALSE, otherwise */ guint account_is_used(guint32 key) { Account *acc; GList *list; GList *lst_acc, *lnk_acc; GList *lnk_txn; guint retval; DB( g_print("\n[account] is used\n") ); retval = ACC_USAGE_NONE; lst_acc = NULL; acc = da_acc_get(key); if( g_queue_get_length(acc->txn_queue) > 0 ) { retval = ACC_USAGE_TXN; goto end; } lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; if(acc->key != key) { lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *entry = lnk_txn->data; if(key == entry->kxferacc) { retval = ACC_USAGE_TXN_XFER; goto end; } lnk_txn = g_list_next(lnk_txn); } } lnk_acc = g_list_next(lnk_acc); } list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; if(key == entry->kacc) { retval = ACC_USAGE_ARC; goto end; } if(key == entry->kxferacc) { retval = ACC_USAGE_ARC_XFER; goto end; } list = g_list_next(list); } end: g_list_free(lst_acc); return retval; } gboolean account_has_website(Account *item) { gboolean retval = FALSE; if( item != NULL && item->website != NULL ) { //TODO: reinforce controls here if( strlen(item->website) > 4 ) retval = TRUE; } return retval; } gboolean account_exists(gchar *name) { Account *existitem; gchar *stripname; stripname = g_strdup(name); g_strstrip(stripname); existitem = da_acc_get_by_name(stripname); g_free(stripname); return existitem == NULL ? FALSE : TRUE; } gboolean account_rename(Account *item, gchar *newname) { Account *existitem; gchar *stripname; gboolean retval = FALSE; DB( g_print("\n[account] rename\n") ); stripname = g_strdup(newname); g_strstrip(stripname); if( strlen(stripname) > 0 ) { existitem = da_acc_get_by_name(stripname); //#2083124 enable case renaming if( existitem != NULL && existitem->key != item->key ) { DB( g_print("- error, same name already exist with other key %d <> %d\n", existitem->key, item->key) ); } else { DB( g_print("- renaming\n") ); da_acc_rename (item, stripname); retval = TRUE; } } g_free(stripname); return retval; } /* * change the account currency * change every txn to currency * #2026594 no more change target currency * #1673260 internal transfer with different currency * => no more ensure dst xfer transaction account will be set to same currency */ void account_set_currency(Account *acc, guint32 kcur) { GList *list; /*Account *dstacc; gboolean *xfer_list; guint32 maxkey, i;*/ DB( g_print("\n[account] set currency\n") ); if(acc->kcur == kcur) { DB( g_print(" - already ok, return\n") ); return; } DB( g_print(" - set for '%s'\n", acc->name) ); //#1673260 internal transfer with different currency /*maxkey = da_acc_get_max_key () + 1; xfer_list = g_malloc0(sizeof(gboolean) * maxkey ); DB( g_print(" - alloc for %d account\n", da_acc_length() ) );*/ list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *txn = list->data; txn->kcur = kcur; /*if( (txn->flags & OF_INTXFER) && (txn->kxferacc > 0) && (txn->kxfer > 0) ) { xfer_list[txn->kxferacc] = TRUE; }*/ list = g_list_next(list); } acc->kcur = kcur; DB( g_print(" - '%s'\n", acc->name) ); //#1673260 internal transfer with different currency /*for(i=1;ibal_future -= txn->amount; if(txn->date <= GLOBALS->today) acc->bal_today -= txn->amount; if(txn->status == TXN_STATUS_CLEARED) acc->bal_clear -= txn->amount; if(txn->status == TXN_STATUS_RECONCILED) { acc->bal_recon -= txn->amount; acc->bal_clear -= txn->amount; } } /** * private function to add transaction amount from account balances */ static void account_balances_add_internal(Account *acc, Transaction *txn) { acc->bal_future += txn->amount; if(txn->date <= GLOBALS->today) acc->bal_today += txn->amount; if(txn->status == TXN_STATUS_CLEARED) acc->bal_clear += txn->amount; if(txn->status == TXN_STATUS_RECONCILED) { acc->bal_recon += txn->amount; acc->bal_clear += txn->amount; } } /** * public function to sub transaction amount from account balances */ gboolean account_balances_sub(Transaction *txn) { if( transaction_is_balanceable(txn) ) //if(!(txn->flags & OF_REMIND)) { Account *acc = da_acc_get(txn->kacc); if(acc == NULL) return FALSE; account_balances_sub_internal(acc, txn); return TRUE; } return FALSE; } /** * public function to add transaction amount from account balances */ gboolean account_balances_add(Transaction *txn) { if( transaction_is_balanceable(txn) ) //if(!(txn->flags & OF_REMIND)) { Account *acc = da_acc_get(txn->kacc); if(acc == NULL) return FALSE; account_balances_add_internal(acc, txn); return TRUE; } return FALSE; } void account_flags_eval(Account *item) { g_return_if_fail(item != NULL); //#2109854 fix residual flag item->flags &= ~(AF_HASNOTICE); if( item->nb_pending > 0 ) { item->flags |= AF_HASNOTICE; } } //todo: optim called 2 times from dsp_mainwindow void account_compute_balances(gboolean init) { GList *lst_acc, *lnk_acc; GList *lnk_txn; DB( g_print("\naccount_compute_balances start\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; acc->nb_pending = 0; /* set initial amount */ acc->bal_clear = acc->initial; acc->bal_recon = acc->initial; acc->bal_today = acc->initial; acc->bal_future = acc->initial; /* add every txn */ lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; if( transaction_is_balanceable(txn) ) { account_balances_add_internal(acc, txn); } //5.9 moved completion memo here if( (init == TRUE) && (PREFS->txn_memoacp == TRUE) ) { da_transaction_insert_memos(txn); } //5.9 add flags if( txn->flags & (OF_ISPAST | OF_ISIMPORT) ) { acc->nb_pending++; } lnk_txn = g_list_next(lnk_txn); } account_flags_eval(acc); lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); DB( g_print("\naccount_compute_balances end\n") ); } void account_convert_euro(Account *acc) { GList *lnk_txn; //5.9: ignore already EUR account if( currency_is_euro(acc->kcur) == TRUE ) return; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; gdouble oldamount = txn->amount; txn->amount = hb_amount_to_euro(oldamount); DB( g_print("%10.6f => %10.6f, %s\n", oldamount, txn->amount, txn->memo) ); //todo: sync child xfer lnk_txn = g_list_next(lnk_txn); } acc->initial = hb_amount_to_euro(acc->initial); // acc->warning = hb_amount_to_euro(acc->warning); acc->minimum = hb_amount_to_euro(acc->minimum); acc->maximum = hb_amount_to_euro(acc->maximum); } homebank-5.9.1/src/ui-dialogs.h0000644000175000017500000000433314736461415012006 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_DIALOGS_GTK_H__ #define __HB_DIALOGS_GTK_H__ #define HB_RESPONSE_SELECTION 1 #define HB_RESPONSE_CREATE_NEW 2 gchar *dialog_get_name(gchar *title, gchar *origname, GtkWindow *parentwindow); gint ui_dialog_msg_confirm_alert(GtkWindow *parent, gchar *title, gchar *secondtext, gchar *actionverb, gboolean destructive); gint ui_dialog_about(GtkWindow *parent, gchar *title, gchar *message_format, ...); gint ui_dialog_msg_question(GtkWindow *parent, gchar *title, gchar *message_format, ...); void ui_dialog_msg_infoerror(GtkWindow *parent, GtkMessageType type, gchar *title, gchar *message_format, ...); gboolean ui_file_chooser_qif(GtkWindow *parent, gchar **storage_ptr); gboolean ui_file_chooser_csv(GtkWindow *parent, GtkFileChooserAction action, gchar **storage_ptr, gchar *name); gboolean ui_file_chooser_xhb(GtkFileChooserAction action, gchar **storage_ptr, gboolean bakmode); gboolean ui_file_chooser_folder(GtkWindow *parent, gchar *title, gchar **storage_ptr); gint ui_dialog_export_csv(GtkWindow *parent, gchar **storage_ptr, gboolean *split, gboolean *status, gboolean showall); gint ui_dialog_export_pdf(GtkWindow *parent, gchar **storage_ptr); void ui_dialog_upgrade_choose_currency(void); gboolean ui_dialog_msg_savechanges(GtkWidget *widget, gpointer user_data); void ui_dialog_file_statistics(void); gint ui_dialog_transaction_xfer_select_child(GtkWindow *parent, Transaction *stxn, GList *matchlist, Transaction **child); #endif homebank-5.9.1/src/dsp-account.h0000644000175000017500000000606414774454744012205 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_DSPACCOUNT_H__ #define __HB_DSPACCOUNT_H__ /* official GTK_RESPONSE are negative */ #define HB_RESPONSE_REFRESH 1 enum { ACTION_ACCOUNT_ADD, ACTION_ACCOUNT_INHERIT, ACTION_ACCOUNT_EDIT, ACTION_ACCOUNT_MULTIEDIT, ACTION_ACCOUNT_NONE, ACTION_ACCOUNT_CLEAR, ACTION_ACCOUNT_RECONCILE, ACTION_ACCOUNT_DELETE, ACTION_ACCOUNT_FILTER, ACTION_ACCOUNT_CLOSE, MAX_ACTION_ACCOUNT }; enum { FLG_REG_TITLE = 1 << 0, //1 FLG_REG_SENSITIVE = 1 << 1, //2 FLG_REG_BALANCE = 1 << 2, //4 FLG_REG_VISUAL = 1 << 3, //8 FLG_REG_REFRESHALL = 1 << 4 //16 }; enum { HID_RANGE, HID_TYPE, HID_STATUS, HID_SEARCH, MAX_HID }; struct hub_ledger_data { GtkWidget *window; GActionGroup *actions; GtkWidget *IB_accnotif, *LB_accnotif, *BT_info_showpending; GtkWidget *IB_duplicate, *LB_duplicate, *NB_txn_daygap; GtkWidget *IB_chkcatsign, *LB_chkcatsign; GtkWidget *TB_bar; GtkWidget *BT_add, *BT_herit, *BT_edit; GtkWidget *BT_clear, *BT_reconcile; GtkWidget *BT_multiedit, *BT_delete; GtkWidget *BT_up, *BT_down; GtkWidget *SW_lockreconciled, *IM_lockreconciled, *LB_lockreconciled; GtkWidget *CY_range; GtkWidget *CM_future; GtkWidget *CY_flag; GtkWidget *CY_type; GtkWidget *CY_status; // GtkWidget *CY_month, *NB_year; GtkWidget *PO_hubfilter; GtkWidget *BT_reset, *BT_refresh, *BT_filter; GtkWidget *BT_lifnrg; GtkWidget *TX_selection; GtkWidget *ST_search; GtkWidget *TX_daterange; //GtkWidget *IM_closed; //GtkWidget *LB_name; GtkWidget *CM_minor; //GtkWidget *LB_recon, *LB_clear, *LB_today, *LB_futur; GtkWidget *TX_balance[4]; GtkWidget *LV_ope; gint busy; gchar *wintitle; Account *acc; Transaction *cur_ope; GQueue *q_txn_clip; //txn clipboard copy/paste GPtrArray *gpatxn; //quickfilter gboolean showall; gboolean closed; gboolean lockreconciled; gboolean do_sort; /* status counters */ guint nb_pending; gint hidden, total, similar, chkcatsign; gdouble totalsum; Filter *filter; guint timer_tag; gulong handler_id[MAX_HID]; //gint change; /* change shouldbe done directly */ }; #define DEFAULT_DELAY 750 /* Default delay in ms */ GtkWidget *hub_ledger_window_new(Account *acc); void hub_ledger_window_init(GtkWidget *widget, gpointer user_data); #endif /* __HOMEBANK_DSPACCOUNT_H__ */ homebank-5.9.1/src/ui-category.c0000644000175000017500000021737615005624330012174 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "hbtk-switcher.h" #include "ui-category.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern gchar *CYA_CAT_TYPE[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static GtkWidget * container_get_nth(GtkBox *container, gint nth) { GList *lchild, *list; GtkWidget *child; if(!GTK_IS_CONTAINER(container)) return NULL; lchild = list = gtk_container_get_children (GTK_CONTAINER(container)); child = g_list_nth_data (list, nth); g_list_free(lchild); return child; } GtkWidget * ui_cat_entry_popover_get_entry(GtkBox *box) { return container_get_nth(box, 0); } Category * ui_cat_entry_popover_get(GtkBox *box) { GtkWidget *entry; gchar *name; Category *item = NULL; DB( g_print ("ui_cat_entry_popover_get()\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { name = (gchar *)gtk_entry_get_text(GTK_ENTRY (entry)); item = da_cat_get_by_fullname(name); } return item; } guint32 ui_cat_entry_popover_get_key_add_new(GtkBox *box) { Category *item; GtkWidget *entry; GtkTreeModel *store; DB( g_print ("ui_cat_entry_popover_get_key_add_new()\n") ); /* automatic add */ //todo: check prefs + ask the user here 1st time entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { gchar *name = (gchar *)gtk_entry_get_text(GTK_ENTRY (entry)); item = da_cat_get_by_fullname(name); if(item != NULL) return item->key; item = da_cat_append_ifnew_by_fullname(name); if( item != NULL ) { store = gtk_entry_completion_get_model(gtk_entry_get_completion(GTK_ENTRY(entry))); if( store ) gtk_list_store_insert_with_values(GTK_LIST_STORE(store), NULL, -1, STO_CAT_DATA, item, STO_CAT_FULLNAME, item->fullname, -1); return item->key; } } return 0; } guint32 ui_cat_entry_popover_get_key(GtkBox *box) { Category *item = ui_cat_entry_popover_get(box); return ((item != NULL) ? item->key : 0); } void ui_cat_entry_popover_set_active(GtkBox *box, guint32 key) { GtkWidget *entry; DB( g_print ("[cat entry popover] setactive\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { Category *item = da_cat_get(key); hbtk_entry_set_text(GTK_ENTRY(entry), item != NULL ? item->fullname : ""); } } void ui_cat_entry_popover_add(GtkBox *box, Category *item) { GtkWidget *entry; DB( g_print ("[cat entry popover] add\n") ); DB( g_print (" -> try to add: '%s'\n", item->name) ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { if( item->name != NULL ) { GtkTreeModel *model; GtkTreeIter iter; model = gtk_entry_completion_get_model(gtk_entry_get_completion(GTK_ENTRY(entry))); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, STO_CAT_DATA, item, STO_CAT_FULLNAME, item->fullname, -1); } } } static void ui_cat_entry_popover_cb_row_activated(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; GtkEntry *entry = user_data; if( GTK_IS_ENTRY(entry) ) { treeselection = gtk_tree_view_get_selection(tree_view); if( gtk_tree_selection_get_selected(treeselection, &model, &iter) ) { Category *item; gtk_tree_model_get(model, &iter, STO_CAT_DATA, &item, -1); if(item) gtk_entry_set_text(GTK_ENTRY(user_data), item->fullname); } } } static void ui_cat_entry_popover_text_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *item; gchar *markup; gtk_tree_model_get(model, iter, STO_CAT_DATA, &item, -1); markup = (item->key == 0) ? _("(no category)") : item->typename; g_object_set(renderer, "markup", markup, NULL); } static void ui_cat_entry_popover_populate(GtkListStore *store) { GHashTableIter hiter; gpointer key, value; g_hash_table_iter_init (&hiter, GLOBALS->h_cat); while (g_hash_table_iter_next (&hiter, &key, &value)) { Category *item = value; //#1826360 wish: archive payee/category to lighten the lists if( !(item->flags & GF_HIDDEN) ) { gtk_list_store_insert_with_values(GTK_LIST_STORE(store), NULL, -1, STO_CAT_DATA, item, STO_CAT_FULLNAME, item->fullname, -1); } } gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); } static void ui_cat_entry_popover_function (GtkEditable *editable, gpointer user_data) { DB( g_print("text changed to %s\n", gtk_entry_get_text(GTK_ENTRY(editable)) ) ); } static void ui_cat_entry_popover_cb_toggled (GtkToggleButton *togglebutton, gpointer user_data) { GtkWidget *entry = user_data; GtkAllocation allocation; GtkPopover *popover; if(GTK_IS_ENTRY(entry)) { gtk_widget_get_allocation (entry, &allocation); popover = gtk_menu_button_get_popover(GTK_MENU_BUTTON(togglebutton)); if(GTK_IS_POPOVER(popover)) { gtk_widget_set_size_request (GTK_WIDGET(popover), allocation.width + (2*SPACING_POPOVER), -1); DB( g_print("should set width to %d\n", allocation.width + (2*SPACING_POPOVER)) ); } } } void ui_cat_entry_popover_clear(GtkBox *box) { GtkWidget *entry; GtkTreeModel *store; DB( g_print ("[cat entry popover] clear\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { store = gtk_entry_completion_get_model(gtk_entry_get_completion(GTK_ENTRY(entry))); gtk_list_store_clear (GTK_LIST_STORE(store)); } } void ui_cat_entry_popover_sort_type(GtkBox *box, guint type) { GtkWidget *entry; GtkTreeModel *store; DB( g_print ("[cat entry popover] sort type\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { store = gtk_entry_completion_get_model(gtk_entry_get_completion(GTK_ENTRY(entry))); g_object_set_data(G_OBJECT(store), "type", GUINT_TO_POINTER(type)); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); } } static gint ui_cat_entry_popover_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint retval = 0; Category *cat1, *cat2; Category *pcat1, *pcat2; guint type; gtk_tree_model_get(model, a, STO_CAT_DATA, &cat1, -1); gtk_tree_model_get(model, b, STO_CAT_DATA, &cat2, -1); if(cat1->key == 0) return -1; if(cat2->key == 0) return 1; //#2042484 exp/inc sort should be done on lvl1 only pcat1 = cat1->parent == 0 ? cat1 : da_cat_get(cat1->parent); pcat2 = cat2->parent == 0 ? cat2 : da_cat_get(cat2->parent); //#1882456 type = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(model), "type")); switch(type) { case TXN_TYPE_INCOME: // inc first retval = (pcat2->flags & GF_INCOME) - (pcat1->flags & GF_INCOME); break; default: retval = (pcat1->flags & GF_INCOME) - (pcat2->flags & GF_INCOME); } if( !retval ) retval = hb_string_utf8_compare(cat1->fullname, cat2->fullname); return retval; } static gboolean ui_cat_entry_popover_completion_func (GtkEntryCompletion *completion, const gchar *key, GtkTreeIter *iter, gpointer user_data) { Category *item = NULL; gchar *normalized_string; gchar *case_normalized_string; gboolean ret = FALSE; GtkTreeModel *model; model = gtk_entry_completion_get_model (completion); gtk_tree_model_get (model, iter, STO_CAT_DATA, &item, -1); if (item != NULL) { normalized_string = g_utf8_normalize (item->fullname, -1, G_NORMALIZE_ALL); if (normalized_string != NULL) { case_normalized_string = g_utf8_casefold (normalized_string, -1); //g_print("match '%s' for '%s' ?\n", key, case_normalized_string); //if (!strncmp (key, case_normalized_string, strlen (key))) if (g_strstr_len (case_normalized_string, strlen (case_normalized_string), key )) { ret = TRUE; // g_print(" ==> yes !\n"); } g_free (case_normalized_string); } g_free (normalized_string); } return ret; } static void ui_cat_entry_popover_destroy( GtkWidget *widget, gpointer user_data ) { DB( g_print ("[cat entry popover] destroy\n") ); } GtkWidget * ui_cat_entry_popover_new(GtkWidget *label) { GtkWidget *mainbox, *box, *entry, *menubutton, *image, *popover, *scrollwin, *treeview; GtkListStore *store; GtkEntryCompletion *completion; DB( g_print ("[pay entry popover] new\n") ); mainbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(mainbox)), GTK_STYLE_CLASS_LINKED); entry = gtk_entry_new(); hbtk_box_prepend (GTK_BOX(mainbox), entry); menubutton = gtk_menu_button_new (); //data->MB_template = menubutton; image = hbtk_image_new_from_icon_name_16 ("pan-down-symbolic"); gtk_button_set_image(GTK_BUTTON(menubutton), image); gtk_menu_button_set_direction (GTK_MENU_BUTTON(menubutton), GTK_ARROW_LEFT ); //gtk_widget_set_halign (menubutton, GTK_ALIGN_END); gtk_box_prepend(GTK_BOX(mainbox), menubutton); completion = gtk_entry_completion_new (); gtk_entry_set_completion (GTK_ENTRY (entry), completion); g_object_unref(completion); store = gtk_list_store_new (NUM_STO_CAT, G_TYPE_POINTER, G_TYPE_STRING ); gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_cat_entry_popover_compare_func, NULL, NULL); ui_cat_entry_popover_populate(store); gtk_entry_completion_set_model (completion, GTK_TREE_MODEL(store)); gtk_entry_completion_set_match_func(completion, ui_cat_entry_popover_completion_func, NULL, NULL); g_object_unref(store); gtk_entry_completion_set_text_column (completion, STO_CAT_FULLNAME); gtk_widget_show_all(mainbox); box = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX(box), scrollwin); //gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), HB_MINHEIGHT_LIST); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_show_all(box); //gtk_widget_set_can_focus(GTK_WIDGET(treeview), FALSE); GtkCellRenderer *renderer; GtkTreeViewColumn *column; renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", STO_CAT_FULLNAME, NULL); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cat_entry_popover_text_cell_data_function, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_view_set_hover_selection(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); gtk_tree_view_set_activate_on_single_click(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); //gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_BROWSE); //popover = create_popover (menubutton, box, GTK_POS_BOTTOM); popover = create_popover (menubutton, box, GTK_POS_LEFT); //gtk_widget_set_size_request (popover, HB_MINWIDTH_LIST, HB_MINHEIGHT_LIST); gtk_widget_set_vexpand(popover, TRUE); gtk_menu_button_set_popover(GTK_MENU_BUTTON(menubutton), popover); // connect our dispose function g_signal_connect (entry, "destroy", G_CALLBACK (ui_cat_entry_popover_destroy), NULL); g_signal_connect_after (entry , "changed", G_CALLBACK (ui_cat_entry_popover_function), NULL); g_signal_connect (menubutton, "toggled", G_CALLBACK (ui_cat_entry_popover_cb_toggled), entry); g_signal_connect (treeview, "row-activated", G_CALLBACK (ui_cat_entry_popover_cb_row_activated), entry); #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) g_signal_connect_swapped(treeview, "row-activated", G_CALLBACK(gtk_popover_popdown), popover); #else g_signal_connect_swapped(treeview, "row-activated", G_CALLBACK(gtk_widget_hide), popover); #endif //g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed", G_CALLBACK (ui_cat_entry_popover_cb_selection), entry); //g_signal_connect_swapped(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed", G_CALLBACK(gtk_popover_popdown), popover); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), entry); //gtk_widget_set_size_request(comboboxentry, HB_MINWIDTH_LIST, -1); return mainbox; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ guint ui_cat_listview_toggle_to_filter(GtkTreeView *treeview, Filter *filter) { GtkTreeModel *model; //GtkTreeSelection *selection; GtkTreeIter iter, child; guint n_child, change = 0; gboolean valid; gboolean toggled; DB( g_print("(ui_acc_listview) toggle_to_filter\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Category *catitem; gtk_tree_model_get (model, &iter, LST_DEFCAT_TOGGLE, &toggled, LST_DEFCAT_DATAS , &catitem, -1); DB( g_print(" cat k:%3d = %d (%s)\n", catitem->key, toggled, catitem->name) ); change += da_flt_status_cat_set(filter, catitem->key, toggled); //catitem->flt_select = toggled; n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter); gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while(n_child > 0) { gtk_tree_model_get (model, &child, LST_DEFCAT_TOGGLE, &toggled, LST_DEFCAT_DATAS, &catitem, -1); DB( g_print(" subcat k:%3d = %d (%s)\n", catitem->key, toggled, catitem->name) ); change += da_flt_status_cat_set(filter, catitem->key, toggled); //catitem->flt_select = toggled; n_child--; gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } /* Make iter point to the next row in the list store */ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } return change; } static void ui_cat_listview_fixed_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter, child; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; gint n_child; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, LST_DEFCAT_TOGGLE, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, fixed, -1); /* propagate to child */ n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter); gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while(n_child > 0) { gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, fixed, -1); n_child--; gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } /* clean up */ gtk_tree_path_free (path); } void ui_cat_listview_quick_select(GtkTreeView *treeview, const gchar *uri) { GtkTreeModel *model; GtkTreeIter iter, child; gboolean valid; gboolean toggle; gint n_child, qselect = hb_clicklabel_to_int(uri); DB( g_print("(ui_acc_listview) quick select\n") ); DB( g_print(" comboboxlink '%s' %d\n", uri, qselect) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { switch(qselect) { case HB_LIST_QUICK_SELECT_ALL: gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, TRUE, -1); break; case HB_LIST_QUICK_SELECT_NONE: gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, FALSE, -1); break; case HB_LIST_QUICK_SELECT_INVERT: gtk_tree_model_get (model, &iter, LST_DEFCAT_TOGGLE, &toggle, -1); toggle ^= 1; gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, toggle, -1); break; } n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter); gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while(n_child > 0) { switch(qselect) { case HB_LIST_QUICK_SELECT_ALL: gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, TRUE, -1); break; case HB_LIST_QUICK_SELECT_NONE: gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, FALSE, -1); break; case HB_LIST_QUICK_SELECT_INVERT: gtk_tree_model_get (model, &child, LST_DEFCAT_TOGGLE, &toggle, -1); toggle ^= 1; gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, toggle, -1); break; } n_child--; gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } static gint ui_cat_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); Category *entry1, *entry2; gint retval = 0; gtk_tree_model_get(model, a, LST_DEFCAT_DATAS, &entry1, -1); gtk_tree_model_get(model, b, LST_DEFCAT_DATAS, &entry2, -1); switch (sortcol) { case LST_DEFCAT_SORT_NAME: retval = (entry1->flags & GF_INCOME) - (entry2->flags & GF_INCOME); if(!retval) { retval = hb_string_utf8_compare(entry1->name, entry2->name); } break; case LST_DEFCAT_SORT_USETXN: retval = entry1->nb_use_txn - entry2->nb_use_txn; break; case LST_DEFCAT_SORT_USECFG: retval = (entry1->nb_use_all - entry1->nb_use_txn) - (entry2->nb_use_all - entry2->nb_use_txn); break; default: g_return_val_if_reached(0); } return retval; } /* ** draw some text from the stored data structure */ static void ui_cat_listview_text_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *item; gchar *markup; gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &item, -1); markup = (item->key == 0) ? _("(no category)") : item->typename; g_object_set(renderer, "markup", markup, NULL); } static void ui_cat_listview_count_txn_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *entry; gchar buffer[32]; guint16 use; guint16 usecat; buffer[0] = '\0'; gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &entry, -1); use = entry->nb_use_txn; usecat = entry->nb_use_txncat; if(use > 0) { if( !(entry->flags & GF_SUB) && (usecat != use) ) g_snprintf(buffer, 32-1, "%d (%d)", use, usecat); else g_snprintf(buffer, 32-1, "%d", use); } g_object_set(renderer, "text", buffer, NULL); } static void ui_cat_listview_count_cfg_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *entry; gchar buffer[32]; gint use; gint usecat; buffer[0] = '\0'; gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &entry, -1); use = entry->nb_use_all - entry->nb_use_txn; usecat = entry->nb_use_allcat - entry->nb_use_txncat; if(use > 0 || usecat > 0) { if( !(entry->flags & GF_SUB) && (usecat != use) ) g_snprintf(buffer, 32-1, "%d (%d)", use, usecat); else g_snprintf(buffer, 32-1, "%d", use); } g_object_set(renderer, "text", buffer, NULL); } static void ui_cat_listview_icon_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *entry; gchar *iconname = NULL; gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &entry, -1); if( entry->flags & GF_HIDDEN ) iconname = ICONNAME_HB_BUTTON_HIDE; g_object_set(renderer, "icon-name", iconname, NULL); } #if MYDEBUG == 1 static void ui_cat_listview_cell_data_function_debugkey (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *item; gchar *string; gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &item, -1); string = g_strdup_printf ("[%d]", item->key ); g_object_set(renderer, "text", string, NULL); g_free(string); } #endif /* = = = = = = = = = = = = = = = = */ void ui_cat_listview_add(GtkTreeView *treeview, Category *item, GtkTreeIter *parent) { GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; DB( g_print ("ui_cat_listview_add()\n") ); if( item->name != NULL ) { model = gtk_tree_view_get_model(treeview); gtk_tree_store_append (GTK_TREE_STORE(model), &iter, parent); gtk_tree_store_set (GTK_TREE_STORE(model), &iter, LST_DEFCAT_TOGGLE, FALSE, LST_DEFCAT_DATAS, item, //LST_DEFCAT_NAME, item->name, -1); //select the added line path = gtk_tree_model_get_path(model, &iter); gtk_tree_view_expand_to_path (treeview, path); gtk_tree_path_free(path); gtk_tree_selection_select_iter (gtk_tree_view_get_selection(treeview), &iter); } } Category * ui_cat_listview_get_selected(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print ("ui_cat_listview_get_selected()\n") ); selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Category *item; gtk_tree_model_get(model, &iter, LST_DEFCAT_DATAS, &item, -1); if( item->key != 0 ) return item; } return NULL; } Category * ui_cat_listview_get_selected_parent(GtkTreeView *treeview, GtkTreeIter *return_iter) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; Category *item; DB( g_print ("ui_cat_listview_get_selected_parent()\n") ); selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { path = gtk_tree_model_get_path(model, &iter); DB( g_print ("path depth = %d\n", gtk_tree_path_get_depth(path)) ); if(gtk_tree_path_get_depth(path) > 1) { if( gtk_tree_path_up(path) ) { DB( g_print ("up ok\n") ); if(gtk_tree_model_get_iter(model, &iter, path)) { DB( g_print ("iter ok\n") ); gtk_tree_model_get(model, &iter, LST_DEFCAT_DATAS, &item, -1); if( item->key != 0 ) { *return_iter = iter; return item; } } } } else { DB( g_print ("path <=1\n") ); gtk_tree_model_get(model, &iter, LST_DEFCAT_DATAS, &item, -1); if( item->key != 0 ) { *return_iter = iter; return item; } } } return NULL; } void ui_cat_listview_remove_selected(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter, child; gint n_child; DB( g_print("ui_cat_listview_remove_selected() \n") ); selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { //remove any children n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter); gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while(n_child > 0) { n_child--; gtk_tree_store_remove(GTK_TREE_STORE(model), &child); //After being removed, iter is set to the next valid row at that level, //or invalidated if it previously pointed to the last one. //gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } gtk_tree_store_remove(GTK_TREE_STORE(model), &iter); } } static void ui_cat_listview_sort_force(GtkTreeSortable *sortable, gpointer user_data) { gint sort_column_id; GtkSortType order; DB( g_print("ui_cat_listview_sort_force()\n") ); gtk_tree_sortable_get_sort_column_id(sortable, &sort_column_id, &order); DB( g_print(" - id %d order %d\n", sort_column_id, order) ); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sortable), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, order); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sortable), sort_column_id, order); } struct CatListContext { GtkTreeModel *model; guint except_key; gint type; gchar *needle; gushort *catmatch; gboolean showhidden; }; static gboolean ui_cat_listview_get_top_level (GtkTreeModel *liststore, guint32 key, GtkTreeIter *return_iter) { GtkTreeIter iter; gboolean valid; Category *item; //DB( g_print("ui_cat_listview_get_top_level() \n") ); if( liststore != NULL ) { valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(liststore), &iter); while (valid) { gtk_tree_model_get (liststore, &iter, LST_DEFCAT_DATAS, &item, -1); if(item->key == key) { *return_iter = iter; return TRUE; } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(liststore), &iter); } } return FALSE; } static void ui_cat_listview_populate_cat_ghfunc(gpointer key, gpointer value, struct CatListContext *ctx) { GtkTreeIter toplevel; Category *item = value; gint item_type; gboolean matchtype = FALSE; gboolean matchneedle = TRUE; gboolean matchhidden = TRUE; //only cat (lvl1) if( item->parent != 0 ) return; item_type = (item->flags & GF_INCOME) ? CAT_TYPE_INCOME : CAT_TYPE_EXPENSE; if( (ctx->type == CAT_TYPE_ALL) || (ctx->type == item_type) //#1740368 add mixed cat as well || (item->flags & GF_MIXED) || item->key == 0 ) matchtype = TRUE; //disable search non matched if( (ctx->catmatch != NULL) && ctx->catmatch[item->key] == 0 ) matchneedle = FALSE; if( (ctx->showhidden == FALSE) && (item->flags & GF_HIDDEN) ) matchhidden = FALSE; if( matchtype && matchneedle && matchhidden ) { gtk_tree_store_insert_with_values (GTK_TREE_STORE(ctx->model), &toplevel, NULL, -1, LST_DEFCAT_TOGGLE, FALSE, LST_DEFCAT_DATAS, item, //LST_DEFCAT_NAME, item->name, -1); } } static void ui_cat_listview_populate_subcat_ghfunc(gpointer key, gpointer value, struct CatListContext *ctx) { GtkTreeIter toplevel, child; Category *item = value; gboolean hasparent; gboolean matchneedle = TRUE; gboolean matchhidden = TRUE; //only subcat (lvl2) if( item->parent == 0 ) return; hasparent = ui_cat_listview_get_top_level(ctx->model, item->parent, &toplevel); if( hasparent == FALSE ) return; //#1740368 no need to filter on type, always insert all childs //disable search non matched if( (ctx->catmatch != NULL) && ctx->catmatch[item->key] == 0 ) matchneedle = FALSE; if( (ctx->showhidden == FALSE) && (item->flags & GF_HIDDEN) ) matchhidden = FALSE; if( matchneedle && matchhidden ) { gtk_tree_store_insert_with_values (GTK_TREE_STORE(ctx->model), &child, &toplevel, -1, LST_DEFCAT_TOGGLE, FALSE, LST_DEFCAT_DATAS, item, //LST_DEFCAT_NAME, item->name, -1); } } void ui_cat_listview_populate(GtkWidget *view, gint type, gchar *needle, gboolean showhidden) { GtkTreeModel *model; struct CatListContext ctx = { 0 }; gboolean hastext = FALSE; guint32 maxcat; gushort *catmatch = NULL; GList *lcat, *list; DB( g_print("ui_cat_listview_populate() \n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); gtk_tree_store_clear (GTK_TREE_STORE(model)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(view), NULL); /* Detach model from view */ if( needle != NULL) { hastext = (strlen(needle) >= 2) ? TRUE : FALSE; DB( g_print(" search: '%s' %s\n", needle, hastext ? "on":"off") ); } if( hastext ) { maxcat = da_cat_get_max_key(); catmatch = g_malloc0((maxcat+2) * sizeof(gushort)); if( catmatch != NULL ) { // mark cat/subcat that match lcat = list = g_hash_table_get_values(GLOBALS->h_cat); while (list != NULL) { Category *item = list->data; gboolean match = hb_string_utf8_strstr(item->name, needle, FALSE); if(match) { catmatch[item->key]++; if(item->parent != 0) catmatch[item->parent]++; DB( g_print(" match %4d:%4d '%s'\n", item->parent, item->key, item->name) ); } list = g_list_next(list); } g_list_free(lcat); } } /* clear and populate */ ctx.model = model; ctx.type = type; ctx.needle = needle; ctx.catmatch = catmatch; ctx.showhidden = showhidden; /* we have to do this in 2 times to ensure toplevel (cat) will be added before childs */ /* populate cat 1st */ g_hash_table_foreach(GLOBALS->h_cat, (GHFunc)ui_cat_listview_populate_cat_ghfunc, &ctx); g_hash_table_foreach(GLOBALS->h_cat, (GHFunc)ui_cat_listview_populate_subcat_ghfunc, &ctx); gtk_tree_view_set_model(GTK_TREE_VIEW(view), model); /* Re-attach model to view */ g_object_unref(model); gtk_tree_view_expand_all (GTK_TREE_VIEW(view)); if( hastext ) { g_free(catmatch); } } static gboolean ui_cat_listview_search_equal_func (GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) { gboolean retval = TRUE; gchar *normalized_string; gchar *normalized_key; gchar *case_normalized_string = NULL; gchar *case_normalized_key = NULL; Category *item; //gtk_tree_model_get_value (model, iter, column, &value); gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &item, -1); if(item != NULL) { normalized_string = g_utf8_normalize (item->name, -1, G_NORMALIZE_ALL); normalized_key = g_utf8_normalize (key, -1, G_NORMALIZE_ALL); if (normalized_string && normalized_key) { case_normalized_string = g_utf8_casefold (normalized_string, -1); case_normalized_key = g_utf8_casefold (normalized_key, -1); if (strncmp (case_normalized_key, case_normalized_string, strlen (case_normalized_key)) == 0) retval = FALSE; } g_free (normalized_key); g_free (normalized_string); g_free (case_normalized_key); g_free (case_normalized_string); } return retval; } GtkWidget * ui_cat_listview_new(gboolean withtoggle, gboolean withcount) { GtkTreeStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; DB( g_print("ui_cat_listview_new() \n") ); store = gtk_tree_store_new( NUM_LST_DEFCAT, G_TYPE_BOOLEAN, G_TYPE_POINTER //G_TYPE_STRING ); treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW (treeview), TRUE); #if MYDEBUG == 1 column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cat_listview_cell_data_function_debugkey, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); #endif // column: hide icon //#1826360 wish: archive payee/category to lighten the lists if( withtoggle == FALSE ) { column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cat_listview_icon_cell_data_function, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } // column: toggle if( withtoggle == TRUE ) { renderer = gtk_cell_renderer_toggle_new (); column = gtk_tree_view_column_new_with_attributes (_("Visible"), renderer, "active", LST_DEFCAT_TOGGLE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_NONE); g_signal_connect (G_OBJECT(renderer), "toggled", G_CALLBACK (ui_cat_listview_fixed_toggled), store); g_object_set_data(G_OBJECT(treeview), "togrdr_data", renderer); } // column: usage if( withcount == TRUE ) { column = gtk_tree_view_column_new(); //TRANSLATORS: 'txn' is abbrevation for transaction gtk_tree_view_column_set_title(column, _("# txn")); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 0.5, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cat_listview_count_txn_cell_data_function, GINT_TO_POINTER(LST_DEFCAT_DATAS), NULL); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (column, LST_DEFCAT_SORT_USETXN); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //by degfault hide this column gtk_tree_view_column_set_visible(column, FALSE); column = gtk_tree_view_column_new(); //TRANSLATORS: 'cfg' is abbrevation for configuration gtk_tree_view_column_set_title(column, _("# cfg")); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 0.5, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cat_listview_count_cfg_cell_data_function, GINT_TO_POINTER(LST_DEFCAT_DATAS), NULL); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (column, LST_DEFCAT_SORT_USECFG); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //by degfault hide this column gtk_tree_view_column_set_visible(column, FALSE); } // column: name renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL); if( withtoggle == FALSE ) { g_object_set(renderer, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); } column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Category")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cat_listview_text_cell_data_function, GINT_TO_POINTER(LST_DEFCAT_DATAS), NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); //gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST); gtk_tree_view_column_set_sort_column_id (column, LST_DEFCAT_SORT_NAME); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_view_set_expander_column(GTK_TREE_VIEW(treeview), column); if( withtoggle == TRUE ) gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(treeview), ui_cat_listview_search_equal_func, NULL, NULL); // treeview attribute gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), withcount); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFCAT_SORT_NAME, ui_cat_listview_compare_func, GINT_TO_POINTER(LST_DEFCAT_SORT_NAME), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFCAT_SORT_USETXN, ui_cat_listview_compare_func, GINT_TO_POINTER(LST_DEFCAT_SORT_USETXN), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFCAT_SORT_USECFG, ui_cat_listview_compare_func, GINT_TO_POINTER(LST_DEFCAT_SORT_USECFG), NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DEFCAT_SORT_NAME, GTK_SORT_ASCENDING); return treeview; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /** * ui_cat_manage_filter_text_handler * * filter to entry to avoid seizure of ':' char * */ static void ui_cat_manage_filter_text_handler (GtkEntry *entry, const gchar *text, gint length, gint *position, gpointer data) { GtkEditable *editable = GTK_EDITABLE(entry); gint i, count=0; gchar *result = g_new0 (gchar, length+1); for (i=0; i < length; i++) { if (text[i]==':') continue; result[count++] = text[i]; } if (count > 0) { g_signal_handlers_block_by_func (G_OBJECT (editable), G_CALLBACK (ui_cat_manage_filter_text_handler), data); gtk_editable_insert_text (editable, result, count, position); g_signal_handlers_unblock_by_func (G_OBJECT (editable), G_CALLBACK (ui_cat_manage_filter_text_handler), data); } g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text"); g_free (result); } static void ui_cat_manage_dialog_refilter(struct ui_cat_manage_dialog_data *data) { gint type; gboolean showhidden; gchar *needle; DB( g_print("\n[ui-cat-manage] refilter\n") ); type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)) == 1 ? CAT_TYPE_INCOME : CAT_TYPE_EXPENSE; needle = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_search)); showhidden = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_showhidden)); ui_cat_listview_populate(data->LV_cat, type, needle, showhidden); gtk_tree_view_expand_all (GTK_TREE_VIEW(data->LV_cat)); } static void ui_cat_manage_dialog_delete_unused(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_cat_manage_dialog_data *data = user_data; gboolean result; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-cat-manage] delete unused\n") ); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), _("Delete unused categories"), _("Are you sure you want to permanently\ndelete unused categories?"), _("_Delete"), TRUE ); if( result == GTK_RESPONSE_OK ) { GtkTreeModel *model; //#1996275 fill usage before delete ! if( data->usagefilled == FALSE ) { category_fill_usage(); data->usagefilled = TRUE; } model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat)); gtk_tree_store_clear (GTK_TREE_STORE(model)); //#1917075 data->change += category_delete_unused(); ui_cat_manage_dialog_refilter (data); } } static void ui_cat_manage_dialog_load_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_cat_manage_dialog_data *data = user_data; gchar *filename = NULL; gchar *error; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-cat-manage] load csv\n") ); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_OPEN, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); if(!category_load_csv(filename, &error)) { ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("File format error"), _("The CSV file must contains the exact numbers of column,\nseparated by a semi-colon, please see the help for more details.") ); } g_free( filename ); ui_cat_manage_dialog_refilter(data); } } static void ui_cat_manage_dialog_save_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_cat_manage_dialog_data *data = user_data; gchar *filename = NULL; gchar *error; DB( g_print("\n[ui-cat-manage] save csv\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); category_save_csv(filename, &error); g_free( filename ); } } static void ui_cat_manage_dialog_cb_show_usage (GtkToggleButton *button, gpointer user_data) { struct ui_cat_manage_dialog_data *data; gboolean showusage; GtkTreeViewColumn *column; DB( g_print("\n[ui-cat-manage] show usage\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_WINDOW)), "inst_data"); if( data->usagefilled == FALSE ) { category_fill_usage(); data->usagefilled = TRUE; } showusage = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_showusage)); column = hbtk_treeview_get_column_by_id(GTK_TREE_VIEW(data->LV_cat), LST_DEFCAT_SORT_USETXN); if(column != NULL) { gtk_tree_view_column_set_visible(column, showusage); } column = hbtk_treeview_get_column_by_id(GTK_TREE_VIEW(data->LV_cat), LST_DEFCAT_SORT_USECFG); if(column != NULL) { gtk_tree_view_column_set_visible(column, showusage); } } static void ui_cat_manage_dialog_cb_show_hidden (GtkToggleButton *button, gpointer user_data) { struct ui_cat_manage_dialog_data *data; DB( g_print("\n[ui-cat-manage] show hidden\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_WINDOW)), "inst_data"); ui_cat_manage_dialog_refilter(data); } /** * ui_cat_manage_dialog_add: * * add an empty new category/subcategory * */ static void ui_cat_manage_dialog_add(GtkWidget *widget, gpointer user_data) { struct ui_cat_manage_dialog_data *data; gboolean isadded, subcat = GPOINTER_TO_INT(user_data); const gchar *name; //GtkTreeModel *model; GtkWidget *tmpwidget; Category *item, *paritem; gint type; DB( g_print("\n[ui-cat-manage] add\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(data=%p) is subcat=%d\n", data, subcat) ); tmpwidget = (subcat == FALSE ? data->ST_name1 : data->ST_name2); name = gtk_entry_get_text(GTK_ENTRY(tmpwidget)); //model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat)); item = da_cat_malloc(); item->name = g_strdup(name); g_strstrip(item->name); isadded = FALSE; if( strlen(item->name) > 0 ) { /* if cat use new id */ if(subcat == FALSE) { type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)); if(type == 1) item->flags |= GF_INCOME; isadded = da_cat_append(item); if( isadded == TRUE ) { DB( g_print(" => add cat: %p %d, %s type=%d\n", item, subcat, item->name, type) ); ui_cat_listview_add(GTK_TREE_VIEW(data->LV_cat), item, NULL); data->change++; } } /* if subcat use parent id & gf_income */ else { GtkTreeIter parent_iter; paritem = ui_cat_listview_get_selected_parent(GTK_TREE_VIEW(data->LV_cat), &parent_iter); if(paritem) { DB( g_print(" => selitem parent: %d, %s\n", paritem->key, paritem->name) ); item->parent = paritem->key; item->flags |= (paritem->flags & GF_INCOME); item->flags |= GF_SUB; isadded = da_cat_append(item); if( isadded == TRUE ) { DB( g_print(" => add subcat: %p %d, %s\n", item, subcat, item->name) ); ui_cat_listview_add(GTK_TREE_VIEW(data->LV_cat), item, &parent_iter); data->change++; } } } } //#2051349 warn user and free lack if( isadded == FALSE ) { DB( g_print(" existing item\n") ); da_cat_free(item); ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("Error"), _("Duplicate category name. Try another name.") ); } gtk_entry_set_text(GTK_ENTRY(tmpwidget),""); } static void ui_cat_manage_dialog_edit_entry_cb(GtkEditable *editable, gpointer user_data) { GtkDialog *window = user_data; const gchar *buffer; DB( g_print("\n[ui-cat-manage] edit cb\n") ); buffer = gtk_entry_get_text(GTK_ENTRY(editable)); gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_ACCEPT, strlen(buffer) > 0 ? TRUE : FALSE); } static void ui_cat_manage_dialog_edit(GtkWidget *widget, gpointer user_data) { struct ui_cat_manage_dialog_data *data; GtkWidget *dialog, *content_area, *grid; GtkWidget *label, *w_name, *w_type = NULL, *w_child; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; gint row, n_child; DB( g_print("\n[ui-cat-manage] edit\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Category *item; gtk_tree_model_get(model, &iter, LST_DEFCAT_DATAS, &item, -1); n_child = gtk_tree_model_iter_n_children(model, &iter); dialog = gtk_dialog_new_with_buttons (_("Edit Category"), GTK_WINDOW (data->dialog), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(grid), SPACING_LARGE); hbtk_box_prepend (GTK_BOX (content_area), grid); // group :: General row = 0; label = make_label_widget(_("_Name:")); gtk_grid_attach (GTK_GRID (grid), label, 1, row, 1, 1); w_name = gtk_entry_new(); //gtk_widget_set_size_request (w_name, HB_MINWIDTH_LIST, -1); gtk_widget_set_hexpand(w_name, TRUE); gtk_entry_set_text(GTK_ENTRY(w_name), item->name); gtk_entry_set_activates_default (GTK_ENTRY(w_name), TRUE); gtk_widget_grab_focus (w_name); gtk_grid_attach (GTK_GRID (grid), w_name, 2, row, 1, 1); // group :: Type row++; label = make_label_group(_("Change Type")); gtk_widget_set_margin_top(label, SPACING_LARGE); gtk_grid_attach (GTK_GRID (grid), label, 0, row, 3, 1); row++; w_type = gtk_check_button_new_with_mnemonic(_("_Income")); gtk_grid_attach (GTK_GRID (grid), w_type, 1, row, 2, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w_type), item->flags & GF_INCOME ? TRUE : FALSE); row++; w_child = gtk_check_button_new_with_mnemonic(_("Propagate to _children")); gtk_grid_attach (GTK_GRID (grid), w_child, 1, row, 2, 1); g_signal_connect (G_OBJECT (w_name), "changed", G_CALLBACK (ui_cat_manage_dialog_edit_entry_cb), dialog); gtk_widget_show_all(grid); if( (item->flags & GF_SUB) || n_child == 0 ) { gtk_widget_hide(w_child); } gtk_dialog_set_default_response(GTK_DIALOG( dialog ), GTK_RESPONSE_ACCEPT); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { const gchar *name; // 1: manage renaming name = gtk_entry_get_text(GTK_ENTRY(w_name)); // ignore if item is empty if (name && *name) { if( category_rename(item, name) ) { //to redraw the active entry gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_cat)); data->change++; } else { Category *parent; gchar *fromname, *toname = NULL; fromname = item->fullname; if( item->parent == 0) toname = g_strdup(name); else { parent = da_cat_get(item->parent); if( parent ) { toname = g_strdup_printf("%s:%s", parent->name, name); } } ui_dialog_msg_infoerror(GTK_WINDOW(dialog), GTK_MESSAGE_ERROR, _("Error"), _("Cannot rename this Category,\n" "from '%s' to '%s',\n" "this name already exists."), fromname, toname ); g_free(toname); } } // 2: manage flag change gboolean isIncome = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w_type)); gboolean doChild = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w_child)); data->change += category_change_type(item, isIncome, doChild); ui_cat_listview_sort_force(GTK_TREE_SORTABLE(model), NULL); } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); } } static void ui_cat_manage_dialog_merge_entry_cb(GtkEditable *editable, gpointer user_data) { GtkDialog *window = user_data; const gchar *buffer; DB( g_print("\n[ui-cat-manage] merge cb\n") ); buffer = gtk_entry_get_text(GTK_ENTRY(editable)); gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, strlen(buffer) > 0 ? TRUE : FALSE); } static void ui_cat_manage_dialog_merge(GtkWidget *widget, gpointer user_data) { struct ui_cat_manage_dialog_data *data; GtkWidget *dialog, *content, *mainvbox; GtkWidget *getwidget, *cb_subcat, *togglebutton; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("\n[ui-cat-manage] merge\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Category *srccat; gchar *title; gchar *secondtext; gtk_tree_model_get(model, &iter, LST_DEFCAT_DATAS, &srccat, -1); title = g_strdup_printf ( _("Merge category '%s'"), srccat->name); dialog = gtk_message_dialog_new (GTK_WINDOW (data->dialog), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, title, NULL ); gtk_dialog_add_buttons (GTK_DIALOG(dialog), _("_Cancel"), GTK_RESPONSE_CANCEL, _("Merge"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL); content = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG (dialog)); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (content), mainvbox); secondtext = _("Transactions assigned to this category,\n" "will be moved to the category selected below."); g_object_set(GTK_MESSAGE_DIALOG (dialog), "secondary-text", secondtext, NULL); g_free(title); //getwidget = ui_cat_comboboxentry_new(NULL); getwidget = ui_cat_entry_popover_new(NULL); gtk_box_prepend (GTK_BOX (mainvbox), getwidget); cb_subcat = gtk_check_button_new_with_mnemonic(_("Include _subcategories")); gtk_box_prepend (GTK_BOX (mainvbox), cb_subcat); //#2079801 warn budget secondtext = g_strdup_printf ( _("_Delete the category '%s' (and any budget)"), srccat->name); togglebutton = gtk_check_button_new_with_mnemonic(secondtext); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(togglebutton), TRUE); g_free(secondtext); gtk_box_prepend (GTK_BOX (mainvbox), togglebutton); //setup //gtk_combo_box_set_active(GTK_COMBO_BOX(getwidget), oldpos); g_signal_connect (G_OBJECT (ui_cat_entry_popover_get_entry(GTK_BOX(getwidget))), "changed", G_CALLBACK (ui_cat_manage_dialog_merge_entry_cb), dialog); gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_OK, FALSE); //5.5 done in popover, let's keep the src as well //ui_cat_comboboxentry_populate_except(GTK_COMBO_BOX(getwidget), GLOBALS->h_cat, srccat->key); gtk_widget_grab_focus (getwidget); gtk_widget_show_all(mainvbox); hb_widget_visible(cb_subcat, (srccat->flags & GF_SUB) ? FALSE : TRUE); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_OK) { GtkTreeModel *model; Category *newcat, *parent; gboolean dosubcat; guint dstcatkey; //dstcatkey = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(getwidget)); dstcatkey = ui_cat_entry_popover_get_key_add_new(GTK_BOX(getwidget)); dosubcat = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_subcat)); //do nothing if src = dst... if( srccat->key != dstcatkey ) { DB( g_print(" -> move cat to %d (subcat=%d)\n", dstcatkey, dosubcat) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat)); gtk_tree_store_clear (GTK_TREE_STORE(model)); category_move(srccat->key, dstcatkey, dosubcat); newcat = da_cat_get (dstcatkey); //#1771720: update count //TODO: this is imperfect here, as if subcat, we don't count ? newcat->nb_use_all += srccat->nb_use_all; newcat->nb_use_txn += srccat->nb_use_txn; srccat->nb_use_all = 0; srccat->nb_use_txn = 0; //keep the income type with us parent = da_cat_get(srccat->parent); if(parent != NULL && (parent->flags & GF_INCOME)) newcat->flags |= GF_INCOME; //add the new category into listview if(newcat) ui_cat_listview_add(GTK_TREE_VIEW(data->LV_cat), newcat, NULL); // delete the old category if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(togglebutton)) ) { DB( g_print(" -> delete %d '%s'\n", srccat->key, srccat->name ) ); ui_cat_listview_remove_selected(GTK_TREE_VIEW(data->LV_cat)); da_cat_delete(srccat->key); //#2079801 later delete budget } data->change++; ui_cat_manage_dialog_refilter(data); } } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); } } /* ** delete the selected category to our treeview and temp GList */ static void ui_cat_manage_dialog_delete(GtkWidget *widget, gpointer user_data) { struct ui_cat_manage_dialog_data *data; Category *item; gint result; DB( g_print("\n[ui-cat-manage] delete\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); item = ui_cat_listview_get_selected(GTK_TREE_VIEW(data->LV_cat)); if( item != NULL && item->key != 0 ) { gchar *title = NULL; gchar *secondtext = NULL; title = g_strdup_printf ( _("Are you sure you want to permanently delete '%s'?"), item->name); if( item->nb_use_all > 0 ) { secondtext = _("This category is used.\n" "Any transaction using that category will be set to (no category)"); } result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Delete"), TRUE ); g_free(title); if( result == GTK_RESPONSE_OK ) { ui_cat_listview_remove_selected(GTK_TREE_VIEW(data->LV_cat)); category_move(item->key, 0, TRUE); da_cat_delete(item->key); data->change++; } } } static void ui_cat_manage_dialog_expand_all(GtkWidget *widget, gpointer user_data) { struct ui_cat_manage_dialog_data *data; DB( g_print("\n[ui-cat-manage] expand all\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_cat)); } static void ui_cat_manage_dialog_collapse_all(GtkWidget *widget, gpointer user_data) { struct ui_cat_manage_dialog_data *data; DB( g_print("\n[ui-cat-manage] collapse all\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_cat)); } //#1826360 wish: archive payee/category to lighten the lists static void ui_cat_manage_dialog_hide(GtkWidget *widget, gpointer user_data) { struct ui_cat_manage_dialog_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter, child; Category *item; gboolean showhidden; gint n_child; DB( g_print("\n[ui-cat-manage] hide\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); showhidden = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_showhidden)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { //manage children n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter); gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while(n_child > 0) { gtk_tree_model_get(model, &child, LST_DEFCAT_DATAS, &item, -1); if( item != NULL ) { item->flags ^= GF_HIDDEN; data->change++; } n_child--; gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } gtk_tree_model_get(model, &iter, LST_DEFCAT_DATAS, &item, -1); if( item != NULL ) { item->flags ^= GF_HIDDEN; data->change++; } } if( showhidden ) //refresh gtk_widget_queue_draw(data->LV_cat); else ui_cat_listview_remove_selected(GTK_TREE_VIEW(data->LV_cat)); } static void ui_cat_manage_dialog_update(GtkWidget *treeview, gpointer user_data) { struct ui_cat_manage_dialog_data *data; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; gchar *category = NULL; gboolean selected, sensitive; gboolean haschild = FALSE; DB( g_print("\n[ui-cat-manage] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); //window = gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW); //DB( g_print("(defcategory) widget=%08lx, window=%08lx, inst_data=%08lx\n", treeview, window, data) ); //if true there is a selected node selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)), &model, &iter); if (selected) { gchar *tree_path_str; Category *item; gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, LST_DEFCAT_DATAS, &item, -1); if( item->key == 0 ) selected = FALSE; haschild = gtk_tree_model_iter_has_child(GTK_TREE_MODEL(model), &iter); DB( g_print(" => has child=%d\n", haschild) ); path = gtk_tree_model_get_path(gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)), &iter); tree_path_str = gtk_tree_path_to_string(path); DB( g_print(" => select is=%s, depth=%d (id=%d, %s) flags=%d\n", tree_path_str, gtk_tree_path_get_depth(path), item->key, item->name, item->flags ) ); g_free(tree_path_str); //get parent if subcategory selected DB( g_print(" => get parent for title\n") ); if(gtk_tree_path_get_depth(path) != 1) gtk_tree_path_up(path); if(gtk_tree_model_get_iter(model, &iter, path)) { Category *tmpitem; gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, LST_DEFCAT_DATAS, &tmpitem, -1); if(tmpitem->key > 0) category = tmpitem->name; DB( g_print(" => parent is %s\n", category) ); } gtk_tree_path_free(path); } DB( g_print(" selected = %d\n", selected) ); gtk_label_set_text(GTK_LABEL(data->LA_category), category); sensitive = (selected == TRUE) ? TRUE : FALSE; gtk_widget_set_sensitive(data->ST_name2, sensitive); gtk_widget_set_sensitive(data->BT_edit, sensitive); gtk_widget_set_sensitive(data->BT_merge, sensitive); gtk_widget_set_sensitive(data->BT_hide, sensitive); //avoid deleting top categories sensitive = (haschild == TRUE) ? FALSE : sensitive; gtk_widget_set_sensitive(data->BT_delete, sensitive); } static gboolean ui_cat_manage_dialog_cb_on_key_press(GtkWidget *source, GdkEvent *event, gpointer user_data) { struct ui_cat_manage_dialog_data *data = user_data; GdkModifierType state; guint keyval; gdk_event_get_state (event, &state); gdk_event_get_keyval(event, &keyval); // On Control-f enable search entry if (state & GDK_CONTROL_MASK && keyval == GDK_KEY_f) { gtk_widget_grab_focus(data->ST_search); } else if (keyval == GDK_KEY_Escape && gtk_widget_has_focus(data->ST_search)) { hbtk_entry_set_text(GTK_ENTRY(data->ST_search), NULL); gtk_widget_grab_focus(data->LV_cat); return TRUE; } return GDK_EVENT_PROPAGATE; } static void ui_cat_manage_dialog_selection(GtkTreeSelection *treeselection, gpointer user_data) { DB( g_print("\n[ui-cat-manage] selection\n") ); ui_cat_manage_dialog_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static void ui_cat_manage_dialog_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; DB( g_print("\n[ui-cat-manage] onRowActivated\n") ); //TODO: check if not none, should be done into edit model = gtk_tree_view_get_model(treeview); gtk_tree_model_get_iter_first(model, &iter); if(gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), &iter) == FALSE) { ui_cat_manage_dialog_edit(GTK_WIDGET(treeview), NULL); } } static gboolean ui_cat_manage_dialog_cleanup(struct ui_cat_manage_dialog_data *data, gint result) { gboolean doupdate = FALSE; DB( g_print("\n[ui-cat-manage] cleanup\n") ); if(result == GTK_RESPONSE_ACCEPT) { //do_application_specific_something (); DB( g_print(" accept\n") ); GLOBALS->changes_count += data->change; } DB( g_print(" free tmp_list\n") ); //da_category_destroy(data->tmp_list); return doupdate; } static void ui_cat_manage_type_changed_cb (GtkToggleButton *button, gpointer user_data) { ui_cat_manage_dialog_refilter(user_data); //g_print(" toggle type=%d\n", gtk_toggle_button_get_active(button)); } static void ui_cat_manage_search_changed_cb (GtkWidget *widget, gpointer user_data) { struct ui_cat_manage_dialog_data *data = user_data; DB( g_printf("\n[ui-cat-manage] search_changed_cb\n") ); ui_cat_manage_dialog_refilter(data); } static void ui_cat_manage_dialog_setup(struct ui_cat_manage_dialog_data *data) { DB( g_print("\n[ui-cat-manage] setup\n") ); DB( g_print(" init data\n") ); //init GList data->tmp_list = NULL; //data->tmp_list = hb-glist_clone_list(GLOBALS->cat_list, sizeof(struct _Group)); data->change = 0; data->usagefilled = FALSE; //#2051419 show hidden by default gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->BT_showhidden), TRUE); DB( g_print(" populate\n") ); //debug //da_cat_debug_list(); ui_cat_manage_dialog_refilter(data); //DB( g_print(" set widgets default\n") ); DB( g_print(" connect widgets signals\n") ); g_signal_connect (G_OBJECT (data->BT_showhidden), "toggled", G_CALLBACK (ui_cat_manage_dialog_cb_show_hidden), NULL); g_signal_connect (G_OBJECT (data->BT_showusage) , "toggled", G_CALLBACK (ui_cat_manage_dialog_cb_show_usage), NULL); g_signal_connect (G_OBJECT (data->RA_type), "changed", G_CALLBACK (ui_cat_manage_type_changed_cb), data); g_object_bind_property (data->BT_add, "active", data->RE_addreveal, "reveal-child", G_BINDING_BIDIRECTIONAL); gtk_tree_view_set_search_entry(GTK_TREE_VIEW(data->LV_cat), GTK_ENTRY(data->ST_search)); g_signal_connect (G_OBJECT (data->ST_search), "search-changed", G_CALLBACK (ui_cat_manage_search_changed_cb), data); g_signal_connect (G_OBJECT (data->ST_name1), "activate", G_CALLBACK (ui_cat_manage_dialog_add), GINT_TO_POINTER(FALSE)); g_signal_connect (G_OBJECT (data->ST_name2), "activate", G_CALLBACK (ui_cat_manage_dialog_add), GINT_TO_POINTER(TRUE)); g_signal_connect(G_OBJECT(data->ST_name1), "insert-text", G_CALLBACK(ui_cat_manage_filter_text_handler), NULL); g_signal_connect(G_OBJECT(data->ST_name2), "insert-text", G_CALLBACK(ui_cat_manage_filter_text_handler), NULL); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)), "changed", G_CALLBACK (ui_cat_manage_dialog_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_cat), "row-activated", G_CALLBACK (ui_cat_manage_dialog_onRowActivated), NULL); g_signal_connect (G_OBJECT (data->BT_edit), "clicked", G_CALLBACK (ui_cat_manage_dialog_edit), NULL); g_signal_connect (G_OBJECT (data->BT_merge), "clicked", G_CALLBACK (ui_cat_manage_dialog_merge), NULL); g_signal_connect (G_OBJECT (data->BT_delete), "clicked", G_CALLBACK (ui_cat_manage_dialog_delete), NULL); g_signal_connect (G_OBJECT (data->BT_hide), "clicked", G_CALLBACK (ui_cat_manage_dialog_hide), NULL); g_signal_connect (G_OBJECT (data->BT_expand), "clicked", G_CALLBACK (ui_cat_manage_dialog_expand_all), NULL); g_signal_connect (G_OBJECT (data->BT_collapse), "clicked", G_CALLBACK (ui_cat_manage_dialog_collapse_all), NULL); } static gboolean ui_cat_manage_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct ui_cat_manage_dialog_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[ui-cat-manage] mapped\n") ); ui_cat_manage_dialog_setup(data); ui_cat_manage_dialog_update(data->LV_cat, NULL); data->mapped_done = TRUE; return FALSE; } static const GActionEntry win_actions[] = { { "imp" , ui_cat_manage_dialog_load_csv, NULL, NULL, NULL, {0,0,0} }, { "exp" , ui_cat_manage_dialog_save_csv, NULL, NULL, NULL, {0,0,0} }, { "del" , ui_cat_manage_dialog_delete_unused, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; GtkWidget *ui_cat_manage_dialog (void) { struct ui_cat_manage_dialog_data *data; GtkWidget *dialog, *content, *mainvbox, *bbox, *table, *hbox, *vbox, *label, *scrollwin, *treeview; GtkWidget *widget, *image, *tbar, *revealer; gint w, h, dw, dh, row; DB( g_print("\n[ui-cat-manage] new\n") ); data = g_malloc0(sizeof(struct ui_cat_manage_dialog_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Manage Categories"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; data->change = 0; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 2:3 dw = (dh * 2) / 3; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our window private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" dialog=%p, inst_data=%p\n", dialog, data) ); //dialog contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (content), mainvbox); hb_widget_set_margin(GTK_WIDGET(mainvbox), SPACING_LARGE); //our table table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (mainvbox), table); //filter part row = 0; bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (table), bbox, 0, row, 2, 1); widget = make_image_toggle_button(ICONNAME_HB_BUTTON_HIDE, _("Show Hidden") ); data->BT_showhidden = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_toggle_button(ICONNAME_HB_BUTTON_USAGE, _("Show Usage") ); data->BT_showusage = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup(HBTK_SWITCHER(widget), CYA_CAT_TYPE, TRUE); data->RA_type = widget; //gtk_widget_set_halign (bbox, GTK_ALIGN_CENTER); gtk_box_prepend (GTK_BOX (bbox), widget); //menubutton widget = gtk_menu_button_new(); image = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_BUTTON_MENU); g_object_set (widget, "image", image, NULL); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_box_append (GTK_BOX (bbox), widget); GMenu *menu = g_menu_new (); GMenu *section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Import CSV..."), "win.imp"); g_menu_append (section, _("E_xport CSV..."), "win.exp"); g_object_unref (section); section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Delete unused..."), "win.del"); g_object_unref (section); GActionGroup *group = (GActionGroup*)g_simple_action_group_new (); data->actions = group; g_action_map_add_action_entries (G_ACTION_MAP (group), win_actions, G_N_ELEMENTS (win_actions), data); gtk_widget_insert_action_group (widget, "win", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); widget = make_search(); data->ST_search = widget; gtk_box_append(GTK_BOX (bbox), widget); // list + toolbar row++; vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_grid_attach (GTK_GRID (table), vbox, 0, row, 2, 1); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), HB_MINHEIGHT_LIST); treeview = ui_cat_listview_new(FALSE, TRUE); data->LV_cat = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_set_hexpand (scrollwin, TRUE); gtk_widget_set_vexpand (scrollwin, TRUE); hbtk_box_prepend (GTK_BOX(vbox), scrollwin); //list toolbar tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_toggle_button(ICONNAME_LIST_ADD, _("Add")); data->BT_add = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); data->BT_delete = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_EDIT, _("Edit")); data->BT_edit = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_HB_LIST_MERGE, _("Move/Merge")); data->BT_merge = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_HIDE, _("Show/Hide")); data->BT_hide = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_EXPAND, _("Expand all")); data->BT_expand = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_button(ICONNAME_HB_BUTTON_COLLAPSE, _("Collapse all")); data->BT_collapse = widget; gtk_box_prepend (GTK_BOX (bbox), widget); // subcategory + add button row++; revealer = gtk_revealer_new (); data->RE_addreveal = revealer; gtk_grid_attach (GTK_GRID (table), revealer, 0, row, 2, 1); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); gtk_revealer_set_child (GTK_REVEALER(revealer), vbox); widget = gtk_entry_new (); data->ST_name1 = widget; gtk_entry_set_placeholder_text(GTK_ENTRY(data->ST_name1), _("new category") ); hbtk_box_prepend (GTK_BOX (vbox), widget); row++; hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_box_prepend (GTK_BOX (vbox), hbox); data->LA_category = gtk_label_new(NULL); gtk_box_prepend (GTK_BOX (hbox), data->LA_category); label = gtk_label_new(":"); gtk_box_prepend (GTK_BOX (hbox), label); data->ST_name2 = gtk_entry_new (); gtk_entry_set_placeholder_text(GTK_ENTRY(data->ST_name2), _("new subcategory") ); hbtk_box_prepend (GTK_BOX (hbox), data->ST_name2); // connect dialog signals g_signal_connect (dialog, "map-event", G_CALLBACK (ui_cat_manage_mapped), &dialog); g_signal_connect (dialog, "key-press-event", G_CALLBACK (ui_cat_manage_dialog_cb_on_key_press), (gpointer)data); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all (dialog); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); // cleanup and destroy ui_cat_manage_dialog_cleanup(data, result); gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/src/gtk-chart-progress.h0000644000175000017500000001232714736461415013501 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __CHARTPROGRESS_H__ #define __CHARTPROGRESS_H__ #include "gtk-chart-colors.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* Macro for casting a pointer to a GtkWidget or GtkWidgetClass pointer. * Macros for testing whether `widget' or `klass' are of type GTK_TYPE_WIDGET. */ #define GTK_TYPE_CHARTPROGRESS (ui_chart_progress_get_type ()) #define GTK_CHARTPROGRESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CHARTPROGRESS, ChartProgress)) #define GTK_CHARTPROGRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CHARTPROGRESS, ChartProgressClass) #define GTK_IS_CHARTPROGRESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CHARTPROGRESS)) #define GTK_IS_CHARTPROGRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CHARTPROGRESS)) #define GTK_CHARTPROGRESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CHARTPROGRESS, ChartProgressClass)) typedef struct _ChartProgress ChartProgress; typedef struct _ChartProgressClass ChartProgressClass; typedef struct _StackItem StackItem; typedef struct _HbtkDrawProgContext HbtkDrawProgContext; typedef gchar (* ChartProgressPrintIntFunc) (gint value, gboolean minor); typedef gchar (* ChartProgressPrintDoubleFunc) (gdouble value, gboolean minor); /* = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #define GTK_CHARTPROGRESS_BARW 32 #define CHART_BUFFER_LENGTH 128 #define DEFAULT_DELAY 500 /* Default delay in ms */ #define CHART_MARGIN 18 //standard a4 margin #define CHART_SPACING 6 struct _StackItem { /* data part */ gchar *label; gdouble spent; gdouble budget; gdouble result; gchar *status; gint n_child; /* draw stuffs */ gdouble rate; gboolean warn; /* tmp datas */ gdouble rawrate; }; struct _HbtkDrawProgContext { gboolean isprint; gboolean darktheme; gint first, visible; double barw, blkw; /* drawing datas */ double l, t, b, r, w, h; double graph_width, graph_height; //graph dimension /* zones height */ double title_zh; double subtitle_zh, subtitle_y; double header_zh, header_y; double item_zh; /* column width */ double cat_col_w; double bud_col_w; double res_col_w; double rel_col_w; }; /* you should access only the entry and list fields directly */ struct _ChartProgress { /*< private >*/ GtkBox hbox; GtkWidget *drawarea; GtkAdjustment *adjustment; GtkWidget *scrollbar; GtkWidget *breadcrumb; /* data storage */ GtkTreeModel *model; gint nb_items; GArray *items; /*gchar **titles; gdouble *spent; gdouble *budget;*/ gchar *title; gchar *subtitle; gchar *budget_title; gchar *result_title; gboolean minor; guint32 kcur; gdouble minor_rate; gchar *minor_symbol; /* color datas */ GtkColorScheme color_scheme; /* buffer surface */ cairo_surface_t *surface; gint hover, lasthover; struct _HbtkDrawProgContext context; PangoFontDescription *pfd; gint pfd_size; gchar buffer[CHART_BUFFER_LENGTH]; }; typedef struct { ChartProgress *chart; HbtkDrawProgContext drawctx; gint num_pages; } GtkChartProgPrintData; struct _ChartProgressClass { GtkBoxClass parent_class; /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); void (*_gtk_reserved4) (void); }; GType ui_chart_progress_get_type (void); /* public function */ GtkWidget *ui_chart_progress_new(void); void gtk_chart_progress_print(ChartProgress *chart, GtkWindow *parent, gchar *dirname, gchar *filename); void ui_chart_progress_set_color_scheme(ChartProgress * chart, gint colorscheme); void ui_chart_progress_set_dualdatas(ChartProgress *chart, GtkTreeModel *model, gchar *coltitle1, gchar *coltitle2, gchar *title, gchar *subtitle); void ui_chart_progress_set_title(ChartProgress * chart, gchar *title); void ui_chart_progress_set_subtitle(ChartProgress * chart, gchar *subtitle); void ui_chart_progress_set_barw(ChartProgress * chart, gdouble barw); void ui_chart_progress_show_minor(ChartProgress * chart, gboolean minor); void ui_chart_progress_set_minor_prefs(ChartProgress * chart, gdouble rate, gchar *symbol); void ui_chart_progress_set_currency(ChartProgress * chart, guint32 kcur); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __CHARTPROGRESS_H__ */ homebank-5.9.1/src/language.h0000644000175000017500000000162714736461415011537 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __LANGUAGE_H__ #define __LANGUAGE_H__ void language_init (const gchar *language); #endif /* __LANGUAGE_H__ */ homebank-5.9.1/src/ui-assist-start.h0000644000175000017500000000277514736461415013035 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_UI_ASSIST_START_GTK_H__ #define __HB_UI_ASSIST_START_GTK_H__ #define PAGE_WELCOME 0 #define PAGE_GENERAL 1 #define PAGE_CURRENCIES 2 #define PAGE_CATEGORIES 3 #define PAGE_ACCOUNTS 4 struct assist_start_data { GtkWidget *dialog; //GtkWidget *pages[NUM_PAGE]; GtkWidget *ST_owner; GtkWidget *LB_cur_base, *BT_cur_change;; GtkWidget *CM_cur_add, *LB_cur_others, *BT_cur_add; GtkWidget *GR_file; GtkWidget *TX_file; GtkWidget *TX_preview; GtkWidget *ok_image, *ko_image; GtkWidget *CM_load; GtkWidget *CM_acc_add; GtkWidget *GR_acc; GtkWidget *ST_name; GtkWidget *CY_type; Currency4217 *curfmt; gchar *pathfilename; GPtrArray *cur_arr; }; GtkWidget *ui_newfile_assitant_new(void); #endif homebank-5.9.1/src/ui-widgets-data.c0000664000175000017500000002324114743411300012717 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-widgets.h" /* = = = = = = = = = = = = = = = = = = = = */ //chart gchar *CHART_CATEGORY = N_("Category"); /* = = = = = = = = = = = = = = = = = = = = */ //hub, acc, imp HbKvData CYA_ACC_TYPE[] = { { ACC_TYPE_NONE, N_("(no type)") }, { ACC_TYPE_BANK, N_("Bank") }, { ACC_TYPE_CASH, N_("Cash") }, { ACC_TYPE_ASSET, N_("Asset") }, { ACC_TYPE_CREDITCARD, N_("Credit card") }, { ACC_TYPE_LIABILITY, N_("Liability") }, { ACC_TYPE_CHECKING, N_("Checking") }, { ACC_TYPE_SAVINGS, N_("Savings") }, // { ACC_TYPE_MUTUALFUND, N_("Mutual Fund") }, // { ACC_TYPE_INCOME, N_("Income") }, // { ACC_TYPE_EXPENSE, N_("Expense") }, // { ACC_TYPE_EQUITY, N_("Equity") }, { 0, NULL } }; //bud, cat gchar *CYA_CAT_TYPE[] = { N_("Expense"), N_("Income"), NULL }; gchar *CYA_ARC_FREQ[] = { N_("Daily"), N_("Weekly"), N_("Monthly"), N_("Yearly"), NULL }; gchar *CYA_ARC_FREQ2[] = { N_("day(s)"), N_("week(s)"), N_("month(s)"), N_("year(s)"), NULL }; //arc HbKvData CYA_ARC_ORDINAL[] = { { AUTO_ORDINAL_FIRST, N_("First") }, { AUTO_ORDINAL_SECOND, N_("Second") }, { AUTO_ORDINAL_THIRD, N_("Third") }, { AUTO_ORDINAL_FOURTH, N_("Fourth") }, { AUTO_ORDINAL_LAST, N_("Last") }, { 0, NULL } }; //arc HbKvData CYA_ARC_WEEKDAY[] = { { AUTO_WEEKDAY_DAY, N_("Day") }, { AUTO_WEEKDAY_MONDAY, N_("Monday") }, { AUTO_WEEKDAY_TUESDAY, N_("Tuesday") }, { AUTO_WEEKDAY_WEDNESDAY, N_("Wednesday") }, { AUTO_WEEKDAY_THURSDAY, N_("Thursday") }, { AUTO_WEEKDAY_FRIDAY, N_("Friday") }, { AUTO_WEEKDAY_SATURDAY, N_("Saturday") }, { AUTO_WEEKDAY_SUNDAY, N_("Sunday") }, { 0, NULL } }; //arc HbKvData CYA_ARC_WEEKEND[] = { { ARC_WEEKEND_POSSIBLE, N_("Possible") }, { ARC_WEEKEND_BEFORE, N_("Before") }, { ARC_WEEKEND_AFTER, N_("After") }, { ARC_WEEKEND_SKIP, N_("Skip") }, //added 5.6 { 0, NULL } }; //txn, arc gchar *CYA_TXN_TYPE[] = { N_("Expense"), N_("Income"), N_("Transfer"), NULL }; /*HbKvData CYA_TXN_STATUS[] = { { TXN_STATUS_NONE, N_("None") }, { TXN_STATUS_CLEARED, N_("Cleared") }, { TXN_STATUS_RECONCILED, N_("Reconciled") }, { TXN_STATUS_REMIND, N_("Remind") }, { TXN_STATUS_VOID, N_("Void") }, { 0, NULL } };*/ //this is a test //txn HbKivData CYA_TXN_STATUSIMG[] = { { TXN_STATUS_NONE, NULL, N_("None") }, { TXN_STATUS_CLEARED, ICONNAME_HB_ITEM_CLEAR, N_("Cleared") }, { TXN_STATUS_RECONCILED, ICONNAME_HB_ITEM_RECON, N_("Reconciled") }, //{ TXN_STATUS_REMIND, ICONNAME_HB_ITEM_REMIND, N_("Remind") }, { TXN_STATUS_VOID, ICONNAME_HB_ITEM_VOID, N_("Void") }, { 0, NULL, NULL } }; //asg gchar *CYA_ASG_FIELD[] = { N_("Memo"), N_("Payee"), NULL }; /* = = = = = = = = = = = = = = = = = = = = */ //bal, bud, sta gchar *CYA_REPORT_MODE[] = { N_("Total"), N_("Time"), NULL }; HbKvData CYA_REPORT_SRC[] = { { REPORT_GRPBY_CATEGORY, N_("Category") }, //{ REPORT_GRPBY_SUBCATEGORY, N_("Subcategory") }, { REPORT_GRPBY_PAYEE, N_("Payee") }, { REPORT_GRPBY_ACCOUNT, N_("Account") }, { REPORT_GRPBY_ACCGROUP, N_("Account Group") }, { REPORT_GRPBY_TAG, N_("Tag") }, { REPORT_GRPBY_MONTH, N_("Month") }, { REPORT_GRPBY_YEAR, N_("Year") }, { 0, NULL } }; HbKvData CYA_REPORT_TYPE[] = { { REPORT_TYPE_EXPENSE, N_("Expense") }, { REPORT_TYPE_INCOME, N_("Income") }, { REPORT_TYPE_TOTAL, N_("Total")} , { 0, NULL } }; HbKvData CYA_REPORT_GRPBY_TREND[] = { { REPORT_GRPBY_ACCOUNT, N_("Account") }, { REPORT_GRPBY_CATEGORY, N_("Category") }, { REPORT_GRPBY_PAYEE, N_("Payee") }, { REPORT_GRPBY_TAG, N_("Tag") }, { 0, NULL } }; HbKvData CYA_REPORT_INTVL[] = { { REPORT_INTVL_DAY, N_("Day") }, { REPORT_INTVL_WEEK, N_("Week") }, { REPORT_INTVL_FORTNIGHT, N_("Fortnight") }, { REPORT_INTVL_MONTH, N_("Month") }, { REPORT_INTVL_QUARTER, N_("Quarter") }, { REPORT_INTVL_HALFYEAR, N_("Half Year") }, { REPORT_INTVL_YEAR, N_("Year") }, { 0, NULL } }; /* = = = = = = = = = = = = = = = = = = = = */ //flt gchar *RA_FILTER_MODE[] = { N_("Include"), N_("Exclude"), NULL }; HbKvData CYA_FLT_RANGE_DWF[] = { { FLT_RANGE_LAST_DAY , N_("Yesterday") }, { FLT_RANGE_THIS_DAY , N_("Today") }, { FLT_RANGE_NEXT_DAY , N_("Tomorrow") }, { FLT_RANGE_LAST_WEEK , N_("Last Week") }, { FLT_RANGE_THIS_WEEK , N_("This Week") }, { FLT_RANGE_NEXT_WEEK , N_("Next Week") }, { FLT_RANGE_LAST_FORTNIGHT , N_("Last Fortnight") }, { FLT_RANGE_THIS_FORTNIGHT , N_("This Fortnight") }, { FLT_RANGE_NEXT_FORTNIGHT , N_("Next Fortnight") }, { 0, NULL } }; HbKvData CYA_FLT_RANGE_MQY[] = { { FLT_RANGE_LAST_MONTH , N_("Last Month") }, { FLT_RANGE_THIS_MONTH , N_("This Month") }, { FLT_RANGE_NEXT_MONTH , N_("Next Month") }, { FLT_RANGE_LAST_QUARTER , N_("Last Quarter") }, { FLT_RANGE_THIS_QUARTER , N_("This Quarter") }, { FLT_RANGE_NEXT_QUARTER , N_("Next Quarter") }, { FLT_RANGE_LAST_YEAR , N_("Last Year") }, { FLT_RANGE_THIS_YEAR , N_("This Year") }, { FLT_RANGE_NEXT_YEAR , N_("Next Year") }, { HBTK_IS_SEPARATOR, "" }, { HBTK_IS_SEPARATOR, "" }, { HBTK_IS_SEPARATOR, "" }, { 0, NULL } }; HbKvData CYA_FLT_RANGE_YTO[] = { { FLT_RANGE_TODATE_YEAR , N_("Year to date") }, { FLT_RANGE_TODATE_MONTH , N_("Month to date") }, { FLT_RANGE_TODATE_ALL , N_("All to date") }, { 0, NULL } }; HbKvData CYA_FLT_RANGE_LASTXXD[] = { { FLT_RANGE_LAST_90DAYS , N_("Last 90 Days") }, { FLT_RANGE_LAST_60DAYS , N_("Last 60 Days") }, { FLT_RANGE_LAST_30DAYS , N_("Last 30 Days") }, { 0, NULL } }; HbKvData CYA_FLT_RANGE_COMMON[] = { { FLT_RANGE_LAST_12MONTHS , N_("Last 12 Months") }, { FLT_RANGE_MISC_30DAYS , N_("30 Days Around") }, { FLT_RANGE_MISC_ALLDATE , N_("All Date") }, { 0, NULL } }; HbKvData CYA_FLT_RANGE_CUSTOM[] = { //5.7 added back { FLT_RANGE_MISC_CUSTOM , N_("Custom") }, { 0, NULL } }; HbKvData CYA_FLT_SCHEDULED[] = { { FLT_SCHEDULED_THISMONTH, N_("This month") }, { FLT_SCHEDULED_NEXTMONTH, N_("Next month") }, { HBTK_IS_SEPARATOR, "" }, { FLT_SCHEDULED_NEXT30DAYS, N_("Next 30 days") }, { FLT_SCHEDULED_NEXT60DAYS, N_("Next 60 days") }, { FLT_SCHEDULED_NEXT90DAYS, N_("Next 90 days") }, { HBTK_IS_SEPARATOR, "" }, { FLT_SCHEDULED_MAXPOSTDATE, N_("Maximum Post Date") }, { HBTK_IS_SEPARATOR, "" }, { FLT_SCHEDULED_ALLDATE, N_("All") }, { 0, NULL } }; //repbud HbKvData CYA_KIND[] = { { REPORT_TYPE_ALL, N_("Exp. & Inc.") }, { REPORT_TYPE_EXPENSE, N_("Expense") }, { REPORT_TYPE_INCOME, N_("Income") }, { 0, NULL } }; //ledger HbKvData CYA_FLT_TYPE[] = { { FLT_TYPE_ALL, N_("Any Type") }, { HBTK_IS_SEPARATOR, "" }, { FLT_TYPE_EXPENSE, N_("Expense") }, { FLT_TYPE_INCOME, N_("Income") }, { FLT_TYPE_INTXFER, N_("Transfer") }, { 0, NULL } }; //ledger HbKvData CYA_FLT_STATUS[] = { { FLT_STATUS_ALL, N_("Any Status") }, { HBTK_IS_SEPARATOR, "" }, { FLT_STATUS_CLEARED, N_("Cleared") }, { FLT_STATUS_UNCLEARED, N_("Uncleared") }, { FLT_STATUS_RECONCILED, N_("Reconciled") }, { FLT_STATUS_UNRECONCILED, N_("Unreconciled") }, { HBTK_IS_SEPARATOR, "" }, { FLT_STATUS_UNCATEGORIZED, N_("Uncategorized") }, //5.9 { FLT_STATUS_UNAPPROVED, N_("Unapproved") }, { 0, NULL } }; /* = = = = = = = = = = = = = = = = = = = = */ HbKvData CYA_TOOLBAR_STYLE[] = { { 0, N_("System defaults") }, { 1, N_("Icons only") }, { 2, N_("Text only") }, { 3, N_("Text under icons") }, { 4, N_("Text beside icons") }, { 0, NULL } }; HbKvData CYA_GRID_LINES[] = { { GTK_TREE_VIEW_GRID_LINES_NONE, N_("None") }, { GTK_TREE_VIEW_GRID_LINES_HORIZONTAL, N_("Horizontal") }, { GTK_TREE_VIEW_GRID_LINES_VERTICAL, N_("Vertical") }, { GTK_TREE_VIEW_GRID_LINES_BOTH, N_("Both") }, { 0, NULL } }; HbKvData CYA_IMPORT_DATEORDER[] = { { PRF_DATEFMT_MDY, N_("m-d-y") }, { PRF_DATEFMT_DMY, N_("d-m-y") }, { PRF_DATEFMT_YMD, N_("y-m-d") }, { 0, NULL } }; HbKvData CYA_IMPORT_OFXNAME[] = { { PRF_OFXNAME_IGNORE, N_("Ignore") }, { PRF_OFXNAME_MEMO, N_("Memo") }, { PRF_OFXNAME_PAYEE, N_("Payee") }, { PRF_OFXNAME_NUMBER, N_("Number") }, { 0, NULL } }; HbKvData CYA_IMPORT_OFXMEMO[] = { { PRF_OFXMEMO_IGNORE, N_("Ignore") }, { PRF_OFXMEMO_NUMBER, N_("Append to Number") }, { PRF_OFXMEMO_MEMO, N_("Append to Memo") }, { PRF_OFXMEMO_PAYEE, N_("Append to Payee") }, { 0, NULL } }; HbKvData CYA_IMPORT_CSVSEPARATOR[] = { { PRF_DTEX_CSVSEP_TAB, N_("Tab") }, { PRF_DTEX_CSVSEP_COMMA, N_("Comma") }, { PRF_DTEX_CSVSEP_SEMICOLON, N_("Semicolon") }, { PRF_DTEX_CSVSEP_SPACE, N_("Space") }, { 0, NULL } }; //pref HbKvData CYA_MONTHS[] = { { 1, N_("January") }, { 2, N_("February") }, { 3, N_("March") }, { 4, N_("April") }, { 5, N_("May") }, { 6, N_("June") }, { 7, N_("July") }, { 8, N_("August") }, { 9, N_("September") }, { 10, N_("October") }, { 11, N_("November") }, { 12, N_("December") }, { 0, NULL } }; //rep, bud, repbud gchar *CYA_ABMONTHS[] = { NULL, N_("Jan"), N_("Feb"), N_("Mar"), N_("Apr"), N_("May"), N_("Jun"), N_("Jul"), N_("Aug"), N_("Sep"), N_("Oct"), N_("Nov"), N_("Dec"), NULL }; homebank-5.9.1/src/ui-filter.h0000644000175000017500000000457714736461415011663 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_FILTER_GTK_H__ #define __HB_FILTER_GTK_H__ #define FLT_PAGE_NAME_DAT "dat" #define FLT_PAGE_NAME_TYP "typ" #define FLT_PAGE_NAME_STA "sta" #define FLT_PAGE_NAME_ACC "acc" #define FLT_PAGE_NAME_CAT "cat" #define FLT_PAGE_NAME_PAY "pay" #define FLT_PAGE_NAME_TAG "tag" #define FLT_PAGE_NAME_PMT "pmt" #define FLT_PAGE_NAME_TXT "txt" /* official GTK_RESPONSE are negative */ #define HB_RESPONSE_FLT_SAVE_USE 33 #define HB_RESPONSE_FLT_RESET 55 enum { LST_DEFFLT_TOGGLE, LST_DEFFLT_DATAS, NUM_LST_DEFFLT }; struct ui_flt_list_data { GtkWidget *gr_criteria; GtkWidget *tb_bar, *bt_all, *bt_non, *bt_inv; }; struct ui_flt_manage_data { Filter *filter; gboolean saveable; gboolean show_account; GtkWidget *dialog; GtkWidget *stack; GtkWidget *SW_enabled[FLT_GRP_MAX]; GtkWidget *RA_matchmode[FLT_GRP_MAX]; GtkWidget *GR_page[FLT_GRP_MAX]; GtkWidget *CY_range; GtkWidget *LB_mindate, *LB_maxdate; GtkWidget *PO_mindate, *PO_maxdate; GtkWidget *CY_month, *NB_year; GtkWidget *CM_typnexp, *CM_typninc, *CM_typxexp, *CM_typxinc; GtkWidget *CM_stanon, *CM_staclr, *CM_starec; GtkWidget *GR_force; GtkWidget *CM_forceadd, *CM_forcechg, *CM_forceremind, *CM_forcevoid; GtkWidget *CM_paymode[NUM_PAYMODE_MAX]; GtkWidget *ST_minamount, *ST_maxamount; GtkWidget *CM_exact; GtkWidget *ST_number, *ST_memo; GtkWidget *LV_acc; GtkWidget *LV_pay; GtkWidget *LV_tag; GtkWidget *LV_cat; GtkWidget *BT_expand, *BT_collapse; }; /* = = = = = = = = = = */ gint ui_flt_manage_dialog_new(GtkWindow *parentwindow, Filter *filter, gboolean show_account, gboolean txnmode); #endif homebank-5.9.1/src/hb-preferences.c0000644000175000017500000015124014765331174012634 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-preferences.h" #include "hb-pref-data.h" #include "hb-filter.h" #include "gtk-chart-colors.h" #ifdef G_OS_WIN32 #include #endif /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif #define DBKF(x); //#define DBKF(x) (x); /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void homebank_pref_init_wingeometry(struct WinGeometry *wg, gint l, gint t, gint w, gint h) { wg->l = l; wg->t = t; wg->w = w; wg->h = h; wg->s = 0; } //vehicle_unit_100 //vehicle_unit_distbyvol //=> used for column title static void _homebank_pref_init_measurement_units(void) { // unit is kilometer if(!PREFS->vehicle_unit_ismile) { PREFS->vehicle_unit_dist0 = "%d km"; PREFS->vehicle_unit_dist1 = "%.1f km"; PREFS->vehicle_unit_100 = "100 km"; } // unit is miles else { PREFS->vehicle_unit_dist0 = "%d mi."; PREFS->vehicle_unit_dist1 = "%.1f mi."; PREFS->vehicle_unit_100 = "100 mi."; } // unit is Liters if(!PREFS->vehicle_unit_isgal) { //TRANSLATORS: format a liter number with l/L as abbreviation PREFS->vehicle_unit_vol = _("%.2f l"); if(!PREFS->vehicle_unit_ismile) //TRANSLATORS: kilometer per liter PREFS->vehicle_unit_distbyvol = _("km/l"); else //TRANSLATORS: miles per liter PREFS->vehicle_unit_distbyvol = _("mi./l"); } // unit is gallon else { PREFS->vehicle_unit_vol = "%.2f gal."; if(!PREFS->vehicle_unit_ismile) PREFS->vehicle_unit_distbyvol = "km/gal."; else PREFS->vehicle_unit_distbyvol = "mi./gal."; } } void homebank_pref_free(void) { DB( g_print("\n[preferences] free\n") ); g_free(PREFS->date_format); g_free(PREFS->api_rate_url); g_free(PREFS->api_rate_key); g_free(PREFS->icontheme); g_free(PREFS->color_exp); g_free(PREFS->color_inc); g_free(PREFS->color_warn); g_free(PREFS->color_bg_future); g_free(PREFS->path_hbfile); g_free(PREFS->path_import); g_free(PREFS->path_export); //g_free(PREFS->path_navigator); g_free(PREFS->language); g_free(PREFS->pnl_list_tab); g_free(PREFS->minor_cur.symbol); g_free(PREFS->minor_cur.decimal_char); g_free(PREFS->minor_cur.grouping_char); memset(PREFS, 0, sizeof(struct Preferences)); } gint homebank_pref_list_column_get(gint *cols_id, gint uid, gint maxcol) { gint i; for(i=0; i < maxcol ; i++ ) { if( uid == ABS(cols_id[i]) ) return cols_id[i]; /* secure point */ if( i > 50) break; } return uid; } void homebank_pref_setdefault_lst_det_columns(void) { gint i = 0; PREFS->lst_det_columns[i++] = LST_DSPOPE_STATUS; //always displayed PREFS->lst_det_columns[i++] = LST_DSPOPE_DATE; //always displayed PREFS->lst_det_columns[i++] = -LST_DSPOPE_PAYNUMBER; PREFS->lst_det_columns[i++] = LST_DSPOPE_PAYEE; PREFS->lst_det_columns[i++] = LST_DSPOPE_CATEGORY; PREFS->lst_det_columns[i++] = -LST_DSPOPE_TAGS; PREFS->lst_det_columns[i++] = LST_DSPOPE_CLR; PREFS->lst_det_columns[i++] = LST_DSPOPE_AMOUNT; PREFS->lst_det_columns[i++] = -LST_DSPOPE_EXPENSE; PREFS->lst_det_columns[i++] = -LST_DSPOPE_INCOME; PREFS->lst_det_columns[i++] = -LST_DSPOPE_BALANCE; PREFS->lst_det_columns[i++] = LST_DSPOPE_MEMO; PREFS->lst_det_columns[i++] = LST_DSPOPE_ACCOUNT; PREFS->lst_det_columns[i++] = LST_DSPOPE_MATCH; PREFS->lst_det_columns[i++] = LST_DSPOPE_GRPFLAG; for( i=0;ilst_det_col_width[i] = -1; } void homebank_pref_setdefault_lst_ope_columns(void) { gint i = 0; PREFS->lst_ope_columns[i++] = LST_DSPOPE_STATUS; //always displayed PREFS->lst_ope_columns[i++] = LST_DSPOPE_DATE; //always displayed PREFS->lst_ope_columns[i++] = LST_DSPOPE_PAYNUMBER; PREFS->lst_ope_columns[i++] = LST_DSPOPE_PAYEE; PREFS->lst_ope_columns[i++] = LST_DSPOPE_CATEGORY; PREFS->lst_ope_columns[i++] = LST_DSPOPE_TAGS; PREFS->lst_ope_columns[i++] = LST_DSPOPE_CLR; PREFS->lst_ope_columns[i++] = -LST_DSPOPE_AMOUNT; PREFS->lst_ope_columns[i++] = LST_DSPOPE_EXPENSE; PREFS->lst_ope_columns[i++] = LST_DSPOPE_INCOME; PREFS->lst_ope_columns[i++] = LST_DSPOPE_BALANCE; PREFS->lst_ope_columns[i++] = LST_DSPOPE_MEMO; PREFS->lst_ope_columns[i++] = -LST_DSPOPE_ACCOUNT; PREFS->lst_ope_columns[i++] = -LST_DSPOPE_MATCH; PREFS->lst_ope_columns[i++] = LST_DSPOPE_GRPFLAG; PREFS->lst_ope_sort_id = LST_DSPOPE_DATE; PREFS->lst_ope_sort_order = GTK_SORT_ASCENDING; for( i=0;ilst_ope_col_width[i] = -1; } void homebank_pref_setdefault_lst_sch_columns(void) { gint i = 0; //nextdate here PREFS->lst_sch_columns[i++] = COL_SCH_UID_PAYNUMBER; PREFS->lst_sch_columns[i++] = COL_SCH_UID_PAYEE; PREFS->lst_sch_columns[i++] = COL_SCH_UID_CATEGORY; PREFS->lst_sch_columns[i++] = COL_SCH_UID_CLR; PREFS->lst_sch_columns[i++] = COL_SCH_UID_AMOUNT; PREFS->lst_sch_columns[i++] = COL_SCH_UID_EXPENSE; PREFS->lst_sch_columns[i++] = COL_SCH_UID_INCOME; PREFS->lst_sch_columns[i++] = COL_SCH_UID_MEMO; PREFS->lst_sch_columns[i++] = COL_SCH_UID_ACCOUNT; PREFS->pnl_upc_col_pay_show = 1; PREFS->pnl_upc_col_pay_width = -1; PREFS->pnl_upc_col_cat_show = 1; PREFS->pnl_upc_col_cat_width = -1; PREFS->pnl_upc_col_mem_show = 1; PREFS->pnl_upc_col_mem_width = -1; PREFS->pnl_upc_range = FLT_SCHEDULED_ALLDATE; } void homebank_pref_setdefault_win(void) { gint w = 1024, h = 600; // windows position/size 1024x600 for netbook // see https://gs.statcounter.com/screen-resolution-stats/desktop/worldwide // and gnome HIG homebank_pref_init_wingeometry(&PREFS->wal_wg, 0, 0, w, h); homebank_pref_init_wingeometry(&PREFS->acc_wg, 0, 0, w, h); w = (w * 0.8); h = (h * 0.8); homebank_pref_init_wingeometry(&PREFS->sta_wg, 0, 0, w, h); homebank_pref_init_wingeometry(&PREFS->tme_wg, 0, 0, w, h); homebank_pref_init_wingeometry(&PREFS->ove_wg, 0, 0, w, h); homebank_pref_init_wingeometry(&PREFS->bud_wg, 0, 0, w, h); homebank_pref_init_wingeometry(&PREFS->cst_wg, 0, 0, w, h); homebank_pref_init_wingeometry(&PREFS->txn_wg, 0, 0, -1, -1); } void homebank_pref_setdefault(void) { gint i; DB( g_print("\n[preferences] pref init\n") ); homebank_pref_free(); PREFS->language = NULL; PREFS->date_format = g_strdup(DEFAULT_FORMAT_DATE); PREFS->path_hbfile = g_strdup_printf("%s", g_get_home_dir ()); PREFS->path_hbbak = g_strdup_printf("%s", g_get_home_dir ()); PREFS->path_import = g_strdup_printf("%s", g_get_home_dir ()); PREFS->path_export = g_strdup_printf("%s", g_get_home_dir ()); PREFS->showsplash = TRUE; PREFS->showwelcome = TRUE; PREFS->loadlast = TRUE; PREFS->appendscheduled = FALSE; PREFS->do_update_currency = FALSE; PREFS->bak_is_automatic = TRUE; PREFS->bak_max_num_copies = 5; PREFS->heritdate = FALSE; PREFS->txn_showconfirm = FALSE; PREFS->txn_showtemplate = FALSE; PREFS->hidereconciled = FALSE; PREFS->showremind = TRUE; //#1918334 no reason to show void by default PREFS->showvoid = FALSE; PREFS->includeremind = FALSE; //#1980562 PREFS->safe_lock_recon = TRUE; PREFS->safe_pend_recon = TRUE; PREFS->safe_pend_past = TRUE; PREFS->safe_pend_past_days = 90; //#1673048 PREFS->txn_memoacp = TRUE; PREFS->txn_memoacp_days = 365; //5.8 paymode i = 0; PREFS->lst_paymode[i++] = PAYMODE_NONE; PREFS->lst_paymode[i++] = PAYMODE_CCARD; PREFS->lst_paymode[i++] = PAYMODE_CHECK; PREFS->lst_paymode[i++] = PAYMODE_CASH; PREFS->lst_paymode[i++] = PAYMODE_XFER; PREFS->lst_paymode[i++] = PAYMODE_DCARD; PREFS->lst_paymode[i++] = PAYMODE_REPEATPMT; PREFS->lst_paymode[i++] = PAYMODE_EPAYMENT; PREFS->lst_paymode[i++] = PAYMODE_DEPOSIT; PREFS->lst_paymode[i++] = PAYMODE_FEE; PREFS->lst_paymode[i++] = PAYMODE_DIRECTDEBIT; PREFS->lst_paymode[i++] = PAYMODE_MOBPHONE; //#2044601 PREFS->xfer_showdialog = TRUE; //#1887212 PREFS->xfer_daygap = 2; PREFS->xfer_syncstat = FALSE; PREFS->toolbar_style = 4; //text beside icons PREFS->grid_lines = GTK_TREE_VIEW_GRID_LINES_NONE; PREFS->gtk_override = FALSE; PREFS->gtk_fontsize = 10; PREFS->icontheme = g_strdup("Default"); PREFS->custom_colors = TRUE; PREFS->custom_bg_future = TRUE; PREFS->color_use_palette = TRUE; PREFS->color_exp = g_strdup(DEFAULT_EXP_COLOR); PREFS->color_inc = g_strdup(DEFAULT_INC_COLOR); PREFS->color_warn = g_strdup(DEFAULT_WARN_COLOR); PREFS->color_bg_future = g_strdup(DEFAULT_FUTURE_BG_COLOR); /* fiscal year */ PREFS->fisc_year_day = 1; PREFS->fisc_year_month = 1; homebank_pref_setdefault_win(); currency_get_system_iso(); PREFS->wal_toolbar = TRUE; PREFS->wal_totchart = TRUE; PREFS->wal_timchart = TRUE; PREFS->wal_upcoming = TRUE; PREFS->pnl_acc_col_acc_width = -1; PREFS->pnl_acc_show_by = DSPACC_GROUP_BY_TYPE; PREFS->hub_tot_view = 1; PREFS->hub_tot_range = FLT_RANGE_THIS_MONTH; PREFS->hub_tim_view = 1; PREFS->hub_tim_range = FLT_RANGE_LAST_12MONTHS; i = 0; PREFS->lst_acc_columns[i++] = COL_DSPACC_STATUS; PREFS->lst_acc_columns[i++] = COL_DSPACC_ACCOUNTS; PREFS->lst_acc_columns[i++] = COL_DSPACC_CLEAR; PREFS->lst_acc_columns[i++] = COL_DSPACC_RECON; PREFS->lst_acc_columns[i++] = COL_DSPACC_TODAY; PREFS->lst_acc_columns[i++] = COL_DSPACC_FUTURE; //5.8 schedule/upcoming homebank_pref_setdefault_lst_sch_columns(); i = 0; PREFS->lst_impope_columns[i++] = LST_DSPOPE_DATE; //always displayed PREFS->lst_impope_columns[i++] = LST_DSPOPE_MEMO; PREFS->lst_impope_columns[i++] = LST_DSPOPE_AMOUNT; PREFS->lst_impope_columns[i++] = LST_DSPOPE_PAYNUMBER; PREFS->lst_impope_columns[i++] = LST_DSPOPE_PAYEE; PREFS->lst_impope_columns[i++] = LST_DSPOPE_CATEGORY; PREFS->lst_impope_columns[i++] = -LST_DSPOPE_CLR; PREFS->lst_impope_columns[i++] = -LST_DSPOPE_STATUS; //always displayed PREFS->lst_impope_columns[i++] = -LST_DSPOPE_EXPENSE; PREFS->lst_impope_columns[i++] = -LST_DSPOPE_INCOME; PREFS->lst_impope_columns[i++] = -LST_DSPOPE_BALANCE; PREFS->lst_impope_columns[i++] = -LST_DSPOPE_ACCOUNT; PREFS->lst_impope_columns[i++] = -LST_DSPOPE_MATCH; PREFS->lst_impope_columns[i++] = -LST_DSPOPE_GRPFLAG; //book list column homebank_pref_setdefault_lst_ope_columns(); //detail list column homebank_pref_setdefault_lst_det_columns(); //PREFS->base_cur.nbdecimal = 2; //PREFS->base_cur.separator = TRUE; //PREFS->date_range_wal = FLT_RANGE_LASTMONTH; //PREFS->date_range_txn = FLT_RANGE_LAST12MONTHS; //PREFS->date_range_rep = FLT_RANGE_THISYEAR; //v5.2 change to let the example file show things //PREFS->date_range_wal = FLT_RANGE_MISC_ALLDATE; PREFS->date_range_txn = FLT_RANGE_MISC_ALLDATE; PREFS->date_range_rep = FLT_RANGE_MISC_ALLDATE; PREFS->date_future_nbdays = 0; PREFS->rep_maxspenditems = 10; //forecast PREFS->rep_forcast = TRUE; PREFS->rep_forecat_nbmonth = 6; //import/export PREFS->dtex_nointro = TRUE; PREFS->dtex_dodefpayee = FALSE; PREFS->dtex_doautoassign = FALSE; PREFS->dtex_ucfirst = FALSE; //#2040010 PREFS->dtex_datefmt = PRF_DATEFMT_YMD; PREFS->dtex_ofxname = 1; PREFS->dtex_ofxmemo = 2; PREFS->dtex_qifmemo = TRUE; PREFS->dtex_qifswap = FALSE; PREFS->dtex_csvsep = PRF_DTEX_CSVSEP_SEMICOLON; //currency api PREFS->api_rate_url = g_strdup("https://api.frankfurter.app/latest"); PREFS->api_rate_key = NULL; //todo: add intelligence here PREFS->euro_active = FALSE; PREFS->euro_country = 0; PREFS->euro_value = 1.0; da_cur_initformat(&PREFS->minor_cur); //PREFS->euro_nbdec = 2; //PREFS->euro_thsep = TRUE; //PREFS->euro_symbol = g_strdup("??"); PREFS->stat_byamount = FALSE; PREFS->stat_showdetail = FALSE; PREFS->stat_showrate = FALSE; PREFS->stat_includexfer = FALSE; PREFS->budg_showdetail = FALSE; PREFS->budg_unexclsub = FALSE; PREFS->report_color_scheme = CHART_COLMAP_HOMEBANK; //PREFS->chart_legend = FALSE; PREFS->vehicle_unit_ismile = FALSE; PREFS->vehicle_unit_isgal = FALSE; _homebank_pref_init_measurement_units(); } /* ** load preference from homedir/.homebank (HB_DATA_PATH) */ static void homebank_pref_get_wingeometry( GKeyFile *key_file, const gchar *group_name, const gchar *key, struct WinGeometry *storage) { if( g_key_file_has_key(key_file, group_name, key, NULL) ) { gint *wg; gsize length; wg = g_key_file_get_integer_list(key_file, group_name, key, &length, NULL); memcpy(storage, wg, 5*sizeof(gint)); g_free(wg); // #606613 ensure left/top to be > 0 if(storage->l < 0) storage->l = 0; if(storage->t < 0) storage->t = 0; } } static void homebank_pref_get_intlist( GKeyFile *key_file, const gchar *group_name, const gchar *key, gint *storage, gsize maxlength) { DBKF( g_print(" search %s in %s\n", key, group_name) ); if( g_key_file_has_key(key_file, group_name, key, NULL) ) { gint *src; gsize length; src = g_key_file_get_integer_list(key_file, group_name, key, &length, NULL); DBKF( g_print(" - length %d (max=%d)\n", (int)length, (int)maxlength) ); if( length == maxlength ) { DBKF( g_print(" > storing\n") ); memcpy(storage, src, length*sizeof(gint)); } g_free(src); } } static void homebank_pref_get_boolean( GKeyFile *key_file, const gchar *group_name, const gchar *key, gboolean *storage) { DBKF( g_print(" search %s in %s\n", key, group_name) ); if( g_key_file_has_key(key_file, group_name, key, NULL) ) { *storage = g_key_file_get_boolean(key_file, group_name, key, NULL); DBKF( g_print(" > stored boolean %d for %s at %p\n", *storage, key, storage) ); } } static void homebank_pref_get_integer( GKeyFile *key_file, const gchar *group_name, const gchar *key, gint *storage) { DBKF( g_print(" search %s in %s\n", key, group_name) ); if( g_key_file_has_key(key_file, group_name, key, NULL) ) { *storage = g_key_file_get_integer(key_file, group_name, key, NULL); DBKF( g_print(" > stored integer %d for %s at %p\n", *storage, key, storage) ); } } static void homebank_pref_get_guint32( GKeyFile *key_file, const gchar *group_name, const gchar *key, guint32 *storage) { DBKF( g_print(" search %s in %s\n", key, group_name) ); if( g_key_file_has_key(key_file, group_name, key, NULL) ) { *storage = g_key_file_get_integer(key_file, group_name, key, NULL); DBKF( g_print(" > stored guint32 %d for %s at %p\n", *storage, key, storage) ); } } static void homebank_pref_get_short( GKeyFile *key_file, const gchar *group_name, const gchar *key, gshort *storage) { DBKF( g_print(" search %s in %s\n", key, group_name) ); if( g_key_file_has_key(key_file, group_name, key, NULL) ) { *storage = (gshort)g_key_file_get_integer(key_file, group_name, key, NULL); DBKF( g_print(" > stored short %d for %s at %p\n", *storage, key, storage) ); } } static void homebank_pref_get_string( GKeyFile *key_file, const gchar *group_name, const gchar *key, gchar **storage) { gchar *string; DBKF( g_print(" search %s in %s\n", key, group_name) ); if( g_key_file_has_key(key_file, group_name, key, NULL) ) { /* free any previous string */ if( *storage != NULL ) { DBKF( g_print(" storage was not null, freeing\n") ); g_free(*storage); } *storage = NULL; string = g_key_file_get_string(key_file, group_name, key, NULL); if( string != NULL ) { //*storage = g_strdup(string); //leak *storage = string; //already a new allocated string DBKF( g_print(" > stored '%s' for %s at %p\n", *storage, key, *storage) ); } } /* if (error) { g_warning ("error: %s\n", error->message); g_error_free(error); error = NULL; } */ } static gint homebank_pref_upgrade_560_daterange(gint oldrange) { gint newrange = FLT_RANGE_UNSET; switch(oldrange) { case OLD56_FLT_RANGE_THISMONTH: newrange = FLT_RANGE_THIS_MONTH; break; case OLD56_FLT_RANGE_LASTMONTH: newrange = FLT_RANGE_LAST_MONTH; break; case OLD56_FLT_RANGE_THISQUARTER: newrange = FLT_RANGE_THIS_QUARTER; break; case OLD56_FLT_RANGE_LASTQUARTER: newrange = FLT_RANGE_LAST_QUARTER; break; case OLD56_FLT_RANGE_THISYEAR: newrange = FLT_RANGE_THIS_YEAR; break; case OLD56_FLT_RANGE_LASTYEAR: newrange = FLT_RANGE_LAST_YEAR; break; case OLD56_FLT_RANGE_LAST30DAYS: newrange = FLT_RANGE_LAST_30DAYS; break; case OLD56_FLT_RANGE_LAST60DAYS: newrange = FLT_RANGE_LAST_60DAYS; break; case OLD56_FLT_RANGE_LAST90DAYS: newrange = FLT_RANGE_LAST_90DAYS; break; case OLD56_FLT_RANGE_LAST12MONTHS: newrange = FLT_RANGE_LAST_12MONTHS; break; case OLD56_FLT_RANGE_ALLDATE: newrange = FLT_RANGE_MISC_ALLDATE; break; } DB( g_print(" %d => %d\n", oldrange, newrange) ); return newrange; } static void homebank_pref_currfmt_convert(Currency *cur, gchar *prefix, gchar *suffix) { if( (prefix != NULL) && (strlen(prefix) > 0) ) { cur->symbol = g_strdup(prefix); cur->sym_prefix = TRUE; } else if( (suffix != NULL) ) { cur->symbol = g_strdup(suffix); cur->sym_prefix = FALSE; } } //#beta start void homebank_pref_icon_symbolic(gboolean active) { //ensure we have a provider if(!GLOBALS->provider) { GLOBALS->provider = gtk_css_provider_new (); gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (GLOBALS->provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } if( active ) { gtk_css_provider_load_from_data (GLOBALS->provider, "* {-gtk-icon-style: symbolic;}", -1, NULL); } else if(GLOBALS->provider != NULL ) { gtk_style_context_remove_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (GLOBALS->provider)); g_clear_object (&GLOBALS->provider); } } //#beta end //#2076474 void homebank_pref_apply_scheme(void) { GtkSettings *settings = gtk_settings_get_default(); DB( g_print("\n[preferences] pref apply scheme\n") ); DB( g_print(" scheme : %d\n", GLOBALS->color_scheme) ); DB( g_print(" appdark: %d\n", PREFS->gtk_darktheme) ); GLOBALS->theme_is_dark = FALSE; if( (GLOBALS->color_scheme == DEFAULT) && PREFS->gtk_darktheme ) GLOBALS->theme_is_dark = TRUE; else if( GLOBALS->color_scheme == PREFER_DARK ) GLOBALS->theme_is_dark = TRUE; g_object_set(settings, "gtk-application-prefer-dark-theme", GLOBALS->theme_is_dark, NULL); } void homebank_pref_apply(void) { GtkSettings *settings = gtk_settings_get_default(); DB( g_print("\n[preferences] pref apply\n") ); if( PREFS->gtk_override == TRUE ) { PangoFontDescription *pfd; gchar *oldfn, *newfn; g_object_get(settings, "gtk-font-name", &oldfn, NULL); pfd = pango_font_description_from_string(oldfn); DB( g_print(" font-name '%s' == '%s' %d\n", oldfn, pango_font_description_get_family(pfd), pango_font_description_get_size(pfd)/PANGO_SCALE) ); g_free(oldfn); pango_font_description_set_size(pfd, PREFS->gtk_fontsize*PANGO_SCALE); newfn = pango_font_description_to_string(pfd); DB( g_print(" font-name '%s' == '%s' %d\n", newfn, pango_font_description_get_family(pfd), pango_font_description_get_size(pfd)/PANGO_SCALE) ); g_object_set(settings, "gtk-font-name", newfn, NULL); g_free(newfn); pango_font_description_free(pfd); } else { gtk_settings_reset_property(settings, "gtk-font-name"); } homebank_pref_apply_scheme(); //gtk_settings_set_string_property (gtk_settings_get_default (), "gtk-icon-theme-name", PREFS->icontheme, "gtkrc:0"); g_object_set(gtk_settings_get_default (), "gtk-icon-theme-name", PREFS->icontheme, NULL); homebank_pref_icon_symbolic(PREFS->icon_symbolic); } gboolean homebank_pref_load(void) { GKeyFile *keyfile; gboolean retval = FALSE; gchar *group, *filename; guint32 version = 0; gboolean loaded; GError *error = NULL; DB( g_print("\n[preferences] pref load\n") ); keyfile = g_key_file_new(); if(keyfile) { filename = g_build_filename(homebank_app_get_config_dir(), "preferences", NULL ); DB( g_print(" - filename: %s\n", filename) ); error = NULL; loaded = g_key_file_load_from_file (keyfile, filename, G_KEY_FILE_NONE, &error); if( error ) { g_warning("unable to load file %s: %s", filename, error->message); g_error_free (error); } if( loaded == TRUE ) { group = "General"; DBKF( g_print(" -> ** General\n") ); //since 4.51 version is integer homebank_pref_get_guint32 (keyfile, group, "Version", &version); if(version == 0) // old double number { gdouble v = g_key_file_get_double (keyfile, group, "Version", NULL); version = (guint32)(v * 10); } DBKF( g_print(" - version: %d\n", version) ); homebank_pref_get_string(keyfile, group, "Language", &PREFS->language); homebank_pref_get_short(keyfile, group, "BarStyle" , &PREFS->toolbar_style); if(version <= 6 && PREFS->toolbar_style == 0) // force system to text beside { PREFS->toolbar_style = 4; } //5.4.3 homebank_pref_get_boolean(keyfile, group, "GtkOverride", &PREFS->gtk_override); homebank_pref_get_short(keyfile, group, "GtkFontSize" , &PREFS->gtk_fontsize); homebank_pref_get_boolean(keyfile, group, "GtkDarkTheme", &PREFS->gtk_darktheme); //beta homebank_pref_get_string(keyfile, group, "IconTheme", &PREFS->icontheme); homebank_pref_get_boolean(keyfile, group, "IconSymbolic", &PREFS->icon_symbolic); if(version <= 2) // retrieve old settings { guint32 color = 0; homebank_pref_get_guint32(keyfile, group, "ColorExp" , &color); g_free(PREFS->color_exp); PREFS->color_exp = g_strdup_printf("#%06x", color); homebank_pref_get_guint32(keyfile, group, "ColorInc" , &color); g_free(PREFS->color_inc); PREFS->color_inc = g_strdup_printf("#%06x", color); homebank_pref_get_guint32(keyfile, group, "ColorWarn", &color); g_free(PREFS->color_warn); PREFS->color_warn = g_strdup_printf("#%06x", color); } else { homebank_pref_get_boolean(keyfile, group, "CustomColors", &PREFS->custom_colors); homebank_pref_get_boolean(keyfile, group, "CustomBgFuture", &PREFS->custom_bg_future); homebank_pref_get_boolean(keyfile, group, "ColorUsePalette", &PREFS->color_use_palette); homebank_pref_get_string(keyfile, group, "ColorExp" , &PREFS->color_exp); homebank_pref_get_string(keyfile, group, "ColorInc" , &PREFS->color_inc); homebank_pref_get_string(keyfile, group, "ColorWarn", &PREFS->color_warn); homebank_pref_get_string(keyfile, group, "ColorBgFuture", &PREFS->color_bg_future); if( version <= 500 ) { gboolean rules_hint = FALSE; homebank_pref_get_boolean(keyfile, group, "RulesHint", &rules_hint); if( rules_hint == TRUE ) PREFS->grid_lines = GTK_TREE_VIEW_GRID_LINES_HORIZONTAL; } else homebank_pref_get_short(keyfile, group, "GridLines", &PREFS->grid_lines); //we disable showwelcome for old users if( version < 540 ) PREFS->showwelcome = FALSE; } DBKF( g_print(" - color exp: %s\n", PREFS->color_exp) ); DBKF( g_print(" - color inc: %s\n", PREFS->color_inc) ); DBKF( g_print(" - color wrn: %s\n", PREFS->color_warn) ); homebank_pref_get_string(keyfile, group, "WalletPath", &PREFS->path_hbfile); homebank_pref_get_string(keyfile, group, "BackupPath", &PREFS->path_hbbak); //#1870433 default backup path folder not initialized with wallet folder if( version < 530 ) { homebank_pref_get_string(keyfile, group, "WalletPath", &PREFS->path_hbbak); } homebank_pref_get_string(keyfile, group, "ImportPath", &PREFS->path_import); homebank_pref_get_string(keyfile, group, "ExportPath", &PREFS->path_export); homebank_pref_get_boolean(keyfile, group, "ShowSplash", &PREFS->showsplash); homebank_pref_get_boolean(keyfile, group, "ShowWelcome", &PREFS->showwelcome); homebank_pref_get_boolean(keyfile, group, "LoadLast", &PREFS->loadlast); homebank_pref_get_boolean(keyfile, group, "AppendScheduled", &PREFS->appendscheduled); homebank_pref_get_boolean(keyfile, group, "UpdateCurrency", &PREFS->do_update_currency); homebank_pref_get_boolean(keyfile, group, "BakIsAutomatic", &PREFS->bak_is_automatic); homebank_pref_get_short (keyfile, group, "BakMaxNumCopies", &PREFS->bak_max_num_copies); homebank_pref_get_boolean(keyfile, group, "HeritDate", &PREFS->heritdate); homebank_pref_get_boolean(keyfile, group, "ShowConfirm", &PREFS->txn_showconfirm); homebank_pref_get_boolean(keyfile, group, "ShowTemplate", &PREFS->txn_showtemplate); homebank_pref_get_boolean(keyfile, group, "HideReconciled", &PREFS->hidereconciled); homebank_pref_get_boolean(keyfile, group, "ShowRemind", &PREFS->showremind); homebank_pref_get_boolean(keyfile, group, "ShowVoid", &PREFS->showvoid); homebank_pref_get_boolean(keyfile, group, "IncludeRemind", &PREFS->includeremind); homebank_pref_get_boolean(keyfile, group, "LockReconciled", &PREFS->safe_lock_recon); homebank_pref_get_boolean(keyfile, group, "SafePendRecon", &PREFS->safe_pend_recon); homebank_pref_get_boolean(keyfile, group, "SafePendPast", &PREFS->safe_pend_past); homebank_pref_get_short (keyfile, group, "SafePendPastDays", &PREFS->safe_pend_past_days); homebank_pref_get_boolean(keyfile, group, "TxnMemoAcp", &PREFS->txn_memoacp); homebank_pref_get_short (keyfile, group, "TxnMemoAcpDays", &PREFS->txn_memoacp_days); homebank_pref_get_boolean(keyfile, group, "TxnXferShowDialog", &PREFS->xfer_showdialog); homebank_pref_get_short (keyfile, group, "TxnXferDayGap", &PREFS->xfer_daygap); homebank_pref_get_boolean(keyfile, group, "TxnXferSyncDate", &PREFS->xfer_syncdate); homebank_pref_get_boolean(keyfile, group, "TxnXferSyncStatus", &PREFS->xfer_syncstat); if( g_key_file_has_key(keyfile, group, "ColumnsOpe", NULL) ) { gboolean *bsrc; gint *src, i, j; gsize length; if(version <= 2) //retrieve old 0.1 or 0.2 visibility boolean { bsrc = g_key_file_get_boolean_list(keyfile, group, "ColumnsOpe", &length, NULL); if( length == NUM_LST_DSPOPE-1 ) { //and convert for(i=0; ilst_ope_columns[i] = (bsrc[i] == TRUE) ? i+1 : -(i+1); } } g_free(bsrc); } else { src = g_key_file_get_integer_list(keyfile, group, "ColumnsOpe", &length, NULL); DBKF( g_print(" - length %d (max=%d)\n", (int)length, NUM_LST_DSPOPE) ); if( length == NUM_LST_DSPOPE ) { DBKF( g_print(" - copying column order from pref file\n") ); memcpy(PREFS->lst_ope_columns, src, length*sizeof(gint)); } else { if(version <= 7) { if( length == NUM_LST_DSPOPE-2 ) //1 less column before v4.5.1 { DBKF( g_print(" - upgrade from v7\n") ); DBKF( g_print(" - copying column order from pref file\n") ); memcpy(PREFS->lst_ope_columns, src, length*sizeof(gint)); //append balance column PREFS->lst_ope_columns[10] = LST_DSPOPE_BALANCE; } } if(version < 500) { if( length == NUM_LST_DSPOPE-2 ) //1 less column before v4.5.1 { DBKF( g_print(" - upgrade prior v5.0\n") ); DBKF( g_print(" - copying column order from pref file\n") ); gboolean added = FALSE; for(i=0,j=0; ilst_ope_columns[j++] = LST_DSPOPE_CLR; added = TRUE; } PREFS->lst_ope_columns[j++] = src[i]; } } } } g_free(src); } } homebank_pref_get_intlist(keyfile, group, "ColumnsOpeWidth", PREFS->lst_ope_col_width, NUM_LST_DSPOPE); homebank_pref_get_integer(keyfile, group, "OpeSortId", &PREFS->lst_ope_sort_id); homebank_pref_get_integer(keyfile, group, "OpeSortOrder", &PREFS->lst_ope_sort_order); DBKF( g_print(" - set sort to %d %d\n", PREFS->lst_ope_sort_id, PREFS->lst_ope_sort_order) ); //detail list homebank_pref_get_intlist(keyfile, group, "ColumnsDet", PREFS->lst_det_columns, NUM_LST_DSPOPE); homebank_pref_get_intlist(keyfile, group, "ColumnsDetWidth", PREFS->lst_det_col_width, NUM_LST_DSPOPE); homebank_pref_get_short(keyfile, group, "FiscYearDay", &PREFS->fisc_year_day); homebank_pref_get_short(keyfile, group, "FiscYearMonth", &PREFS->fisc_year_month); //5.8 payment, NUM_PAYMODE_KEY-1 because PAYMODE_OBSOLETEINTXFER PREFS->lst_paymode[0] = PAYMODE_NONE; homebank_pref_get_intlist(keyfile, group, "Payment", &PREFS->lst_paymode[1], NUM_PAYMODE_KEY-1); group = "Windows"; DBKF( g_print(" -> ** Windows\n") ); homebank_pref_get_wingeometry(keyfile, group, "Wal", &PREFS->wal_wg); homebank_pref_get_wingeometry(keyfile, group, "Acc", &PREFS->acc_wg); homebank_pref_get_wingeometry(keyfile, group, "Sta", &PREFS->sta_wg); homebank_pref_get_wingeometry(keyfile, group, "Tme", &PREFS->tme_wg); homebank_pref_get_wingeometry(keyfile, group, "Ove", &PREFS->ove_wg); homebank_pref_get_wingeometry(keyfile, group, "Bud", &PREFS->bud_wg); homebank_pref_get_wingeometry(keyfile, group, "Car", &PREFS->cst_wg); homebank_pref_get_wingeometry(keyfile, group, "Txn", &PREFS->txn_wg); homebank_pref_get_wingeometry(keyfile, group, "DBud", &PREFS->dbud_wg); if(version <= 7) //set maximize to 0 { PREFS->wal_wg.s = 0; PREFS->acc_wg.s = 0; PREFS->txn_wg.s = 0; PREFS->sta_wg.s = 0; PREFS->tme_wg.s = 0; PREFS->ove_wg.s = 0; PREFS->bud_wg.s = 0; PREFS->cst_wg.s = 0; } homebank_pref_get_integer(keyfile, group, "WalVPaned", &PREFS->wal_vpaned); homebank_pref_get_integer(keyfile, group, "WalHPaned", &PREFS->wal_hpaned); homebank_pref_get_boolean(keyfile, group, "WalToolbar", &PREFS->wal_toolbar); homebank_pref_get_boolean(keyfile, group, "WalTotalChart", &PREFS->wal_totchart); homebank_pref_get_boolean(keyfile, group, "WalTimeChart", &PREFS->wal_timchart); homebank_pref_get_boolean(keyfile, group, "WalUpcoming", &PREFS->wal_upcoming); if( version < 570 ) { homebank_pref_get_boolean(keyfile, group, "WalSpending", &PREFS->wal_totchart); } //since 5.1.3 group = "Panels"; DBKF( g_print(" -> ** Panels\n") ); homebank_pref_get_short(keyfile, group, "AccColAccW", &PREFS->pnl_acc_col_acc_width); homebank_pref_get_short(keyfile, group, "AccShowBy" , &PREFS->pnl_acc_show_by); { gint *src; gsize length; src = g_key_file_get_integer_list(keyfile, group, "AccColumns", &length, NULL); DB( g_print(" - length %d (max=%d)\n", (int)length, NUM_LST_DSPOPE) ); if( length == NUM_LST_COL_DSPACC ) { DB( g_print(" - copying column order from pref file\n") ); memcpy(PREFS->lst_acc_columns, src, length*sizeof(gint)); } g_free(src); } //hub total/time homebank_pref_get_short(keyfile, group, "HubTotView" , &PREFS->hub_tot_view); homebank_pref_get_short(keyfile, group, "HubTotViewRange", &PREFS->hub_tot_range); homebank_pref_get_short(keyfile, group, "HubTotRaw" , &PREFS->hub_tot_raw); homebank_pref_get_short(keyfile, group, "HubTimView" , &PREFS->hub_tim_view); homebank_pref_get_short(keyfile, group, "HubTimViewRange", &PREFS->hub_tim_range); homebank_pref_get_short(keyfile, group, "HubTimRaw" , &PREFS->hub_tim_raw); //scheduled/upcoming if( g_key_file_has_key(keyfile, group, "ColumnsSch", NULL) ) { gint *src; gsize length; src = g_key_file_get_integer_list(keyfile, group, "ColumnsSch", &length, NULL); DBKF( g_print(" - length %d (max=%d)\n", (int)length, NUM_COL_SCH_UID) ); if( length == NUM_COL_SCH_UID ) { DBKF( g_print(" - copying column order from pref file\n") ); memcpy(PREFS->lst_sch_columns, src, length*sizeof(gint)); } g_free(src); } homebank_pref_get_short(keyfile, group, "UpcColPayV", &PREFS->pnl_upc_col_pay_show); homebank_pref_get_short(keyfile, group, "UpcColCatV", &PREFS->pnl_upc_col_cat_show); homebank_pref_get_short(keyfile, group, "UpcColMemV", &PREFS->pnl_upc_col_mem_show); homebank_pref_get_short(keyfile, group, "UpcColPayW", &PREFS->pnl_upc_col_pay_width); homebank_pref_get_short(keyfile, group, "UpcColCatW", &PREFS->pnl_upc_col_cat_width); homebank_pref_get_short(keyfile, group, "UpcColMemW", &PREFS->pnl_upc_col_mem_width); homebank_pref_get_integer(keyfile, group, "UpcRange", &PREFS->pnl_upc_range); homebank_pref_get_string(keyfile, group, "PnlLstTab", &PREFS->pnl_list_tab); group = "Format"; DBKF( g_print(" -> ** Format\n") ); homebank_pref_get_string(keyfile, group, "DateFmt", &PREFS->date_format); if(version < 460) { gboolean useimperial = FALSE; homebank_pref_get_boolean(keyfile, group, "UKUnits", &useimperial); if(useimperial) { PREFS->vehicle_unit_ismile = TRUE; PREFS->vehicle_unit_isgal = TRUE; } } homebank_pref_get_boolean(keyfile, group, "UnitIsMile", &PREFS->vehicle_unit_ismile); homebank_pref_get_boolean(keyfile, group, "UnitIsGal", &PREFS->vehicle_unit_isgal); group = "Filter"; DBKF( g_print(" -> ** Filter\n") ); //homebank_pref_get_integer(keyfile, group, "DateRangeWal", &PREFS->date_range_wal); homebank_pref_get_integer(keyfile, group, "DateRangeTxn", &PREFS->date_range_txn); homebank_pref_get_integer(keyfile, group, "DateFutureNbDays", &PREFS->date_future_nbdays); homebank_pref_get_integer(keyfile, group, "DateRangeRep", &PREFS->date_range_rep); if(version <= 7) { // shift date range >= 5, since we inserted a new one at position 5 //if(PREFS->date_range_wal >= OLD56_FLT_RANGE_LASTYEAR) // PREFS->date_range_wal++; if(PREFS->date_range_txn >= OLD56_FLT_RANGE_LASTYEAR) PREFS->date_range_txn++; if(PREFS->date_range_rep >= OLD56_FLT_RANGE_LASTYEAR) PREFS->date_range_rep++; } group = "API"; DBKF( g_print(" -> ** API\n") ); homebank_pref_get_string(keyfile, group, "APIRateUrl", &PREFS->api_rate_url); homebank_pref_get_string(keyfile, group, "APIRateKey", &PREFS->api_rate_key); //5.7.2 fix wrong host set as defaut in 5.7 if(version < 572) { if( hb_string_ascii_compare("https://api.exchangerate.host", PREFS->api_rate_url) == 0 ) { DBKF( g_print(" fix bad host in 5.7\n") ); g_free(PREFS->api_rate_url); PREFS->api_rate_url = g_strdup("https://api.frankfurter.app/latest"); } } group = "Euro"; DBKF( g_print(" -> ** Euro\n") ); //homebank_pref_get_string(keyfile, group, "DefCurrency" , &PREFS->curr_default); homebank_pref_get_boolean(keyfile, group, "Active", &PREFS->euro_active); homebank_pref_get_integer(keyfile, group, "Country", &PREFS->euro_country); //2066110 PREFS->euro_mceii = euro_country_is_mceii(PREFS->euro_country); gchar *ratestr = g_key_file_get_string (keyfile, group, "ChangeRate", NULL); if(ratestr != NULL) PREFS->euro_value = g_ascii_strtod(ratestr, NULL); if(version <= 1) { homebank_pref_get_string(keyfile, group, "Symbol", &PREFS->minor_cur.symbol); PREFS->minor_cur.frac_digits = g_key_file_get_integer (keyfile, group, "NBDec", NULL); //PREFS->euro_nbdec = g_key_file_get_integer (keyfile, group, "NBDec", NULL); //PREFS->euro_thsep = g_key_file_get_boolean (keyfile, group, "Sep", NULL); //gchar *tmpstr = g_key_file_get_string (keyfile, group, "Symbol", &error); } else { if(version < 460) { gchar *prefix = NULL; gchar *suffix = NULL; homebank_pref_get_string(keyfile, group, "PreSymbol", &prefix); homebank_pref_get_string(keyfile, group, "SufSymbol", &suffix); homebank_pref_currfmt_convert(&PREFS->minor_cur, prefix, suffix); g_free(prefix); g_free(suffix); } else { homebank_pref_get_string(keyfile, group, "Symbol", &PREFS->minor_cur.symbol); homebank_pref_get_boolean(keyfile, group, "IsPrefix", &PREFS->minor_cur.sym_prefix); } homebank_pref_get_string(keyfile, group, "DecChar" , &PREFS->minor_cur.decimal_char); homebank_pref_get_string(keyfile, group, "GroupChar", &PREFS->minor_cur.grouping_char); homebank_pref_get_short(keyfile, group, "FracDigits", &PREFS->minor_cur.frac_digits); //fix 378992/421228 if( PREFS->minor_cur.frac_digits > MAX_FRAC_DIGIT ) PREFS->minor_cur.frac_digits = MAX_FRAC_DIGIT; da_cur_initformat(&PREFS->minor_cur); } //PREFS->euro_symbol = g_locale_to_utf8(tmpstr, -1, NULL, NULL, NULL); group = "Report"; DBKF( g_print(" -> ** Report\n") ); homebank_pref_get_boolean(keyfile, group, "StatByAmount", &PREFS->stat_byamount); homebank_pref_get_boolean(keyfile, group, "StatDetail", &PREFS->stat_showdetail); homebank_pref_get_boolean(keyfile, group, "StatRate", &PREFS->stat_showrate); homebank_pref_get_boolean(keyfile, group, "StatIncXfer", &PREFS->stat_includexfer); homebank_pref_get_boolean(keyfile, group, "BudgDetail", &PREFS->budg_showdetail); homebank_pref_get_boolean(keyfile, group, "BudgUnExclSub", &PREFS->budg_unexclsub); homebank_pref_get_integer(keyfile, group, "ColorScheme", &PREFS->report_color_scheme); homebank_pref_get_boolean(keyfile, group, "SmallFont", &PREFS->rep_smallfont); homebank_pref_get_integer(keyfile, group, "MaxSpendItems", &PREFS->rep_maxspenditems); homebank_pref_get_boolean(keyfile, group, "Forecast", &PREFS->rep_forcast); homebank_pref_get_integer(keyfile, group, "ForecastNbMonth", &PREFS->rep_forecat_nbmonth); group = "Exchange"; DBKF( g_print(" -> ** Exchange\n") ); homebank_pref_get_boolean(keyfile, group, "DoIntro", &PREFS->dtex_nointro); homebank_pref_get_boolean(keyfile, group, "UcFirst", &PREFS->dtex_ucfirst); homebank_pref_get_integer(keyfile, group, "DateFmt", &PREFS->dtex_datefmt); homebank_pref_get_integer(keyfile, group, "DayGap", &PREFS->dtex_daygap); homebank_pref_get_integer(keyfile, group, "OfxName", &PREFS->dtex_ofxname); homebank_pref_get_integer(keyfile, group, "OfxMemo", &PREFS->dtex_ofxmemo); homebank_pref_get_boolean(keyfile, group, "QifMemo", &PREFS->dtex_qifmemo); homebank_pref_get_boolean(keyfile, group, "QifSwap", &PREFS->dtex_qifswap); homebank_pref_get_integer(keyfile, group, "CsvSep", &PREFS->dtex_csvsep); homebank_pref_get_boolean(keyfile, group, "DoDefPayee", &PREFS->dtex_dodefpayee); homebank_pref_get_boolean(keyfile, group, "DoAutoAssign", &PREFS->dtex_doautoassign); //group = "Chart"; //PREFS->chart_legend = g_key_file_get_boolean (keyfile, group, "Legend", NULL); /* file upgrade */ if(version < 560) { DBKF( g_print(" ugrade 5.6 daterange\n") ); //convert old daterange //PREFS->date_range_wal = homebank_pref_upgrade_560_daterange(PREFS->date_range_wal); //top spending PREFS->date_range_txn = homebank_pref_upgrade_560_daterange(PREFS->date_range_txn); //transactions PREFS->date_range_rep = homebank_pref_upgrade_560_daterange(PREFS->date_range_rep); //report options } /* #if MYDEBUG == 1 gsize length; gchar *contents = g_key_file_to_data (keyfile, &length, NULL); //g_print(" keyfile:\n%s\n len=%d\n", contents, length); g_free(contents); #endif */ } g_free(filename); g_key_file_free (keyfile); _homebank_pref_init_measurement_units(); } return retval; } static void homebank_pref_set_string( GKeyFile *key_file, const gchar *group_name, const gchar *key, gchar *string) { DB( g_print(" - homebank_pref_set_string :: group='%s' key='%s' value='%s'\n", group_name, key, string) ); if( string != NULL && *string != '\0') g_key_file_set_string (key_file, group_name, key, string); else g_key_file_set_string (key_file, group_name, key, ""); } /* ** save preference to homedir/.homebank (HB_DATA_PATH) */ gboolean homebank_pref_save(void) { GKeyFile *keyfile; gboolean retval = FALSE; gchar *group, *filename; gsize length; GError *error = NULL; DB( g_print("\n[preferences] pref save\n") ); keyfile = g_key_file_new(); if(keyfile ) { DBKF( g_print(" -> ** general\n") ); group = "General"; g_key_file_set_integer (keyfile, group, "Version", PREF_VERSION); homebank_pref_set_string (keyfile, group, "Language", PREFS->language); g_key_file_set_integer (keyfile, group, "BarStyle", PREFS->toolbar_style); //g_key_file_set_integer (keyfile, group, "BarImageSize", PREFS->image_size); g_key_file_set_boolean (keyfile, group, "GtkOverride", PREFS->gtk_override); g_key_file_set_integer (keyfile, group, "GtkFontSize", PREFS->gtk_fontsize); g_key_file_set_boolean (keyfile, group, "GtkDarkTheme", PREFS->gtk_darktheme); g_key_file_set_string (keyfile, group, "IconTheme", PREFS->icontheme); g_key_file_set_boolean (keyfile, group, "IconSymbolic", PREFS->icon_symbolic); g_key_file_set_boolean (keyfile, group, "CustomColors", PREFS->custom_colors); g_key_file_set_boolean (keyfile, group, "CustomBgFuture", PREFS->custom_bg_future); g_key_file_set_boolean (keyfile, group, "ColorUsePalette", PREFS->color_use_palette); g_key_file_set_string (keyfile, group, "ColorExp" , PREFS->color_exp); g_key_file_set_string (keyfile, group, "ColorInc" , PREFS->color_inc); g_key_file_set_string (keyfile, group, "ColorWarn", PREFS->color_warn); g_key_file_set_string (keyfile, group, "ColorBgFuture", PREFS->color_bg_future); g_key_file_set_integer (keyfile, group, "GridLines", PREFS->grid_lines); homebank_pref_set_string (keyfile, group, "WalletPath" , PREFS->path_hbfile); homebank_pref_set_string (keyfile, group, "BackupPath" , PREFS->path_hbbak); homebank_pref_set_string (keyfile, group, "ImportPath" , PREFS->path_import); homebank_pref_set_string (keyfile, group, "ExportPath" , PREFS->path_export); g_key_file_set_boolean (keyfile, group, "BakIsAutomatic", PREFS->bak_is_automatic); g_key_file_set_integer (keyfile, group, "BakMaxNumCopies", PREFS->bak_max_num_copies); g_key_file_set_boolean (keyfile, group, "ShowSplash", PREFS->showsplash); g_key_file_set_boolean (keyfile, group, "ShowWelcome", PREFS->showwelcome); g_key_file_set_boolean (keyfile, group, "LoadLast", PREFS->loadlast); g_key_file_set_boolean (keyfile, group, "AppendScheduled", PREFS->appendscheduled); g_key_file_set_boolean (keyfile, group, "UpdateCurrency", PREFS->do_update_currency); g_key_file_set_boolean (keyfile, group, "HeritDate", PREFS->heritdate); g_key_file_set_boolean (keyfile, group, "ShowConfirm", PREFS->txn_showconfirm); g_key_file_set_boolean (keyfile, group, "ShowTemplate", PREFS->txn_showtemplate); g_key_file_set_boolean (keyfile, group, "HideReconciled", PREFS->hidereconciled); g_key_file_set_boolean (keyfile, group, "ShowRemind", PREFS->showremind); g_key_file_set_boolean (keyfile, group, "ShowVoid", PREFS->showvoid); g_key_file_set_boolean (keyfile, group, "IncludeRemind", PREFS->includeremind); g_key_file_set_boolean (keyfile, group, "LockReconciled", PREFS->safe_lock_recon); g_key_file_set_boolean (keyfile, group, "SafePendRecon", PREFS->safe_pend_recon); g_key_file_set_boolean (keyfile, group, "SafePendPast", PREFS->safe_pend_past); g_key_file_set_integer (keyfile, group, "SafePendPastDays" , PREFS->safe_pend_past_days); g_key_file_set_boolean (keyfile, group, "TxnMemoAcp", PREFS->txn_memoacp); g_key_file_set_integer (keyfile, group, "TxnMemoAcpDays" , PREFS->txn_memoacp_days); g_key_file_set_boolean (keyfile, group, "TxnXferShowDialog", PREFS->xfer_showdialog); g_key_file_set_integer (keyfile, group, "TxnXferDayGap" , PREFS->xfer_daygap); g_key_file_set_boolean (keyfile, group, "TxnXferSyncDate", PREFS->xfer_syncdate); g_key_file_set_boolean (keyfile, group, "TxnXferSyncStatus", PREFS->xfer_syncstat); //ledger colums g_key_file_set_integer_list(keyfile, group, "ColumnsOpe", PREFS->lst_ope_columns, NUM_LST_DSPOPE); g_key_file_set_integer_list(keyfile, group, "ColumnsOpeWidth", PREFS->lst_ope_col_width, NUM_LST_DSPOPE); g_key_file_set_integer (keyfile, group, "OpeSortId" , PREFS->lst_ope_sort_id); g_key_file_set_integer (keyfile, group, "OpeSortOrder" , PREFS->lst_ope_sort_order); //detail colmuns g_key_file_set_integer_list(keyfile, group, "ColumnsDet", PREFS->lst_det_columns, NUM_LST_DSPOPE); g_key_file_set_integer_list(keyfile, group, "ColumnsDetWidth", PREFS->lst_det_col_width, NUM_LST_DSPOPE); g_key_file_set_integer (keyfile, group, "FiscYearDay" , PREFS->fisc_year_day); g_key_file_set_integer (keyfile, group, "FiscYearMonth" , PREFS->fisc_year_month); //5.8 payment, NUM_PAYMODE_KEY-1 because PAYMODE_OBSOLETEINTXFER g_key_file_set_integer_list(keyfile, group, "Payment", &PREFS->lst_paymode[1], NUM_PAYMODE_KEY-1); // added v3.4 DBKF( g_print(" -> ** windows\n") ); group = "Windows"; g_key_file_set_integer_list(keyfile, group, "Wal", (gint *)&PREFS->wal_wg, 5); g_key_file_set_integer_list(keyfile, group, "Acc", (gint *)&PREFS->acc_wg, 5); g_key_file_set_integer_list(keyfile, group, "Sta", (gint *)&PREFS->sta_wg, 5); g_key_file_set_integer_list(keyfile, group, "Tme", (gint *)&PREFS->tme_wg, 5); g_key_file_set_integer_list(keyfile, group, "Ove", (gint *)&PREFS->ove_wg, 5); g_key_file_set_integer_list(keyfile, group, "Bud", (gint *)&PREFS->bud_wg, 5); g_key_file_set_integer_list(keyfile, group, "Car", (gint *)&PREFS->cst_wg, 5); g_key_file_set_integer_list(keyfile, group, "Txn", (gint *)&PREFS->txn_wg, 5); g_key_file_set_integer_list(keyfile, group, "DBud", (gint *)&PREFS->dbud_wg, 5); g_key_file_set_integer (keyfile, group, "WalVPaned" , PREFS->wal_vpaned); g_key_file_set_integer (keyfile, group, "WalHPaned" , PREFS->wal_hpaned); g_key_file_set_boolean (keyfile, group, "WalToolbar", PREFS->wal_toolbar); g_key_file_set_boolean (keyfile, group, "WalTotalChart", PREFS->wal_totchart); g_key_file_set_boolean (keyfile, group, "WalTimeChart", PREFS->wal_timchart); g_key_file_set_boolean (keyfile, group, "WalUpcoming", PREFS->wal_upcoming); //since 5.1.3 DBKF( g_print(" -> ** Panels\n") ); group = "Panels"; g_key_file_set_integer(keyfile, group, "AccColAccW", PREFS->pnl_acc_col_acc_width); g_key_file_set_integer(keyfile, group, "AccShowBy" , PREFS->pnl_acc_show_by); g_key_file_set_integer_list(keyfile, group, "AccColumns", PREFS->lst_acc_columns, NUM_LST_COL_DSPACC); //hub total/time g_key_file_set_integer(keyfile, group, "HubTotView" , PREFS->hub_tot_view); g_key_file_set_integer(keyfile, group, "HubTotViewRange" , PREFS->hub_tot_range); g_key_file_set_integer(keyfile, group, "HubTotRaw" , PREFS->hub_tot_raw); g_key_file_set_integer(keyfile, group, "HubTimView" , PREFS->hub_tim_view); g_key_file_set_integer(keyfile, group, "HubTimViewRange" , PREFS->hub_tim_range); g_key_file_set_integer(keyfile, group, "HubTimRaw" , PREFS->hub_tim_raw); //scheduled/upcoming g_key_file_set_integer_list(keyfile, group, "ColumnsSch", PREFS->lst_sch_columns, NUM_COL_SCH_UID); g_key_file_set_integer(keyfile, group, "UpcColPayV", PREFS->pnl_upc_col_pay_show); g_key_file_set_integer(keyfile, group, "UpcColCatV", PREFS->pnl_upc_col_cat_show); g_key_file_set_integer(keyfile, group, "UpcColMemV", PREFS->pnl_upc_col_mem_show); g_key_file_set_integer(keyfile, group, "UpcColPayW", PREFS->pnl_upc_col_pay_width); g_key_file_set_integer(keyfile, group, "UpcColCatW", PREFS->pnl_upc_col_cat_width); g_key_file_set_integer(keyfile, group, "UpcColMemW", PREFS->pnl_upc_col_mem_width); g_key_file_set_integer(keyfile, group, "UpcRange", PREFS->pnl_upc_range); homebank_pref_set_string (keyfile, group, "PnlLstTab", PREFS->pnl_list_tab); DBKF( g_print(" -> ** format\n") ); group = "Format"; homebank_pref_set_string (keyfile, group, "DateFmt" , PREFS->date_format); //g_key_file_set_boolean (keyfile, group, "UKUnits" , PREFS->imperial_unit); g_key_file_set_boolean (keyfile, group, "UnitIsMile" , PREFS->vehicle_unit_ismile); g_key_file_set_boolean (keyfile, group, "UnitIsGal" , PREFS->vehicle_unit_isgal); DBKF( g_print(" -> ** filter\n") ); group = "Filter"; //g_key_file_set_integer (keyfile, group, "DateRangeWal", PREFS->date_range_wal); g_key_file_set_integer (keyfile, group, "DateRangeTxn", PREFS->date_range_txn); g_key_file_set_integer (keyfile, group, "DateFutureNbDays", PREFS->date_future_nbdays); g_key_file_set_integer (keyfile, group, "DateRangeRep", PREFS->date_range_rep); DBKF( g_print(" -> ** API\n") ); group = "API"; homebank_pref_set_string(keyfile, group, "APIRateUrl", PREFS->api_rate_url); homebank_pref_set_string(keyfile, group, "APIRateKey", PREFS->api_rate_key); DBKF( g_print(" -> ** euro\n") ); //euro options group = "Euro"; //homebank_pref_set_string(keyfile, group, "DefCurrency" , PREFS->curr_default); g_key_file_set_boolean (keyfile, group, "Active" , PREFS->euro_active); if( PREFS->euro_active ) { g_key_file_set_integer (keyfile, group, "Country", PREFS->euro_country); gchar ratestr[64]; g_ascii_dtostr(ratestr, 63, PREFS->euro_value); homebank_pref_set_string (keyfile, group, "ChangeRate", ratestr); homebank_pref_set_string (keyfile, group, "Symbol" , PREFS->minor_cur.symbol); g_key_file_set_boolean (keyfile, group, "IsPrefix" , PREFS->minor_cur.sym_prefix); homebank_pref_set_string (keyfile, group, "DecChar" , PREFS->minor_cur.decimal_char); homebank_pref_set_string (keyfile, group, "GroupChar" , PREFS->minor_cur.grouping_char); g_key_file_set_integer (keyfile, group, "FracDigits", PREFS->minor_cur.frac_digits); } //report options DBKF( g_print(" -> ** report\n") ); group = "Report"; g_key_file_set_boolean (keyfile, group, "StatByAmount" , PREFS->stat_byamount); g_key_file_set_boolean (keyfile, group, "StatDetail" , PREFS->stat_showdetail); g_key_file_set_boolean (keyfile, group, "StatRate" , PREFS->stat_showrate); g_key_file_set_boolean (keyfile, group, "StatIncXfer" , PREFS->stat_includexfer); g_key_file_set_boolean (keyfile, group, "BudgDetail" , PREFS->budg_showdetail); g_key_file_set_boolean (keyfile, group, "BudgUnExclSub", PREFS->budg_unexclsub); g_key_file_set_integer (keyfile, group, "ColorScheme" , PREFS->report_color_scheme); g_key_file_set_boolean (keyfile, group, "SmallFont" , PREFS->rep_smallfont); g_key_file_set_integer (keyfile, group, "MaxSpendItems", PREFS->rep_maxspenditems); g_key_file_set_boolean (keyfile, group, "Forecast" , PREFS->rep_forcast); g_key_file_set_integer (keyfile, group, "ForecastNbMonth", PREFS->rep_forecat_nbmonth); group = "Exchange"; g_key_file_set_boolean (keyfile, group, "DoIntro", PREFS->dtex_nointro); g_key_file_set_boolean (keyfile, group, "UcFirst", PREFS->dtex_ucfirst); g_key_file_set_integer (keyfile, group, "DateFmt", PREFS->dtex_datefmt); g_key_file_set_integer (keyfile, group, "DayGap", PREFS->dtex_daygap); g_key_file_set_integer (keyfile, group, "OfxName", PREFS->dtex_ofxname); g_key_file_set_integer (keyfile, group, "OfxMemo", PREFS->dtex_ofxmemo); g_key_file_set_boolean (keyfile, group, "QifMemo", PREFS->dtex_qifmemo); g_key_file_set_boolean (keyfile, group, "QifSwap", PREFS->dtex_qifswap); g_key_file_set_integer (keyfile, group, "CsvSep", PREFS->dtex_csvsep); g_key_file_set_boolean (keyfile, group, "DoDefPayee", PREFS->dtex_dodefpayee); g_key_file_set_boolean (keyfile, group, "DoAutoAssign", PREFS->dtex_doautoassign); //group = "Chart"; //g_key_file_set_boolean (keyfile, group, "Legend", PREFS->chart_legend); //g_key_file_set_string (keyfile, group, "", PREFS->); //g_key_file_set_boolean (keyfile, group, "", PREFS->); //g_key_file_set_integer (keyfile, group, "", PREFS->); DB( g_print(" -> ** g_key_file_to_data\n") ); gchar *contents = g_key_file_to_data (keyfile, &length, NULL); //DB( g_print(" keyfile:\n%s\nlen=%d\n", contents, length) ); filename = g_build_filename(homebank_app_get_config_dir(), "preferences", NULL ); DB( g_print(" -> filename: %s\n", filename) ); g_file_set_contents(filename, contents, length, &error); if( error ) { g_warning("unable to save file %s: %s", filename, error->message); g_error_free (error); error = NULL; } DB( g_print(" -> contents: %s\n", contents) ); DB( g_print(" -> freeing filename\n") ); g_free(filename); DB( g_print(" -> freeing buffer\n") ); g_free(contents); DB( g_print(" -> freeing keyfile\n") ); g_key_file_free (keyfile); } _homebank_pref_init_measurement_units(); return retval; } homebank-5.9.1/src/gtk-chart-colors.c0000664000175000017500000002703214736461407013133 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include "gtk-chart-colors.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif char *chart_colors[] = { "HomeBank", "Money", "SAP", "Quicken", "Office 2010", "Office 2013", "Analytics", "YNAB", "Quicken 2017", "Mint", "Material", "Nord", NULL }; struct rgbcol nord_colors[] = { { 191, 97, 106 }, { 235, 203, 139 }, { 163, 190, 140 }, { 94, 129, 172 }, { 180, 142, 173 }, { 193, 158, 102 }, /* added*/ { 208, 135, 112 }, { 129, 161, 193 }, { 238, 187, 119 }, /* added */ { 143, 188, 187 }, { 150, 150, 150 } //grey/other }; int nord_nbcolors = G_N_ELEMENTS(nord_colors); struct rgbcol material_colors[] = { { 244, 67, 54 }, { 63, 81, 181 }, { 0, 150, 136 }, { 255, 235, 59 }, { 233, 30, 99 }, { 33, 150, 243 }, { 76, 175, 80 }, { 255, 193, 7 }, { 156, 39, 176 }, { 3, 169, 244 }, { 139, 195, 74 }, { 255, 152, 0 }, { 103, 58, 183 }, { 0, 188, 212 }, { 205, 220, 57 }, { 255, 87, 34 }, //{ 121, 85, 72 }, //{ 158, 158, 158 }, //{ 96, 125, 139 }, }; int material_nbcolors = G_N_ELEMENTS(material_colors); struct rgbcol mint_colors[] = { { 255, 207, 64 }, { 255, 171, 64 }, { 69, 202, 230 }, { 22, 126, 230 }, { 241, 132, 212 }, { 242, 72, 72 }, { 166, 237, 94 }, { 10, 198, 117 }, { 24, 158, 124 }, { 188, 146, 251 }, { 122, 71, 215 }, { 255, 255, 139 }, { 159, 159, 159 } //grey/other }; int mint_nbcolors = G_N_ELEMENTS(mint_colors); struct rgbcol quicken2017_colors[] = { { 64, 191, 117 }, { 119, 131, 255 }, { 214, 137, 251 }, { 255, 156, 78 }, { 28, 168, 221 }, { 255, 116, 162 }, { 78, 223, 225 }, { 85, 120, 195 }, { 182, 198, 71 }, { 255, 85, 108 }, { 113, 113, 113 } //grey/other }; int quicken2017_nbcolors = G_N_ELEMENTS(quicken2017_colors); struct rgbcol ynab_colors[] = { { 234, 84, 57 }, { 243, 173, 81 }, { 235, 229, 152 }, { 116, 169, 230 }, { 225, 248, 129 }, { 139, 161, 87 }, { 145, 197, 180 }, { 0, 157, 174 }, { 203, 219, 60 }, { 228, 211, 84 }, { 128, 133, 233 }, { 247, 163, 92 }, { 164, 192, 208 }, { 124, 181, 236 }, { 199, 246, 190 }, { 105, 106, 105 } //grey/other }; int ynab_nbcolors = G_N_ELEMENTS(ynab_colors); struct rgbcol money_colors[] = { { 255, 193, 96 }, { 92, 131, 180 }, { 165, 88, 124 }, { 108, 124, 101 }, { 230, 121, 99 }, { 91, 160, 154 }, { 207, 93, 96 }, { 70, 136, 106 }, { 245, 163, 97 }, { 158, 153, 88 }, { 255, 140, 90 }, { 122, 151, 173 }, { 84, 142, 128 }, { 185, 201, 149 }, { 165, 99, 103 }, { 77, 140, 172 }, { 251, 228, 128 }, { 73, 99, 149 }, { 192, 80, 77 }, { 139, 180, 103 }, { 132, 165, 214 }, { 221, 216, 115 }, { 77, 103, 137 }, { 165, 181, 156 } //grey/other }; int money_nbcolors = G_N_ELEMENTS(money_colors); struct rgbcol quicken_colors[] = { { 226, 73, 13 }, { 223, 180, 6 }, { 124, 179, 0 }, { 44, 108, 182 }, { 184, 81, 186 }, { 165, 165, 165 }, { 122, 122, 122 }, { 137, 42, 40 }, { 70, 161, 100 }, { 220, 106, 0 }, { 113, 113, 113 } //grey/other }; int quicken_nbcolors = G_N_ELEMENTS(quicken_colors); struct rgbcol analytics_colors[] = { { 5, 141, 199 }, //line color { 80, 180, 50 }, { 237, 86, 27 }, { 237, 239, 0 }, { 36, 203, 229 }, { 100, 229, 114 }, { 255, 150, 85 }, { 255, 242, 99 }, { 106, 249, 196 }, { 178, 222, 255 }, { 204, 204, 204 } //grey/other }; int analytics_nbcolors = G_N_ELEMENTS(analytics_colors); struct rgbcol office2010_colors[] = { { 60, 100, 149 }, { 150, 60, 59 }, { 120, 147, 68 }, { 99, 75, 123 }, { 61, 133, 157 }, { 196, 115, 49 }, { 73, 120, 176 }, { 179, 74, 71 }, { 144, 178, 84 }, { 117, 93, 153 }, { 73, 161, 185 }, { 232, 140, 65 }, { 126, 155, 199 }, { 202, 126, 126 }, { 174, 197, 129 }, { 156, 137, 182 }, { 123, 185, 206 }, { 248, 170, 121 } //grey/other }; int office2010_nbcolors = G_N_ELEMENTS(office2010_colors); struct rgbcol office2013_colors[] = { { 91, 155, 213 }, { 237, 125, 49 }, { 165, 165, 165 }, { 255, 192, 0 }, { 68, 114, 196 }, { 112, 173, 71 }, { 37, 94, 145 }, { 158, 72, 14 }, { 99, 99, 99 }, { 153, 115, 0 }, { 38, 68, 120 }, { 67, 104, 43 }, { 124, 175, 221 }, { 241, 151, 90 }, { 183, 183, 183 }, { 255, 205, 51 }, { 105, 142, 208 }, { 140, 193, 104 } //grey/other }; int office2013_nbcolors = G_N_ELEMENTS(office2013_colors); struct rgbcol sap_colors[] = { { 107, 148, 181 }, { 239, 205, 120 }, { 160, 117, 146 }, { 107, 181, 144 }, { 237, 164, 112 }, { 107, 106, 161 }, { 183, 213, 104 }, { 214, 128, 118 }, { 135, 115, 161 }, { 218, 217, 86 }, { 207, 111, 122 }, { 85, 168, 161 }, { 253, 213, 65 }, { 146, 98, 148 }, { 115, 192, 59 }, { 205, 81, 96 }, { 53, 180, 201 }, { 248, 175, 103 }, { 186, 97, 125 }, { 117, 202, 249 }, { 244, 131, 35 }, { 178, 45, 110 }, { 87, 229, 151 }, { 204, 171, 68 }, { 172, 110, 145 }, { 61, 132, 137 }, { 224, 117, 79 }, { 117, 84, 148 }, { 155, 206, 158 }, { 255, 133, 100 }, { 60, 98, 153 }, { 128, 197, 122 } }; int sap_nbcolors = G_N_ELEMENTS(sap_colors); struct rgbcol homebank_colors[] = { { 72, 118, 176 }, { 180, 198, 230 }, { 227, 126, 35 }, { 238, 186, 123 }, { 97, 158, 58 }, { 175, 222, 142 }, { 184, 43, 44 }, { 231, 151, 149 }, { 136, 103, 185 }, { 190, 174, 210 }, { 127, 87, 77 }, { 184, 155, 147 }, { 202, 118, 190 }, { 230, 181, 208 }, { 126, 126, 126 }, { 198, 198, 198 }, { 187, 188, 56 }, { 218, 218, 144 }, { 109, 189, 205 }, { 176, 217, 228 }, { 237, 212, 0 }, { 255, 239, 101 }, { 207, 93, 96 }, { 234, 186, 187 }, { 193, 124, 17 }, { 240, 181, 90 }, { 186, 189, 182 }, { 225, 227, 223 }, { 115, 210, 22 }, { 175, 240, 112 }, { 255, 140, 90 }, { 255, 191, 165 } }; int homebank_nbcolors = G_N_ELEMENTS(homebank_colors); struct rgbcol global_colors[] = { { 0, 0, 0}, // black {255, 255, 255}, // white {239, 239, 239}, // grey1 THTEXT 0.05 { 68, 68, 68}, // text THTEXT 0.78 { 51, 51, 51}, // xyline THTEXT 0.8 /* { 255, 0, 0}, // fake { 255, 255, 0}, // fake { 255, 0, 255}, // fake { 0, 255, 0}, // fake { 0, 0, 255}, // fake */ {255, 255, 255}, // theme base (bg) { 46, 52, 54}, // theme fg }; /* struct rgbcol global_colors[] = { { 0, 0, 0}, // black {255, 255, 255}, // white {238, 238, 238}, // #top/bottom lines {204, 204, 204}, // #dotted lines {102, 102, 102}, // #x-axis, scale text {153, 153, 153}, // # ?? { 0, 119, 204}, // #line color //new {239, 239, 239}, // intermediate lines { 68, 68, 68}, // text { 51, 51, 51}, // x/y axis };*/ void chart_color_global_default(void) { struct rgbcol *tcol; // set base color (adwaita) tcol = &global_colors[THBASE]; tcol->r = 255; tcol->g = 255; tcol->b = 255; // set text(bg) color (adwaita) tcol = &global_colors[THTEXT]; tcol->r = 46; tcol->g = 52; tcol->b = 54; } void cairo_user_set_rgbcol(cairo_t *cr, struct rgbcol *col) { cairo_set_source_rgb(cr, COLTOCAIRO(col->r), COLTOCAIRO(col->g), COLTOCAIRO(col->b)); } void cairo_user_set_rgbacol(cairo_t *cr, struct rgbcol *col, double alpha) { cairo_set_source_rgba(cr, COLTOCAIRO(col->r), COLTOCAIRO(col->g), COLTOCAIRO(col->b), alpha); } void cairo_user_set_rgbacol_over(cairo_t *cr, struct rgbcol *col, gboolean over, double alpha) { if( over ) cairo_set_source_rgba(cr, COLTOCAIROOVER(col->r), COLTOCAIROOVER(col->g), COLTOCAIROOVER(col->b), alpha); else cairo_set_source_rgba(cr, COLTOCAIRO(col->r), COLTOCAIRO(col->g), COLTOCAIRO(col->b), alpha); } void cairo_user_set_rgbcol_over(cairo_t *cr, struct rgbcol *col, gboolean over) { if( over ) cairo_set_source_rgb(cr, COLTOCAIROOVER(col->r), COLTOCAIROOVER(col->g), COLTOCAIROOVER(col->b)); else cairo_set_source_rgb(cr, COLTOCAIRO(col->r), COLTOCAIRO(col->g), COLTOCAIRO(col->b)); } void colorsheme_col8_to_rgba(struct rgbcol *col8, GdkRGBA *rgba) { DB( g_print(" set %d %d %d\n", col8->r, col8->g, col8->b) ); rgba->red = COLTOCAIRO((double)col8->r); rgba->green = COLTOCAIRO((double)col8->g); rgba->blue = COLTOCAIRO((double)col8->b); rgba->alpha = 1.0; DB( g_print(" set %f %f %f\n", rgba->red, rgba->green, rgba->blue) ); } void colorscheme_init(GtkColorScheme *scheme, gint index) { DB( g_print("\n[chart] scheme init\n") ); scheme->cs_blue = 0; switch(index) { default: case CHART_COLMAP_HOMEBANK: scheme->colors = homebank_colors; scheme->nb_cols = homebank_nbcolors; scheme->cs_green = 4; scheme->cs_red = 6; scheme->cs_orange = 2; break; case CHART_COLMAP_MSMONEY: scheme->colors = money_colors; scheme->nb_cols = money_nbcolors; scheme->cs_blue = 17; scheme->cs_green = 19; scheme->cs_red = 18; scheme->cs_orange = 8; break; case CHART_COLMAP_QUICKEN: scheme->colors = quicken_colors; scheme->nb_cols = quicken_nbcolors; scheme->cs_blue = 3; scheme->cs_green = 2; scheme->cs_red = 0; scheme->cs_orange = 9; break; case CHART_COLMAP_ANALYTICS: scheme->colors = analytics_colors; scheme->nb_cols = analytics_nbcolors; scheme->cs_green = 1; scheme->cs_red = 2; scheme->cs_orange = 6; break; case CHART_COLMAP_OFFICE2010: scheme->colors = office2010_colors; scheme->nb_cols = office2010_nbcolors; scheme->cs_green = 2; scheme->cs_red = 1; scheme->cs_orange = 5; break; case CHART_COLMAP_OFFICE2013: scheme->colors = office2013_colors; scheme->nb_cols = office2013_nbcolors; scheme->cs_green = 5; scheme->cs_red = 1; scheme->cs_orange = 1; break; case CHART_COLMAP_SAP: scheme->colors = sap_colors; scheme->nb_cols = sap_nbcolors; scheme->cs_green = 14; scheme->cs_red = 15; scheme->cs_orange = 20; break; case CHART_COLMAP_YNAB: scheme->colors = ynab_colors; scheme->nb_cols = ynab_nbcolors; scheme->cs_blue = 3; scheme->cs_green = 5; scheme->cs_red = 0; scheme->cs_orange = 1; break; case CHART_COLMAP_QUICKEN2017: scheme->colors = quicken2017_colors; scheme->nb_cols = quicken2017_nbcolors; scheme->cs_blue = 7; scheme->cs_green = 0; scheme->cs_red = 9; scheme->cs_orange = 3; break; case CHART_COLMAP_MINT: scheme->colors = mint_colors; scheme->nb_cols = mint_nbcolors; scheme->cs_blue = 3; scheme->cs_green = 7; scheme->cs_red = 5; scheme->cs_orange = 1; break; case CHART_COLMAP_MATERIAL: scheme->colors = material_colors; scheme->nb_cols = material_nbcolors; scheme->cs_blue = 5; scheme->cs_green = 6; scheme->cs_red = 0; scheme->cs_orange = 7; break; case CHART_COLMAP_NORD: scheme->colors = nord_colors; scheme->nb_cols = nord_nbcolors; scheme->cs_blue = 3; scheme->cs_green = 2; scheme->cs_red = 0; scheme->cs_orange = 6; break; } } homebank-5.9.1/src/hb-hbfile.h0000644000175000017500000000304514736461415011570 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_HBFILE_H__ #define __HB_HBFILE_H__ GQueue *hbfile_transaction_get_partial(guint32 minjulian, guint32 maxjulian); GQueue *hbfile_transaction_get_partial_budget(guint32 minjulian, guint32 maxjulian); gboolean hbfile_file_isbackup(gchar *filepath); gboolean hbfile_file_hasrevert(gchar *filepath); guint64 hbfile_file_get_time_modified(gchar *filepath); void hbfile_file_default(void); void hbfile_change_owner(gchar *owner); void hbfile_change_filepath(gchar *filepath); void hbfile_cleanup(gboolean file_clear); void hbfile_setup(gboolean file_clear); void hbfile_sanity_tags(void); void hbfile_sanity_check(void); void hbfile_anonymize(void); void hbfile_change_basecurrency(guint32 key); void hbfile_replace_basecurrency(Currency4217 *curfmt); #endif homebank-5.9.1/src/hub-account.c0000664000175000017500000004334014736461407012160 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hub-account.h" #include "dsp-mainwindow.h" #include "list-account.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern HbKvData CYA_ACC_TYPE[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void da_accgrp_free(PnlAccGrp *item) { DB( g_print("da_accgrp_free\n") ); DB( g_print(" free '%s'\n", item->name) ); if(item->name) g_free(item->name); if(item->acclist) g_ptr_array_free (item->acclist, TRUE); g_free(item); } static PnlAccGrp *da_accgrp_malloc(void) { DB( g_print("da_accgrp_malloc\n") ); return g_malloc0(sizeof(PnlAccGrp)); } static void da_accgrp_destroy(GHashTable *h_group) { GHashTableIter grp_iter; gpointer key, value; DB( g_print("\n[hub-account] groups free\n") ); if(h_group == NULL) return; g_hash_table_iter_init (&grp_iter, h_group); while (g_hash_table_iter_next (&grp_iter, &key, &value)) { PnlAccGrp *group = value; da_accgrp_free(group); } g_hash_table_destroy (h_group); } static GHashTable *da_accgrp_new(void) { DB( g_print("\n[hub-account] groups new\n") ); return g_hash_table_new_full(g_str_hash, g_str_equal, (GDestroyNotify)g_free, NULL); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static GHashTable *ui_hub_account_groups_get(GtkTreeView *treeview, gint groupby, gboolean showall) { GHashTable *h_group; GList *lacc, *elt; gchar *groupname; gint nballoc; DB( g_print("\n[hub-account] groups get\n") ); nballoc = da_acc_length (); DB( g_print(" %d accounts\n", nballoc) ); h_group = da_accgrp_new(); lacc = g_hash_table_get_values(GLOBALS->h_acc); elt = g_list_first(lacc); while (elt != NULL) { Account *acc = elt->data; PnlAccGrp *group; //#1674045 ony rely on nosummary //if( showall || !(acc->flags & (AF_CLOSED|AF_NOSUMMARY)) ) if( showall || !(acc->flags & AF_NOSUMMARY) ) { switch( groupby ) { case DSPACC_GROUP_BY_BANK: { groupname = _("(no institution)"); if( (acc->bankname != NULL) && strlen(acc->bankname) > 0 ) groupname = acc->bankname; } break; case DSPACC_GROUP_BY_GROUP: { Group *grp = da_grp_get(acc->kgrp); groupname = _("(no group)"); if( grp != NULL && grp->key > 0 ) groupname = grp->name; } break; default: //pre 5.1.3 historical by type display groupname = hbtk_get_label(CYA_ACC_TYPE, acc->type); break; } //#1820853 groupname could be NULL if( groupname != NULL ) { if( g_hash_table_contains(h_group, groupname) == FALSE ) { group = da_accgrp_malloc(); group->name = g_strdup(groupname); group->acclist = g_ptr_array_sized_new(nballoc); g_hash_table_insert(h_group, g_strdup(groupname), group ); } group = g_hash_table_lookup(h_group, groupname); if( group != NULL ) { g_ptr_array_add(group->acclist, (gpointer)acc); } } } elt = g_list_next(elt); } g_list_free(lacc); return h_group; } static void ui_hub_account_groups_compute(GHashTable *h_accgrp, PnlAccGrp *totaccgrp) { GHashTableIter grp_iter; gpointer key, value; PnlAccGrp *gt; guint j; DB( g_print("\n[hub-account] groups compute\n") ); if( !h_accgrp || !totaccgrp) return; gt = totaccgrp; gt->bal_recon = 0; gt->bal_clear = 0; gt->bal_today = 0; gt->bal_future = 0; g_hash_table_iter_init (&grp_iter, h_accgrp); while (g_hash_table_iter_next (&grp_iter, &key, &value)) { PnlAccGrp *g = value; if(!g) continue; DB( g_print(" g '%s'\n", g->name) ); g->showtotal = TRUE; g->bal_recon = 0; g->bal_clear = 0; g->bal_today = 0; g->bal_future = 0; for(j=0;jacclist->len;j++) { Account *acc = g_ptr_array_index(g->acclist, j); if(acc) { //#1896441 outflow summary if( (acc->flags & AF_OUTFLOWSUM) == FALSE ) { g->bal_recon += hb_amount_base(acc->bal_recon, acc->kcur); g->bal_clear += hb_amount_base(acc->bal_clear, acc->kcur); g->bal_today += hb_amount_base(acc->bal_today, acc->kcur); g->bal_future += hb_amount_base(acc->bal_future, acc->kcur); //#1950234 show subtotal when single with foreign currency if( (g->acclist->len == 1) && (acc->kcur == GLOBALS->kcur) ) { g->showtotal = FALSE; } } else { DB( g_print(" '%s' is outflow\n", acc->name) ); } } } DB( g_print(" + total :: %.2f %.2f %.2f %.2f - showsub:%d\n", g->bal_recon, g->bal_clear, g->bal_today, g->bal_future, g->showtotal) ); //sum for grand total gt->bal_recon += g->bal_recon; gt->bal_clear += g->bal_clear; gt->bal_today += g->bal_today; gt->bal_future += g->bal_future; } } void ui_hub_account_populate(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; GtkTreeModel *model; GtkTreeIter iter1, child_iter; Account *acc; guint j, nbtype; GHashTable *h_group; GHashTableIter grp_iter; gpointer key, value; DB( g_print("\n[hub-account] populate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); // clear previous model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_acc)); gtk_tree_store_clear (GTK_TREE_STORE(model)); if(data->totaccgrp != NULL) da_accgrp_free(data->totaccgrp); if(data->h_accgrp != NULL) da_accgrp_destroy(data->h_accgrp); h_group = ui_hub_account_groups_get(GTK_TREE_VIEW(data->LV_acc), PREFS->pnl_acc_show_by, data->showall); data->h_accgrp = h_group; data->totaccgrp = da_accgrp_malloc(); ui_hub_account_groups_compute(data->h_accgrp, data->totaccgrp); DB( g_print("\n\n populate listview, %d group(s)\n", g_hash_table_size(h_group)) ); nbtype = 0; g_hash_table_iter_init (&grp_iter, h_group); while (g_hash_table_iter_next (&grp_iter, &key, &value)) { PnlAccGrp *group = value; gint position; if(group != NULL) { nbtype++; //1: Header: Bank, Cash, ... DB( g_print(" g '%s'\n", (gchar *)key) ); //#1663399 keep group type position like in dropdown position = 0; if( PREFS->pnl_acc_show_by == DSPACC_GROUP_BY_TYPE ) { gint t = 0; while(CYA_ACC_TYPE[t].name != NULL && t < 32) { if( !strcmp(CYA_ACC_TYPE[t].name, key) ) break; t++; } position = t; } gtk_tree_store_append (GTK_TREE_STORE(model), &iter1, NULL); gtk_tree_store_set (GTK_TREE_STORE(model), &iter1, LST_DSPACC_POS, position, LST_DSPACC_DATATYPE, DSPACC_TYPE_HEADER, LST_DSPACC_DATAS, group, -1); //2: Accounts for real for(j=0;jacclist->len;j++) { acc = g_ptr_array_index(group->acclist, j); DB( g_print(" + '%s' :: %.2f %.2f %.2f %.2f\n", acc->name, acc->bal_recon, acc->bal_clear, acc->bal_today, acc->bal_future) ); gtk_tree_store_append (GTK_TREE_STORE(model), &child_iter, &iter1); gtk_tree_store_set (GTK_TREE_STORE(model), &child_iter, LST_DSPACC_DATATYPE, DSPACC_TYPE_NORMAL, LST_DSPACC_DATAS, acc, -1); } // insert group total line //if(group->acclist->len > 1) //#1950234 show subtotal when single with foreign currency if( group->showtotal == TRUE ) { gtk_tree_store_append (GTK_TREE_STORE(model), &child_iter, &iter1); gtk_tree_store_set (GTK_TREE_STORE(model), &child_iter, LST_DSPACC_DATATYPE, DSPACC_TYPE_SUBTOTAL, LST_DSPACC_DATAS, group, -1); } } } // Grand total if( nbtype > 1 ) { gtk_tree_store_append (GTK_TREE_STORE(model), &iter1, NULL); gtk_tree_store_set (GTK_TREE_STORE(model), &iter1, LST_DSPACC_DATATYPE, DSPACC_TYPE_TOTAL, LST_DSPACC_DATAS, data->totaccgrp, -1); } ui_hub_account_groups_compute(data->h_accgrp, data->totaccgrp); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_acc)); } //this func should only recompute balance of acc groups void ui_hub_account_compute(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; DB( g_print("\n[hub-account] compute\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ui_hub_account_groups_compute(data->h_accgrp, data->totaccgrp); gtk_widget_queue_draw (data->LV_acc); } static void ui_hub_account_browse(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( account_has_website(data->acc) ) { homebank_util_url_show(data->acc->website); } } static void ui_hub_account_expand_all(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_acc)); } static void ui_hub_account_collapse_all(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_acc)); } /* Callback function for the undo action */ /*static void activate_action (GSimpleAction *action, GVariant *parameter, gpointer user_data) { g_print ("Action %s activated\n", g_action_get_name (G_ACTION (action))); }*/ static void ui_hub_account_clipboard (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hbfile_data *data = user_data; GtkClipboard *clipboard; GString *node; //g_print ("Action %s activated\n", g_action_get_name (G_ACTION (action))); node = lst_accview_to_string(GTK_TREE_VIEW(data->LV_acc), TRUE); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); } static void ui_hub_account_print (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hbfile_data *data = user_data; GString *node; //g_print ("Action %s activated\n", g_action_get_name (G_ACTION (action))); node = lst_accview_to_string(GTK_TREE_VIEW(data->LV_acc), HB_STRING_PRINT); hb_print_listview(GTK_WINDOW(data->window), node->str, NULL, _("Your accounts"), NULL, FALSE); g_string_free(node, TRUE); } static void ui_hub_account_activate_toggle (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hbfile_data *data = user_data; GVariant *old_state, *new_state; old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_boolean (!g_variant_get_boolean (old_state)); DB( g_print ("Toggle action %s activated, state changes from %d to %d\n", g_action_get_name (G_ACTION (action)), g_variant_get_boolean (old_state), g_variant_get_boolean (new_state)) ); data->showall = g_variant_get_boolean (new_state); ui_hub_account_populate(GLOBALS->mainwindow, NULL); g_simple_action_set_state (action, new_state); g_variant_unref (old_state); } static void ui_hub_account_activate_radio (GSimpleAction *action, GVariant *parameter, gpointer user_data) { //struct hbfile_data *data = user_data; GVariant *old_state, *new_state; old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_string (g_variant_get_string (parameter, NULL)); DB( g_print ("Radio action %s activated, state changes from %s to %s\n", g_action_get_name (G_ACTION (action)), g_variant_get_string (old_state, NULL), g_variant_get_string (new_state, NULL)) ); PREFS->pnl_acc_show_by = DSPACC_GROUP_BY_TYPE; if( !strcmp("bank", g_variant_get_string(new_state, NULL)) ) PREFS->pnl_acc_show_by = DSPACC_GROUP_BY_BANK; else if( !strcmp("group", g_variant_get_string(new_state, NULL)) ) PREFS->pnl_acc_show_by = DSPACC_GROUP_BY_GROUP; g_simple_action_set_state (action, new_state); g_variant_unref (old_state); ui_hub_account_populate(GLOBALS->mainwindow, NULL); } static const GActionEntry actions[] = { // name, function(), type, state, { "groupby" , ui_hub_account_activate_radio , "s", "'type'", NULL, {0,0,0} }, { "showall" , ui_hub_account_activate_toggle , NULL, "false" , NULL, {0,0,0} }, { "clipboard" , ui_hub_account_clipboard , NULL, NULL , NULL, {0,0,0} }, { "print" , ui_hub_account_print , NULL, NULL , NULL, {0,0,0} }, // { "paste", activate_action, NULL, NULL, NULL, {0,0,0} }, }; void ui_hub_account_setup(struct hbfile_data *data) { GAction *action; GVariant *new_state; if( !G_IS_SIMPLE_ACTION_GROUP(data->action_group_acc) ) return; action = g_action_map_lookup_action (G_ACTION_MAP (data->action_group_acc), "showall"); if( action ) { new_state = g_variant_new_boolean (data->showall); g_simple_action_set_state (G_SIMPLE_ACTION(action), new_state); } action = g_action_map_lookup_action (G_ACTION_MAP (data->action_group_acc), "groupby"); if( action ) { const gchar *value = "type"; if( PREFS->pnl_acc_show_by == DSPACC_GROUP_BY_BANK ) value = "bank"; else if( PREFS->pnl_acc_show_by == DSPACC_GROUP_BY_GROUP ) value = "group"; new_state = g_variant_new_string (value); g_simple_action_set_state (G_SIMPLE_ACTION (action), new_state); } } void ui_hub_account_dispose(struct hbfile_data *data) { DB( g_print("\n[hub-account] dispose\n") ); if(data->h_accgrp != NULL) da_accgrp_destroy(data->h_accgrp); if(data->totaccgrp != NULL) da_accgrp_free(data->totaccgrp); data->h_accgrp = NULL; data->totaccgrp = NULL; } GtkWidget *ui_hub_account_create(struct hbfile_data *data) { GtkWidget *hub, *label, *widget, *scrollwin, *treeview, *tbar, *bbox, *image; DB( g_print("\n[hub-account] create\n") ); hub = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hb_widget_set_margins(GTK_WIDGET(hub), 0, SPACING_SMALL, SPACING_SMALL, SPACING_SMALL); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX (hub), scrollwin); treeview = (GtkWidget *)lst_accview_new(); data->LV_acc = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); //list toolbar tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (hub), tbar); label = make_label_group(_("Your accounts")); gtk_box_prepend (GTK_BOX (tbar), label); //gmenu test (see test folder into gtk) GMenu *menu, *section; menu = g_menu_new (); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("Copy to clipboard"), "actions.clipboard"); g_menu_append (section, _("Print..."), "actions.print"); g_object_unref (section); section = g_menu_new (); g_menu_append_section (menu, _("Group by"), G_MENU_MODEL(section)); g_menu_append (section, _("type") , "actions.groupby::type"); g_menu_append (section, _("group") , "actions.groupby::group"); g_menu_append (section, _("institution"), "actions.groupby::bank"); g_object_unref (section); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("Show all"), "actions.showall"); g_object_unref (section); GSimpleActionGroup *group = g_simple_action_group_new (); data->action_group_acc = group; g_action_map_add_action_entries (G_ACTION_MAP (group), actions, G_N_ELEMENTS (actions), data); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = gtk_menu_button_new(); gtk_box_prepend (GTK_BOX (bbox), widget); gtk_menu_button_set_direction (GTK_MENU_BUTTON(widget), GTK_ARROW_UP); gtk_widget_set_halign (widget, GTK_ALIGN_END); image = hbtk_image_new_from_icon_name_16 (ICONNAME_EMBLEM_SYSTEM); g_object_set (widget, "image", image, NULL); gtk_widget_insert_action_group (widget, "actions", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_EXPAND, _("Expand all")); data->BT_expandall = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_button(ICONNAME_HB_BUTTON_COLLAPSE, _("Collapse all")); data->BT_collapseall = widget; gtk_box_prepend (GTK_BOX (bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_BROWSER, _("Browse Website")); data->BT_browse = widget; gtk_box_prepend (GTK_BOX (bbox), widget); g_signal_connect (G_OBJECT (data->BT_expandall ), "clicked" , G_CALLBACK (ui_hub_account_expand_all), NULL); g_signal_connect (G_OBJECT (data->BT_collapseall), "clicked" , G_CALLBACK (ui_hub_account_collapse_all), NULL); g_signal_connect (G_OBJECT (data->BT_browse ), "clicked" , G_CALLBACK (ui_hub_account_browse), NULL); return hub; } homebank-5.9.1/src/ui-dialogs.c0000644000175000017500000011441714736461407012007 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-xml.h" #include "ui-widgets.h" #include "ui-dialogs.h" #include "list-operation.h" #include "ui-currency.h" /* = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = */ gchar *dialog_get_name(gchar *title, gchar *origname, GtkWindow *parentwindow) { GtkWidget *dialog, *content, *mainvbox, *getwidget; gchar *retval = NULL; dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW (parentwindow), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hb_widget_set_margin(GTK_WIDGET(mainvbox), SPACING_LARGE); hbtk_box_prepend (GTK_BOX (content), mainvbox); getwidget = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(getwidget), 24); gtk_box_prepend (GTK_BOX (mainvbox), getwidget); gtk_widget_show_all(mainvbox); if(origname != NULL) gtk_entry_set_text(GTK_ENTRY(getwidget), origname); gtk_widget_grab_focus (getwidget); gtk_entry_set_activates_default (GTK_ENTRY(getwidget), TRUE); gtk_dialog_set_default_response(GTK_DIALOG( dialog ), GTK_RESPONSE_ACCEPT); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { const gchar *name; name = gtk_entry_get_text(GTK_ENTRY(getwidget)); /* ignore if entry is empty */ if (name && *name) { retval = g_strdup(name); } } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); return retval; } static void my_ui_dialog_add_action_class(GtkDialog *dialog, gint response_id, gchar *class_name) { GtkWidget *button = gtk_dialog_get_widget_for_response(dialog, response_id); if( button) { gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(button)), class_name); } } /* Confirmation Alert dialog */ gint ui_dialog_msg_confirm_alert(GtkWindow *parent, gchar *title, gchar *secondtext, gchar *actionverb, gboolean destructive) { GtkWidget *dialog; gint retval; dialog = gtk_message_dialog_new (GTK_WINDOW(parent), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, title, NULL ); gtk_dialog_add_buttons (GTK_DIALOG(dialog), _("_Cancel"), GTK_RESPONSE_CANCEL, actionverb, GTK_RESPONSE_OK, NULL); if(secondtext) { g_object_set(GTK_MESSAGE_DIALOG (dialog), "secondary-text", secondtext, NULL); //gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), secondtext); } //5.6 style button gchar *style = destructive ? GTK_STYLE_CLASS_DESTRUCTIVE_ACTION : GTK_STYLE_CLASS_SUGGESTED_ACTION; my_ui_dialog_add_action_class(GTK_DIALOG(dialog), GTK_RESPONSE_OK, style); gtk_dialog_set_default_response(GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL); retval = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_window_destroy (GTK_WINDOW(dialog)); return retval; } /* Message dialog */ gint ui_dialog_msg_question(GtkWindow *parent, gchar *title, gchar *message_format, ...) { GtkWidget *dialog; gchar* msg = NULL; va_list args; gint retval; dialog = gtk_message_dialog_new (GTK_WINDOW(parent), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, title, NULL ); if (message_format) { va_start (args, message_format); msg = g_strdup_vprintf (message_format, args); va_end (args); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", msg); g_free (msg); } gtk_dialog_set_default_response(GTK_DIALOG (dialog), GTK_RESPONSE_NO); retval = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_window_destroy (GTK_WINDOW(dialog)); return retval; } /* ** open a info/error dialog for user information purpose */ void ui_dialog_msg_infoerror(GtkWindow *parent, GtkMessageType type, gchar *title, gchar *message_format, ...) { GtkWidget *dialog; gchar* msg = NULL; va_list args; dialog = gtk_message_dialog_new (GTK_WINDOW(parent), GTK_DIALOG_DESTROY_WITH_PARENT, type, GTK_BUTTONS_OK, "%s", title ); if (message_format) { va_start (args, message_format); msg = g_strdup_vprintf (message_format, args); va_end (args); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", msg); g_free (msg); } gtk_dialog_run (GTK_DIALOG (dialog)); gtk_window_destroy (GTK_WINDOW(dialog)); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void ui_dialog_file_statistics(void) { GtkWidget *dialog, *content_area, *box, *group_grid; GtkWidget *label, *widget; //gchar *tmpstr; gint row, count, count2; dialog = gtk_dialog_new_with_buttons (_("File statistics"), GTK_WINDOW (GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_default_size (GTK_WINDOW(dialog), HB_MINWIDTH_LIST, -1); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(box), SPACING_LARGE); gtk_box_prepend (GTK_BOX (content_area), box); // group :: file title group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (box), group_grid); row = 1; label = make_label_widget(_("Account")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); count = da_acc_length (); ui_label_set_integer(GTK_LABEL(widget), count); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Transaction")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); count = da_transaction_length(); ui_label_set_integer(GTK_LABEL(widget), count); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); da_archive_stats(&count, &count2); row++; label = make_label_widget(_("Scheduled")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); ui_label_set_integer(GTK_LABEL(widget), count2); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Template")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); ui_label_set_integer(GTK_LABEL(widget), count); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Assignment")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); count = da_asg_length (); ui_label_set_integer(GTK_LABEL(widget), count); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); widget = gtk_separator_new( GTK_ORIENTATION_VERTICAL); gtk_box_prepend (GTK_BOX (box), widget); // group :: file title group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (box), group_grid); row = 1; label = make_label_widget(_("Payee")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); count = da_pay_length (); ui_label_set_integer(GTK_LABEL(widget), count); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Category")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); count = da_cat_length (); ui_label_set_integer(GTK_LABEL(widget), count); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Tag")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); count = da_tag_length (); ui_label_set_integer(GTK_LABEL(widget), count); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Currency")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label(NULL, 1.0, 0.5); count = da_cur_length (); ui_label_set_integer(GTK_LABEL(widget), count); gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); gtk_widget_show_all(box); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ struct dialog_currency_data { GtkWidget *dialog; GtkWidget *LB_currency; GtkWidget *BT_change; Currency4217 *curfmt; }; static void ui_dialog_upgrade_choose_currency_change_action(GtkWidget *widget, gpointer user_data) { struct dialog_currency_data *data = user_data; struct curSelectContext selectCtx; data->curfmt = NULL; ui_cur_select_dialog_new(GTK_WINDOW(data->dialog), CUR_SELECT_MODE_BASE, &selectCtx); if( selectCtx.cur_4217 != NULL ) { Currency4217 *curfmt; gchar label[128]; gchar *name; curfmt = selectCtx.cur_4217; DB( g_printf("- user selected: '%s' '%s'\n", curfmt->curr_iso_code, curfmt->name) ); data->curfmt = curfmt; name = curfmt->name; g_snprintf(label, 127, "%s - %s", curfmt->curr_iso_code, name); gtk_label_set_text (GTK_LABEL(data->LB_currency), label); } } static void ui_dialog_upgrade_choose_currency_fill(struct dialog_currency_data *data) { Currency *cur; gchar label[128]; data->curfmt = NULL; cur = da_cur_get (GLOBALS->kcur); g_snprintf(label, 127, "%s - %s", cur->iso_code, cur->name); gtk_label_set_text (GTK_LABEL(data->LB_currency), label); } void ui_dialog_upgrade_choose_currency(void) { struct dialog_currency_data *data; GtkWidget *dialog, *content_area, *content_grid, *group_grid; GtkWidget *label, *widget; gint crow, row; data = g_malloc0(sizeof(struct dialog_currency_data)); if(!data) return; dialog = gtk_dialog_new_with_buttons (_("Upgrade"), GTK_WINDOW (GLOBALS->mainwindow), 0, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; widget = gtk_dialog_get_widget_for_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); gtk_window_set_focus(GTK_WINDOW(dialog), widget); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (content_area), content_grid); crow = 0; // group :: file title group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); row = 0; label = make_label(_("Select a base currency"), 0, 0); gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 3, 1); row++; label = make_label( _("Starting v5.1, HomeBank can manage several currencies\n" \ "if the currency below is not correct, please change it:"), 0, 0); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 3, 1); row++; label = make_label_widget(_("Currency:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = make_label (NULL, 0, 0.5); data->LB_currency = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); widget = gtk_button_new_with_mnemonic (_("_Change")); data->BT_change = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); g_signal_connect (G_OBJECT (data->BT_change), "clicked", G_CALLBACK (ui_dialog_upgrade_choose_currency_change_action), data); ui_dialog_upgrade_choose_currency_fill(data); gtk_widget_show_all(content_grid); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { if( data->curfmt != NULL ) { hbfile_replace_basecurrency(data->curfmt); } } // in any case set every accounts to base currency GList *list; list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { Account *acc = list->data; account_set_currency(acc, GLOBALS->kcur); list = g_list_next(list); } g_list_free(list); // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); // make sure dialog is gone hb_window_run_pending(); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static GtkFileFilter *ui_file_chooser_add_filter(GtkFileChooser *chooser, gchar *name, gchar *pattern) { GtkFileFilter *filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, name); gtk_file_filter_add_pattern (filter, pattern); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(chooser), filter); return filter; } gboolean ui_file_chooser_qif(GtkWindow *parent, gchar **storage_ptr) { GtkWidget *chooser; gboolean retval; DB( g_print("(homebank) chooser save qif\n") ); chooser = gtk_file_chooser_dialog_new ( _("Export as QIF"), GTK_WINDOW(parent), GTK_FILE_CHOOSER_ACTION_SAVE, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Save"), GTK_RESPONSE_ACCEPT, NULL); //todo: change this ? gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(chooser), PREFS->path_export); ui_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), _("QIF files"), "*.[Qq][Ii][Ff]"); ui_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), _("All files"), "*"); retval = FALSE; if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT) { gchar *tmpfilename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); *storage_ptr = hb_filename_new_with_extension(tmpfilename, "qif"); g_free(tmpfilename); retval = TRUE; } gtk_window_destroy (GTK_WINDOW(chooser)); return retval; } /* ** open a file chooser dialog and store filename to GLOBALS if OK */ gboolean ui_file_chooser_csv(GtkWindow *parent, GtkFileChooserAction action, gchar **storage_ptr, gchar *name) { GtkWidget *chooser; gchar *title; gchar *button; gboolean retval; gchar *path; DB( g_print("(hombank) csvfile chooser csv %d\n", action) ); if( action == GTK_FILE_CHOOSER_ACTION_OPEN ) { title = _("Import from CSV"); button = _("_Open"); path = PREFS->path_import; } else { title = _("Export as CSV"); button = _("_Save"); path = PREFS->path_export; } chooser = gtk_file_chooser_dialog_new (title, GTK_WINDOW(parent), action, //GTK_FILE_CHOOSER_ACTION_OPEN, _("_Cancel"), GTK_RESPONSE_CANCEL, button, GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(chooser), path); if(name != NULL) gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(chooser), name); ui_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), _("CSV files"), "*.[Cc][Ss][Vv]"); ui_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), _("All files"), "*"); retval = FALSE; if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT) { gchar *tmpfilename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); if( action == GTK_FILE_CHOOSER_ACTION_SAVE ) { *storage_ptr = hb_filename_new_with_extension(tmpfilename, "csv"); g_free(tmpfilename); } else { *storage_ptr = tmpfilename; } retval = TRUE; } gtk_window_destroy (GTK_WINDOW(chooser)); return retval; } /* ** open a file chooser dialog and store filename to GLOBALS if OK */ gboolean ui_file_chooser_xhb(GtkFileChooserAction action, gchar **storage_ptr, gboolean bakmode) { GtkWidget *chooser; gchar *title; gchar *button; gboolean retval; DB( g_print("(ui-dialog) file chooser xhb %d\n", action) ); if( action == GTK_FILE_CHOOSER_ACTION_OPEN ) { title = (bakmode==FALSE) ? _("Open HomeBank file") : _("Open HomeBank backup file"); button = _("_Open"); } else { title = _("Save HomeBank file as"); button = _("_Save"); } chooser = gtk_file_chooser_dialog_new (title, GTK_WINDOW(GLOBALS->mainwindow), action, //GTK_FILE_CHOOSER_ACTION_OPEN, _("_Cancel"), GTK_RESPONSE_CANCEL, button, GTK_RESPONSE_ACCEPT, NULL); if( action == GTK_FILE_CHOOSER_ACTION_OPEN ) { if( bakmode == FALSE ) { gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(chooser), PREFS->path_hbfile); ui_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), _("HomeBank files"), "*.[Xx][Hh][Bb]"); ui_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), _("All files"), "*"); } else { gchar *pattern; GtkFileFilter *flt; //#1864176 open backup should open the backup folder gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(chooser), PREFS->path_hbbak); pattern = hb_filename_backup_get_filtername(GLOBALS->xhb_filepath); flt = ui_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), _("File backup"), pattern); gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(chooser), flt); g_free(pattern); ui_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), _("All backups"), "*.[Bb][Aa][Kk]"); } } else /* GTK_FILE_CHOOSER_ACTION_SAVE */ { gchar *basename, *dirname; basename = g_path_get_basename(GLOBALS->xhb_filepath); dirname = g_path_get_dirname (GLOBALS->xhb_filepath); //gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(chooser), GLOBALS->xhb_filepath); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(chooser), dirname); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(chooser), basename); g_free(dirname); g_free(basename); } retval = FALSE; if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT) { *storage_ptr = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); retval = TRUE; } gtk_window_destroy (GTK_WINDOW(chooser)); return retval; } /* ** */ gboolean ui_file_chooser_folder(GtkWindow *parent, gchar *title, gchar **storage_ptr) { GtkWidget *chooser; gboolean retval; DB( g_print("(ui-dialog) folder chooser\n") ); chooser = gtk_file_chooser_dialog_new (title, parent, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); DB( g_print(" - set folder %s\n", *storage_ptr) ); gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(chooser), *storage_ptr); retval = FALSE; if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT) { gchar *filename; //nb: filename must be freed with g_free filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); DB( g_print("- folder %s\n", filename) ); //todo: dangerous to do this here, review please ! g_free(*storage_ptr); *storage_ptr = filename; DB( g_print("- folder stored: %s\n", *storage_ptr) ); retval = TRUE; } gtk_window_destroy (GTK_WINDOW(chooser)); return retval; } /* ** request the user to save last change */ gboolean ui_dialog_msg_savechanges(GtkWidget *widget, gpointer user_data) { gboolean retval = TRUE; GtkWidget *dialog; if(GLOBALS->changes_count) { gint result; dialog = gtk_message_dialog_new ( GTK_WINDOW(GLOBALS->mainwindow), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, //GTK_MESSAGE_INFO, GTK_BUTTONS_NONE, _("Save changes to the file before closing?") ); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("If you don't save, changes will be permanently lost.\nNumber of changes: %d."), GLOBALS->changes_count ); gtk_dialog_add_buttons (GTK_DIALOG(dialog), _("Close _without saving"), 0, _("_Cancel"), 1, _("_Save"), 2, NULL); //5.6 style button my_ui_dialog_add_action_class(GTK_DIALOG(dialog), 0, GTK_STYLE_CLASS_DESTRUCTIVE_ACTION); gtk_dialog_set_default_response(GTK_DIALOG( dialog ), 2); result = gtk_dialog_run( GTK_DIALOG( dialog ) ); gtk_window_destroy (GTK_WINDOW(dialog)); if(result == 1 || result == GTK_RESPONSE_DELETE_EVENT) { retval = FALSE; } else { if(result == 2) { //#2090668 save new file as if( GLOBALS->hbfile_is_new == TRUE ) { gchar *filename = NULL; if(ui_file_chooser_xhb(GTK_FILE_CHOOSER_ACTION_SAVE, &filename, FALSE) == TRUE) { DB( g_print(" + should save as '%s'\n", filename) ); homebank_file_ensure_xhb(filename); homebank_backup_current_file(); homebank_save_xml(GLOBALS->xhb_filepath); GLOBALS->hbfile_is_new = FALSE; } } else { DB( g_print(" + should quick save %s\n", GLOBALS->xhb_filepath) ); //todo: should migrate this //#1720377 also backup homebank_file_ensure_xhb(NULL); homebank_backup_current_file(); homebank_save_xml(GLOBALS->xhb_filepath); } } } } return retval; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ struct dialog_export_csv_data { gboolean showall; GtkWidget *dialog; GtkWidget *CM_split, *CM_status; GtkWidget *IM_warn, *LB_warn; }; static void ui_dialog_export_csv_update(GtkWidget *widget, gpointer user_data) { struct dialog_export_csv_data *data = user_data; gboolean hassplit, hasstatus, visible; hassplit = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_split)); hasstatus = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_status)); visible = data->showall | hassplit | hasstatus; hb_widget_visible(data->IM_warn, visible); hb_widget_visible(data->LB_warn, visible); } gint ui_dialog_export_csv(GtkWindow *parent, gchar **storage_ptr, gboolean *split_ptr, gboolean *status_ptr, gboolean showall) { struct dialog_export_csv_data *data; GtkWidget *dialog, *content_area, *content_grid, *group_grid; GtkWidget *label, *widget, *BT_folder, *ST_name; gchar *tmpstr; gint crow, row; data = g_malloc0(sizeof(struct dialog_export_csv_data)); if(!data) return GTK_RESPONSE_CANCEL; data->showall = showall; dialog = gtk_dialog_new_with_buttons (_("Export as CSV"), GTK_WINDOW (parent), 0, _("_Cancel"), GTK_RESPONSE_CANCEL, _("Export as _CSV"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_default_size (GTK_WINDOW(dialog), HB_MINWIDTH_LIST, -1); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (content_area), content_grid); crow = 0; // group :: file title group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); row = 0; row++; label = make_label_widget(_("Folder:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); BT_folder = gtk_file_chooser_button_new (_("Pick a Folder"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_grid_attach (GTK_GRID (group_grid), BT_folder, 2, row, 1, 1); row++; label = make_label_widget(_("Filename:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); ST_name = make_string (label); gtk_widget_set_hexpand(ST_name, TRUE); gtk_grid_attach (GTK_GRID (group_grid), ST_name, 2, row, 1, 1); row++; label = make_label_group(_("Options")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 3, 1); row++; data->CM_status = gtk_check_button_new_with_mnemonic (_("Add Status column")); gtk_grid_attach (GTK_GRID (group_grid), data->CM_status, 1, row, 2, 1); row++; data->CM_split = gtk_check_button_new_with_mnemonic (_("Detail split lines")); gtk_grid_attach (GTK_GRID (group_grid), data->CM_split, 1, row, 2, 1); //warning text row++; widget = hbtk_image_new_from_icon_name_32 (ICONNAME_WARNING); gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); gtk_widget_set_margin_top (widget, SPACING_MEDIUM); data->IM_warn = widget; // 123456789012345678901234567890123456789012345678901234567890 label = gtk_label_new(_("The file will not be in HomeBank CSV format, because you export\n" \ "from 'All transaction', or you selected an option.")); data->LB_warn = label; gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); /* signals */ g_signal_connect (data->CM_split , "toggled", G_CALLBACK (ui_dialog_export_csv_update), data); g_signal_connect (data->CM_status , "toggled", G_CALLBACK (ui_dialog_export_csv_update), data); //setup tmpstr = g_path_get_dirname(*storage_ptr); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(BT_folder), tmpstr); g_free(tmpstr); tmpstr = g_path_get_basename(*storage_ptr); gtk_entry_set_text(GTK_ENTRY(ST_name), tmpstr); g_free(tmpstr); gtk_widget_show_all(content_grid); ui_dialog_export_csv_update(dialog, data); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { gchar *hostname; //#300380 fixed export path problem (was always the export of preference) //not to be used -- gchar *nufolder = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(BT_folder)); gchar *urifolder = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(BT_folder)); gchar *nufolder = g_filename_from_uri(urifolder, &hostname, NULL); gchar *nufilename = hb_filename_new_with_extension((gchar *)gtk_entry_get_text (GTK_ENTRY(ST_name)), "csv"); g_free(*storage_ptr); *storage_ptr = g_build_filename(nufolder, nufilename, NULL); g_free(nufilename); g_free(nufolder); g_free(urifolder); if( split_ptr != NULL ) { *split_ptr = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_split)); } if( status_ptr != NULL ) { *status_ptr = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_status)); } } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return result; } gint ui_dialog_export_pdf(GtkWindow *parent, gchar **storage_ptr) { GtkWidget *dialog, *content_area, *content_grid, *group_grid; GtkWidget *label, *widget, *BT_folder, *ST_name; gchar *tmpstr; gint crow, row; dialog = gtk_dialog_new_with_buttons (_("Export as PDF"), GTK_WINDOW (parent), 0, _("_Cancel"), GTK_RESPONSE_CANCEL, _("Export as _PDF"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_default_size (GTK_WINDOW(dialog), HB_MINWIDTH_LIST, -1); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (content_area), content_grid); crow = 0; // group :: file title group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); row = 0; label = make_label_widget(_("Folder:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); BT_folder = gtk_file_chooser_button_new (_("Pick a Folder"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_grid_attach (GTK_GRID (group_grid), BT_folder, 1, row, 1, 1); row++; label = make_label_widget(_("Filename:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); ST_name = make_string (label); gtk_widget_set_hexpand(ST_name, TRUE); gtk_grid_attach (GTK_GRID (group_grid), ST_name, 1, row, 1, 1); row++; row++; widget = hbtk_image_new_from_icon_name_32 (ICONNAME_HB_QUICKTIPS); gtk_grid_attach (GTK_GRID (group_grid), widget, 0, row, 1, 1); // 123456789012345678901234567890123456789012345678901234567890 label = gtk_label_new(_("With HomeBank, printing is oriented towards an eco-responsible\n" \ "attitude towards the most widespread digital format: PDF format. ")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); //setup tmpstr = g_path_get_dirname(*storage_ptr); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(BT_folder), tmpstr); g_free(tmpstr); tmpstr = g_path_get_basename(*storage_ptr); gtk_entry_set_text(GTK_ENTRY(ST_name), tmpstr); g_free(tmpstr); gtk_widget_show_all(content_grid); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { gchar *hostname; //#300380 fixed export path problem (was always the export of preference) //not to be used -- gchar *nufolder = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(BT_folder)); gchar *urifolder = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(BT_folder)); gchar *nufolder = g_filename_from_uri(urifolder, &hostname, NULL); gchar *nufilename = hb_filename_new_with_extension((gchar *)gtk_entry_get_text (GTK_ENTRY(ST_name)), "pdf"); g_free(*storage_ptr); *storage_ptr = g_build_filename(nufolder, nufilename, NULL); g_free(nufilename); g_free(nufolder); g_free(urifolder); } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); return result; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ struct xfer_data { GtkWidget *dialog; GtkWidget *srctreeview; GtkWidget *lb_several; GtkWidget *treeview; }; //#1982036 make releavant column to be displayed static gint lst_xfer_columns[NUM_LST_DSPOPE+1] = { LST_DSPOPE_STATUS, LST_DSPOPE_MATCH, LST_DSPOPE_ACCOUNT, LST_DSPOPE_DATE, LST_DSPOPE_AMOUNT, LST_DSPOPE_CLR, LST_DSPOPE_MEMO, LST_DSPOPE_PAYNUMBER, LST_DSPOPE_PAYEE, LST_DSPOPE_CATEGORY, LST_DSPOPE_TAGS, -LST_DSPOPE_EXPENSE, -LST_DSPOPE_INCOME, -LST_DSPOPE_BALANCE }; static void ui_dialog_transaction_xfer_select_child_cb(GtkWidget *widget, gpointer user_data) { struct xfer_data *data; GtkTreeSelection *selection; gboolean sensitive; gint count; DB( g_print("\n(xfer select) toggle choice\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview)); count = gtk_tree_selection_count_selected_rows(selection); sensitive = (count > 0) ? TRUE : FALSE; gtk_dialog_set_response_sensitive(GTK_DIALOG(data->dialog), HB_RESPONSE_SELECTION, sensitive); DB( g_print(" test count %d sensitive %d\n", count, sensitive) ); } static void ui_dialog_transaction_xfer_select_child_selection_cb(GtkTreeSelection *treeselection, gpointer user_data) { ui_dialog_transaction_xfer_select_child_cb(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } gint ui_dialog_transaction_xfer_select_child(GtkWindow *parent, Transaction *stxn, GList *matchlist, Transaction **child) { struct xfer_data *data; GtkWidget *dialog, *content, *mainvbox, *scrollwin, *label; GtkTreeModel *newmodel; GtkTreeIter newiter; gint w, h, dw, dh; gint nbmatch; DB( g_print("\n(xfer select) new\n") ); data = g_malloc0(sizeof(struct xfer_data)); if(!data) return 0; dialog = gtk_dialog_new_with_buttons ( _("Select action for target creation"), parent, 0, _("_Cancel"), GTK_RESPONSE_CANCEL, _("Create _New"), HB_RESPONSE_CREATE_NEW, _("Use _Selection"), HB_RESPONSE_SELECTION, NULL); g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); data->dialog = dialog; //5.8 set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 3:2 dw = (dh * 3) / 2; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, -1); //hide close button //gtk_window_set_deletable(GTK_WINDOW(dialog), FALSE); //gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); //gtk_window_set_default_size (GTK_WINDOW (dialog), 800, 494); content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (content), mainvbox); hb_widget_set_margin(GTK_WIDGET(mainvbox), SPACING_LARGE); label = make_label_group(_("Source transfer")); gtk_box_prepend (GTK_BOX (mainvbox), label); // source listview scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); // gtk_widget_set_size_request(sw, -1, HB_MINWIDTH_LIST/2); gtk_widget_set_margin_left(scrollwin, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (mainvbox), scrollwin); data->srctreeview = create_list_transaction(LIST_TXN_TYPE_XFERSOURCE, lst_xfer_columns); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->srctreeview)), GTK_SELECTION_NONE); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), data->srctreeview); // target listview label = make_label_group(_("Target association suggested")); gtk_widget_set_margin_top(label, SPACING_LARGE); gtk_box_prepend (GTK_BOX (mainvbox), label); label = make_label(_( "HomeBank has found some transaction that may be " \ "the associated transaction for the internal transfer."), 0.0, 0.5 ); data->lb_several = label; gtk_widget_set_margin_left(label, SPACING_MEDIUM); /*gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1);*/ gtk_box_prepend (GTK_BOX (mainvbox), label); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_size_request(scrollwin, -1, HB_MINWIDTH_LIST*1.5); gtk_widget_set_margin_left(scrollwin, SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (mainvbox), scrollwin); data->treeview = create_list_transaction(LIST_TXN_TYPE_XFERTARGET, lst_xfer_columns); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview)), GTK_SELECTION_SINGLE); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), data->treeview); DB( g_print(" populate src\n") ); /* populate source */ if( stxn != NULL ) { newmodel = gtk_tree_view_get_model(GTK_TREE_VIEW(data->srctreeview)); gtk_tree_store_clear (GTK_TREE_STORE(newmodel)); gtk_tree_store_append (GTK_TREE_STORE(newmodel), &newiter, NULL); //#1830523/#1840393 gtk_tree_store_set (GTK_TREE_STORE(newmodel), &newiter, MODEL_TXN_POINTER, stxn, MODEL_TXN_SPLITAMT, stxn->amount, -1); } DB( g_print(" populate src\n") ); /* populate target */ newmodel = gtk_tree_view_get_model(GTK_TREE_VIEW(data->treeview)); gtk_tree_store_clear (GTK_TREE_STORE(newmodel)); nbmatch = 0; GList *tmplist = g_list_first(matchlist); while (tmplist != NULL) { Transaction *tmp = tmplist->data; /* append to our treeview */ gtk_tree_store_append (GTK_TREE_STORE(newmodel), &newiter, NULL); //#1830523/#1840393 gtk_tree_store_set (GTK_TREE_STORE(newmodel), &newiter, MODEL_TXN_POINTER, tmp, MODEL_TXN_SPLITAMT, tmp->amount, -1); //DB( g_print(" - fill: %s %.2f %x\n", item->memo, item->amount, (unsigned int)item->same) ); tmplist = g_list_next(tmplist); nbmatch++; } g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview)), "changed", G_CALLBACK (ui_dialog_transaction_xfer_select_child_selection_cb), NULL); //5.8 chnage text gtk_label_set_text(GTK_LABEL(data->lb_several), _("No transaction match.") ); gtk_widget_show_all(mainvbox); //#1982036 show essential field on the left : no need to leave space DB( g_print(" autosize\n") ); gtk_tree_view_columns_autosize(GTK_TREE_VIEW(data->srctreeview)); gtk_tree_view_columns_autosize(GTK_TREE_VIEW(data->treeview)); //5.5.7: add sort by match descending gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(newmodel), LST_DSPOPE_MATCH, GTK_SORT_DESCENDING); //initialize gtk_dialog_set_response_sensitive(GTK_DIALOG(data->dialog), HB_RESPONSE_SELECTION, FALSE); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); *child = NULL; if(result == HB_RESPONSE_SELECTION) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview)); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, child, -1); } } DB( g_print(" return %d child = %p\n", result, child) ); // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return result; } homebank-5.9.1/src/ui-account.h0000644000175000017500000000662114736461415012022 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_ACCOUNT_GTK_H__ #define __HB_ACCOUNT_GTK_H__ enum { LST_DEFACC_SORT_POS = 1, LST_DEFACC_SORT_NAME }; enum { LST_DEFACC_TOGGLE, LST_DEFACC_DATAS, NUM_LST_DEFACC }; enum { ACC_LST_INSERT_NORMAL, ACC_LST_INSERT_REPORT }; /* = = = = = = = = = = */ enum { ACTION_NEW, ACTION_MODIFY, ACTION_REMOVE, }; enum { FIELD_NAME, //todo: for stock account //FIELD_TYPE, FIELD_BANK, FIELD_NUMBER, FIELD_BUDGET, FIELD_CLOSED, FIELD_INITIAL, FIELD_MINIMUM, FIELD_CHEQUE1, FIELD_CHEQUE2, MAX_ACC_FIELD }; struct ui_acc_manage_data { GList *tmp_list; gint change; gint action; guint32 lastkey; GtkWidget *dialog; gboolean mapped_done; GtkWidget *ST_search; GtkWidget *LV_acc; GtkWidget *BT_add, *BT_edit, *BT_rem; GtkWidget *BT_up, *BT_down; GtkWidget *notebook; GtkWidget *CY_type; GtkWidget *CY_curr; GtkWidget *ST_institution; GtkWidget *ST_number; GtkWidget *ST_group; GtkWidget *ST_website; GtkWidget *TB_notes; GtkWidget *CM_closed; GtkWidget *ST_initial; //GtkWidget *ST_warning; GtkWidget *ST_minimum; GtkWidget *ST_maximum; GtkWidget *CY_template; GtkWidget *CM_nosummary; GtkWidget *CM_nobudget; GtkWidget *CM_noreport; GtkWidget *CM_outflowsum; GtkWidget *ST_cheque1; GtkWidget *ST_cheque2; }; struct accPopContext { GtkTreeModel *model; guint32 except_key; //guint32 kcur; gint insert_type; }; GtkWidget *ui_acc_manage_dialog (void); /* = = = = = = = = = = */ void ui_acc_entry_popover_populate(GtkBox *box, GHashTable *hash, gint insert_type); void ui_acc_entry_popover_populate_except(GtkBox *box, GHashTable *hash, guint except_key, gint insert_type); GtkTreeModel *ui_acc_entry_popover_get_model(GtkBox *box); GtkWidget *ui_acc_entry_popover_get_entry(GtkBox *box); Account *ui_acc_entry_popover_get(GtkBox *box); guint32 ui_acc_entry_popover_get_key_add_new(GtkBox *box); guint32 ui_acc_entry_popover_get_key(GtkBox *box); void ui_acc_entry_popover_set_single(GtkBox *box); void ui_acc_entry_popover_set_active(GtkBox *box, guint32 key); GtkWidget *ui_acc_entry_popover_new(GtkWidget *label); /* = = = = = = = = = = */ guint ui_acc_listview_toggle_to_filter(GtkTreeView *treeview, Filter *filter); void ui_acc_listview_quick_select(GtkTreeView *treeview, const gchar *uri); void ui_acc_listview_set_active(GtkTreeView *treeview, guint32 key); void ui_acc_listview_add(GtkTreeView *treeview, Account *item); guint32 ui_acc_listview_get_selected_key(GtkTreeView *treeview); void ui_acc_listview_remove_selected(GtkTreeView *treeview); void ui_acc_listview_populate(GtkWidget *view, gint insert_type, gchar *needle); GtkWidget *ui_acc_listview_new(gboolean withtoggle); #endif homebank-5.9.1/src/ui-budget-tabview.c0000644000175000017500000030506314736461407013275 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 2018-2019 Adrien Dorsaz * Copyright (C) 2019-2023 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "dsp-mainwindow.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "hbtk-switcher.h" #include "ui-budget-tabview.h" /****************************************************************************/ /* Implementation notes */ /****************************************************************************/ /* * This dialog allows user to manage its budget within a GtkTreeView. * * The view rows are separated in three main tree roots: * - Income: contains all Homebank categories of income type (see GF_INCOME) * - Expense: contains all Homebank categories of expense type * - Total: contains 3 sub-rows: * - Income: sum all amounts of the Income root * - Expense: sum all amounts of the Expense root * - Summary: difference between the two above sub-rows * * The view columns contain: * - Category: Homebank categories organised in hierarchy * according to the main tree roots above and the categories hierarchy * * - Annual Total: sum all amounts of the year for the category * * - Monthly Average: average of the amounts for the category * * - Monthly: set the monthly amount when the Same flag is active * - That column contains a toggle check box to enable or not monthly values * Check it to disable the GF_CUSTOM flag of Homebank categories * "Does this category has same amount planned every month ?" * * - 12 columns for each month of the year containing their specific amount * * The dialog shows 3 radio buttons on top to choose between 3 viewing modes: * - Summary: show Homebank categories with budget set or set with GF_FORCED * - Expense: show all available Homebank categories of expense type * - Income: show all available Homebank categories of income type * */ /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* Global data */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; static gchar *UI_BUD_TABVIEW_MONTHS[] = { N_("Jan"), N_("Feb"), N_("Mar"), N_("Apr"), N_("May"), N_("Jun"), N_("Jul"), N_("Aug"), N_("Sept"), N_("Oct"), N_("Nov"), N_("Dec"), NULL}; /* The different view mode available */ static gchar *UI_BUD_TABVIEW_VIEW_MODE[] = { N_("Summary"), N_("Expense"), N_("Income"), NULL }; /* These values has to correspond to UI_BUD_TABVIEW_VIEW_MODE[] */ enum ui_bud_tabview_view_mode { UI_BUD_TABVIEW_VIEW_SUMMARY = 0, UI_BUD_TABVIEW_VIEW_EXPENSE, UI_BUD_TABVIEW_VIEW_INCOME }; typedef enum ui_bud_tabview_view_mode ui_bud_tabview_view_mode_t; /* These values corresponds to the return of category_type_get from hb-category */ enum ui_bud_tabview_cat_type { UI_BUD_TABVIEW_CAT_TYPE_EXPENSE = -1, UI_BUD_TABVIEW_CAT_TYPE_NONE = 0, // Not real category type: used to retrieve tree roots UI_BUD_TABVIEW_CAT_TYPE_INCOME = 1 }; typedef enum ui_bud_tabview_cat_type ui_bud_tabview_cat_type_t; /* enum for the Budget Tree Store model */ enum ui_bud_tabview_store { UI_BUD_TABVIEW_CATEGORY_KEY = 0, UI_BUD_TABVIEW_CATEGORY_NAME, UI_BUD_TABVIEW_CATEGORY_FULLNAME, UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_IS_ROOT, // To retrieve easier the 3 main tree roots UI_BUD_TABVIEW_IS_TOTAL, // To retrieve rows inside the Total root UI_BUD_TABVIEW_IS_CHILD_HEADER, // The row corresponds to the head child which is shown before the separator UI_BUD_TABVIEW_IS_SEPARATOR, // Row to just display a separator in Tree View UI_BUD_TABVIEW_IS_MONITORING_FORCED, UI_BUD_TABVIEW_IS_SAME_AMOUNT, UI_BUD_TABVIEW_IS_SUB_CATEGORY, UI_BUD_TABVIEW_HAS_BUDGET, UI_BUD_TABVIEW_TOTAL, UI_BUD_TABVIEW_SAME_AMOUNT, UI_BUD_TABVIEW_JANUARY, UI_BUD_TABVIEW_FEBRUARY, UI_BUD_TABVIEW_MARCH, UI_BUD_TABVIEW_APRIL, UI_BUD_TABVIEW_MAY, UI_BUD_TABVIEW_JUNE, UI_BUD_TABVIEW_JULY, UI_BUD_TABVIEW_AUGUST, UI_BUD_TABVIEW_SEPTEMBER, UI_BUD_TABVIEW_OCTOBER, UI_BUD_TABVIEW_NOVEMBER, UI_BUD_TABVIEW_DECEMBER, UI_BUD_TABVIEW_NUMBER_COLOMNS }; typedef enum ui_bud_tabview_store ui_bud_tabview_store_t; // Retrieve a row iterator according to specific criterias const struct ui_bud_tabview_search_criteria { // Search by non-zero category key guint32 row_category_key; // Search by other criterias ui_bud_tabview_cat_type_t row_category_type; gboolean row_is_root; gboolean row_is_total; // Found iterator, NULL if not found GtkTreeIter *iterator; } ui_bud_tabview_search_criteria_default = {0, UI_BUD_TABVIEW_CAT_TYPE_NONE, FALSE, FALSE, NULL} ; typedef struct ui_bud_tabview_search_criteria ui_bud_tabview_search_criteria_t; /* * Local headers **/ // GtkTreeStore model static gboolean ui_bud_tabview_model_search_iterator (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ui_bud_tabview_search_criteria_t *search); static void ui_bud_tabview_model_add_category_with_lineage(GtkTreeStore *budget, GtkTreeIter *balanceIter, guint32 *key_category); static void ui_bud_tabview_model_collapse (GtkTreeView *view); static void ui_bud_tabview_model_insert_roots(GtkTreeStore* budget); static void ui_bud_tabview_model_update_monthly_total(GtkTreeStore* budget); static gboolean ui_bud_tabview_model_row_filter (GtkTreeModel *model, GtkTreeIter *iter, gpointer data); #if HB_BUD_TABVIEW_EDIT_ENABLE static gboolean ui_bud_tabview_model_row_merge_filter_with_headers (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); static gboolean ui_bud_tabview_model_row_filter_parents (GtkTreeModel *model, GtkTreeIter *iter, gpointer data); #endif static gint ui_bud_tabview_model_row_sort (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data); static GtkTreeModel * ui_bud_tabview_model_new (); // GtkTreeView widget static void ui_bud_tabview_view_display_category_name (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); static void ui_bud_tabview_view_display_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); static void ui_bud_tabview_view_display_is_same_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); static void ui_bud_tabview_view_display_annual_total (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); static void ui_bud_tabview_view_display_monthly_average(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); static void ui_bud_tabview_view_toggle (gpointer user_data, ui_bud_tabview_view_mode_t view_mode); static gboolean ui_bud_tabview_view_search (GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer data); #if HB_BUD_TABVIEW_EDIT_ENABLE static gboolean ui_bud_tabview_view_separator (GtkTreeModel *model, GtkTreeIter *iter, gpointer data); #endif static void ui_bud_tabview_view_on_select(GtkTreeSelection *treeselection, gpointer user_data); static GtkWidget *ui_bud_tabview_view_new (gpointer user_data); // UI actions #if HB_BUD_TABVIEW_EDIT_ENABLE static void ui_bud_tabview_cell_update_category(GtkCellRendererText *renderer, gchar *filter_path, gchar *new_text, gpointer user_data); #endif static void ui_bud_tabview_cell_update_amount(GtkCellRendererText *renderer, gchar *filter_path, gchar *new_text, gpointer user_data); static void ui_bud_tabview_cell_update_is_same_amount(GtkCellRendererText *renderer, gchar *filter_path, gpointer user_data); static void ui_bud_tabview_view_update_mode (GtkToggleButton *button, gpointer user_data); static void ui_bud_tabview_view_expand (GtkButton *button, gpointer user_data); static void ui_bud_tabview_view_collapse (GtkButton *button, gpointer user_data); static gboolean ui_bud_tabview_get_selected_category (GtkTreeModel **budget, GtkTreeIter *iter, Category **category, ui_bud_tabview_data_t *data); #if HB_BUD_TABVIEW_EDIT_ENABLE static gboolean ui_bud_tabview_get_selected_root_iter (GtkTreeModel **budget, GtkTreeIter *iter, ui_bud_tabview_data_t *data); static void ui_bud_tabview_category_add_full_filled (GtkWidget *source, gpointer user_data); static void ui_bud_tabview_category_add (GtkButton *button, gpointer user_data); static void ui_bud_tabview_category_delete (GtkButton *button, gpointer user_data); static void ui_bud_tabview_category_merge_full_filled (GtkWidget *source, gpointer user_data); static void ui_bud_tabview_category_merge (GtkButton *button, gpointer user_data); #endif static void ui_bud_tabview_category_reset (GtkButton *button, gpointer user_data); static gboolean ui_bud_tabview_on_key_press(GtkWidget *widget, GdkEvent *event, gpointer user_data); static void ui_bud_tabview_dialog_close(ui_bud_tabview_data_t *data, gint response); /** * GtkTreeStore model **/ // Look for category by deterministic characteristics // Only categories with specific characteristics can be easily found // like roots, total rows and categories with real key id // You are responsible to g_free iterator static gboolean ui_bud_tabview_model_search_iterator (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ui_bud_tabview_search_criteria_t *search) { guint32 category_key; ui_bud_tabview_cat_type_t category_type; gboolean is_found = FALSE, is_root, is_total, is_separator; search->iterator = NULL; gtk_tree_model_get (model, iter, UI_BUD_TABVIEW_CATEGORY_KEY, &category_key, UI_BUD_TABVIEW_CATEGORY_TYPE, &category_type, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_TOTAL, &is_total, UI_BUD_TABVIEW_IS_SEPARATOR, &is_separator, -1); if (search->row_category_key > 0 // Look for iter of real category row && category_key == search->row_category_key && !(is_total) && !(is_root) ) { DB(g_print("\tFound row with key %d\n", category_key)); is_found = TRUE; } else if (search->row_category_key == 0 // Look for iter of fake category row && is_root == search->row_is_root && is_total == search->row_is_total && category_type == search->row_category_type && !is_separator ) { DB(g_print("\tFound row with is_root = %d, is_total %d, type = %d\n", is_root, is_total, category_type)); is_found = TRUE; } // If found, save result to struct if (is_found) { search->iterator = g_malloc0(sizeof(GtkTreeIter)); *search->iterator = *iter; } return is_found; } /* Recursive function which add a new row in the budget model with all its ancestors */ static void ui_bud_tabview_model_add_category_with_lineage(GtkTreeStore *budget, GtkTreeIter *balanceIter, guint32 *key_category) { GtkTreeIter child; GtkTreeIter *parent; Category *bdg_category; gboolean cat_is_same_amount; ui_bud_tabview_search_criteria_t parent_search = ui_bud_tabview_search_criteria_default; bdg_category = da_cat_get(*key_category); if (bdg_category == NULL) { return; } cat_is_same_amount = (! (bdg_category->flags & GF_CUSTOM)); /* Check if parent category already exists */ parent_search.row_category_key = bdg_category->parent; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &parent_search); if (bdg_category->parent == 0) { // If we are one of the oldest parent, stop recursion gtk_tree_store_insert ( budget, &child, balanceIter, -1); } else { if (parent_search.iterator) { DB(g_print(" Recursion optimisation: parent key %d already exists\n", parent_search.row_category_key)); // If parent already exists, stop recursion parent = parent_search.iterator; } else { // Parent has not been found, ask to create it first ui_bud_tabview_model_add_category_with_lineage(budget, balanceIter, &(bdg_category->parent)); // Now, we are sure parent exists, look for it again gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &parent_search); parent = parent_search.iterator; } gtk_tree_store_insert ( budget, &child, parent, -1); } DB(g_print(" >insert '%s'\n", bdg_category->fullname)); gtk_tree_store_set( budget, &child, UI_BUD_TABVIEW_CATEGORY_KEY, bdg_category->key, UI_BUD_TABVIEW_CATEGORY_NAME, bdg_category->typename, UI_BUD_TABVIEW_CATEGORY_FULLNAME, bdg_category->fullname, UI_BUD_TABVIEW_CATEGORY_TYPE, category_type_get (bdg_category), UI_BUD_TABVIEW_IS_MONITORING_FORCED, (bdg_category->flags & GF_FORCED), UI_BUD_TABVIEW_IS_ROOT, FALSE, UI_BUD_TABVIEW_IS_SAME_AMOUNT, cat_is_same_amount, UI_BUD_TABVIEW_IS_TOTAL, FALSE, UI_BUD_TABVIEW_IS_SUB_CATEGORY, bdg_category->parent != 0, UI_BUD_TABVIEW_HAS_BUDGET, (bdg_category->flags & GF_BUDGET), UI_BUD_TABVIEW_SAME_AMOUNT, bdg_category->budget[0], UI_BUD_TABVIEW_JANUARY, bdg_category->budget[1], UI_BUD_TABVIEW_FEBRUARY, bdg_category->budget[2], UI_BUD_TABVIEW_MARCH, bdg_category->budget[3], UI_BUD_TABVIEW_APRIL, bdg_category->budget[4], UI_BUD_TABVIEW_MAY, bdg_category->budget[5], UI_BUD_TABVIEW_JUNE, bdg_category->budget[6], UI_BUD_TABVIEW_JULY, bdg_category->budget[7], UI_BUD_TABVIEW_AUGUST, bdg_category->budget[8], UI_BUD_TABVIEW_SEPTEMBER, bdg_category->budget[9], UI_BUD_TABVIEW_OCTOBER, bdg_category->budget[10], UI_BUD_TABVIEW_NOVEMBER, bdg_category->budget[11], UI_BUD_TABVIEW_DECEMBER, bdg_category->budget[12], -1); // Always add child header and separator parent = gtk_tree_iter_copy(&child); gtk_tree_store_insert_with_values( budget, &child, parent, -1, UI_BUD_TABVIEW_CATEGORY_KEY, bdg_category->key, UI_BUD_TABVIEW_CATEGORY_NAME, bdg_category->name, UI_BUD_TABVIEW_CATEGORY_FULLNAME, bdg_category->fullname, UI_BUD_TABVIEW_CATEGORY_TYPE, category_type_get (bdg_category), UI_BUD_TABVIEW_IS_CHILD_HEADER, TRUE, -1); gtk_tree_store_insert_with_values( budget, &child, parent, -1, UI_BUD_TABVIEW_CATEGORY_KEY, bdg_category->key, UI_BUD_TABVIEW_CATEGORY_TYPE, category_type_get (bdg_category), UI_BUD_TABVIEW_IS_SEPARATOR, TRUE, -1); gtk_tree_iter_free(parent); g_free(parent_search.iterator); return; } // Collapse all categories except root static void ui_bud_tabview_model_collapse (GtkTreeView *view) { GtkTreeModel *budget; GtkTreePath *path; ui_bud_tabview_search_criteria_t root_search = ui_bud_tabview_search_criteria_default; budget = gtk_tree_view_get_model (view); gtk_tree_view_collapse_all(view); // Keep root categories expanded // Retrieve income root root_search.row_is_root = TRUE; root_search.row_is_total = FALSE; root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_INCOME; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); if (root_search.iterator != NULL) { path = gtk_tree_model_get_path(budget, root_search.iterator); gtk_tree_view_expand_row(view, path, FALSE); } // Retrieve expense root root_search.row_is_root = TRUE; root_search.row_is_total = FALSE; root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_EXPENSE; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); if (root_search.iterator != NULL) { path = gtk_tree_model_get_path(budget, root_search.iterator); gtk_tree_view_expand_row(view, path, FALSE); } // Retrieve total root root_search.row_is_root = TRUE; root_search.row_is_total = FALSE; root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_NONE; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); if (root_search.iterator != NULL) { path = gtk_tree_model_get_path(budget, root_search.iterator); gtk_tree_view_expand_row(view, path, FALSE); } g_free(root_search.iterator); return; } // Create tree roots for the store static void ui_bud_tabview_model_insert_roots(GtkTreeStore* budget) { GtkTreeIter iter, root; gtk_tree_store_insert_with_values ( budget, &root, NULL, -1, UI_BUD_TABVIEW_CATEGORY_NAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_INCOME]), UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_INCOME]), UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_INCOME, UI_BUD_TABVIEW_IS_ROOT, TRUE, UI_BUD_TABVIEW_IS_TOTAL, FALSE, -1); // For add category dialog: copy of the root to be able to select it gtk_tree_store_insert_with_values ( budget, &iter, &root, -1, UI_BUD_TABVIEW_CATEGORY_NAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_INCOME]), UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_INCOME]), UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_INCOME, UI_BUD_TABVIEW_CATEGORY_KEY, 0, UI_BUD_TABVIEW_IS_ROOT, FALSE, UI_BUD_TABVIEW_IS_TOTAL, FALSE, UI_BUD_TABVIEW_IS_CHILD_HEADER, TRUE, -1); // For add category dialog: add a separator to distinguish root with children gtk_tree_store_insert_with_values ( budget, &iter, &root, -1, UI_BUD_TABVIEW_IS_SEPARATOR, TRUE, UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_INCOME, -1); gtk_tree_store_insert_with_values ( budget, &root, NULL, -1, UI_BUD_TABVIEW_CATEGORY_NAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_EXPENSE]), UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_EXPENSE]), UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_EXPENSE, UI_BUD_TABVIEW_IS_ROOT, TRUE, UI_BUD_TABVIEW_IS_TOTAL, FALSE, -1); // For add category dialog: copy of the root to be able to select it gtk_tree_store_insert_with_values ( budget, &iter, &root, -1, UI_BUD_TABVIEW_CATEGORY_NAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_EXPENSE]), UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_EXPENSE]), UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_EXPENSE, UI_BUD_TABVIEW_CATEGORY_KEY, 0, UI_BUD_TABVIEW_IS_ROOT, FALSE, UI_BUD_TABVIEW_IS_TOTAL, FALSE, UI_BUD_TABVIEW_IS_CHILD_HEADER, TRUE, -1); // For add category dialog: add a separator to distinguish root with children gtk_tree_store_insert_with_values ( budget, &iter, &root, -1, UI_BUD_TABVIEW_IS_SEPARATOR, TRUE, UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_EXPENSE, -1); gtk_tree_store_insert_with_values ( budget, &root, NULL, -1, UI_BUD_TABVIEW_CATEGORY_NAME, _("Totals"), UI_BUD_TABVIEW_CATEGORY_FULLNAME, _("Totals"), UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_NONE, UI_BUD_TABVIEW_IS_ROOT, TRUE, UI_BUD_TABVIEW_IS_TOTAL, FALSE, -1); return; } static gdouble test_sum(Category *catitem, gdouble *total_tab) { gdouble totalcat = 0.0; for(gint j=1;j<=12;j++) { if(!(catitem->flags & GF_CUSTOM)) { total_tab[j] += catitem->budget[0]; totalcat += catitem->budget[0]; } else { total_tab[j] += catitem->budget[j]; totalcat += catitem->budget[j]; } } total_tab[0] += totalcat; return totalcat; } static void test_total_sum(GtkTreeStore *budget, GtkTreeIter *root, gdouble *total_tab) { GtkTreeIter iter, child; gboolean valid, cvalid, cheader, sep; guint32 key, ckey; //valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(budget), &iter); valid = gtk_tree_model_iter_children (GTK_TREE_MODEL(budget), &iter, root); while (valid) { Category *catitem; gtk_tree_model_get(GTK_TREE_MODEL(budget), &iter, UI_BUD_TABVIEW_CATEGORY_KEY, &key, UI_BUD_TABVIEW_IS_CHILD_HEADER, &cheader, UI_BUD_TABVIEW_IS_SEPARATOR, &sep, -1); if( cheader == FALSE && sep == FALSE ) { gdouble tmpsum = 0.0; catitem = da_cat_get(key); DB( g_print(" iter: %d %s\n", key, catitem->name) ); tmpsum += test_sum(catitem, total_tab); // children ? cvalid = gtk_tree_model_iter_children (GTK_TREE_MODEL(budget), &child, &iter); while (cvalid) { gtk_tree_model_get(GTK_TREE_MODEL(budget), &child, UI_BUD_TABVIEW_CATEGORY_KEY, &ckey, UI_BUD_TABVIEW_IS_CHILD_HEADER, &cheader, UI_BUD_TABVIEW_IS_SEPARATOR, &sep, -1); if( cheader == FALSE && sep == FALSE ) { gdouble cbudget; catitem = da_cat_get(ckey); DB( g_print(" child: %d %s\n", ckey, catitem->name) ); cbudget = test_sum(catitem, total_tab); tmpsum += cbudget; gtk_tree_store_set ( budget, &child, UI_BUD_TABVIEW_TOTAL, cbudget, -1); } cvalid = gtk_tree_model_iter_next(GTK_TREE_MODEL(budget), &child); } gtk_tree_store_set ( budget, &iter, UI_BUD_TABVIEW_TOTAL, tmpsum, -1); } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(budget), &iter); } } // Update (or insert) total rows for a budget according to the view mode // This function will is used to initiate model and to refresh it after change by user static void ui_bud_tabview_model_update_monthly_total(GtkTreeStore* budget) { ui_bud_tabview_search_criteria_t root_search = ui_bud_tabview_search_criteria_default; GtkTreeIter total_root, child; double total_income[13] = {0}, total_expense[13] = {0}; // Retrieve required root root_search.row_is_root = TRUE; root_search.row_is_total = FALSE; //#2036404 compute total root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_INCOME; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); test_total_sum(budget, root_search.iterator, total_income); //#2036404 compute total root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_EXPENSE; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); test_total_sum(budget, root_search.iterator, total_expense); // Retrieve total root and insert required total rows root_search.row_is_root = TRUE; root_search.row_is_total = FALSE; root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_NONE; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); if (!root_search.iterator) { return; } total_root = *root_search.iterator; // Retrieve and set totals root_search.row_is_root = FALSE; root_search.row_is_total = TRUE; // First, look for Incomes root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_INCOME; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); if (root_search.iterator) { child = *root_search.iterator; } else { gtk_tree_store_insert(budget, &child, &total_root, -1); } gtk_tree_store_set ( budget, &child, UI_BUD_TABVIEW_CATEGORY_NAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_INCOME]), UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_INCOME]), UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_INCOME, UI_BUD_TABVIEW_IS_TOTAL, TRUE, UI_BUD_TABVIEW_TOTAL, total_income[0], UI_BUD_TABVIEW_JANUARY, total_income[1], UI_BUD_TABVIEW_FEBRUARY, total_income[2], UI_BUD_TABVIEW_MARCH, total_income[3], UI_BUD_TABVIEW_APRIL, total_income[4], UI_BUD_TABVIEW_MAY, total_income[5], UI_BUD_TABVIEW_JUNE, total_income[6], UI_BUD_TABVIEW_JULY, total_income[7], UI_BUD_TABVIEW_AUGUST, total_income[8], UI_BUD_TABVIEW_SEPTEMBER, total_income[9], UI_BUD_TABVIEW_OCTOBER, total_income[10], UI_BUD_TABVIEW_NOVEMBER, total_income[11], UI_BUD_TABVIEW_DECEMBER, total_income[12], -1); // Then look for Expenses root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_EXPENSE; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); if (root_search.iterator) { child = *root_search.iterator; } else { gtk_tree_store_insert(budget, &child, &total_root, -1); } gtk_tree_store_set ( budget, &child, UI_BUD_TABVIEW_CATEGORY_NAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_EXPENSE]), UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_EXPENSE]), UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_EXPENSE, UI_BUD_TABVIEW_IS_TOTAL, TRUE, UI_BUD_TABVIEW_TOTAL, total_expense[0], UI_BUD_TABVIEW_JANUARY, total_expense[1], UI_BUD_TABVIEW_FEBRUARY, total_expense[2], UI_BUD_TABVIEW_MARCH, total_expense[3], UI_BUD_TABVIEW_APRIL, total_expense[4], UI_BUD_TABVIEW_MAY, total_expense[5], UI_BUD_TABVIEW_JUNE, total_expense[6], UI_BUD_TABVIEW_JULY, total_expense[7], UI_BUD_TABVIEW_AUGUST, total_expense[8], UI_BUD_TABVIEW_SEPTEMBER, total_expense[9], UI_BUD_TABVIEW_OCTOBER, total_expense[10], UI_BUD_TABVIEW_NOVEMBER, total_expense[11], UI_BUD_TABVIEW_DECEMBER, total_expense[12], -1); // Finally, set Balance total row root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_NONE; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); if (root_search.iterator) { child = *root_search.iterator; } else { gtk_tree_store_insert(budget, &child, &total_root, -1); } gtk_tree_store_set ( budget, &child, UI_BUD_TABVIEW_CATEGORY_NAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_SUMMARY]), UI_BUD_TABVIEW_CATEGORY_FULLNAME, _(UI_BUD_TABVIEW_VIEW_MODE[UI_BUD_TABVIEW_VIEW_SUMMARY]), UI_BUD_TABVIEW_CATEGORY_TYPE, UI_BUD_TABVIEW_CAT_TYPE_NONE, UI_BUD_TABVIEW_IS_TOTAL, TRUE, UI_BUD_TABVIEW_TOTAL, total_income[0] + total_expense[0], UI_BUD_TABVIEW_JANUARY, total_income[1] + total_expense[1], UI_BUD_TABVIEW_FEBRUARY, total_income[2] + total_expense[2], UI_BUD_TABVIEW_MARCH, total_income[3] + total_expense[3], UI_BUD_TABVIEW_APRIL, total_income[4] + total_expense[4], UI_BUD_TABVIEW_MAY, total_income[5] + total_expense[5], UI_BUD_TABVIEW_JUNE, total_income[6] + total_expense[6], UI_BUD_TABVIEW_JULY, total_income[7] + total_expense[7], UI_BUD_TABVIEW_AUGUST, total_income[8] + total_expense[8], UI_BUD_TABVIEW_SEPTEMBER, total_income[9] + total_expense[9], UI_BUD_TABVIEW_OCTOBER, total_income[10] + total_expense[10], UI_BUD_TABVIEW_NOVEMBER, total_income[11] + total_expense[11], UI_BUD_TABVIEW_DECEMBER, total_income[12] + total_expense[12], -1); g_free(root_search.iterator); return; } // Filter shown rows according to VIEW mode static gboolean ui_bud_tabview_model_row_filter (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gboolean is_visible, is_root, is_total, is_separator, is_childheader; ui_bud_tabview_data_t* data; ui_bud_tabview_view_mode_t view_mode; guint32 category_key; ui_bud_tabview_cat_type_t category_type; Category *bdg_category; is_visible = TRUE; data = user_data; view_mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_TOTAL, &is_total, UI_BUD_TABVIEW_IS_SEPARATOR, &is_separator, UI_BUD_TABVIEW_IS_CHILD_HEADER, &is_childheader, UI_BUD_TABVIEW_CATEGORY_KEY, &category_key, UI_BUD_TABVIEW_CATEGORY_TYPE, &category_type, -1); // On specific mode, hide categories of opposite type if (!is_total && category_type == UI_BUD_TABVIEW_CAT_TYPE_INCOME && view_mode == UI_BUD_TABVIEW_VIEW_EXPENSE) { is_visible = FALSE; } if (!is_total && category_type == UI_BUD_TABVIEW_CAT_TYPE_EXPENSE && view_mode == UI_BUD_TABVIEW_VIEW_INCOME) { is_visible = FALSE; } // Hide fake first child root used for add dialog if (is_childheader || is_separator) { is_visible = FALSE; } // On balance mode, hide not forced empty categories if (!is_total && !is_root && !is_childheader && !is_separator && view_mode == UI_BUD_TABVIEW_VIEW_SUMMARY) { bdg_category = da_cat_get(category_key); if (bdg_category != NULL) { // Either the category has some budget, or its display is forced is_visible = (bdg_category->flags & (GF_BUDGET|GF_FORCED)); // Force display if one of its children should be displayed if (!is_visible) { GtkTreeIter child; Category *subcat; guint32 subcat_key; gint child_id=0; while (gtk_tree_model_iter_nth_child(model, &child, iter, child_id)) { gtk_tree_model_get(model, &child, UI_BUD_TABVIEW_CATEGORY_KEY, &subcat_key, -1); if (subcat_key != 0) { subcat = da_cat_get (subcat_key); if (subcat != NULL) { is_visible = (subcat->flags & (GF_BUDGET|GF_FORCED)); } } // Stop loop on first visible children if (is_visible) { break; } ++child_id; } } } } return is_visible; } #if HB_BUD_TABVIEW_EDIT_ENABLE // Filter rows to show only parent categories static gboolean ui_bud_tabview_model_row_filter_parents (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; gboolean is_visible, is_root, is_total, is_separator, is_childheader; Category *bdg_category; guint32 category_key; ui_bud_tabview_cat_type_t category_type; ui_bud_tabview_view_mode_t view_mode = UI_BUD_TABVIEW_VIEW_SUMMARY; view_mode = hbtk_radio_button_get_active(GTK_CONTAINER(data->RA_mode)); is_visible = TRUE; gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_CATEGORY_KEY, &category_key, UI_BUD_TABVIEW_CATEGORY_TYPE, &category_type, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_TOTAL, &is_total, UI_BUD_TABVIEW_IS_CHILD_HEADER, &is_childheader, UI_BUD_TABVIEW_IS_SEPARATOR, &is_separator, -1); // Show root according to view_mode if (is_root) { // Always hide total root if(category_type == UI_BUD_TABVIEW_CAT_TYPE_NONE) { is_visible = FALSE; } else if(view_mode == UI_BUD_TABVIEW_VIEW_EXPENSE && category_type == UI_BUD_TABVIEW_CAT_TYPE_INCOME) { is_visible = FALSE; } else if(view_mode == UI_BUD_TABVIEW_VIEW_INCOME && category_type == UI_BUD_TABVIEW_CAT_TYPE_EXPENSE) { is_visible = FALSE; } } // Hide Total rows if (is_total) { is_visible = FALSE; } if (category_key > 0 && (is_separator || is_childheader)) { is_visible = FALSE; } else if (category_key > 0) { // Hide rows according to currently view mode if(view_mode == UI_BUD_TABVIEW_VIEW_EXPENSE && category_type == UI_BUD_TABVIEW_CAT_TYPE_INCOME) { is_visible = FALSE; } else if(view_mode == UI_BUD_TABVIEW_VIEW_INCOME && category_type == UI_BUD_TABVIEW_CAT_TYPE_EXPENSE) { is_visible = FALSE; } else { // Show categories without parents bdg_category = da_cat_get(category_key); if (bdg_category != NULL) { if (bdg_category->parent > 0) { is_visible = FALSE; } } } } return is_visible; } // Filter rows to show only mergeable categories static gboolean ui_bud_tabview_model_row_merge_filter_with_headers (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; gboolean is_visible, is_root, is_total, is_separator, is_childheader; guint32 category_key; ui_bud_tabview_cat_type_t category_type; is_visible = TRUE; gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_CATEGORY_KEY, &category_key, UI_BUD_TABVIEW_CATEGORY_TYPE, &category_type, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_TOTAL, &is_total, UI_BUD_TABVIEW_IS_CHILD_HEADER, &is_childheader, UI_BUD_TABVIEW_IS_SEPARATOR, &is_separator, -1); // Hide source merge row if (data->MERGE_source_category_key == category_key) { is_visible = FALSE; } // Hide Total root if (is_root && category_type == UI_BUD_TABVIEW_CAT_TYPE_NONE ) { is_visible = FALSE; } // Hide Total rows if (is_total) { is_visible = FALSE; } if ((is_separator || is_childheader)) { GtkTreeIter parent; gtk_tree_model_iter_parent(model, &parent, iter); // Show child header and separator if parent has more than 2 children is_visible = (gtk_tree_model_iter_n_children(model, &parent) > 2); } return is_visible; } #endif static gint ui_bud_tabview_model_row_sort (GtkTreeModel *model, GtkTreeIter *cat_a, GtkTreeIter *cat_b, gpointer user_data) { const gchar* cat_a_name; const gchar* cat_b_name; ui_bud_tabview_cat_type_t cat_a_type, cat_b_type; guint32 cat_a_key, cat_b_key; gboolean cat_a_is_childheader, cat_a_is_separator, cat_b_is_childheader, cat_b_is_separator; gint order = 0; gtk_tree_model_get(model, cat_a, UI_BUD_TABVIEW_CATEGORY_NAME, &cat_a_name, UI_BUD_TABVIEW_CATEGORY_TYPE, &cat_a_type, UI_BUD_TABVIEW_CATEGORY_KEY, &cat_a_key, UI_BUD_TABVIEW_IS_CHILD_HEADER, &cat_a_is_childheader, UI_BUD_TABVIEW_IS_SEPARATOR, &cat_a_is_separator, -1); gtk_tree_model_get(model, cat_b, UI_BUD_TABVIEW_CATEGORY_NAME, &cat_b_name, UI_BUD_TABVIEW_CATEGORY_TYPE, &cat_b_type, UI_BUD_TABVIEW_CATEGORY_KEY, &cat_b_key, UI_BUD_TABVIEW_IS_CHILD_HEADER, &cat_b_is_childheader, UI_BUD_TABVIEW_IS_SEPARATOR, &cat_b_is_separator, -1); // Sort first by category type if (cat_a_type != cat_b_type) { switch (cat_a_type) { case UI_BUD_TABVIEW_CAT_TYPE_INCOME: order = -1; break; case UI_BUD_TABVIEW_CAT_TYPE_EXPENSE: order = 0; break; case UI_BUD_TABVIEW_CAT_TYPE_NONE: order = 1; break; } } else { // On standard categories, just order by name if (!cat_a_is_childheader && !cat_a_is_separator && !cat_b_is_childheader && !cat_b_is_separator) { order = g_utf8_collate(g_utf8_casefold(cat_a_name, -1), g_utf8_casefold(cat_b_name, -1) ); } // Otherwise, fake categories have to be first (header and separator) else if (cat_a_is_childheader || cat_a_is_separator) { if (!cat_b_is_separator && !cat_b_is_childheader) { order = -1; } // When both are fake, header has to be first else { order = (cat_a_is_childheader ? -1 : 1); } } else { // Same idea for fake categories when cat_b is fake, but // with reversed result, because sort function return // result according to cat_a if (!cat_a_is_separator && !cat_a_is_childheader) { order = 1; } else { order = (cat_b_is_childheader ? 1 : -1); } } } return order; } static void ui_bud_tabview_model_populate (GtkTreeStore *budget) { GtkTreeIter *iter_income, *iter_expense; guint32 n_category; ui_bud_tabview_search_criteria_t root_search = ui_bud_tabview_search_criteria_default; DB( g_print("\n[ui-budget] model populate\n") ) /* Create tree roots */ ui_bud_tabview_model_insert_roots (budget); // Retrieve required root root_search.row_is_root = TRUE; root_search.row_is_total = FALSE; root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_INCOME; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); iter_income = root_search.iterator; root_search.row_category_type = UI_BUD_TABVIEW_CAT_TYPE_EXPENSE; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); iter_expense = root_search.iterator; /* Create rows for real categories */ n_category = da_cat_get_max_key(); for(guint32 i=1; i<=n_category; ++i) { Category *bdg_category; gboolean cat_is_income; bdg_category = da_cat_get(i); if (bdg_category == NULL) { continue; } cat_is_income = (category_type_get (bdg_category) == 1); DB(g_print(" category %d:'%s' isincome=%d, issub=%d hasbudget=%d parent=%d\n", bdg_category->key, bdg_category->name, cat_is_income, (bdg_category->flags & GF_SUB), (bdg_category->flags & GF_BUDGET), bdg_category->parent)); // Compute totals and initiate category in right tree root if (cat_is_income) { ui_bud_tabview_model_add_category_with_lineage(budget, iter_income, &(bdg_category->key)); } else if (!cat_is_income) { ui_bud_tabview_model_add_category_with_lineage(budget, iter_expense, &(bdg_category->key)); } } /* Create rows for total root */ ui_bud_tabview_model_update_monthly_total(GTK_TREE_STORE(budget)); g_free(root_search.iterator); } // the budget model creation static GtkTreeModel * ui_bud_tabview_model_new () { GtkTreeStore *budget; // Create Tree Store budget = gtk_tree_store_new ( UI_BUD_TABVIEW_NUMBER_COLOMNS, G_TYPE_UINT, // UI_BUD_TABVIEW_CATEGORY_KEY G_TYPE_STRING, // UI_BUD_TABVIEW_CATEGORY_NAME G_TYPE_STRING, // UI_BUD_TABVIEW_CATEGORY_FULLNAME G_TYPE_INT, // UI_BUD_TABVIEW_CATEGORY_TYPE G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_ROOT G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_TOTAL G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_CHILD_HEADER G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SEPARATOR G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_MONITORING_FORCED G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SAME_AMOUNT G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_IS_SUB_CATEGORY G_TYPE_BOOLEAN, // UI_BUD_TABVIEW_HAS_BUDGET G_TYPE_DOUBLE, // UI_BUD_TABVIEW_TOTAL G_TYPE_DOUBLE, // UI_BUD_TABVIEW_SAME_AMOUNT G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JANUARY G_TYPE_DOUBLE, // UI_BUD_TABVIEW_FEBRUARY G_TYPE_DOUBLE, // UI_BUD_TABVIEW_MARCH G_TYPE_DOUBLE, // UI_BUD_TABVIEW_APRIL G_TYPE_DOUBLE, // UI_BUD_TABVIEW_MAY G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JUNE G_TYPE_DOUBLE, // UI_BUD_TABVIEW_JULY G_TYPE_DOUBLE, // UI_BUD_TABVIEW_AUGUST G_TYPE_DOUBLE, // UI_BUD_TABVIEW_SEPTEMBER G_TYPE_DOUBLE, // UI_BUD_TABVIEW_OCTOBER G_TYPE_DOUBLE, // UI_BUD_TABVIEW_NOVEMBER G_TYPE_DOUBLE // UI_BUD_TABVIEW_DECEMBER ); // Populate the store ui_bud_tabview_model_populate(budget); /* Sort categories on same node level */ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE(budget), UI_BUD_TABVIEW_CATEGORY_NAME, ui_bud_tabview_model_row_sort, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (budget), UI_BUD_TABVIEW_CATEGORY_NAME, GTK_SORT_ASCENDING); return GTK_TREE_MODEL(budget); } /** * GtkTreeView functions **/ static void ui_bud_tabview_icon_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { //ui_bud_tabview_data_t *data = user_data; gchar *iconname = NULL; gboolean has_budget, is_monitoring_forced; //ui_bud_tabview_view_mode_t view_mode = UI_BUD_TABVIEW_VIEW_SUMMARY; gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_IS_MONITORING_FORCED, &is_monitoring_forced, UI_BUD_TABVIEW_HAS_BUDGET, &has_budget, -1); //view_mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); //5.3 added if( is_monitoring_forced ) iconname = ICONNAME_HB_ITEM_FORCED; else //if (view_mode != UI_BUD_TABVIEW_VIEW_SUMMARY ) //{ if( has_budget ) iconname = ICONNAME_HB_ITEM_BUDGET; //} g_object_set(renderer, "icon-name", iconname, NULL); } // Display category name in bold if it has budget static void ui_bud_tabview_view_display_category_name (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { //ui_bud_tabview_data_t *data = user_data; gboolean has_budget, is_sub_category; PangoWeight weight = PANGO_WEIGHT_NORMAL; //ui_bud_tabview_view_mode_t view_mode = UI_BUD_TABVIEW_VIEW_SUMMARY; gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_IS_SUB_CATEGORY, &is_sub_category, UI_BUD_TABVIEW_HAS_BUDGET, &has_budget, -1); //view_mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); //if (view_mode != UI_BUD_TABVIEW_VIEW_SUMMARY && has_budget) if (has_budget) { weight = PANGO_WEIGHT_BOLD; } g_object_set(renderer, //"style", is_sub_category ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL, "weight", weight, NULL); } // to enable or not edition on month columns static void ui_bud_tabview_view_display_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GtkAdjustment *adjustment; gboolean is_same_amount, is_root, is_total, is_visible, is_editable; ui_bud_tabview_cat_type_t row_category_type; gdouble amount = 0.0; gchar *text; gchar *fgcolor; const ui_bud_tabview_store_t column_id = GPOINTER_TO_INT(user_data); gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_CATEGORY_TYPE, &row_category_type, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_SAME_AMOUNT, &is_same_amount, UI_BUD_TABVIEW_IS_TOTAL, &is_total, -1); // Text to display if (is_same_amount) { gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_SAME_AMOUNT, &amount, -1); } else if (column_id >= UI_BUD_TABVIEW_JANUARY && column_id <= UI_BUD_TABVIEW_DECEMBER) { gtk_tree_model_get(model, iter, column_id, &amount, -1); } text = g_strdup_printf("%.2f", amount); fgcolor = get_normal_color_amount(amount); // Default styling values is_visible = TRUE; is_editable = FALSE; if (is_root) { is_visible = FALSE; is_editable = FALSE; } else if (is_total) { is_visible = TRUE; is_editable = FALSE; if (column_id == UI_BUD_TABVIEW_SAME_AMOUNT) { is_visible = FALSE; } } else if (is_same_amount) { is_visible = TRUE; is_editable = FALSE; if (column_id == UI_BUD_TABVIEW_SAME_AMOUNT) { is_editable = TRUE; } } else if (! is_same_amount) { is_visible = TRUE; is_editable = TRUE; if (column_id == UI_BUD_TABVIEW_SAME_AMOUNT) { is_editable = FALSE; } } // Finally, visibility depends on set amount is_visible = (is_visible && (is_editable || amount != 0.0)); adjustment = gtk_adjustment_new( 0.0, // initial-value -G_MAXDOUBLE, // minmal-value G_MAXDOUBLE, // maximal-value 0.5, // step increment 10, // page increment 0); // page size (0 because irrelevant for GtkSpinButton) g_object_set(renderer, "text", text, "visible", is_visible, "editable", is_editable, "foreground", fgcolor, "xalign", 1.0f, "adjustment", adjustment, "digits", 2, NULL); g_free(text); } // to enable or not edition on month columns static void ui_bud_tabview_view_display_is_same_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gboolean is_same_amount, is_total, is_root, is_visible, is_sensitive; gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_SAME_AMOUNT, &is_same_amount, UI_BUD_TABVIEW_IS_TOTAL, &is_total, -1); // Default values is_visible = TRUE; is_sensitive = TRUE; if (is_root || is_total) { is_visible = FALSE; is_sensitive = FALSE; } g_object_set(renderer, "activatable", TRUE, "active", is_same_amount, "visible", is_visible, "sensitive", is_sensitive, NULL); } // Compute dynamically the annual total static void ui_bud_tabview_view_display_annual_total (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gboolean is_root = FALSE; gchar *text; gchar *fgcolor; gboolean is_visible = TRUE; gdouble celltotal; gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_IS_ROOT, &is_root, //UI_BUD_TABVIEW_IS_SAME_AMOUNT, &is_same_amount, //UI_BUD_TABVIEW_SAME_AMOUNT, &amount, //UI_BUD_TABVIEW_IS_TOTAL, &is_total, UI_BUD_TABVIEW_TOTAL, &celltotal, -1); /*if (is_same_amount) { total = 12.0 * amount; } else { for (int i = UI_BUD_TABVIEW_JANUARY ; i <= UI_BUD_TABVIEW_DECEMBER ; ++i) { gtk_tree_model_get(model, iter, i, &amount, -1); total += amount; } } text = g_strdup_printf("%.2f // %.2f", total, celltotal);*/ text = g_strdup_printf("%.2f", celltotal); fgcolor = get_normal_color_amount(celltotal); if (is_root) { is_visible = FALSE; } // Finally, visibility depends on set amount //is_visible = (is_visible && amount != 0.0); //#1859275 visibility to be tested on total is_visible = (is_visible && celltotal != 0.0); g_object_set(renderer, "text", text, "foreground", fgcolor, "visible", is_visible, "xalign", 1.0f, NULL); g_free(text); } // Compute monthly average static void ui_bud_tabview_view_display_monthly_average(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gboolean is_same_amount = FALSE, is_total = FALSE, is_root = FALSE; gdouble amount = 0.0, celltotal; gdouble average = 0.0; gchar *text; gchar *fgcolor; gboolean is_visible = TRUE; gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_SAME_AMOUNT, &is_same_amount, UI_BUD_TABVIEW_SAME_AMOUNT, &amount, UI_BUD_TABVIEW_IS_TOTAL, &is_total, UI_BUD_TABVIEW_TOTAL, &celltotal, -1); /*if (is_same_amount) { average = amount; } else { for (int i = UI_BUD_TABVIEW_JANUARY ; i <= UI_BUD_TABVIEW_DECEMBER ; ++i) { gtk_tree_model_get(model, iter, i, &amount, -1); average += amount; } average = hb_amount_round(average / 12.0, 2); }*/ average = hb_amount_round(celltotal / 12.0, 2); text = g_strdup_printf("%.2f", average); fgcolor = get_normal_color_amount(average); if (is_root) { is_visible = FALSE; } // Finally, visibility depends on set amount is_visible = (is_visible && average != 0.0); g_object_set(renderer, "text", text, "foreground", fgcolor, "visible", is_visible, "xalign", 1.0f, NULL); g_free(text); } // When view mode is toggled: // - recreate the view to update columns rendering static void ui_bud_tabview_view_toggle (gpointer user_data, ui_bud_tabview_view_mode_t view_mode) { ui_bud_tabview_data_t *data = user_data; GtkTreeModel *budget; GtkWidget *view; GtkTreePath* firstRow; view = data->TV_budget; budget = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(budget)); if (data->TV_is_expanded) { gtk_tree_view_expand_all(GTK_TREE_VIEW(view)); } else { ui_bud_tabview_model_collapse(GTK_TREE_VIEW(view)); } gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(view))); firstRow = gtk_tree_path_new_from_string("0"); gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(view), firstRow, data->TVC_category, TRUE, 0, 0); DB(g_print("[ui_bud_tabview] : button state changed to: %d\n", view_mode)); return; } static gboolean ui_bud_tabview_view_search (GtkTreeModel *filter, gint column, const gchar *key, GtkTreeIter *filter_iter, gpointer data) { gboolean is_matching = FALSE, is_root, is_total; GtkTreeModel *budget; GtkTreeIter iter; gchar *category_name; budget = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter), &iter, filter_iter); gtk_tree_model_get(budget, &iter, UI_BUD_TABVIEW_CATEGORY_NAME, &category_name, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_TOTAL, &is_total, -1); if (!is_root && !is_total && g_strstr_len(g_utf8_casefold(category_name, -1), -1, g_utf8_casefold(key, -1))) { is_matching = TRUE; } // GtkTreeViewSearchEqualFunc has to return FALSE only if iter matches. return !is_matching; } #if HB_BUD_TABVIEW_EDIT_ENABLE static gboolean ui_bud_tabview_view_separator (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gboolean is_separator; gtk_tree_model_get(model, iter, UI_BUD_TABVIEW_IS_SEPARATOR, &is_separator, -1); return is_separator; } #endif // the budget view creation which run the model creation tool static GtkWidget *ui_bud_tabview_view_new (gpointer user_data) { GtkTreeViewColumn *col; GtkCellRenderer *renderer, *cat_name_renderer; GtkWidget *view; ui_bud_tabview_data_t *data = user_data; view = gtk_tree_view_new(); /* icon column */ col = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, ui_bud_tabview_icon_cell_data_function, (gpointer) data, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); /* --- Category column --- */ col = gtk_tree_view_column_new(); data->TVC_category = col; gtk_tree_view_column_set_title(col, _("Category")); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment(col, 0.5); gtk_tree_view_append_column(GTK_TREE_VIEW(view), col); gtk_tree_view_set_expander_column(GTK_TREE_VIEW(view), col); // Category Name cat_name_renderer = gtk_cell_renderer_text_new(); //#2004053 + add 5.6.2 g_object_set(cat_name_renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); gtk_tree_view_column_set_min_width(col, HB_MINWIDTH_LIST); gtk_tree_view_column_set_resizable(col, TRUE); gtk_tree_view_column_pack_start (col, cat_name_renderer, TRUE); gtk_tree_view_column_add_attribute(col, cat_name_renderer, "markup", UI_BUD_TABVIEW_CATEGORY_NAME); gtk_tree_view_column_set_cell_data_func(col, cat_name_renderer, ui_bud_tabview_view_display_category_name, (gpointer) data, NULL); #if HB_BUD_TABVIEW_EDIT_ENABLE g_object_set(cat_name_renderer, "editable", TRUE, NULL); g_signal_connect(cat_name_renderer, "edited", G_CALLBACK(ui_bud_tabview_cell_update_category), (gpointer) data); #endif /* --- Annual Total --- */ col = gtk_tree_view_column_new(); //gtk_tree_view_column_set_title(col, _("Annual Total")); gtk_tree_view_column_set_title(col, _("Annual\nTotal")); //gtk_tree_view_column_set_title(col, _("Total")); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment(col, 1.0); gtk_tree_view_append_column(GTK_TREE_VIEW(view), col); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, ui_bud_tabview_view_display_annual_total, NULL, NULL); /* --- Monthly average --- */ col = gtk_tree_view_column_new(); //gtk_tree_view_column_set_title(col, _("Monthly Average")); gtk_tree_view_column_set_title(col, _("Monthly\nAverage")); //gtk_tree_view_column_set_title(col, _("Average")); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment(col, 1.0); gtk_tree_view_append_column(GTK_TREE_VIEW(view), col); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, ui_bud_tabview_view_display_monthly_average, NULL, NULL); /* --- Monthly column --- */ col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _("Monthly")); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment(col, 1.0); gtk_tree_view_append_column(GTK_TREE_VIEW(view), col); // Monthly toggler renderer = gtk_cell_renderer_toggle_new(); //5.7 fix memhit because value was nor float... g_object_set(renderer, "xalign", 0.0f, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(col, renderer, ui_bud_tabview_view_display_is_same_amount, NULL, NULL); g_signal_connect (renderer, "toggled", G_CALLBACK(ui_bud_tabview_cell_update_is_same_amount), (gpointer) data); // Monthly amount renderer = gtk_cell_renderer_spin_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, ui_bud_tabview_view_display_amount, GINT_TO_POINTER(UI_BUD_TABVIEW_SAME_AMOUNT), NULL); g_object_set_data(G_OBJECT(renderer), "ui_bud_tabview_column_id", GINT_TO_POINTER(UI_BUD_TABVIEW_SAME_AMOUNT)); g_signal_connect(renderer, "edited", G_CALLBACK(ui_bud_tabview_cell_update_amount), (gpointer) data); /* --- Each month amount --- */ for (int i = UI_BUD_TABVIEW_JANUARY ; i <= UI_BUD_TABVIEW_DECEMBER ; ++i) { int month = i - UI_BUD_TABVIEW_JANUARY ; col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _(UI_BUD_TABVIEW_MONTHS[month])); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment(col, 1.0); gtk_tree_view_append_column(GTK_TREE_VIEW(view), col); renderer = gtk_cell_renderer_spin_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, ui_bud_tabview_view_display_amount, GINT_TO_POINTER(i), NULL); g_object_set_data(G_OBJECT(renderer), "ui_bud_tabview_column_id", GINT_TO_POINTER(i)); g_signal_connect(renderer, "edited", G_CALLBACK(ui_bud_tabview_cell_update_amount), (gpointer) data); } /* --- Empty column to expand according to the window width --- */ col = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(view), col); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(view)), GTK_SELECTION_SINGLE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(view), TRUE); gtk_tree_view_set_search_column(GTK_TREE_VIEW(view), UI_BUD_TABVIEW_CATEGORY_NAME); gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(view), (GtkTreeViewSearchEqualFunc) ui_bud_tabview_view_search, NULL, NULL); g_object_set(view, "enable-grid-lines", PREFS->grid_lines, "enable-tree-lines", FALSE, NULL); gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW (view), TRUE); return view; } /* * UI actions **/ #if HB_BUD_TABVIEW_EDIT_ENABLE // Update homebank category on user change static void ui_bud_tabview_cell_update_category(GtkCellRendererText *renderer, gchar *filter_path, gchar *new_text, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkWidget *view; GtkTreeIter filter_iter, iter; GtkTreeModel *filter, *budget; Category* category; guint32 category_key; gboolean is_root, is_total; DB(g_print("\n[ui_bud_tabview] category name updated with new name '%s'\n", new_text)); view = data->TV_budget; // Read filter data filter = gtk_tree_view_get_model (GTK_TREE_VIEW(view)); gtk_tree_model_get_iter_from_string (filter, &filter_iter, filter_path); // Convert data to budget model budget = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter), &iter, &filter_iter); gtk_tree_model_get (budget, &iter, UI_BUD_TABVIEW_CATEGORY_KEY, &category_key, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_TOTAL, &is_total, -1); category = da_cat_get (category_key); if (! category || is_root || is_total) { return; } // Update category name category_rename(category, new_text); // Notify of changes data->change++; // Update budget model // Current row gtk_tree_store_set( GTK_TREE_STORE(budget), &iter, UI_BUD_TABVIEW_CATEGORY_NAME, category->name, UI_BUD_TABVIEW_CATEGORY_FULLNAME, category->fullname, -1); return; } #endif // Update amount in budget model and homebank category on user change static void ui_bud_tabview_cell_update_amount(GtkCellRendererText *renderer, gchar *filter_path, gchar *new_text, gpointer user_data) { const ui_bud_tabview_store_t column_id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(renderer), "ui_bud_tabview_column_id")); ui_bud_tabview_data_t *data = user_data; GtkWidget *view; GtkTreeIter filter_iter, iter; GtkTreeModel *filter, *budget; Category* category; gdouble amount; gint forcedsign; guint32 category_key; DB(g_print("\n[ui_bud_tabview] amount updated:\n")); view = data->TV_budget; // Read filter data filter = gtk_tree_view_get_model (GTK_TREE_VIEW(view)); gtk_tree_model_get_iter_from_string (filter, &filter_iter, filter_path); // Convert data to budget model budget = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter), &iter, &filter_iter); gtk_tree_model_get (budget, &iter, UI_BUD_TABVIEW_CATEGORY_KEY, &category_key, -1); category = da_cat_get (category_key); if (! category) { return; } //#2071648 enable input +/- force sign forcedsign = hb_amount_forced_sign(new_text); amount = g_strtod(new_text, NULL); switch( forcedsign ) { case HB_AMT_SIGN_EXP: if( amount > 0) amount *= -1; break; case HB_AMT_SIGN_INC: if( amount < 0) amount *= -1; break; //#2052304 ensure sign to category sign default: if( amount > 0 && !(category->flags & GF_INCOME) ) amount *= -1; break; } DB(g_print("\tcolumn: %d (month: %d), category key: %d, amount %.2f\n", column_id, column_id - UI_BUD_TABVIEW_JANUARY + 1, category_key, amount)); // Update Category category->budget[column_id - UI_BUD_TABVIEW_JANUARY + 1] = amount; // Reset Budget Flag category->flags &= ~(GF_BUDGET); if (category->flags & GF_FORCED) { category->flags |= GF_BUDGET; } else { for(gint budget_id = 0; budget_id <=12; ++budget_id) { if( category->budget[budget_id] != 0.0) { category->flags |= GF_BUDGET; break; } } } // Notify of changes data->change++; // Update budget model // Current row gtk_tree_store_set( GTK_TREE_STORE(budget), &iter, UI_BUD_TABVIEW_HAS_BUDGET, (category->flags & GF_BUDGET), column_id, amount, -1); // Refresh total rows ui_bud_tabview_model_update_monthly_total (GTK_TREE_STORE(budget)); return; } // Update the row to (dis/enable) same amount for this category static void ui_bud_tabview_cell_update_is_same_amount(GtkCellRendererText *renderer, gchar *filter_path, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkWidget *view; GtkTreeIter filter_iter, iter; GtkTreeModel *filter, *budget; Category* category; gboolean issame; guint32 category_key; DB(g_print("\n[ui_bud_tabview] Is same amount updated:\n")); view = data->TV_budget; // Read filter data filter = gtk_tree_view_get_model (GTK_TREE_VIEW(view)); gtk_tree_model_get_iter_from_string (filter, &filter_iter, filter_path); // Convert data to budget model budget = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter), &iter, &filter_iter); gtk_tree_model_get (budget, &iter, UI_BUD_TABVIEW_CATEGORY_KEY, &category_key, UI_BUD_TABVIEW_IS_SAME_AMOUNT, &issame, -1); category = da_cat_get (category_key); if (! category) { return; } // Value has been toggled ! issame = !(issame); DB(g_print("\tcategory key: %d, issame: %d (before: %d)\n", category_key, issame, !(issame))); // Update Category // Reset Forced Flag category->flags &= ~(GF_CUSTOM); if (issame == FALSE) { category->flags |= (GF_CUSTOM); } // Notify of changes data->change++; // Update budget model // Current row gtk_tree_store_set( GTK_TREE_STORE(budget), &iter, UI_BUD_TABVIEW_IS_SAME_AMOUNT, issame, -1); // Refresh total rows ui_bud_tabview_model_update_monthly_total (GTK_TREE_STORE(budget)); return; } // Update budget view and model according to the new view mode selected static void ui_bud_tabview_view_update_mode (GtkToggleButton *button, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; ui_bud_tabview_view_mode_t view_mode = UI_BUD_TABVIEW_VIEW_SUMMARY; // Mode is directly set by radio button, because the UI_BUD_TABVIEW_VIEW_MODE and enum // for view mode are constructed to correspond (manually) view_mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); DB(g_print("\n[ui_bud_tabview] view mode toggled to: %d\n", view_mode)); ui_bud_tabview_view_toggle((gpointer) data, view_mode); return; } // Expand all categories inside the current view static void ui_bud_tabview_view_expand (GtkButton *button, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkWidget *view; view = data->TV_budget; data->TV_is_expanded = TRUE; gtk_tree_view_expand_all(GTK_TREE_VIEW(view)); return; } // Collapse all categories inside the current view static void ui_bud_tabview_view_collapse (GtkButton *button, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkWidget *view; view = data->TV_budget; data->TV_is_expanded = FALSE; ui_bud_tabview_model_collapse (GTK_TREE_VIEW(view)); return; } // From TreeView, retrieve the category, the budget TreeStore and the iter inside that store. // * budget: a GtkTreeModel // * iter: an unintialized GtkTreeIter // * category: a pointer of Category which will point to the found Category // If category is not retrieved, return FALSE and reset budget, iter and category. // That's especillaly useful for buttons outside the GtkTreeView. // Warning: iter has to be already allocated static gboolean ui_bud_tabview_get_selected_category (GtkTreeModel **budget, GtkTreeIter *iter, Category **category, ui_bud_tabview_data_t *data) { GtkWidget *view; GtkTreeModel *filter; GtkTreeSelection *selection; GtkTreeIter filter_iter; guint32 item_key; DB( g_print("[ui_bud_tabview_get_selected_category] retrieve category from selected row\n") ); view = data->TV_budget; // Read filter to retrieve the currently selected row filter = gtk_tree_view_get_model (GTK_TREE_VIEW(view)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view)); *budget = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); // Retrieve selected row from filter if possible if (gtk_tree_selection_get_selected(selection, &filter, &filter_iter)) { // Convert data to budget model gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter), iter, &filter_iter); // Avoid to return fake categories gtk_tree_model_get (*budget, iter, UI_BUD_TABVIEW_CATEGORY_KEY, &item_key, -1); if (item_key != 0) { DB(g_print("look category with key: %d\n", item_key)); *category = da_cat_get(item_key); return (*category != NULL); } } return FALSE; } #if HB_BUD_TABVIEW_EDIT_ENABLE // From TreeView, retrieve the the budget TreeStore and the root iter inside that store. // * budget: a GtkTreeModel // * iter: an unintialized GtkTreeIter // Return true if selected row is a root row. // Warning: iter has to be already allocated static gboolean ui_bud_tabview_get_selected_root_iter (GtkTreeModel **budget, GtkTreeIter *iter, ui_bud_tabview_data_t *data) { GtkWidget *view; GtkTreeModel *filter; GtkTreeSelection *selection; GtkTreeIter filter_iter; gboolean is_root; DB( g_print("[ui_bud_tabview_get_selected_root_iter] retrieve root iter from selected row\n") ); view = data->TV_budget; // Read filter to retrieve the currently selected row filter = gtk_tree_view_get_model (GTK_TREE_VIEW(view)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view)); *budget = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); // Retrieve selected row from filter if possible if (gtk_tree_selection_get_selected(selection, &filter, &filter_iter)) { // Convert data to budget model gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter), iter, &filter_iter); gtk_tree_model_get (*budget, iter, UI_BUD_TABVIEW_IS_ROOT, &is_root, -1); return (is_root); } return FALSE; } // Check if add category dialog is full filled static void ui_bud_tabview_category_add_full_filled (GtkWidget *source, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; const gchar* new_raw_name; gchar* new_name; gboolean is_name_filled = FALSE, is_parent_choosen = FALSE; // Check a name for the new category is given: new_raw_name = gtk_entry_get_text(GTK_ENTRY(data->EN_add_name)); if (new_raw_name && *new_raw_name) { new_name = g_strdup(new_raw_name); g_strstrip(new_name); if (strlen(new_name) > 0) { is_name_filled = TRUE; } g_free(new_name); } // Check an entry has been selected in parent combobox is_parent_choosen = (gtk_combo_box_get_active(GTK_COMBO_BOX(data->COMBO_add_parent)) > -1); // Dis/Enable apply dialog button gtk_widget_set_sensitive(data->BT_apply, is_name_filled && is_parent_choosen); return; } // Add a category according to the current selection static void ui_bud_tabview_category_add (GtkButton *button, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkWidget *apply; ui_bud_tabview_view_mode_t view_mode; GtkTreeModel *budget, *categories; GtkTreeIter default_parent_iter, categories_iter; GtkWidget *dialog, *content, *grid, *combobox, *textentry, *widget; GtkCellRenderer *renderer; Category *category; gint gridrow, response; gboolean exists_default_select = FALSE; view_mode = hbtk_radio_button_get_active(GTK_CONTAINER(data->RA_mode)); // Setup budget and retrieve default selection from budget dialog if (ui_bud_tabview_get_selected_category (&budget, &default_parent_iter, &category, data)) { exists_default_select = TRUE; if (category->parent != 0) { ui_bud_tabview_search_criteria_t parent_search = ui_bud_tabview_search_criteria_default; parent_search.row_category_key = category->parent; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &parent_search); if (!parent_search.iterator) { DB(g_print(" -> error: not found good parent iterator !\n")); return; } default_parent_iter = *parent_search.iterator; g_free(parent_search.iterator); } } else if (ui_bud_tabview_get_selected_root_iter (&budget, &default_parent_iter, data)) { // If currently selected row is a root row, use it as default value exists_default_select = TRUE; } // Selectable categories from original model categories = gtk_tree_model_filter_new(budget, NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(categories), ui_bud_tabview_model_row_filter_parents, data, NULL); if (exists_default_select) { gtk_tree_model_filter_convert_child_iter_to_iter(GTK_TREE_MODEL_FILTER(categories), &categories_iter, &default_parent_iter); } DB( g_print("[ui_bud_tabview] open sub-dialog to add a category\n") ); dialog = gtk_dialog_new_with_buttons (_("Add a category"), GTK_WINDOW(data->dialog), GTK_DIALOG_MODAL, _("_Cancel"), GTK_RESPONSE_CANCEL, NULL); // Apply button will be enabled only when parent category and name are choosen apply = gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Apply"), GTK_RESPONSE_APPLY); data->BT_apply = apply; gtk_widget_set_sensitive(apply, FALSE); //window contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // design content grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_MEDIUM); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(grid), SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (content), grid); // First row display parent selector gridrow = 0; widget = gtk_label_new(_("Parent category")); gtk_grid_attach (GTK_GRID (grid), widget, 0, gridrow, 1, 1); combobox = gtk_combo_box_new_with_model(categories); data->COMBO_add_parent = combobox; gtk_grid_attach (GTK_GRID (grid), combobox, 1, gridrow, 1, 1); gtk_combo_box_set_row_separator_func( GTK_COMBO_BOX(combobox), ui_bud_tabview_view_separator, data, NULL ); gtk_combo_box_set_id_column(GTK_COMBO_BOX(combobox), UI_BUD_TABVIEW_CATEGORY_KEY); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(combobox), renderer, TRUE); gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combobox), renderer, "text", UI_BUD_TABVIEW_CATEGORY_FULLNAME); // Next row displays the new category entry gridrow++; widget = gtk_label_new(_("Category name")); gtk_grid_attach (GTK_GRID (grid), widget, 0, gridrow, 1, 1); textentry = gtk_entry_new(); data->EN_add_name = textentry; gtk_grid_attach (GTK_GRID (grid), textentry, 1, gridrow, 1, 1); // Signals to enable Apply button g_signal_connect (data->COMBO_add_parent, "changed", G_CALLBACK(ui_bud_tabview_category_add_full_filled), (gpointer)data); g_signal_connect (data->EN_add_name, "changed", G_CALLBACK(ui_bud_tabview_category_add_full_filled), (gpointer)data); if (exists_default_select) { gtk_combo_box_set_active_iter(GTK_COMBO_BOX(combobox), &categories_iter); } gtk_widget_show_all (dialog); response = gtk_dialog_run (GTK_DIALOG (dialog)); // When the response is APPLY, the form was full filled if (response == GTK_RESPONSE_APPLY) { Category *new_item; const gchar *new_name; gchar *parent_name; guint32 parent_key; ui_bud_tabview_cat_type_t parent_type; ui_bud_tabview_search_criteria_t root_search = ui_bud_tabview_search_criteria_default; GtkTreeIter parent_iter, *root_iter; DB( g_print("[ui_bud_tabview] applying creation of a new category\n") ); // Retrieve info from dialog gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combobox), &categories_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(categories), &parent_iter, &categories_iter); gtk_tree_model_get (budget, &parent_iter, UI_BUD_TABVIEW_CATEGORY_NAME, &parent_name, UI_BUD_TABVIEW_CATEGORY_KEY, &parent_key, UI_BUD_TABVIEW_CATEGORY_TYPE, &parent_type, -1); DB( g_print(" -> from parent cat: %s (key: %d, type: %d)\n", parent_name, parent_key ,parent_type) ); // Retrieve required root root_search.row_is_root = TRUE; root_search.row_is_total = FALSE; root_search.row_category_type = parent_type; gtk_tree_model_foreach(GTK_TREE_MODEL(budget), (GtkTreeModelForeachFunc) ui_bud_tabview_model_search_iterator, &root_search); if (!root_search.iterator) { DB(g_print(" -> error: not found good tree root !\n")); return; } root_iter = root_search.iterator; // Build new category from name and parent iterator new_name = gtk_entry_get_text(GTK_ENTRY(textentry)); data->change++; new_item = da_cat_malloc(); new_item->name = g_strdup(new_name); g_strstrip(new_item->name); new_item->parent = parent_key; if (parent_key) { new_item->flags |= GF_SUB; } if (parent_type == UI_BUD_TABVIEW_CAT_TYPE_INCOME) { new_item->flags |= GF_INCOME; } // On balance mode, enable forced display too to render it to user if (view_mode == UI_BUD_TABVIEW_VIEW_SUMMARY) { new_item->flags |= GF_FORCED; } if(da_cat_append(new_item)) { GtkWidget *view; GtkTreeModel *filter; GtkTreeIter filter_iter; GtkTreePath *path; DB( g_print(" => add cat: %p (%d), type=%d\n", new_item->name, new_item->key, category_type_get(new_item)) ); // Finally add it to model ui_bud_tabview_model_add_category_with_lineage (GTK_TREE_STORE(budget), root_iter, &(new_item->key)); // Expand view up to the newly added item, so expand its parent which is already known as iter view = data->TV_budget; filter = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); if(gtk_tree_model_filter_convert_child_iter_to_iter(GTK_TREE_MODEL_FILTER(filter), &filter_iter, &parent_iter) ) { path = gtk_tree_model_get_path(filter, &filter_iter); gtk_tree_view_expand_row(GTK_TREE_VIEW(view), path, TRUE); } } } gtk_window_destroy (GTK_WINDOW(dialog)); return; } // Delete a category according to the current selection static void ui_bud_tabview_category_delete (GtkButton *button, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkTreeModel *budget; GtkTreeIter iter; Category* category; gint response; DB( g_print("[ui_bud_tabview] open sub-dialog to delete a category\n") ); // Retrieve selected row from filter if possible if (ui_bud_tabview_get_selected_category (&budget, &iter, &category, data)) { gchar *title = NULL; gchar *secondtext = NULL; title = g_strdup_printf ( _("Are you sure you want to permanently delete '%s'?"), category->name); if( category->usage_count > 0 ) { secondtext = _("This category is used.\n" "Any transaction using that category will be set to (no category)"); } response = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Delete"), TRUE ); g_free(title); if( response == GTK_RESPONSE_OK ) { gtk_tree_store_remove(GTK_TREE_STORE(budget), &iter); category_move(category->key, 0); da_cat_delete(category->key); data->change++; } } return; } // Check if add category dialog is full filled static void ui_bud_tabview_category_merge_full_filled (GtkWidget *source, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; gboolean is_target_choosen = FALSE; is_target_choosen = (gtk_combo_box_get_active(GTK_COMBO_BOX(data->COMBO_merge_target)) > -1); // Dis/Enable apply dialog button gtk_widget_set_sensitive(data->BT_apply, is_target_choosen); return; } static void ui_bud_tabview_category_merge (GtkButton *button, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkWidget *apply; GtkTreeModel *budget, *categories; GtkTreeIter iter_source, iter, categories_iter; GtkWidget *dialog, *content, *grid, *combobox, *widget, *checkbutton; GtkCellRenderer *renderer; gint gridrow, response; Category *merge_source; gchar *label_source, *label_delete; // Retrieve source of merge if (ui_bud_tabview_get_selected_category(&budget, &iter_source, &merge_source, data)) { DB( g_print("[ui_bud_tabview] open sub-dialog to merge category: %s\n", merge_source->name) ); dialog = gtk_dialog_new_with_buttons (_("Merge categories"), GTK_WINDOW(data->dialog), GTK_DIALOG_MODAL, _("_Cancel"), GTK_RESPONSE_CANCEL, NULL); // Apply button will be enabled only when a target merge category is choosen apply = gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Apply"), GTK_RESPONSE_APPLY); data->BT_apply = apply; gtk_widget_set_sensitive(apply, FALSE); //window contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // design content grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_MEDIUM); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(grid), SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (content), grid); // First row display parent selector gridrow = 0; label_source = g_strdup_printf(_("Transactions assigned to category '%s', will be moved to the category selected below."), merge_source->name); widget = gtk_label_new (label_source); gtk_grid_attach (GTK_GRID (grid), widget, 0, gridrow, 4, 1); // Line to select merge target gridrow++; widget = gtk_label_new(_("Target category")); gtk_grid_attach (GTK_GRID (grid), widget, 1, gridrow, 1, 1); // Target category list is built from original model with a filter categories = gtk_tree_model_filter_new(budget, NULL); data->MERGE_source_category_key = merge_source->key; gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(categories), ui_bud_tabview_model_row_merge_filter_with_headers, data, NULL); combobox = gtk_combo_box_new_with_model(categories); data->COMBO_merge_target = combobox; gtk_grid_attach (GTK_GRID (grid), combobox, 2, gridrow, 1, 1); gtk_combo_box_set_row_separator_func( GTK_COMBO_BOX(combobox), ui_bud_tabview_view_separator, data, NULL ); gtk_combo_box_set_id_column(GTK_COMBO_BOX(combobox), UI_BUD_TABVIEW_CATEGORY_KEY); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(combobox), renderer, TRUE); gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combobox), renderer, "text", UI_BUD_TABVIEW_CATEGORY_FULLNAME); // Next row displays the automatic delete option gridrow++; label_delete = g_strdup_printf ( _("_Delete the category '%s'"), merge_source->name); checkbutton = gtk_check_button_new_with_mnemonic(label_delete); gtk_grid_attach (GTK_GRID (grid), checkbutton, 0, gridrow, 4, 1); // Signals to enable Apply button g_signal_connect (data->COMBO_merge_target, "changed", G_CALLBACK(ui_bud_tabview_category_merge_full_filled), (gpointer)data); gtk_widget_show_all (dialog); response = gtk_dialog_run (GTK_DIALOG (dialog)); // When the response is APPLY, the form was full filled if (response == GTK_RESPONSE_APPLY) { Category *merge_target, *parent_source; gint target_key; DB( g_print("[ui_bud_tabview] applying merge\n") ); // Retrieve info from dialog gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combobox), &categories_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(categories), &iter, &categories_iter); gtk_tree_model_get (budget, &iter, UI_BUD_TABVIEW_CATEGORY_KEY, &target_key, -1); merge_target = da_cat_get(target_key); DB( g_print(" -> to target category: %s (key: %d)\n", merge_target->name, target_key) ); // Merge categories (according to ui-category.c) category_move(merge_source->key, merge_target->key); merge_target->usage_count += merge_source->usage_count; merge_source->usage_count = 0; // Keep the income type with us parent_source = da_cat_get(merge_source->parent); if(parent_source != NULL && (parent_source->flags & GF_INCOME)) { merge_target->flags |= GF_INCOME; } // Clean source merge if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton))) { da_cat_delete(merge_source->key); gtk_tree_store_remove(GTK_TREE_STORE(budget), &iter_source); } data->change++; } data->MERGE_source_category_key = 0; gtk_window_destroy (GTK_WINDOW(dialog)); g_free(label_source); g_free(label_delete); } return; } #endif // Reset inputs done for the currently selected category static void ui_bud_tabview_category_reset (GtkButton *button, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkTreeModel *budget; GtkTreeIter iter; Category* category; gint response; DB( g_print("[ui_bud_tabview] open sub-dialog to confirm category reset\n") ); // Retrieve selected row from filter if possible if (ui_bud_tabview_get_selected_category (&budget, &iter, &category, data)) { gchar *title = NULL; gchar *secondtext = NULL; title = g_strdup_printf ( _("Are you sure you want to clear inputs for '%s'?"), category->name); secondtext = _("If you proceed, every amount will be set to 0."); response = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Clear"), TRUE ); g_free(title); if( response == GTK_RESPONSE_OK ) { // Update data for(int i=0;i<=12;i++) { category->budget[i] = 0; } // Reset budget flag according to GF_FORCED category->flags &= ~(GF_BUDGET); //mdo: no /*if (category->flags & GF_FORCED) { category->flags |= GF_BUDGET; }*/ data->change++; // Update GtkTreeStore gtk_tree_store_set( GTK_TREE_STORE(budget), &iter, UI_BUD_TABVIEW_HAS_BUDGET, (category->flags & GF_BUDGET), UI_BUD_TABVIEW_SAME_AMOUNT, category->budget[0], UI_BUD_TABVIEW_JANUARY, category->budget[1], UI_BUD_TABVIEW_FEBRUARY, category->budget[2], UI_BUD_TABVIEW_MARCH, category->budget[3], UI_BUD_TABVIEW_APRIL, category->budget[4], UI_BUD_TABVIEW_MAY, category->budget[5], UI_BUD_TABVIEW_JUNE, category->budget[6], UI_BUD_TABVIEW_JULY, category->budget[7], UI_BUD_TABVIEW_AUGUST, category->budget[8], UI_BUD_TABVIEW_SEPTEMBER, category->budget[9], UI_BUD_TABVIEW_OCTOBER, category->budget[10], UI_BUD_TABVIEW_NOVEMBER, category->budget[11], UI_BUD_TABVIEW_DECEMBER, category->budget[12], -1); // Refresh total rows ui_bud_tabview_model_update_monthly_total (GTK_TREE_STORE(budget)); } } return; } static void ui_bud_tabview_category_toggle_monitoring(GtkButton *button, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkTreeModel *budget; GtkTreeIter iter; Category* category; DB( g_print("[ui_bud_tabview] open sub-dialog to confirm category reset\n") ); // Retrieve selected row from filter if possible if (ui_bud_tabview_get_selected_category (&budget, &iter, &category, data)) { gboolean is_monitoring_forced; // Toggle monitoring is_monitoring_forced = !(category->flags & GF_FORCED); // Update Category // Reset Forced and Budget Flags category->flags &= ~(GF_FORCED); category->flags &= ~(GF_BUDGET); if (is_monitoring_forced == TRUE) { category->flags |= (GF_FORCED); category->flags |= (GF_BUDGET); } else { for(gint budget_id = 0; budget_id <=12; ++budget_id) { if( category->budget[budget_id] != 0.0) { category->flags |= GF_BUDGET; break; } } } // Notify of changes data->change++; // Update budget model // Current row gtk_tree_store_set( GTK_TREE_STORE(budget), &iter, UI_BUD_TABVIEW_IS_MONITORING_FORCED, is_monitoring_forced, UI_BUD_TABVIEW_HAS_BUDGET, (category->flags & GF_BUDGET), -1); // Refresh total rows ui_bud_tabview_model_update_monthly_total (GTK_TREE_STORE(budget)); } return; } static gboolean ui_bud_tabview_on_key_press(GtkWidget *source, GdkEvent *event, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GdkModifierType state; guint keyval; gdk_event_get_state (event, &state); gdk_event_get_keyval(event, &keyval); // On Control-f enable search entry if (state & GDK_CONTROL_MASK && keyval == GDK_KEY_f) { gtk_widget_grab_focus(data->EN_search); return TRUE; } return GDK_EVENT_PROPAGATE; } static void ui_bud_tabview_view_on_select(GtkTreeSelection *treeselection, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; GtkWidget *view; GtkTreeModel *filter, *budget; GtkTreeIter filter_iter, iter; GtkTreeSelection *selection; gboolean is_root, is_total, is_monitoring_forced; ui_bud_tabview_cat_type_t category_type; view = data->TV_budget; selection = data->TV_selection; // Block signals g_signal_handler_block(data->BT_category_force_monitoring, data->HID_category_monitoring_toggle); // Reset buttons #if HB_BUD_TABVIEW_EDIT_ENABLE gtk_widget_set_sensitive(data->BT_category_add, FALSE); gtk_widget_set_sensitive(data->BT_category_delete, FALSE); gtk_widget_set_sensitive(data->BT_category_merge, FALSE); #endif gtk_widget_set_sensitive(data->BT_category_reset, FALSE); gtk_widget_set_sensitive(data->BT_category_force_monitoring, FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->BT_category_force_monitoring), FALSE); // Read filter to retrieve the currently selected row in real model filter = gtk_tree_view_get_model (GTK_TREE_VIEW(view)); budget = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); // Activate buttons if selected row is editable if (gtk_tree_selection_get_selected(selection, &filter, &filter_iter)) { // Convert data to budget model gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter), &iter, &filter_iter); // Check the iter is an editable one gtk_tree_model_get (budget, &iter, UI_BUD_TABVIEW_CATEGORY_TYPE, &category_type, UI_BUD_TABVIEW_IS_ROOT, &is_root, UI_BUD_TABVIEW_IS_TOTAL, &is_total, UI_BUD_TABVIEW_IS_MONITORING_FORCED, &is_monitoring_forced, -1); // If category is neither a root, neither a total row, every operations can be applied if (!is_root && !is_total) { #if HB_BUD_TABVIEW_EDIT_ENABLE gtk_widget_set_sensitive(data->BT_category_add, TRUE); gtk_widget_set_sensitive(data->BT_category_delete, TRUE); gtk_widget_set_sensitive(data->BT_category_merge, TRUE); #endif gtk_widget_set_sensitive(data->BT_category_reset, TRUE); gtk_widget_set_sensitive(data->BT_category_force_monitoring, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->BT_category_force_monitoring), is_monitoring_forced); } // If category is a root (except the Total one), we can use it to add a child row #if HB_BUD_TABVIEW_EDIT_ENABLE else if (category_type != UI_BUD_TABVIEW_CAT_TYPE_NONE && is_root && !is_total) { gtk_widget_set_sensitive(data->BT_category_add, TRUE); } #endif } // Unblock signals g_signal_handler_unblock(data->BT_category_force_monitoring, data->HID_category_monitoring_toggle); return; } /* ** index 0 is all month, then 1 -> 12 are months */ static gchar *ui_bud_manage_getcsvbudgetstr(Category *item) { gchar *retval = NULL; char buf[G_ASCII_DTOSTR_BUF_SIZE]; //DB( g_print(" get budgetstr for '%s'\n", item->name) ); if( !(item->flags & GF_CUSTOM) ) { if( item->budget[0] ) { //g_ascii_dtostr (buf, sizeof (buf), item->budget[0]); //#1750257 use locale numdigit g_snprintf(buf, sizeof (buf), "%.2f", item->budget[0]); retval = g_strdup(buf); //DB( g_print(" => %d: %s\n", 0, retval) ); } } else { gint i; for(i=1;i<=12;i++) { //if( item->budget[i] ) //{ gchar *tmp = retval; //g_ascii_dtostr (buf, sizeof (buf), item->budget[i]); //#1750257 use locale numdigit g_snprintf(buf, sizeof (buf), "%.2f", item->budget[i]); if(retval != NULL) { retval = g_strconcat(retval, ";", buf, NULL); g_free(tmp); } else retval = g_strdup(buf); //DB( g_print(" => %d: %s\n", i, retval) ); //} } } return retval; } static void ui_bud_tabview_manage_clearall(GSimpleAction *action, GVariant *parameter, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; gint result; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] clear all\n") ); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), _("Clear the entire Budget"), _("Are you sure you want to permanently\nclear the budget?"), _("_Clear"), TRUE ); if( result == GTK_RESPONSE_OK ) { GtkTreeModel *filter, *model; GList *lcat, *list; filter = gtk_tree_view_get_model(GTK_TREE_VIEW(data->TV_budget)); model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); gtk_tree_store_clear(GTK_TREE_STORE(model)); lcat = list = category_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Category *category = list->data; // Update data for(int i=0;i<=12;i++) { category->budget[i] = 0; } // Reset budget flag category->flags &= ~(GF_BUDGET); list = g_list_next(list); } g_list_free(lcat); //update the treeview ui_bud_tabview_model_populate(GTK_TREE_STORE(model)); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->TV_budget)); } } static void ui_bud_tabview_manage_load_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; gchar *filename = NULL; GIOChannel *io; const gchar *encoding; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] load csv - data %p\n", data) ); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_OPEN, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); encoding = homebank_file_getencoding(filename); io = g_io_channel_new_file(filename, "r", NULL); if(io != NULL) { GtkTreeModel *filter, *model; gboolean error = FALSE; gchar *tmpstr; gint io_stat; DB( g_print(" -> encoding should be %s\n", encoding) ); if( encoding != NULL ) { g_io_channel_set_encoding(io, encoding, NULL); } filter = gtk_tree_view_get_model(GTK_TREE_VIEW(data->TV_budget)); model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter)); gtk_tree_store_clear(GTK_TREE_STORE(model)); for(;;) { io_stat = g_io_channel_read_line(io, &tmpstr, NULL, NULL, NULL); if( io_stat == G_IO_STATUS_EOF) break; if( io_stat == G_IO_STATUS_NORMAL) { if( tmpstr != NULL) { gchar **str_array; gboolean budget; Category *tmpitem; gint i; hb_string_strip_crlf(tmpstr); str_array = g_strsplit (tmpstr, ";", 15); // lvl; type; name; value(s)... if( (g_strv_length (str_array) < 4 || *str_array[1] != '*') && (g_strv_length (str_array) < 15)) { error = TRUE; break; } DB( g_print(" csv read '%s : %s : %s ...'\n", str_array[0], str_array[1], str_array[2]) ); tmpitem = da_cat_get_by_fullname(str_array[2]); if( tmpitem != NULL ) { DB( g_print(" found cat, updating '%s' '%s'\n", tmpitem->name, tmpitem->fullname) ); data->change++; tmpitem->flags &= ~(GF_CUSTOM); //delete flag if( *str_array[1] == '*' ) { //tmpitem->budget[0] = g_ascii_strtod(str_array[3], NULL); //#1750257 use locale numdigit tmpitem->budget[0] = g_strtod(str_array[3], NULL); DB( g_print(" monthly '%.2f'\n", tmpitem->budget[0]) ); } else { tmpitem->flags |= (GF_CUSTOM); for(i=1;i<=12;i++) { //tmpitem->budget[i] = g_ascii_strtod(str_array[2+i], NULL); //#1750257 use locale numdigit tmpitem->budget[i] = g_strtod(str_array[2+i], NULL); DB( g_print(" month %d '%.2f'\n", i, tmpitem->budget[i]) ); } } // if any value,set the flag to visual indicator budget = FALSE; tmpitem->flags &= ~(GF_BUDGET); //delete flag for(i=0;i<=12;i++) { if(tmpitem->budget[i]) { budget = TRUE; break; } } if(budget == TRUE) tmpitem->flags |= GF_BUDGET; } g_strfreev (str_array); } g_free(tmpstr); } } g_io_channel_unref (io); //update the treeview ui_bud_tabview_model_populate(GTK_TREE_STORE(model)); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->TV_budget)); if( error == TRUE ) { ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("File format error"), _("The CSV file must contains the exact numbers of column,\nseparated by a semi-colon, please see the help for more details.") ); } } g_free( filename ); } } static void ui_bud_tabview_manage_save_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { ui_bud_tabview_data_t *data = user_data; gchar *filename = NULL; GIOChannel *io; DB( g_print("\n[ui-budget] save csv\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { GList *lcat, *list; lcat = list = category_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { gchar *outstr, *outvalstr; Category *category = list->data; gchar lvl, type; if( category->flags & GF_BUDGET ) { lvl = (category->parent == 0) ? '1' : '2'; type = (category->flags & GF_CUSTOM) ? ' ' : '*'; outvalstr = ui_bud_manage_getcsvbudgetstr(category); outstr = g_strdup_printf("%c;%c;%s;%s\n", lvl, type, category->fullname, outvalstr); DB( g_print("%s", outstr) ); g_io_channel_write_chars(io, outstr, -1, NULL, NULL); g_free(outstr); g_free(outvalstr); } list = g_list_next(list); } g_io_channel_unref (io); g_list_free(lcat); } g_free( filename ); } } static const GActionEntry win_actions[] = { { "imp" , ui_bud_tabview_manage_load_csv, NULL, NULL, NULL, {0,0,0} }, { "exp" , ui_bud_tabview_manage_save_csv, NULL, NULL, NULL, {0,0,0} }, { "del" , ui_bud_tabview_manage_clearall, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; static void ui_bud_tabview_dialog_close(ui_bud_tabview_data_t *data, gint response) { DB( g_print("[ui_bud_tabview] dialog close\n") ); GLOBALS->changes_count += data->change; return; } // Open / create the main dialog, the budget view and the budget model GtkWidget *ui_bud_tabview_manage_dialog(void) { ui_bud_tabview_data_t *data; struct WinGeometry *wg; GtkWidget *dialog, *content, *grid; GtkWidget *radiomode; GtkWidget *widget; GtkWidget *vbox, *hbox, *bbox; GtkWidget *search_entry; GtkWidget *scrollwin, *treeview; GtkWidget *tbar; GtkWidget *image; GtkTreeModel *model, *filter; gint response; gint w, h, dw, dh; gint gridrow; data = g_malloc0(sizeof(ui_bud_tabview_data_t)); data->change = 0; if(!data) return NULL; DB( g_print("\n[ui_bud_tabview] open dialog\n") ); // create window dialog = gtk_dialog_new_with_buttons (_("Manage Budget"), GTK_WINDOW(GLOBALS->mainwindow), GTK_DIALOG_MODAL, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; //#2007714 keep dimension wg = &PREFS->dbud_wg; if( wg->w == 0 && wg->h == 0 ) { //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 3:2 dw = (dh * 3) / 2; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); } else gtk_window_set_default_size(GTK_WINDOW(dialog), wg->w, wg->h); // store data inside dialog property to retrieve them easily in callbacks g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)&data); DB( g_print(" - new dialog=%p, inst_data=%p\n", dialog, data) ); //window contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox // design content grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_MEDIUM); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(grid), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (content), grid); // First row displays radio button to change mode (edition / view) and search entry gridrow = 0; hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (grid), hbox, 0, gridrow, 1, 1); // edition mode radio buttons radiomode = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup(HBTK_SWITCHER(radiomode), UI_BUD_TABVIEW_VIEW_MODE, TRUE); data->RA_mode = radiomode; gtk_box_set_center_widget(GTK_BOX (hbox), radiomode); // future //menubutton widget = gtk_menu_button_new(); image = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_BUTTON_MENU); g_object_set (widget, "image", image, NULL); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_box_append(GTK_BOX (hbox), widget); GMenu *menu = g_menu_new (); GMenu *section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Import CSV..."), "win.imp"); g_menu_append (section, _("E_xport CSV..."), "win.exp"); g_object_unref (section); section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Clear All..."), "win.del"); g_object_unref (section); GActionGroup *group = (GActionGroup*)g_simple_action_group_new (); data->actions = group; g_action_map_add_action_entries (G_ACTION_MAP (group), win_actions, G_N_ELEMENTS (win_actions), data); gtk_widget_insert_action_group (widget, "win", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); // Search search_entry = make_search(); data->EN_search = search_entry; gtk_box_append (GTK_BOX (hbox), search_entry); // Next row displays the budget tree with its toolbar gridrow++; // We use a Vertical Box to link tree with searchbar and toolbar vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_grid_attach (GTK_GRID (grid), vbox, 0, gridrow, 1, 1); // Scrolled Window will permit to display budgets with a lot of active categories scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_hexpand (scrollwin, TRUE); gtk_widget_set_vexpand (scrollwin, TRUE); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); treeview = ui_bud_tabview_view_new ((gpointer) data); data->TV_budget = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); data->TV_selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); // Toolbar to add, remove categories, expand and collapse categorie tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); #if HB_BUD_TABVIEW_EDIT_ENABLE // Add / Remove / Merge widget = make_image_button(ICONNAME_LIST_ADD, _("Add category")); data->BT_category_add = widget; gtk_widget_set_sensitive(widget, FALSE); gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_DELETE, _("Remove category")); data->BT_category_delete = widget; gtk_widget_set_sensitive(widget, FALSE); gtk_box_prepend(GTK_BOX(bbox), widget); widget = gtk_button_new_with_label (_("Merge")); data->BT_category_merge = widget; gtk_widget_set_sensitive(widget, FALSE); gtk_box_prepend(GTK_BOX(bbox), widget); #endif // Clear Input widget = gtk_button_new_with_label (_("Clear input")); data->BT_category_reset = widget; gtk_widget_set_sensitive(widget, FALSE); gtk_box_prepend (GTK_BOX (bbox), widget); // Force monitoring widget = gtk_check_button_new_with_mnemonic (_("_Force monitoring this category")); data->BT_category_force_monitoring = widget; gtk_widget_set_sensitive (widget, FALSE); gtk_box_prepend (GTK_BOX (tbar), widget); g_object_set(widget, "draw-indicator", TRUE, NULL); // Expand / Collapse bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_EXPAND, _("Expand all")); data->BT_expand = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_HB_BUTTON_COLLAPSE, _("Collapse all")); data->BT_collapse = widget; gtk_box_prepend(GTK_BOX(bbox), widget); /* signal connect */ g_signal_connect (data->RA_mode, "changed", G_CALLBACK(ui_bud_tabview_view_update_mode), (gpointer)data); // Connect to key press to handle some events like Control-f gtk_tree_view_set_search_entry(GTK_TREE_VIEW(treeview), GTK_ENTRY(search_entry)); g_signal_connect (dialog, "key-press-event", G_CALLBACK (ui_bud_tabview_on_key_press), (gpointer)data); // Tree View g_signal_connect (data->TV_selection, "changed", G_CALLBACK(ui_bud_tabview_view_on_select), (gpointer)data); // toolbar buttons #if HB_BUD_TABVIEW_EDIT_ENABLE g_signal_connect (data->BT_category_add, "clicked", G_CALLBACK(ui_bud_tabview_category_add), (gpointer)data); g_signal_connect (data->BT_category_delete, "clicked", G_CALLBACK (ui_bud_tabview_category_delete), (gpointer)data); g_signal_connect (data->BT_category_merge, "clicked", G_CALLBACK (ui_bud_tabview_category_merge), (gpointer)data); #endif g_signal_connect (data->BT_category_reset, "clicked", G_CALLBACK (ui_bud_tabview_category_reset), (gpointer)data); data->HID_category_monitoring_toggle = g_signal_connect (data->BT_category_force_monitoring, "toggled", G_CALLBACK (ui_bud_tabview_category_toggle_monitoring), (gpointer)data); g_signal_connect (data->BT_expand, "clicked", G_CALLBACK (ui_bud_tabview_view_expand), (gpointer)data); g_signal_connect (data->BT_collapse, "clicked", G_CALLBACK (ui_bud_tabview_view_collapse), (gpointer)data); // dialog g_signal_connect (dialog, "destroy", G_CALLBACK (gtk_widget_destroyed), &dialog); // tree model to map HomeBank categories to the tree view model = ui_bud_tabview_model_new(); filter = gtk_tree_model_filter_new(model, NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(filter), ui_bud_tabview_model_row_filter, data, NULL); gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), filter); g_object_unref(model); // Remove model with filter g_object_unref(filter); // Remove filter with view // By default, show the balance mode with all categories expanded data->TV_is_expanded = TRUE; ui_bud_tabview_view_toggle((gpointer) data, UI_BUD_TABVIEW_VIEW_SUMMARY); gtk_widget_show_all (dialog); response = gtk_dialog_run (GTK_DIALOG (dialog)); //#2007714 keep dimension wg = &PREFS->dbud_wg; gtk_window_get_size(GTK_WINDOW(dialog), &wg->w, &wg->h); ui_bud_tabview_dialog_close(data, response); gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/src/hb-import-qif.c0000644000175000017500000002770214736461407012430 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" //#include "ui-assist-import.h" #include "hb-import.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; static void hb_qif_parser_parse(ImportContext *ctx, GenFile *genfile); /* = = = = = = = = = = = = = = = = */ GList *homebank_qif_import(ImportContext *ictx, GenFile *genfile) { DB( g_print("\n[import] homebank QIF\n") ); hb_qif_parser_parse(ictx, genfile); return ictx->gen_lst_txn;; } /* = = = = = = = = = = = = = = = = */ gdouble hb_qif_parser_get_amount(gchar *string) { gdouble amount; gint l, i; gchar *new_str, *p; gint ndcount = 0; gchar dc; //DB( g_print("\n[qif] hb_qif_parser_get_amount\n") ); amount = 0.0; dc = '?'; //TODO: we should use here ==> hb_string_dup_raw_amount_clean(const gchar *string, gint digits) l = strlen(string) - 1; // the first non-digit is a grouping, or a decimal separator // if the non-digit is after a 3 digit serie, it might be a grouping for(i=l;i>=0;i--) { //DB( g_print(" %d :: %c :: ds='%c' ndcount=%d\n", i, string[i], dc, ndcount) ); if( string[i] == '-' || string[i] == '+' ) continue; if( g_ascii_isdigit( string[i] )) { ndcount++; } else { if( (ndcount != 3) && (string[i] == '.' || string[i]==',') ) { dc = string[i]; } ndcount = 0; } } //DB( g_print(" s='%s' :: ds='%c'\n", string, dc) ); new_str = g_malloc (l+3); //#1214077 p = new_str; for(i=0;i<=l;i++) { if( g_ascii_isdigit( string[i] ) || string[i] == '-' ) { *p++ = string[i]; } else if( string[i] == dc ) *p++ = '.'; } *p++ = '\0'; amount = g_ascii_strtod(new_str, NULL); //DB( g_print(" -> amount was='%s' => to='%s' double='%f'\n", string, new_str, amount) ); g_free(new_str); return amount; } /* O if m-d-y (american) 1 if d-m-y (european) */ /* obsolete 4.5 static gint hb_qif_parser_guess_datefmt(ImportContext *ctx) { gboolean retval = TRUE; GList *qiflist; gboolean r, valid; gint d, m, y; DB( g_print("(qif) get_datetype\n") ); qiflist = g_list_first(ctx->gen_lst_txn); while (qiflist != NULL) { GenTxn *item = qiflist->data; r = hb_qif_parser_get_dmy(item->date, &d, &m, &y); valid = g_date_valid_dmy(d, m, y); DB( g_print(" -> date: %s :: %d %d %d :: %d\n", item->date, d, m, y, valid ) ); if(valid == FALSE) { retval = FALSE; break; } qiflist = g_list_next(qiflist); } return retval; } */ static gint hb_qif_parser_get_block_type(gchar *qif_line) { gchar **typestr; gint type = QIF_NONE; DB( g_print("--------\n[qif] block type\n") ); //DB( g_print(" -> str: %s type: %d\n", qif_line, type) ); if(g_str_has_prefix(qif_line, "!Account") || g_str_has_prefix(qif_line, "!account")) { type = QIF_ACCOUNT; } else { typestr = g_strsplit(qif_line, ":", 2); if( g_strv_length(typestr) == 2 ) { gchar *qif_line = g_utf8_casefold(typestr[1], -1); //DB( g_print(" -> str[1]: %s\n", typestr[1]) ); if( g_str_has_prefix(qif_line, "bank") ) { type = QIF_TRANSACTION; } else if( g_str_has_prefix(qif_line, "cash") ) { type = QIF_TRANSACTION; } else if( g_str_has_prefix(qif_line, "ccard") ) { type = QIF_TRANSACTION; } else if( g_str_has_prefix(qif_line, "invst") ) { type = QIF_TRANSACTION; } else if( g_str_has_prefix(qif_line, "oth a") ) { type = QIF_TRANSACTION; } else if( g_str_has_prefix(qif_line, "oth l") ) { type = QIF_TRANSACTION; } else if( g_str_has_prefix(qif_line, "security") ) { type = QIF_SECURITY; } else if( g_str_has_prefix(qif_line, "prices") ) { type = QIF_PRICES; } g_free(qif_line); } g_strfreev(typestr); } //DB( g_print(" -> return type: %d\n", type) ); return type; } static void hb_qif_parser_parse(ImportContext *ctx, GenFile *genfile) { GIOChannel *io; GenTxn tran = { 0 }; DB( g_print("\n[qif] hb_qif_parser_parse\n") ); io = g_io_channel_new_file(genfile->filepath, "r", NULL); if(io != NULL) { gchar *qif_line; GError *err = NULL; gint io_stat; gint type = QIF_NONE; gchar *value = NULL; GenAcc tmpgenacc = { 0 }; GenAcc *genacc; guint row = 0; DB( g_print(" -> encoding should be %s\n", genfile->encoding) ); if( genfile->encoding != NULL ) { g_io_channel_set_encoding(io, genfile->encoding, NULL); } DB( g_print(" -> encoding is %s\n", g_io_channel_get_encoding(io)) ); // within a single qif file, if there is no accoutn data // then txn are related to a single account genacc = NULL; for(;;) { io_stat = g_io_channel_read_line(io, &qif_line, NULL, NULL, &err); if( io_stat == G_IO_STATUS_EOF ) break; if( io_stat == G_IO_STATUS_ERROR ) { DB (g_print(" + ERROR %s\n",err->message)); break; } if( io_stat == G_IO_STATUS_NORMAL ) { hb_string_strip_crlf(qif_line); //DB (g_print("** new QIF line: '%s' **\n", qif_line)); //start qif parsing if(g_str_has_prefix(qif_line, "!")) /* !Type: or !Option: or !Account otherwise ignore */ { type = hb_qif_parser_get_block_type(qif_line); DB ( g_print("-> ---- QIF block: '%s' (type = %d) ----\n", qif_line, type) ); } value = &qif_line[1]; if( type == QIF_ACCOUNT ) { switch(qif_line[0]) { case 'N': // Name { g_strstrip(value); tmpgenacc.name = g_strdup(value); DB ( g_print(" name: '%s'\n", value) ); break; } case 'T': // Type of account { DB ( g_print(" type: '%s'\n", value) ); // added for 5.0.1 if( g_ascii_strcasecmp("CCard", value) == 0 ) { tmpgenacc.is_ccard = TRUE; } break; } /* case 'D': // Description { DB ( g_print(" description: '%s'\n", value) ); break; } case 'L': // Credit limit (only for credit card accounts) if(g_str_has_prefix(qif_line, "L")) { DB ( g_print(" credit limit: '%s'\n", value) ); break; } case '$': // Statement balance amount { DB ( g_print(" balance: '%s'\n", value) ); break; }*/ case '^': // end { Account *dst_acc; genacc = hb_import_gen_acc_get_next (ctx, FILETYPE_QIF, tmpgenacc.name, NULL); // number is null for QIF because it is not a QIF account field into specification dst_acc = hb_import_acc_find_existing(tmpgenacc.name, NULL ); if( dst_acc != NULL ) { DB( g_print(" - set dst_acc to %d\n", dst_acc->key) ); genacc->kacc = dst_acc->key; } genacc->is_ccard = tmpgenacc.is_ccard; g_free(tmpgenacc.name); tmpgenacc.name = NULL; tmpgenacc.is_ccard = FALSE; DB ( g_print(" ----------------\n") ); break; } } } if( type == QIF_TRANSACTION ) { switch(qif_line[0]) { case 'D': //date { gchar *ptr; // US Quicken seems to be using the ' to indicate post-2000 two-digit years //(such as 01/01'00 for Jan 1 2000) ptr = g_strrstr (value, "\'"); if(ptr != NULL) { *ptr = '/'; } ptr = g_strrstr (value, " "); if(ptr != NULL) { *ptr = '0'; } g_free(tran.date); tran.date = g_strdup(value); break; } case 'T': // amount { tran.amount = hb_qif_parser_get_amount(value); break; } case 'C': // cleared status { tran.reconciled = FALSE; if(g_str_has_prefix(value, "X") || g_str_has_prefix(value, "R") ) { tran.reconciled = TRUE; } tran.cleared = FALSE; if(g_str_has_prefix(value, "*") || g_str_has_prefix(value, "c") ) { tran.cleared = TRUE; } break; } case 'N': // check num or reference number { if(*value != '\0') { g_free(tran.number); g_strstrip(value); tran.number = g_strdup(value); } break; } case 'P': // payee { if(*value != '\0') { g_free(tran.payee); g_strstrip(value); tran.rawpayee = g_strdup(value); } break; } case 'M': // memo { if(*value != '\0') { g_free(tran.memo); tran.rawmemo = g_strdup(value); } break; } case 'L': // category { // LCategory of transaction // L[Transfer account name] // LCategory of transaction/Class of transaction // L[Transfer account]/Class of transaction // this is managed at insertion if(*value != '\0') { g_free(tran.category); g_strstrip(value); tran.category = g_strdup(value); } break; } case 'S': case 'E': case '$': { if(tran.nb_splits < TXN_MAX_SPLIT) { switch(qif_line[0]) { case 'S': // split category { GenSplit *s = &tran.splits[tran.nb_splits]; if(*value != '\0') { g_free(s->category); g_strstrip(value); s->category = g_strdup(value); } break; } case 'E': // split memo { GenSplit *s = &tran.splits[tran.nb_splits]; if(*value != '\0') { g_free(s->memo); s->memo = g_strdup(value); } break; } case '$': // split amount { GenSplit *s = &tran.splits[tran.nb_splits]; s->amount = hb_qif_parser_get_amount(value); // $ line normally end a split #if MYDEBUG == 1 g_print(" -> new split added: [%d] S=%s, E=%s, $=%.2f\n", tran.nb_splits, s->category, s->memo, s->amount); #endif tran.nb_splits++; break; } } } // end split break; } case '^': // end of line { GenTxn *newitem; //fix: 380550 if( tran.date ) { //5.8 #2063416 same date txn tran.row = row++; //ensure we have an account //todo: check this if(genacc == NULL) { genacc = hb_import_gen_acc_get_next (ctx, FILETYPE_QIF, NULL, NULL); } tran.account = g_strdup(genacc->name); DB ( g_print(" -> store qif txn: dat:'%s' amt:%.2f pay:'%s' mem:'%s' cat:'%s' acc:'%s' nbsplit:%d\n", tran.date, tran.amount, tran.payee, tran.memo, tran.category, tran.account, tran.nb_splits) ); newitem = da_gen_txn_malloc(); da_gen_txn_move(&tran, newitem); da_gen_txn_append(ctx, newitem); } //unvalid tran tran.date = 0; //todo: should clear mem alloc here tran.nb_splits = 0; break; } } // end of switch } // end QIF_TRANSACTION } // end of stat normal g_free(qif_line); } // end of for loop g_io_channel_unref (io); } } homebank-5.9.1/src/hb-assign.c0000644000175000017500000003472214736461407011625 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-assign.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void da_asg_free(Assign *item) { DB( g_print("da_asg_free\n") ); if(item != NULL) { DB( g_print(" => %d, %s\n", item->key, item->search) ); g_free(item->search); g_free(item->notes); g_free(item); } } Assign * da_asg_malloc(void) { DB( g_print("da_asg_malloc\n") ); return g_malloc0(sizeof(Assign)); } void da_asg_destroy(void) { DB( g_print("da_asg_destroy\n") ); g_hash_table_destroy(GLOBALS->h_rul); } void da_asg_new(void) { DB( g_print("da_asg_new\n") ); GLOBALS->h_rul = g_hash_table_new_full(g_int_hash, g_int_equal, (GDestroyNotify)g_free, (GDestroyNotify)da_asg_free); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void da_asg_max_key_ghfunc(gpointer key, Assign *item, guint32 *max_key) { *max_key = MAX(*max_key, item->key); } static gboolean da_asg_name_grfunc(gpointer key, Assign *item, gchar *name) { if( name && item->search ) { if(!strcasecmp(name, item->search)) return TRUE; } return FALSE; } /** * da_asg_length: * * Return value: the number of elements */ guint da_asg_length(void) { return g_hash_table_size(GLOBALS->h_rul); } /** * da_asg_remove: * * delete an rul from the GHashTable * * Return value: TRUE if the key was found and deleted * */ gboolean da_asg_remove(guint32 key) { DB( g_print("da_asg_remove %d\n", key) ); return g_hash_table_remove(GLOBALS->h_rul, &key); } //#1889659: ensure name != null/empty static gboolean da_asg_ensure_name(Assign *item) { if( item->search == NULL || strlen(item->search) == 0 ) { gint key = item->key > 0 ? item->key : da_asg_get_max_key() + 1; g_free(item->search); item->search = g_strdup_printf("no name %d", key); return TRUE; } return FALSE; } /** * da_asg_insert: * * insert an rul into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_asg_insert(Assign *item) { guint32 *new_key; DB( g_print("da_asg_insert\n") ); new_key = g_new0(guint32, 1); *new_key = item->key; //#1889659: ensure name != null/empty da_asg_ensure_name(item); g_hash_table_insert(GLOBALS->h_rul, new_key, item); return TRUE; } /** * da_asg_append: * * append a new rul into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_asg_append(Assign *item) { Assign *existitem; guint32 *new_key; DB( g_print("da_asg_append\n") ); DB( g_print(" -> try append: %s\n", item->search) ); if( item->search != NULL ) { /* ensure no duplicate */ existitem = da_asg_get_by_name( item->search ); if( existitem == NULL ) { new_key = g_new0(guint32, 1); *new_key = da_asg_get_max_key() + 1; item->key = *new_key; //added 5.3.3 item->pos = da_asg_length() + 1; DB( g_print(" -> append id: %d\n", *new_key) ); g_hash_table_insert(GLOBALS->h_rul, new_key, item); return TRUE; } DB( g_print(" -> %s already exist: %d\n", item->search, item->key) ); } DB( g_print(" -> %s search null: %d\n", item->search, item->key) ); return FALSE; } Assign * da_asg_duplicate(Assign *srcitem) { Assign *existitem, *newitem = NULL; gchar *newsearch; guint32 *new_key; DB( g_print("da_asg_duplicate\n") ); newsearch = g_strdup_printf("%s %s", srcitem->search, _("(copy)") ); /* ensure no duplicate */ existitem = da_asg_get_by_name( newsearch ); if( existitem == NULL ) { newitem = da_asg_malloc(); //raw duplicate the memory segment memcpy(newitem, srcitem, sizeof(Assign)); newitem->search = NULL; newitem->notes = NULL; new_key = g_new0(guint32, 1); *new_key = da_asg_get_max_key() + 1; newitem->key = *new_key; //added 5.3.3 newitem->pos = da_asg_length() + 1; newitem->search = newsearch; if( srcitem->notes ) newitem->notes = g_strdup(srcitem->notes); g_hash_table_insert(GLOBALS->h_rul, new_key, newitem); } else { g_free(newsearch); } return newitem; } /** * da_asg_get_max_key: * * Get the biggest key from the GHashTable * * Return value: the biggest key value * */ guint32 da_asg_get_max_key(void) { guint32 max_key = 0; g_hash_table_foreach(GLOBALS->h_rul, (GHFunc)da_asg_max_key_ghfunc, &max_key); return max_key; } /** * da_asg_get_by_name: * * Get an rul structure by its name * * Return value: rul * or NULL if not found * */ Assign * da_asg_get_by_name(gchar *name) { DB( g_print("da_asg_get_by_name\n") ); return g_hash_table_find(GLOBALS->h_rul, (GHRFunc)da_asg_name_grfunc, name); } /** * da_asg_get: * * Get an rul structure by key * * Return value: rul * or NULL if not found * */ Assign * da_asg_get(guint32 key) { DB( g_print("da_asg_get_rul\n") ); return g_hash_table_lookup(GLOBALS->h_rul, &key); } void da_asg_consistency(Assign *item) { //5.2.4 we drop internal xfer here as it will disapear //was not possible, but just in case if( item->paymode == OLDPAYMODE_INTXFER ) item->paymode = PAYMODE_XFER; } /* = = = = = = = = = = = = = = = = = = = = */ Assign *da_asg_init_from_transaction(Assign *asg, Transaction *txn) { DB( g_print("\n[scheduled] init from txn\n") ); //#2018680 //asg->search = g_strdup_printf("%s %s", _("**PREFILLED**"), txn->memo ); //#2037132 ensure memo is not empty if( txn->memo != NULL ) asg->search = g_strdup( txn->memo ); da_asg_ensure_name(asg); asg->flags |= ASGF_PREFILLED; asg->flags |= (ASGF_DOPAY|ASGF_DOCAT|ASGF_DOMOD); asg->kcat = txn->kcat; if(!(txn->flags & OF_INTXFER)) { asg->kpay = txn->kpay; asg->paymode = txn->paymode; } return asg; } void da_asg_update_position(void) { GList *lrul, *list; guint32 newpos = 1; DB( g_print("da_asg_update_position\n") ); lrul = list = assign_glist_sorted(HB_GLIST_SORT_POS); while (list != NULL) { Assign *item = list->data; item->pos = newpos++; list = g_list_next(list); } g_list_free(lrul); } gchar *assign_get_target_payee(Assign *asgitem) { gchar *retval = NULL; if( asgitem && (asgitem->flags & (ASGF_DOPAY|ASGF_OVWPAY)) ) { Payee *pay = da_pay_get(asgitem->kpay); if(pay != NULL) retval = pay->name; } return retval; } gchar *assign_get_target_category(Assign *asgitem) { gchar *retval = NULL; if( asgitem && (asgitem->flags & (ASGF_DOCAT|ASGF_OVWCAT)) ) { Category *cat = da_cat_get(asgitem->kcat); if(cat != NULL) retval = cat->fullname; } return retval; } static gint assign_glist_pos_compare_func(Assign *a, Assign *b) { return a->pos - b->pos; } static gint assign_glist_key_compare_func(Assign *a, Assign *b) { return a->key - b->key; } GList *assign_glist_sorted(gint column) { GList *list = g_hash_table_get_values(GLOBALS->h_rul); switch(column) { case HB_GLIST_SORT_POS: return g_list_sort(list, (GCompareFunc)assign_glist_pos_compare_func); break; //case HB_GLIST_SORT_KEY: default: return g_list_sort(list, (GCompareFunc)assign_glist_key_compare_func); break; } } static gboolean misc_text_match(gchar *text, gchar *searchtext, gboolean exact) { gboolean match = FALSE; if(text == NULL) return FALSE; //DB( g_print("search %s in %s\n", rul->name, ope->memo) ); if( searchtext != NULL ) { if( exact == TRUE ) { if( g_strrstr(text, searchtext) != NULL ) { DB( g_print("-- found case '%s'\n", searchtext) ); match = TRUE; } } else { gchar *word = g_utf8_casefold(text, -1); gchar *needle = g_utf8_casefold(searchtext, -1); if( g_strrstr(word, needle) != NULL ) { DB( g_print("-- found nocase '%s'\n", searchtext) ); match = TRUE; } g_free(word); g_free(needle); } } return match; } static gboolean misc_regex_match(gchar *text, gchar *searchtext, gboolean exact) { gboolean match = FALSE; if(text == NULL) return FALSE; DB( g_print("-- match RE %s in %s\n", searchtext, text) ); if( searchtext != NULL ) { match = g_regex_match_simple(searchtext, text, ((exact == TRUE)?0:G_REGEX_CASELESS) | G_REGEX_OPTIMIZE, G_REGEX_MATCH_NOTEMPTY ); if (match == TRUE) { DB( g_print("-- found pattern '%s'\n", searchtext) ); } } return match; } //#1710085 assignment based on amount static gboolean transaction_auto_assign_rule_match(Assign *rul, gchar *text, gdouble amount) { gboolean match1, match2; match1 = TRUE; match2 = FALSE; if( rul->flags & ASGF_AMOUNT ) { if( amount != rul->amount ) match1 = FALSE; } if( !(rul->flags & ASGF_REGEX) ) { if( misc_text_match(text, rul->search, rul->flags & ASGF_EXACT) ) match2 = TRUE; } else { if( misc_regex_match(text, rul->search, rul->flags & ASGF_EXACT) ) match2 = TRUE; } return ((match1==TRUE) && (match2==TRUE)) ? TRUE : FALSE; } static GList *transaction_auto_assign_eval_txn(GList *l_rul, Transaction *txn) { GList *ret_list = NULL; GList *list; gchar *text = NULL; list = g_list_first(l_rul); while (list != NULL) { Assign *rul = list->data; text = txn->memo; if(rul->field == 1) //payee { Payee *pay = da_pay_get(txn->kpay); if(pay) text = pay->name; } if( transaction_auto_assign_rule_match(rul, text, txn->amount) == TRUE ) { //TODO: perf must use preprend, see glib doc ret_list = g_list_append(ret_list, rul); } list = g_list_next(list); } DB( g_print("- %d rule(s) match on '%s'\n", g_list_length (ret_list), text) ); return ret_list; } static GList *transaction_auto_assign_eval_split(GList *l_rul, gchar *text, gdouble amount) { GList *ret_list = NULL; GList *list; list = g_list_first(l_rul); while (list != NULL) { Assign *rul = list->data; if( rul->field == 0 ) //memo { if( transaction_auto_assign_rule_match(rul, text, amount) == TRUE ) { //TODO: perf must use preprend, see glib doc ret_list = g_list_append(ret_list, rul); } } list = g_list_next(list); } DB( g_print("- %d rule(s) match on '%s'\n", g_list_length (ret_list), text) ); return ret_list; } guint transaction_auto_assign(GList *ope_list, guint32 kacc, gboolean lockrecon) { GList *l_ope; GList *l_rul; GList *l_match, *l_tmp; guint changes = 0; DB( g_print("\n[transaction] auto_assign\n") ); l_rul = assign_glist_sorted(HB_GLIST_SORT_POS); l_ope = g_list_first(ope_list); while (l_ope != NULL) { Transaction *ope = l_ope->data; gboolean changed = FALSE; //#1909749 skip reconciled if lock is ON if( lockrecon && ope->status == TXN_STATUS_RECONCILED ) goto next; DB( g_print("\n- curr txn '%s' : acc=%d, pay=%d, cat=%d, %s\n", ope->memo, ope->kacc, ope->kpay, ope->kcat, (ope->flags & OF_SPLIT) ? "is_split" : "" ) ); //#1215521: added kacc == 0 if( (kacc == ope->kacc || kacc == 0) ) { Transaction *child = NULL; //#2092388 also sync child if( ope->flags & OF_INTXFER ) { child = transaction_xfer_child_strong_get(ope); } if( !(ope->flags & OF_SPLIT) ) { l_match = l_tmp = transaction_auto_assign_eval_txn(l_rul, ope); while( l_tmp != NULL ) { Assign *rul = l_tmp->data; if( (ope->kpay == 0 && (rul->flags & ASGF_DOPAY)) || (rul->flags & ASGF_OVWPAY) ) { if(ope->kpay != rul->kpay) { changed = TRUE; } ope->kpay = rul->kpay; if(child != NULL) child->kpay = rul->kpay; } if( (ope->kcat == 0 && (rul->flags & ASGF_DOCAT)) || (rul->flags & ASGF_OVWCAT) ) { if(ope->kcat != rul->kcat) { changed = TRUE; } ope->kcat = rul->kcat; if(child != NULL) child->kcat = rul->kcat; } if( (ope->paymode == 0 && (rul->flags & ASGF_DOMOD)) || (rul->flags & ASGF_OVWMOD) ) { //ugly hack - don't allow modify intxfer if( !(ope->flags & OF_INTXFER) ) { if(ope->paymode != rul->paymode) { changed = TRUE; } ope->paymode = rul->paymode; } } if( (ope->tags == NULL && (rul->flags & ASGF_DOTAG)) || (rul->flags & ASGF_OVWTAG) ) { if(tags_equal(rul->tags, ope->tags) == FALSE) { changed = TRUE; } g_free(ope->tags); ope->tags = tags_clone(rul->tags); if(child != NULL) { g_free(child->tags); child->tags = tags_clone(rul->tags); } } l_tmp = g_list_next(l_tmp); } g_list_free(l_match); } else { guint i, nbsplit = da_splits_length(ope->splits); for(i=0;isplits, i); DB( g_print("- eval split '%s'\n", split->memo) ); l_match = l_tmp = transaction_auto_assign_eval_split(l_rul, split->memo, split->amount); while( l_tmp != NULL ) { Assign *rul = l_tmp->data; //#1501144: check if user wants to set category in rule if( (split->kcat == 0 || (rul->flags & ASGF_OVWCAT)) && (rul->flags & ASGF_DOCAT) ) { if(split->kcat != rul->kcat) { changed = TRUE; } split->kcat = rul->kcat; } l_tmp = g_list_next(l_tmp); } g_list_free(l_match); } } if(changed == TRUE) { ope->dspflags |= FLAG_TMP_EDITED; changes++; if( child != NULL ) { child->dspflags |= FLAG_TMP_EDITED; changes++; } } } next: l_ope = g_list_next(l_ope); } g_list_free(l_rul); return changes; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if MYDEBUG static void da_asg_debug_list_ghfunc(gpointer key, gpointer value, gpointer user_data) { guint32 *id = key; Assign *item = value; DB( g_print(" %d :: %s\n", *id, item->search) ); } static void da_asg_debug_list(void) { DB( g_print("\n** debug **\n") ); g_hash_table_foreach(GLOBALS->h_rul, da_asg_debug_list_ghfunc, NULL); DB( g_print("\n** end debug **\n") ); } #endif homebank-5.9.1/src/hbtk-decimalentry.h0000664000175000017500000000551614774301055013360 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2023 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HBTK_DECIMAL_ENTRY_H__ #define __HBTK_DECIMAL_ENTRY_H__ G_BEGIN_DECLS #define HBTK_TYPE_DECIMAL_ENTRY (hbtk_decimal_entry_get_type ()) #define HBTK_DECIMAL_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), HBTK_TYPE_DECIMAL_ENTRY, HbtkDecimalEntry)) #define HBTK_DECIMAL_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), HBTK_TYPE_DECIMAL_ENTRY, HbtkDecimalEntryClass) #define HBTK_IS_DECIMAL_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HBTK_TYPE_DECIMAL_ENTRY)) #define HBTK_IS_DECIMAL_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HBTK_TYPE_DECIMAL_ENTRY)) #define HBTK_DECIMAL_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), HBTK_TYPE_DECIMAL_ENTRY, HbtkDecimalEntryClass)) typedef struct _HbtkDecimalEntry HbtkDecimalEntry; typedef struct _HbtkDecimalEntryClass HbtkDecimalEntryClass; typedef struct _HbtkDecimalEntryPrivate HbtkDecimalEntryPrivate; typedef enum { OPERATION_OFF, OPERATION_ADD, OPERATION_SUB, OPERATION_MUL, OPERATION_DIV } HbtkOperation; struct _HbtkDecimalEntry { GtkBox box; /*< private >*/ HbtkDecimalEntryPrivate *priv; }; struct _HbtkDecimalEntryClass { GtkBoxClass parent_class; /* signals */ void (* changed) (HbtkDecimalEntry *dateentry); /* Padding for future expansion */ void (*_gtk_reserved0) (void); void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); }; struct _HbtkDecimalEntryPrivate { GtkWidget *entry; gboolean forcedsign; gboolean valid; gdouble value; guint digits : 10; gulong hid_insert; gulong hid_changed; }; GType hbtk_decimal_entry_get_type(void) G_GNUC_CONST; GtkWidget *hbtk_decimal_entry_new(GtkWidget *label); gdouble hbtk_decimal_entry_get_value (HbtkDecimalEntry *decimalentry); gboolean hbtk_decimal_entry_get_forcedsign (HbtkDecimalEntry *decimalentry); void hbtk_decimal_entry_set_value (HbtkDecimalEntry *decimalentry, gdouble value); void hbtk_decimal_entry_set_digits (HbtkDecimalEntry *decimalentry, guint value); G_END_DECLS #endif /* __HBTK_DECIMAL_ENTRY_H__ */ homebank-5.9.1/src/ui-txn-split.h0000664000175000017500000000452014736461415012326 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_SPLIT_GTK_H__ #define __HB_SPLIT_GTK_H__ #include "ui-transaction.h" #include "hb-split.h" struct ui_split_dialog_data { GtkWidget *dialog; GtkWidget *LV_split; GtkWidget *PO_cat; GtkWidget *ST_amount; GtkWidget *ST_memo; GtkWidget *BT_edit; GtkWidget *BT_dup; GtkWidget *BT_rem; GtkWidget *BT_remall; GtkWidget *BT_add; GtkWidget *BT_apply; GtkWidget *BT_cancel; GtkWidget *IM_edit; GtkWidget *LB_sumsplit; GtkWidget *LB_remain; GtkWidget *LB_txnamount; GtkWidget *IB_wrnsum; GtkWidget *IB_errtype; GtkWidget *IB_inflimit; //Transaction *ope; GPtrArray *src_splits; GPtrArray *tmp_splits; gint mode; gint txntype; guint32 date; Currency *cur; gdouble amount; gint amountsign; gdouble sumsplit; gdouble remsplit; gboolean isedited; gint nbsplit; gint activeline; }; #define SPLIT_MODE_EMPTY 0 #define SPLIT_MODE_AMOUNT 1 void ui_split_dialog_line_sensitive(guint line, gboolean sensitive, gpointer user_data); void ui_split_dialog_compute(GtkWidget *widget, gpointer user_data); void ui_split_dialog_inactiveline(GtkWidget *widget, gpointer user_data); void ui_split_dialog_activeline(GtkWidget *widget, gpointer user_data); void ui_split_dialog_get(struct ui_split_dialog_data *data); void ui_split_dialog_set(struct ui_split_dialog_data *data); GtkWidget *ui_split_dialog (GtkWidget *parent, GPtrArray **src_splits, gint txntype, guint32 date, gdouble amount, guint32 kcur, void (update_callbackFunction(GtkWidget*, gdouble))); GtkWidget *ui_split_view_dialog (GtkWidget *parent, Transaction *ope); #endif homebank-5.9.1/src/hb-xml.c0000644000175000017500000020364714763251234011140 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-transaction.h" #include "hb-xml.h" #include "ui-dialogs.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ // v0.1 to v0.2 : we must change account reference by making a +1 to its index references static void homebank_upgrade_to_v02(void) { GList *lst_acc, *lnk_acc; GList *list; GHashTable *h_old_acc; DB( g_print("\n[hb-xml] homebank_upgrade_to_v02\n") ); //keep old hashtable with us h_old_acc = GLOBALS->h_acc; da_acc_new(); lst_acc = g_hash_table_get_values(h_old_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; acc->key++; acc->pos++; da_acc_insert (acc); list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *entry = list->data; entry->kacc++; entry->kxferacc++; list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); //we loose some small memory here g_hash_table_steal_all(h_old_acc); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; entry->kacc++; entry->kxferacc++; list = g_list_next(list); } } // v0.2 to v0.3 : we must assume categories exists : bugs 303886, 303738 static void homebank_upgrade_to_v03(void) { GList *lst_acc, *lnk_acc; GList *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v03\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *entry = list->data; da_transaction_consistency(entry); list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; da_archive_consistency(entry); list = g_list_next(list); } } static void homebank_upgrade_to_v04(void) { DB( g_print("\n[hb-xml] homebank_upgrade_to_v04\n") ); da_archive_glist_sorted(HB_GLIST_SORT_NAME); } // v0.4 to v0.5 : // we must assume kxferacc exists in archives for internal xfer : bug 528923 // if not, delete automation from the archive static void homebank_upgrade_to_v05(void) { GList *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v05\n") ); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; da_archive_consistency(entry); list = g_list_next(list); } } // v0.5 to v0.6 : we must change kxferacc to 0 on non Xfer transactions //#677351 static void homebank_upgrade_to_v06(void) { GList *lst_acc, *lnk_acc; GList *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v06\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *entry = list->data; da_transaction_consistency(entry); list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; da_archive_consistency(entry); list = g_list_next(list); } } // v0.7 AF_BUDGET deleted instead of AF_NOBUDGET static void homebank_upgrade_to_v07(void) { GList *lacc, *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v07\n") ); lacc = list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { Account *acc = list->data; if( acc->flags & AF_OLDBUDGET ) // budget include { acc->flags &= ~(AF_OLDBUDGET); } else { acc->flags |= AF_NOBUDGET; } list = g_list_next(list); } g_list_free(lacc); } static void homebank_upgrade_to_v08(void) { GList *lst_acc, *lnk_acc; GList *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v08\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *entry = list->data; da_transaction_consistency(entry); list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } static void homebank_upgrade_to_v10(void) { GList *lst_acc, *lnk_acc; GList *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v10\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *entry = list->data; entry->status = TXN_STATUS_NONE; if(entry->flags & OLDF_VALID) entry->status = TXN_STATUS_RECONCILED; else if(entry->flags & OLDF_REMIND) entry->status = TXN_OLDSTATUS_REMIND; //remove those flags entry->flags &= ~(OLDF_VALID|OLDF_REMIND); list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } static void homebank_upgrade_to_v11(void) { GList *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v11\n") ); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; entry->status = TXN_STATUS_NONE; if(entry->flags & OLDF_VALID) entry->status = TXN_STATUS_RECONCILED; else if(entry->flags & OLDF_REMIND) entry->status = TXN_OLDSTATUS_REMIND; //remove those flags entry->flags &= ~(OLDF_VALID|OLDF_REMIND); list = g_list_next(list); } } // v0.6 to v0.7 : assign a default currency static void homebank_upgrade_to_v12(void) { DB( g_print("\n[hb-xml] homebank_upgrade_to_v12\n") ); // set a base currency to the hbfile if not DB( g_print("GLOBALS->kcur %d\n", GLOBALS->kcur) ); ui_dialog_upgrade_choose_currency(); } static void homebank_upgrade_to_v12_7(void) { GList *lst_acc, *lnk_acc; DB( g_print("\n[hb-xml] homebank_upgrade_to_v12\n") ); //#1674045 exclude closed account from everywhere to //keep continuity for user that don't want to change this lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; if( acc->flags & AF_CLOSED ) { if( !(acc->flags & AF_NOSUMMARY) ) acc->flags |= AF_NOSUMMARY; if( !(acc->flags & AF_NOBUDGET) ) acc->flags |= AF_NOBUDGET; if( !(acc->flags & AF_NOREPORT) ) acc->flags |= AF_NOREPORT; } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } static void homebank_upgrade_to_v13(void) { GList *list; guint32 newkey; DB( g_print("\n[hb-xml] homebank_upgrade_to_v13\n") ); //#1008629 assign a key to each archive newkey = 1; list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *item = list->data; item->key = newkey++; list = g_list_next(list); } } static void homebank_upgrade_to_v14(void) { GList *lst_acc, *lnk_acc, *lasg; GList *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v14\n") ); //internal xfer no more a payment => goto a flags //update every txn/arc lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *item = list->data; if( item->paymode == OLDPAYMODE_INTXFER ) { item->flags |= OF_INTXFER; item->paymode = PAYMODE_NONE; } list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *item = list->data; if( item->paymode == OLDPAYMODE_INTXFER ) { item->flags |= OF_INTXFER; item->paymode = PAYMODE_NONE; } list = g_list_next(list); } //assignment now have position+name, so initiate it lasg = list = g_hash_table_get_values(GLOBALS->h_rul); while (list != NULL) { Assign *item = list->data; item->pos = item->key; list = g_list_next(list); } g_list_free(lasg); } // migrate 5.9 static void homebank_upgrade_to_v14_59(void) { GList *lst_acc, *lnk_acc; GList *list; DB( g_print("\n[hb-xml] homebank_upgrade_to_v14_59\n") ); //#chnage template/scheduled list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *item = list->data; //#move arc flags if( item->flags & (OLDF_AUTO|OLDF_LIMIT)) { DB( g_print(" move tpl flags to rec_flags\n") ); item->rec_flags = 0; if(item->flags & OLDF_AUTO) item->rec_flags |= TF_RECUR; if(item->flags & OLDF_LIMIT) item->rec_flags |= TF_LIMIT; item->flags &= ~(OLDF_AUTO|OLDF_LIMIT); } //#clean arc flags OLDF_ADDED|OLDF_CHANGED if( item->flags & (OLDF_ADDED|OLDF_CHANGED)) { DB( g_print(" clean tpl flags\n") ); item->flags &= ~(OLDF_ADDED|OLDF_CHANGED); } list = g_list_next(list); } //#remind status move to flag lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *item = list->data; //also remove tpl/sch flags item->flags &= ~(OF_REMIND|OLDF_AUTO|OLDF_LIMIT); if( item->status == TXN_OLDSTATUS_REMIND ) { DB( g_print(" move remind status\n") ); item->flags |= OF_REMIND; item->status = 0; } if( item->status == TXN_OLDSTATUS_VOID ) { DB( g_print(" update void status\n") ); item->status = TXN_STATUS_VOID; } list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } static void homebank_upgrade_to_v14_12(void) { gint oldsmode, smode; DB( g_print("\n[hb-xml] homebank_upgrade_to_v14_12\n") ); //convert old smode to new one oldsmode = GLOBALS->auto_smode; smode = 0; switch(oldsmode) { case 0: smode = ARC_POSTMODE_PAYOUT; break; case 1: { if(GLOBALS->auto_nbdays == 0) smode = ARC_POSTMODE_DUEDATE; else smode = ARC_POSTMODE_ADVANCE; } break; } DB( g_print("migrated smode: %d to %d\n", oldsmode, smode) ); GLOBALS->auto_smode = smode; } // lower v0.6 : we must assume categories/payee exists // and strong link to xfer // #632496 static void homebank_upgrade_lower_v06(void) { GList *lst_acc, *lnk_acc; Category *cat; Payee *pay; GList *lrul, *list; DB( g_print("\n[hb-xml] homebank_upgrade_lower_v06\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *entry = list->data; //also strong link internal xfer if(entry->paymode == OLDPAYMODE_INTXFER && entry->kxfer == 0) { Transaction *child = transaction_old_get_child_transfer(entry); if(child != NULL) { transaction_xfer_change_to_child(entry, child); } } da_transaction_consistency(entry); list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); lrul = list = g_hash_table_get_values(GLOBALS->h_rul); while (list != NULL) { Assign *entry = list->data; cat = da_cat_get(entry->kcat); if(cat == NULL) { DB( g_print(" !! fixing cat for rul: %d is unknown\n", entry->kcat) ); entry->kcat = 0; } pay = da_pay_get(entry->kpay); if(pay == NULL) { DB( g_print(" !! fixing pay for rul: %d is unknown\n", entry->kpay) ); entry->kpay = 0; } list = g_list_next(list); } g_list_free(lrul); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* ** misc xml attributes methods */ static void hb_xml_append_txt(GString *gstring, gchar *attrname, gchar *value) { if(value != NULL && *value != 0) { gchar *escaped = g_markup_escape_text(value, -1); g_string_append_printf(gstring, " %s=\"%s\"", attrname, escaped); g_free(escaped); } } static void append_escaped_text (GString *str, const gchar *text, gssize length) { const gchar *p; const gchar *end; gunichar c; p = text; end = text + length; while (p < end) { const gchar *next; next = g_utf8_next_char (p); switch (*p) { case '&': g_string_append (str, "&"); break; case '<': g_string_append (str, "<"); break; case '>': g_string_append (str, ">"); break; case '\'': g_string_append (str, "'"); break; case '"': g_string_append (str, """); break; default: c = g_utf8_get_char (p); if ((0x1 <= c && c <= 0x8) || (0xa <= c && c <= 0xd) || //changed here from b<->c to a<->d (0xe <= c && c <= 0x1f) || (0x7f <= c && c <= 0x84) || (0x86 <= c && c <= 0x9f)) g_string_append_printf (str, "&#x%x;", c); else g_string_append_len (str, p, next - p); break; } p = next; } } // we override g_markup_escape_text from glib to encode \n (LF) & \r (CR) static void hb_xml_append_txt_crlf(GString *gstring, gchar *attrname, gchar *value) { if(value != NULL && *value != 0) { gssize length; GString *escaped; //gchar *escaped = g_markup_escape_text(value, -1); length = strlen (value); escaped = g_string_sized_new (length); append_escaped_text (escaped, value, length); g_string_append_printf(gstring, " %s=\"%s\"", attrname, escaped->str); g_string_free (escaped, TRUE); } } static void hb_xml_append_int0(GString *gstring, gchar *attrname, guint32 value) { g_string_append_printf(gstring, " %s=\"%d\"", attrname, value); } static void hb_xml_append_int(GString *gstring, gchar *attrname, guint32 value) { if(value != 0) { hb_xml_append_int0(gstring, attrname, value); } } static void hb_xml_append_amt(GString *gstring, gchar *attrname, gdouble amount) { char buf[G_ASCII_DTOSTR_BUF_SIZE]; //we must use this, as fprintf use locale decimal settings and not '.' g_ascii_dtostr (buf, sizeof (buf), amount); g_string_append_printf(gstring, " %s=\"%s\"", attrname, buf); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void filter_group_import_keys(Filter *flt, gint group, gchar *text) { gchar **str_array; gboolean is_set; gint len, i; DB( g_print(" import keys '%s'\n", text) ); str_array = g_strsplit (text, ",", -1); len = g_strv_length( str_array ); for(i=0;i '%s'", is_set ? "set" : "**skip**") ); } g_strfreev(str_array); } static void filter_group_import(Filter *flt, gint group, const gchar *text) { gchar **str_array = NULL; gchar **bol_array = NULL; gint i, len; g_return_if_fail( flt != NULL ); DB( g_print("\n[filter] group import '%s'\n", flt->name == NULL ? "noname" : flt->name ) ); DB( g_print(" '%d' > '%s'\n", group, text) ); str_array = g_strsplit (text, "|", 2); if( g_strv_length( str_array ) != 2 ) goto end; flt->option[group] = atoi(str_array[0]); switch(group) { //0:option 1:range 2:min 3:max case FLT_GRP_DATE: bol_array = g_strsplit (str_array[1], ",", 3); len = g_strv_length( bol_array ); flt->range = atoi(bol_array[0]); if(len >= 2 && flt->range == FLT_RANGE_MISC_CUSTOM) { flt->mindate = atoi(bol_array[1]); flt->maxdate = atoi(bol_array[2]); } g_strfreev(bol_array); break; case FLT_GRP_ACCOUNT: flt->option[group] = atoi(str_array[0]); filter_group_import_keys(flt, FLT_GRP_ACCOUNT, str_array[1]); break; case FLT_GRP_PAYEE: flt->option[group] = atoi(str_array[0]); filter_group_import_keys(flt, FLT_GRP_PAYEE, str_array[1]); break; case FLT_GRP_CATEGORY: flt->option[group] = atoi(str_array[0]); filter_group_import_keys(flt, FLT_GRP_CATEGORY, str_array[1]); break; case FLT_GRP_TAG: flt->option[group] = atoi(str_array[0]); filter_group_import_keys(flt, FLT_GRP_TAG, str_array[1]); break; case FLT_GRP_STATUS: flt->option[group] = atoi(str_array[0]); bol_array = g_strsplit (str_array[1], ",", -1); if( g_strv_length( bol_array ) == 3 ) { flt->sta_non = atoi(bol_array[0]); flt->sta_clr = atoi(bol_array[1]); flt->sta_rec = atoi(bol_array[2]); } g_strfreev(bol_array); break; case FLT_GRP_TYPE: flt->option[group] = atoi(str_array[0]); bol_array = g_strsplit (str_array[1], ",", -1); if( g_strv_length( bol_array ) == 4 ) { flt->typ_nexp = atoi(bol_array[0]); flt->typ_ninc = atoi(bol_array[1]); flt->typ_xexp = atoi(bol_array[2]); flt->typ_xinc = atoi(bol_array[3]); } g_strfreev(bol_array); break; case FLT_GRP_PAYMODE: flt->option[group] = atoi(str_array[0]); bol_array = g_strsplit (str_array[1], ",", -1); len = g_strv_length( bol_array ); if( len < NUM_PAYMODE_MAX ) { for(i=0;ipaymode[id] = TRUE; } } break; case FLT_GRP_AMOUNT: flt->option[group] = atoi(str_array[0]); bol_array = g_strsplit (str_array[1], ",", -1); if( g_strv_length( bol_array ) == 2 ) { flt->minamount = g_ascii_strtod(bol_array[0], NULL); flt->maxamount = g_ascii_strtod(bol_array[1], NULL); } break; case FLT_GRP_TEXT: flt->option[group] = atoi(str_array[0]); bol_array = g_strsplit (str_array[1], "¤", -1); if( g_strv_length( bol_array ) == 3 ) { flt->exact = atoi(bol_array[0]); flt->memo = g_strdup(bol_array[1]); flt->number = g_strdup(bol_array[2]); } break; } end: g_strfreev(str_array); } static gchar *filter_group_export(Filter *flt, gint group) { gchar *retval = NULL; GString *node; guint i; DB( g_print("\n[filter] group export '%s'\n", flt->name == NULL ? "noname" : flt->name )) ; g_return_val_if_fail( flt != NULL, NULL ); switch(group) { case FLT_GRP_DATE: if(flt->option[group] > 0) { //TODO: maybe always keep 4 values here if(flt->range == FLT_RANGE_MISC_CUSTOM) retval = g_strdup_printf("%d|%d,%d,%d", flt->option[group], FLT_RANGE_MISC_CUSTOM, flt->mindate, flt->maxdate); else retval = g_strdup_printf("%d|%d", flt->option[group], flt->range); DB( g_printf(" date > '%s'\n", retval) ); } break; case FLT_GRP_ACCOUNT: if(flt->option[group] > 0) { node = g_string_sized_new(flt->gbacc->len); g_string_append_printf(node, "%d|", flt->option[group]); DB( g_printf("acc len:%d\n", flt->gbacc->len) ); for(i=0;igbacc->len;i++) { if( da_flt_status_acc_get(flt, i) == TRUE ) g_string_append_printf(node, "%d,", i); } g_string_erase(node, node->len-1, 1); retval = g_string_free(node, FALSE); DB( g_printf(" acc > '%s'\n", retval) ); node = NULL; } break; case FLT_GRP_PAYEE: if(flt->option[group] > 0) { node = g_string_sized_new(flt->gbpay->len); g_string_append_printf(node, "%d|", flt->option[group]); DB( g_printf("pay len:%d\n", flt->gbpay->len) ); for(i=0;igbpay->len;i++) { if( da_flt_status_pay_get(flt, i) == TRUE ) g_string_append_printf(node, "%d,", i); } g_string_erase(node, node->len-1, 1); retval = g_string_free(node, FALSE); DB( g_printf(" pay > '%s'\n", retval) ); node = NULL; } break; case FLT_GRP_CATEGORY: if(flt->option[group] > 0) { node = g_string_sized_new(flt->gbcat->len); g_string_append_printf(node, "%d|", flt->option[group]); DB( g_printf("cat len:%d\n", flt->gbcat->len) ); for(i=0;igbcat->len;i++) { if( da_flt_status_cat_get(flt, i) == TRUE ) g_string_append_printf(node, "%d,", i); } g_string_erase(node, node->len-1, 1); retval = g_string_free(node, FALSE); DB( g_printf(" cat > '%s'\n", retval) ); node = NULL; } break; case FLT_GRP_TAG: if(flt->option[group] > 0) { node = g_string_sized_new(flt->gbtag->len); g_string_append_printf(node, "%d|", flt->option[group]); DB( g_printf("tag len:%d\n", flt->gbtag->len) ); for(i=0;igbtag->len;i++) { if( da_flt_status_tag_get(flt, i) == TRUE ) g_string_append_printf(node, "%d,", i); } g_string_erase(node, node->len-1, 1); retval = g_string_free(node, FALSE); DB( g_printf(" tag > '%s'\n", retval) ); node = NULL; } break; case FLT_GRP_STATUS: if(flt->option[group] > 0) { node = g_string_sized_new(30); g_string_append_printf(node, "%d|", flt->option[group]); g_string_append_printf(node, "%d,", flt->sta_non); g_string_append_printf(node, "%d,", flt->sta_clr); g_string_append_printf(node, "%d" , flt->sta_rec); retval = g_string_free(node, FALSE); DB( g_printf(" sta > '%s'\n", retval) ); node = NULL; } break; case FLT_GRP_TYPE: if(flt->option[group] > 0) { node = g_string_sized_new(30); g_string_append_printf(node, "%d|", flt->option[group]); g_string_append_printf(node, "%d,", flt->typ_nexp); g_string_append_printf(node, "%d,", flt->typ_ninc); g_string_append_printf(node, "%d,", flt->typ_xexp); g_string_append_printf(node, "%d" , flt->typ_xinc); retval = g_string_free(node, FALSE); DB( g_printf(" typ > '%s'\n", retval) ); node = NULL; } break; case FLT_GRP_PAYMODE: if(flt->option[group] > 0) { node = g_string_sized_new(30); g_string_append_printf(node, "%d|", flt->option[group]); for(i=0;ipaymode[i] == TRUE ) g_string_append_printf(node, "%d,", i); } g_string_erase(node, node->len-1, 1); retval = g_string_free(node, FALSE); DB( g_printf(" pay > '%s'\n", retval) ); node = NULL; } break; case FLT_GRP_AMOUNT: if(flt->option[group] > 0) { char buf[G_ASCII_DTOSTR_BUF_SIZE]; node = g_string_sized_new(30); g_string_append_printf(node, "%d|", flt->option[group]); //we must use this, as fprintf use locale decimal settings and not '.' g_ascii_dtostr (buf, sizeof (buf), flt->minamount); g_string_append(node, buf); g_string_append(node, ","); g_ascii_dtostr (buf, sizeof (buf), flt->maxamount); g_string_append(node, buf); retval = g_string_free(node, FALSE); DB( g_printf(" amt > '%s'\n", retval) ); node = NULL; } break; case FLT_GRP_TEXT: if(flt->option[group] > 0) { node = g_string_sized_new(30); g_string_append_printf(node, "%d|", flt->option[group]); g_string_append_printf(node, "%d¤%s¤%s", flt->exact, flt->memo, flt->number); retval = g_string_free(node, FALSE); DB( g_printf(" txt > '%s'\n", retval) ); node = NULL; } break; } return retval; } static void hb_xml_append_fltgroup(GString *gstring, gchar *attrname, Filter *flt, gint group) { gchar *tmpstr; DB( g_printf("[xml] append fltgrp for '%s' %d\n", attrname, group) ); tmpstr = filter_group_export(flt, group); if(tmpstr) { DB( g_printf(" > '%s'\n", tmpstr) ); hb_xml_append_txt(gstring, attrname, tmpstr); g_free(tmpstr); } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void homebank_load_xml_acc(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Account *entry = da_acc_malloc(); gint i; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "flags" )) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "pos" )) { entry->pos = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "type" )) { entry->type = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "curr" )) { entry->kcur = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "name" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->name = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "number" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->number = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "bankname")) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->bankname = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "initial" )) { entry->initial = g_ascii_strtod(attribute_values[i], NULL); } else if(!strcmp (attribute_names[i], "minimum" )) { entry->minimum = g_ascii_strtod(attribute_values[i], NULL); } else if(!strcmp (attribute_names[i], "maximum" )) { entry->maximum = g_ascii_strtod(attribute_values[i], NULL); } else if(!strcmp (attribute_names[i], "cheque1" )) { entry->cheque1 = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "cheque2" )) { entry->cheque2 = atoi(attribute_values[i]); } //5.7 else if(!strcmp (attribute_names[i], "website" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->website = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "notes" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->notes = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "tpl" )) { entry->karc = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "grp" )) { entry->kgrp = atoi(attribute_values[i]); } //5.5 else if(!strcmp (attribute_names[i], "ccday" )) { entry->cccday = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "rdate" )) { entry->rdate = atoi(attribute_values[i]); } } //all attribute loaded: append da_acc_insert(entry); } static void homebank_load_xml_asg(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Assign *entry = da_asg_malloc(); gint exact = 0; gint i; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "flags" )) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "pos" )) { entry->pos = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "field" )) { entry->field = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "name" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->search = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "notes" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->notes = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "payee" )) { entry->kpay = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "category")) { entry->kcat = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "paymode" )) { entry->paymode = atoi(attribute_values[i]); } //#1999879 assignment by amount do not save else if(!strcmp (attribute_names[i], "amount" )) { entry->amount = g_ascii_strtod(attribute_values[i], NULL); } // prior v08 else if(!strcmp (attribute_names[i], "exact" )) { exact = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "tags" )) { if(attribute_values[i] != NULL && strlen(attribute_values[i]) > 0 && strcmp(attribute_values[i],"(null)") != 0 ) { entry->tags = tags_parse(attribute_values[i]); } } } /* in v08 exact moved to flag */ if( ctx->file_version <= 0.7) { entry->flags = (ASGF_DOCAT|ASGF_DOPAY); if( exact > 0 ) entry->flags |= ASGF_EXACT; } //all attribute loaded: append //#1892828 append change the pos... //da_asg_append(entry); da_asg_insert(entry); } static void homebank_load_xml_pay(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Payee *entry = da_pay_malloc(); gint i; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "flags")) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "name" )) { entry->name = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "category")) { entry->kcat = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "paymode" )) { entry->paymode = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "notes" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->notes = g_strdup(attribute_values[i]); } } //all attribute loaded: append da_pay_insert(entry); } static void homebank_load_xml_prop(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { gint i; for (i = 0; attribute_names[i] != NULL; i++) { if(!strcmp (attribute_names[i], "title" )) { g_free(GLOBALS->owner); GLOBALS->owner = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "curr" )) { GLOBALS->kcur = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "car_category")) { GLOBALS->vehicle_category = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "auto_smode" )) { GLOBALS->auto_smode = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "auto_weekday")) { GLOBALS->auto_weekday = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "auto_nbmonths")) { GLOBALS->auto_nbmonths = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "auto_nbdays" )) { GLOBALS->auto_nbdays = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "earnbyh" )) { GLOBALS->lifen_earnbyh = g_ascii_strtod(attribute_values[i], NULL); } } } static void homebank_load_xml_cat(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Category *entry = da_cat_malloc(); gboolean budget; gint i, j; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "parent")) { entry->parent = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "flags" )) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "name" )) { entry->name = g_strdup(attribute_values[i]); } budget = FALSE; for(j=0;j<=12;j++) { gchar *tmpname; tmpname = g_strdup_printf ("b%d", j); if(!(strcmp (attribute_names[i], tmpname))) { entry->budget[j] = g_ascii_strtod(attribute_values[i], NULL); } g_free(tmpname); if(entry->budget[j]) budget = TRUE; } if(budget == TRUE) entry->flags |= GF_BUDGET; } //all attribute loaded: append da_cat_insert( entry); } static void homebank_load_xml_cur(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Currency *entry = da_cur_malloc (); gint i; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "flags" )) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "name" )) { entry->name = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "iso" )) { entry->iso_code = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "symb" )) { entry->symbol = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "syprf" )) { entry->sym_prefix = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "dchar" )) { entry->decimal_char = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "gchar" )) { entry->grouping_char = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "frac" )) { entry->frac_digits = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "rate" )) { entry->rate = g_ascii_strtod(attribute_values[i], NULL); } else if(!strcmp (attribute_names[i], "mdate ")) { entry->mdate = atoi(attribute_values[i]); } } //all attribute loaded: append da_cur_insert (entry); } static void homebank_load_xml_grp(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Group *entry = da_grp_malloc(); gint i; for (i = 0; attribute_names[i] != NULL; i++) { DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } //else if(!strcmp (attribute_names[i], "type")) { entry->type = atoi(attribute_values[i]); } //else if(!strcmp (attribute_names[i], "flags")) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "name" )) { entry->name = g_strdup(attribute_values[i]); } } //all attribute loaded: append da_grp_insert(entry); } static void homebank_load_xml_flt(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Filter *entry = da_flt_malloc(); gint i; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "name" )) { entry->name = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "dat" )) { filter_group_import(entry, FLT_GRP_DATE, attribute_values[i]); } else if(!strcmp (attribute_names[i], "acc" )) { filter_group_import(entry, FLT_GRP_ACCOUNT, attribute_values[i]); } else if(!strcmp (attribute_names[i], "pay" )) { filter_group_import(entry, FLT_GRP_PAYEE, attribute_values[i]); } else if(!strcmp (attribute_names[i], "cat" )) { filter_group_import(entry, FLT_GRP_CATEGORY, attribute_values[i]); } else if(!strcmp (attribute_names[i], "tag" )) { filter_group_import(entry, FLT_GRP_TAG, attribute_values[i]); } else if(!strcmp (attribute_names[i], "txt" )) { filter_group_import(entry, FLT_GRP_TEXT, attribute_values[i]); } else if(!strcmp (attribute_names[i], "amt" )) { filter_group_import(entry, FLT_GRP_AMOUNT, attribute_values[i]); } else if(!strcmp (attribute_names[i], "mod" )) { filter_group_import(entry, FLT_GRP_PAYMODE, attribute_values[i]); } else if(!strcmp (attribute_names[i], "sta" )) { filter_group_import(entry, FLT_GRP_STATUS, attribute_values[i]); } else if(!strcmp (attribute_names[i], "typ" )) { filter_group_import(entry, FLT_GRP_TYPE, attribute_values[i]); } } //5.8 force alldate if off if( entry->option[FLT_GRP_DATE] == 0 ) { entry->option[FLT_GRP_DATE] = 1; entry->range = FLT_RANGE_MISC_ALLDATE; } //all attribute loaded: append da_flt_insert(entry); } static void homebank_load_xml_tag(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Tag *entry = da_tag_malloc(); gint i; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } //else if(!strcmp (attribute_names[i], "flags")) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "name" )) { entry->name = g_strdup(attribute_values[i]); } } //all attribute loaded: append da_tag_insert(entry); } static void homebank_load_xml_fav(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Archive *entry = da_archive_malloc(); gchar *scat = NULL; gchar *samt = NULL; gchar *smem = NULL; gboolean split = FALSE; gint i; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "key" )) { entry->key = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "amount" )) { entry->amount = g_ascii_strtod(attribute_values[i], NULL); } else if(!strcmp (attribute_names[i], "account" )) { entry->kacc = atoi(attribute_values[i]); } //#1673260 else if(!strcmp (attribute_names[i], "damt" )) { entry->xferamount = g_ascii_strtod(attribute_values[i], NULL); } else if(!strcmp (attribute_names[i], "dst_account")) { entry->kxferacc = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "paymode" )) { entry->paymode = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "grpflg" )) { entry->grpflg = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "st" )) { entry->status = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "flags" )) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "payee" )) { entry->kpay = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "category" )) { entry->kcat = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "wording" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->memo = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "info" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->number = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "tags" )) { if(attribute_values[i] != NULL && strlen(attribute_values[i]) > 0 && strcmp(attribute_values[i],"(null)") != 0 ) { entry->tags = tags_parse(attribute_values[i]); } } else if(!strcmp (attribute_names[i], "recflg" )) { entry->rec_flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "nextdate" )) { entry->nextdate = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "every" )) { entry->rec_every = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "unit" )) { entry->rec_freq = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "limit" )) { entry->limit = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "weekend" )) { entry->weekend = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "gap" )) { entry->daygap = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "ordn" )) { entry->rec_ordinal = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "wkdy" )) { entry->rec_weekday = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "scat" )) { scat = (gchar *)attribute_values[i]; split = TRUE; } else if(!strcmp (attribute_names[i], "samt" )) { samt = (gchar *)attribute_values[i]; split = TRUE; } else if(!strcmp (attribute_names[i], "smem" )) { smem = (gchar *)attribute_values[i]; split = TRUE; } } if(split == TRUE) { entry->splits = da_split_new (); if (da_splits_parse(entry->splits, scat, samt, smem) > 0) { entry->flags |= OF_SPLIT; //Flag that Splits are active } } //all attribute loaded: append //GLOBALS->arc_list = g_list_append(GLOBALS->arc_list, entry); da_archive_append(entry); } static void homebank_load_xml_ope(ParseContext *ctx, const gchar **attribute_names, const gchar **attribute_values) { Transaction *entry = da_transaction_malloc(); gchar *scat = NULL; gchar *samt = NULL; gchar *smem = NULL; gboolean split = FALSE; gint i; for (i = 0; attribute_names[i] != NULL; i++) { //DB( g_print(" att='%s' val='%s'\n", attribute_names[i], attribute_values[i]) ); if(!strcmp (attribute_names[i], "date" )) { entry->date = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "amount" )) { entry->amount = g_ascii_strtod(attribute_values[i], NULL); } else if(!strcmp (attribute_names[i], "account" )) { entry->kacc = atoi(attribute_values[i]); } //#1673260 else if(!strcmp (attribute_names[i], "damt" )) { entry->xferamount = g_ascii_strtod(attribute_values[i], NULL); } else if(!strcmp (attribute_names[i], "dst_account")) { entry->kxferacc = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "paymode" )) { entry->paymode = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "grpflg" )) { entry->grpflg = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "st" )) { entry->status = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "flags" )) { entry->flags = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "payee" )) { entry->kpay = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "category" )) { entry->kcat = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "wording" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->memo = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "info" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->number = g_strdup(attribute_values[i]); } else if(!strcmp (attribute_names[i], "tags" )) { if(attribute_values[i] != NULL && strlen(attribute_values[i]) > 0 && strcmp(attribute_values[i],"(null)") != 0 ) { entry->tags = tags_parse(attribute_values[i]); } } else if(!strcmp (attribute_names[i], "kxfer" )) { entry->kxfer = atoi(attribute_values[i]); } else if(!strcmp (attribute_names[i], "scat" )) { scat = (gchar *)attribute_values[i]; split = TRUE; } else if(!strcmp (attribute_names[i], "samt" )) { samt = (gchar *)attribute_values[i]; split = TRUE; } else if(!strcmp (attribute_names[i], "smem" )) { smem = (gchar *)attribute_values[i]; split = TRUE; } } //bugfix 303886 //if(entry->kcat < 0) // entry->kcat = 0; if(split == TRUE) { entry->splits = da_split_new (); if (da_splits_parse(entry->splits, scat, samt, smem) > 0) { entry->flags |= OF_SPLIT; //Flag that Splits are active } } //all attribute loaded: append // for perf reason we use prepend here, the list will be reversed later da_transaction_prepend(entry); } static void start_element_handler (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { ParseContext *ctx = user_data; //GtkUIManager *self = ctx->self; //DB( g_print("** start element: '%s'\n", element_name) ); switch(element_name[0]) { case 'a': { if(!strcmp (element_name, "account")) //account { homebank_load_xml_acc(ctx, attribute_names, attribute_values); } else if(!strcmp (element_name, "asg")) //assign { homebank_load_xml_asg(ctx, attribute_names, attribute_values); } } break; case 'p': { if(!strcmp (element_name, "pay")) { homebank_load_xml_pay(ctx, attribute_names, attribute_values); } else if(!strcmp (element_name, "properties")) { homebank_load_xml_prop(ctx, attribute_names, attribute_values); } } break; case 'g': { if(!strcmp (element_name, "grp")) { homebank_load_xml_grp(ctx, attribute_names, attribute_values); } } break; case 'c': { if(!strcmp (element_name, "cat")) { homebank_load_xml_cat(ctx, attribute_names, attribute_values); } else if(!strcmp (element_name, "cur")) { homebank_load_xml_cur(ctx, attribute_names, attribute_values); } } break; //TODO: < 5.2 misstyped here, should be tag without a s //commented > 5.2 useless not loaded, but no side effect case 't': { if(!strcmp (element_name, "tag")) { homebank_load_xml_tag(ctx, attribute_names, attribute_values); } } break; case 'f': { if(!strcmp (element_name, "fav")) { homebank_load_xml_fav(ctx, attribute_names, attribute_values); } else if(!strcmp (element_name, "flt")) { homebank_load_xml_flt(ctx, attribute_names, attribute_values); } } break; case 'o': { if(!strcmp (element_name, "ope")) { homebank_load_xml_ope(ctx, attribute_names, attribute_values); } } break; } } /* static void end_element_handler (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { ParseContext *ctx = user_data; //DB( g_print("-- end element: %s\n", element_name) ); } */ static GMarkupParser hb_parser = { start_element_handler, NULL, //end_element_handler, NULL, //text_handler, NULL, NULL //cleanup }; static gboolean hb_xml_get_version(ParseContext *ctx, gchar *buffer) { gchar *v_buffer; ctx->file_version = 0.0; ctx->data_version = 0; /* v3.4 add :: prevent load of future file version */ v_buffer = g_strstr_len(buffer, 50, "file_version = g_ascii_strtod(v_buffer+13, NULL); /* a little hacky, but works ! */ if( ctx->file_version == 0.0 ) ctx->file_version = 0.1; else if( ctx->file_version == 5.0 ) //was a mistake ctx->file_version = 1.0; v_buffer = g_strstr_len(buffer+13, 50, "d="); if( v_buffer ) { //TODO: beware here of we display all the file... DB( g_print(" d=%.25s)\n\n", v_buffer) ); ctx->data_version = atoi(v_buffer+3); } return TRUE; } /* ** XML load homebank file: hbfile */ gint homebank_load_xml(gchar *filename) { gint retval; gchar *buffer; gsize length; GError *error = NULL; ParseContext ctx; GMarkupParseContext *context; gboolean rc, dosanity; DB( g_print("\n[hb-xml] homebank_load_xml\n") ); retval = XML_OK; if (!g_file_get_contents (filename, &buffer, &length, &error)) { if(error) { g_warning("unable to load file %s: %s", filename, error->message); g_error_free(error); retval = XML_IO_ERROR; } } else { if( hb_xml_get_version(&ctx, buffer) == FALSE ) return XML_FILE_ERROR; if( ctx.file_version > FILE_VERSION ) return XML_VERSION_ERROR; DB( g_print("- file ok : v=%.1f data_v=%06d\n", ctx.file_version, ctx.data_version) ); /* 1st: validate the file is well in utf-8 */ buffer = homebank_utf8_ensure(buffer); /* then process the buffer */ context = g_markup_parse_context_new (&hb_parser, 0, &ctx, NULL); error = NULL; rc = g_markup_parse_context_parse (context, buffer, length, &error); if( error ) { g_print("failed: %s\n", error->message); g_error_free (error); } if( rc == FALSE ) { error = NULL; g_markup_parse_context_end_parse(context, &error); if(error) { g_print("failed: %s\n", error->message); g_error_free (error); } } g_markup_parse_context_free (context); g_free (buffer); /* file upgrade / bugfix */ dosanity = FALSE; // group a test for very old version if( ctx.file_version <= 1.0 ) { if( ctx.file_version <= 0.1 ) homebank_upgrade_to_v02(); if( ctx.file_version <= 0.2 ) homebank_upgrade_to_v03(); if( ctx.file_version <= 0.3 ) homebank_upgrade_to_v04(); if( ctx.file_version <= 0.4 ) homebank_upgrade_to_v05(); if( ctx.file_version <= 0.5 ) { homebank_upgrade_to_v06(); homebank_upgrade_lower_v06(); } if( ctx.file_version <= 0.6 ) { homebank_upgrade_to_v07(); hbfile_sanity_check(); } if( ctx.file_version <= 0.7 ) // <= 4.5 { homebank_upgrade_to_v08(); } if( ctx.file_version <= 0.8 ) // <= 4.6 { dosanity = TRUE; } if( ctx.file_version <= 0.9 ) // <= 4.6.3 - 2014-08-09 { homebank_upgrade_to_v10(); dosanity = TRUE; } if( ctx.file_version <= 1.0 ) // <= 5.0.0 { homebank_upgrade_to_v11(); dosanity = TRUE; } } //starting 5.0.4 data upgrade is done without changing file_version //file version is changed only when the structure change //don't start number below with 0 to avoid octal interpretation if( ctx.data_version <= 50005 ) // <= 5.0.5 { dosanity = TRUE; } if( ctx.file_version <= 1.1 ) // <= 5.1.0 { homebank_upgrade_to_v12(); dosanity = TRUE; } if( ctx.data_version <= 50106 ) // < 5.1.6 { homebank_upgrade_to_v12_7(); } if( ctx.file_version < 1.3 ) // <= 5.2 { homebank_upgrade_to_v13(); dosanity = TRUE; } if( ctx.data_version <= 50203 ) { //fix payee defaut payment to int xfer from 5.1 dosanity = TRUE; } if( ctx.file_version < 1.4 ) // <= 5.3 { homebank_upgrade_to_v14(); dosanity = TRUE; } if( ctx.data_version < 50402 ) //fix income txn flag that may be incorrect (multiple edit) dosanity = TRUE; if( ctx.data_version < 50600 ) homebank_upgrade_to_v14_12(); if( ctx.data_version < 50604 ) //#2018414 tag name replace any space by - dosanity = TRUE; if( ctx.data_version < 50900 ) homebank_upgrade_to_v14_59(); // next ? // sanity check at last if( dosanity == TRUE ) hbfile_sanity_check(); } return retval; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* ** XML properties save */ static GError * homebank_save_xml_prop(GIOChannel *io) { gchar *title; GString *node; GError *error = NULL; title = GLOBALS->owner == NULL ? "" : GLOBALS->owner; node = g_string_sized_new(255); g_string_assign(node, "kcur); hb_xml_append_int(node, "car_category", GLOBALS->vehicle_category); hb_xml_append_int0(node, "auto_smode", GLOBALS->auto_smode); hb_xml_append_int(node, "auto_weekday", GLOBALS->auto_weekday); hb_xml_append_int(node, "auto_nbmonths", GLOBALS->auto_nbmonths); hb_xml_append_int(node, "auto_nbdays", GLOBALS->auto_nbdays); hb_xml_append_amt(node, "earnbyh", GLOBALS->lifen_earnbyh); g_string_append(node, "/>\n"); g_io_channel_write_chars(io, node->str, -1, NULL, &error); g_string_free(node, TRUE); return error; } /* ** XML currency save */ static GError * homebank_save_xml_cur(GIOChannel *io) { GList *list; gchar *tmpstr; char buf1[G_ASCII_DTOSTR_BUF_SIZE]; GError *error = NULL; list = g_hash_table_get_values(GLOBALS->h_cur); while (list != NULL) { Currency *item = list->data; tmpstr = g_markup_printf_escaped( "\n", item->key, item->flags, item->iso_code, item->name, item->symbol, item->sym_prefix, item->decimal_char, item->grouping_char, item->frac_digits, g_ascii_dtostr (buf1, sizeof (buf1), item->rate), item->mdate ); g_io_channel_write_chars(io, tmpstr, -1, NULL, &error); g_free(tmpstr); if(error) goto curfail; list = g_list_next(list); } curfail: g_list_free(list); return error; } /* ** XML account save */ static GError * homebank_save_xml_acc(GIOChannel *io) { GList *lacc, *list; GString *node; GError *error = NULL; node = g_string_sized_new(255); lacc = list = account_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Account *item = list->data; item->dspflags &= ~(FLAG_ACC_TMP_ADDED|FLAG_ACC_TMP_EDITED); //delete flag g_string_assign(node, "key); hb_xml_append_int(node, "flags", item->flags); hb_xml_append_int(node, "pos", item->pos); hb_xml_append_int(node, "type", item->type); hb_xml_append_int(node, "curr", item->kcur); hb_xml_append_txt(node, "name", item->name); hb_xml_append_txt(node, "number", item->number); hb_xml_append_txt(node, "bankname", item->bankname); hb_xml_append_amt(node, "initial", item->initial); hb_xml_append_amt(node, "minimum", item->minimum); hb_xml_append_amt(node, "maximum", item->maximum); hb_xml_append_int(node, "cheque1", item->cheque1); hb_xml_append_int(node, "cheque2", item->cheque2); hb_xml_append_txt(node, "website", item->website); hb_xml_append_txt_crlf(node, "notes", item->notes); hb_xml_append_int(node, "tpl", item->karc); hb_xml_append_int(node, "grp", item->kgrp); //5.5 hb_xml_append_int(node, "ccday", item->cccday); hb_xml_append_int(node, "rdate", item->rdate); g_string_append(node, "/>\n"); g_io_channel_write_chars(io, node->str, -1, NULL, &error); if(error) goto accfail; list = g_list_next(list); } accfail: g_list_free(lacc); g_string_free(node, TRUE); return error; } /* ** XML payee save */ static GError * homebank_save_xml_pay(GIOChannel *io) { GList *lpay, *list; GString *node; GError *error = NULL; node = g_string_sized_new(255); lpay = list = payee_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Payee *item = list->data; if(item->key != 0) { g_string_assign(node, "key); hb_xml_append_int(node, "flags", item->flags); hb_xml_append_txt(node, "name", item->name); hb_xml_append_int(node, "category", item->kcat); hb_xml_append_int(node, "paymode" , item->paymode); hb_xml_append_txt_crlf(node, "notes", item->notes); g_string_append(node, "/>\n"); g_io_channel_write_chars(io, node->str, -1, NULL, &error); if(error) goto payfail; } list = g_list_next(list); } payfail: g_list_free(lpay); g_string_free(node, TRUE); return error; } /* ** XML category save */ static GError * homebank_save_xml_cat(GIOChannel *io) { GList *lcat, *list; GString *node; char buf[G_ASCII_DTOSTR_BUF_SIZE]; GError *error = NULL; node = g_string_sized_new(255); lcat = list = category_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Category *item = list->data; guint i; if(item->key != 0) { g_string_assign(node, "key); hb_xml_append_int(node, "parent", item->parent); hb_xml_append_int(node, "flags", item->flags); hb_xml_append_txt(node, "name", item->name); for(i=0;i<=12;i++) { if(item->budget[i] != 0) { g_string_append_printf(node," b%d=\"%s\"", i, g_ascii_dtostr (buf, sizeof (buf), item->budget[i])); } } g_string_append(node, "/>\n"); g_io_channel_write_chars(io, node->str, -1, NULL, &error); if(error) goto catfail; } list = g_list_next(list); } catfail: g_list_free(lcat); g_string_free(node, TRUE); return error; } /* ** XML grp save */ static GError * homebank_save_xml_grp(GIOChannel *io) { GList *lgrp, *list; gchar *tmpstr; GError *error = NULL; lgrp = list = group_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Group *item = list->data; if(item->key != 0) { //tmpstr = g_markup_printf_escaped("\n", tmpstr = g_markup_printf_escaped("\n", item->key, //item->type, item->name ); g_io_channel_write_chars(io, tmpstr, -1, NULL, &error); g_free(tmpstr); if(error) goto grpfail; } list = g_list_next(list); } grpfail: g_list_free(lgrp); return error; } /* ** XML filter save */ static GError * homebank_save_xml_flt(GIOChannel *io) { GList *lflt, *list; GString *node; GError *error = NULL; node = g_string_sized_new(255); lflt = list = filter_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Filter *item = list->data; if(item->key != 0) { g_string_assign(node, "key); //hb_xml_append_int(node, "parent", item->parent); //hb_xml_append_int(node, "flags", item->flags); hb_xml_append_fltgroup(node, "dat", item, FLT_GRP_DATE); hb_xml_append_fltgroup(node, "acc", item, FLT_GRP_ACCOUNT); hb_xml_append_fltgroup(node, "pay", item, FLT_GRP_PAYEE); hb_xml_append_fltgroup(node, "cat", item, FLT_GRP_CATEGORY); hb_xml_append_fltgroup(node, "tag", item, FLT_GRP_TAG); hb_xml_append_fltgroup(node, "txt", item, FLT_GRP_TEXT); hb_xml_append_fltgroup(node, "amt", item, FLT_GRP_AMOUNT); hb_xml_append_fltgroup(node, "mod", item, FLT_GRP_PAYMODE); hb_xml_append_fltgroup(node, "sta", item, FLT_GRP_STATUS); hb_xml_append_fltgroup(node, "typ", item, FLT_GRP_TYPE); hb_xml_append_txt(node, "name", item->name); g_string_append(node, "/>\n"); g_io_channel_write_chars(io, node->str, -1, NULL, &error); if(error) goto fltfail; } list = g_list_next(list); } fltfail: g_list_free(lflt); g_string_free(node, TRUE); return error; } /* ** XML tag save */ static GError * homebank_save_xml_tag(GIOChannel *io) { GList *ltag, *list; gchar *tmpstr; GError *error = NULL; ltag = list = tag_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Tag *item = list->data; if(item->key != 0) { tmpstr = g_markup_printf_escaped("\n", item->key, item->name ); g_io_channel_write_chars(io, tmpstr, -1, NULL, &error); g_free(tmpstr); if(error) goto tagfail; } list = g_list_next(list); } tagfail: g_list_free(ltag); return error; } /* ** XML assign save */ static GError * homebank_save_xml_asg(GIOChannel *io) { GList *lasg, *list; GString *node; GError *error = NULL; node = g_string_sized_new(255); lasg = list = assign_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Assign *item = list->data; gchar *tagstr = tags_tostring(item->tags); //#2018680 item->flags &= ~(ASGF_PREFILLED); //delete flag g_string_assign(node, "key); hb_xml_append_int(node, "flags" , item->flags); hb_xml_append_int(node, "pos" , item->pos); hb_xml_append_int(node, "field" , item->field); hb_xml_append_txt(node, "name" , item->search); hb_xml_append_txt(node, "notes" , item->notes); hb_xml_append_int(node, "payee" , item->kpay); hb_xml_append_int(node, "category", item->kcat); hb_xml_append_int(node, "paymode" , item->paymode); //#1999879 assignment by amount do not save hb_xml_append_amt(node, "amount", item->amount); hb_xml_append_txt(node, "tags", tagstr); g_string_append(node, "/>\n"); g_io_channel_write_chars(io, node->str, -1, NULL, &error); if(error) goto asgfail; list = g_list_next(list); } asgfail: g_list_free(lasg); g_string_free(node, TRUE); return error; } /* ** XML archive save */ static GError * homebank_save_xml_fav(GIOChannel *io) { GList *list; GString *node; GError *error = NULL; node = g_string_sized_new(255); list = da_archive_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Archive *item = list->data; gchar *tagstr = tags_tostring(item->tags); g_string_assign(node, "key); hb_xml_append_amt(node, "amount", item->amount); hb_xml_append_int(node, "account", item->kacc); //#1673260 if( item->flags & OF_ADVXFER ) hb_xml_append_amt(node, "damt", item->xferamount); hb_xml_append_int(node, "dst_account", item->kxferacc); hb_xml_append_int(node, "paymode", item->paymode); hb_xml_append_int(node, "grpflg", item->grpflg); hb_xml_append_int(node, "st", item->status); hb_xml_append_int(node, "flags", item->flags); hb_xml_append_int(node, "payee", item->kpay); hb_xml_append_int(node, "category", item->kcat); hb_xml_append_txt(node, "wording", item->memo); hb_xml_append_txt(node, "info", item->number); hb_xml_append_txt(node, "tags", tagstr); hb_xml_append_int(node, "recflg", item->rec_flags); hb_xml_append_int(node, "nextdate", item->nextdate); hb_xml_append_int(node, "every", item->rec_every); hb_xml_append_int(node, "unit", item->rec_freq); if(item->rec_flags & TF_LIMIT) { hb_xml_append_int(node, "limit", item->limit); } hb_xml_append_int(node, "weekend", item->weekend); hb_xml_append_int(node, "gap", item->daygap); if(item->rec_flags & TF_RELATIVE) { hb_xml_append_int(node, "ordn", item->rec_ordinal); hb_xml_append_int(node, "wkdy", item->rec_weekday); } if(da_splits_length(item->splits) > 0) { gchar *cats, *amounts, *memos; da_splits_tostring(item->splits, &cats, &amounts, &memos); g_string_append_printf(node, " scat=\"%s\"", cats); g_string_append_printf(node, " samt=\"%s\"", amounts); //fix #1173910 gchar *escaped = g_markup_escape_text(memos, -1); g_string_append_printf(node, " smem=\"%s\"", escaped); g_free(escaped); g_free(cats); g_free(amounts); g_free(memos); } g_string_append(node, "/>\n"); g_free(tagstr); g_io_channel_write_chars(io, node->str, -1, NULL, &error); if(error) goto favfail; list = g_list_next(list); } favfail: //no list free here it is already the global list g_string_free(node, TRUE); return error; } /* ** XML transaction save */ static GError * homebank_save_xml_ope(GIOChannel *io) { GList *lst_acc, *lnk_acc; GList *list; GString *node; GError *error = NULL; node = g_string_sized_new(255); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *item = list->data; gchar *tagstr = tags_tostring(item->tags); item->dspflags = 0; g_string_assign(node, "date); hb_xml_append_amt(node, "amount", item->amount); hb_xml_append_int(node, "account", item->kacc); //#1673260 if( item->flags & OF_ADVXFER ) hb_xml_append_amt(node, "damt", item->xferamount); hb_xml_append_int(node, "dst_account", item->kxferacc); hb_xml_append_int(node, "paymode", item->paymode); hb_xml_append_int(node, "grpflg", item->grpflg); hb_xml_append_int(node, "st", item->status); hb_xml_append_int(node, "flags", item->flags); hb_xml_append_int(node, "payee", item->kpay); hb_xml_append_int(node, "category", item->kcat); hb_xml_append_txt(node, "wording", item->memo); hb_xml_append_txt(node, "info", item->number); hb_xml_append_txt(node, "tags", tagstr); hb_xml_append_int(node, "kxfer", item->kxfer); if(da_splits_length(item->splits) > 0) { gchar *cats, *amounts, *memos; da_splits_tostring(item->splits, &cats, &amounts, &memos); g_string_append_printf(node, " scat=\"%s\"", cats); g_string_append_printf(node, " samt=\"%s\"", amounts); //fix #1173910 gchar *escaped = g_markup_escape_text(memos, -1); g_string_append_printf(node, " smem=\"%s\"", escaped); g_free(escaped); g_free(cats); g_free(amounts); g_free(memos); } g_string_append(node, "/>\n"); g_free(tagstr); g_io_channel_write_chars(io, node->str, -1, NULL, &error); if(error) goto opefail; list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } opefail: g_list_free(lst_acc); g_string_free(node, TRUE); return error; } static GError * homebank_save_xml_ver(GIOChannel *io) { GError *error = NULL; char buf1[G_ASCII_DTOSTR_BUF_SIZE]; gchar *outstr; g_ascii_dtostr (buf1, sizeof (buf1), FILE_VERSION); outstr = g_strdup_printf("\n", buf1, HB_VERSION_NUM); g_io_channel_write_chars(io, outstr, -1, NULL, &error); g_free(outstr); return error; } /* ** XML save homebank file: hbfile */ gint homebank_save_xml(gchar *filename) { GIOChannel *io; GError *error = NULL; gint retval = XML_IO_ERROR; //The default encoding for the external file is UTF-8. io = g_io_channel_new_file(filename, "w", &error); if(error) goto failure; //#2069152 handle windows Controlled Folder Access (CFA) write access if( !(g_io_channel_get_flags(io) & G_IO_FLAG_IS_WRITABLE) ) { retval = XML_NOT_WRITABLE; goto failure; } g_io_channel_write_chars(io, "\n", -1, NULL, &error); if(error) goto failure; error = homebank_save_xml_ver(io); if(error) goto failure; error = homebank_save_xml_prop(io); if(error) goto failure; error = homebank_save_xml_cur(io); if(error) goto failure; error = homebank_save_xml_grp(io); if(error) goto failure; error = homebank_save_xml_acc(io); if(error) goto failure; error = homebank_save_xml_pay(io); if(error) goto failure; error = homebank_save_xml_cat(io); if(error) goto failure; error = homebank_save_xml_tag(io); if(error) goto failure; error = homebank_save_xml_asg(io); if(error) goto failure; error = homebank_save_xml_fav(io); if(error) goto failure; error = homebank_save_xml_ope(io); if(error) goto failure; error = homebank_save_xml_flt(io); if(error) goto failure; g_io_channel_write_chars(io, "\n", -1, NULL, &error); if(error) goto failure; retval = XML_OK; failure: if(error) { g_warning("unable to save file %s: %s", filename, error->message); //TODO: later: propagate up g_error_free(error); } g_io_channel_unref (io); return retval; } homebank-5.9.1/src/hb-filter.h0000644000175000017500000001345714736461415011634 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_FILTER_H__ #define __HB_FILTER_H__ /* ** filter options */ enum { FLT_OFF, FLT_INCLUDE, FLT_EXCLUDE }; enum { FLT_GRP_DATE, FLT_GRP_CATEGORY, FLT_GRP_PAYEE, FLT_GRP_ACCOUNT, FLT_GRP_TAG, FLT_GRP_TEXT, FLT_GRP_AMOUNT, FLT_GRP_PAYMODE, FLT_GRP_STATUS, FLT_GRP_TYPE, FLT_GRP_MAX }; enum { OLD56_FLT_RANGE_THISMONTH = 0, OLD56_FLT_RANGE_LASTMONTH = 1, OLD56_FLT_RANGE_THISQUARTER = 2, OLD56_FLT_RANGE_LASTQUARTER = 3, OLD56_FLT_RANGE_THISYEAR = 4, OLD56_FLT_RANGE_LASTYEAR = 5, //was not existing on 4.5 // 6 separator OLD56_FLT_RANGE_LAST30DAYS = 7, OLD56_FLT_RANGE_LAST60DAYS = 8, OLD56_FLT_RANGE_LAST90DAYS = 9, OLD56_FLT_RANGE_LAST12MONTHS = 10, // 11 separator OLD56_FLT_RANGE_OTHER = 12, // 13 separator OLD56_FLT_RANGE_ALLDATE = 14 }; enum { FLT_RANGE_UNSET = 0, FLT_RANGE_MISC_CUSTOM, FLT_RANGE_MISC_ALLDATE, FLT_RANGE_MISC_30DAYS, FLT_RANGE_LAST_DAY = 20, FLT_RANGE_LAST_WEEK, FLT_RANGE_LAST_FORTNIGHT, FLT_RANGE_LAST_MONTH, FLT_RANGE_LAST_QUARTER, FLT_RANGE_LAST_YEAR, FLT_RANGE_LAST_30DAYS, FLT_RANGE_LAST_60DAYS, FLT_RANGE_LAST_90DAYS, FLT_RANGE_LAST_12MONTHS, FLT_RANGE_LAST_6MONTHS, FLT_RANGE_THIS_DAY = 40, FLT_RANGE_THIS_WEEK, FLT_RANGE_THIS_FORTNIGHT, FLT_RANGE_THIS_MONTH, FLT_RANGE_THIS_QUARTER, FLT_RANGE_THIS_YEAR, FLT_RANGE_NEXT_DAY = 60, FLT_RANGE_NEXT_WEEK, FLT_RANGE_NEXT_FORTNIGHT, FLT_RANGE_NEXT_MONTH, FLT_RANGE_NEXT_QUARTER, FLT_RANGE_NEXT_YEAR, FLT_RANGE_TODATE_YEAR = 80, FLT_RANGE_TODATE_MONTH, FLT_RANGE_TODATE_ALL, FLT_RANGE_MAX }; enum { FLT_TYPE_ALL = 0, // 1 separator FLT_TYPE_EXPENSE = 2, FLT_TYPE_INCOME = 3, FLT_TYPE_INTXFER = 4, }; enum { FLT_STATUS_ALL = 0, // 1 separator FLT_STATUS_CLEARED = 2, FLT_STATUS_UNCLEARED = 3, FLT_STATUS_RECONCILED = 4, FLT_STATUS_UNRECONCILED = 5, // 6 separator FLT_STATUS_UNCATEGORIZED = 7, //5.9 FLT_STATUS_UNAPPROVED = 8, }; enum { FLT_QSEARCH_MEMO = 1<<0, FLT_QSEARCH_NUMBER = 1<<1, FLT_QSEARCH_PAYEE = 1<<2, FLT_QSEARCH_CATEGORY = 1<<3, FLT_QSEARCH_TAGS = 1<<4, FLT_QSEARCH_AMOUNT = 1<<5 }; struct _filter { guint32 key; //gushort flags; gchar *name; gshort option[FLT_GRP_MAX]; gint range; guint32 mindate, maxdate; //gint rawtype, rawstatus; //gboolean typ_exp, typ_inc, typ_xfr; //5.6 gboolean typ_nexp, typ_ninc, typ_xexp, typ_xinc; //5.8 gboolean sta_non, sta_clr, sta_rec; //5.6 gboolean paymode[NUM_PAYMODE_MAX]; gdouble minamount, maxamount; gboolean exact; //pointer here gchar *number; //old info < 5.8 gchar *memo; GArray *gbacc; GArray *gbpay; GArray *gbcat; GArray *gbtag; /* unsaved datas */ gshort n_active; gshort n_item[FLT_GRP_MAX]; gint type; //register combobox type gint status; gint nbchanges; gint nbdaysfuture; gboolean forceadd; gboolean forcechg; gboolean forceremind; gboolean forcevoid; gchar last_tab[8]; /* keep last active tab */ }; Filter *da_flt_malloc(void); void da_flt_free(Filter *flt); void da_flt_copy(Filter *src, Filter *dst); void da_flt_destroy(void); void da_flt_new(void); void da_flt_count_item(Filter *flt); guint da_flt_length(void); gboolean da_flt_create_none(void); gboolean da_flt_remove(guint32 key); gboolean da_flt_insert(Filter *item); gboolean da_flt_append(Filter *item); guint32 da_flt_get_max_key(void); Filter *da_flt_get_by_name(gchar *name); Filter *da_flt_get_by_imp_name(gchar *name); Filter *da_flt_get(guint32 key); void da_flt_consistency(Filter *item); guint da_flt_status_acc_set(Filter *flt, guint32 kacc, gboolean status); guint da_flt_status_pay_set(Filter *flt, guint32 kpay, gboolean status); guint da_flt_status_cat_set(Filter *flt, guint32 kcat, gboolean status); guint da_flt_status_tag_set(Filter *flt, guint32 ktag, gboolean status); gboolean da_flt_status_acc_get(Filter *flt, guint32 kacc); gboolean da_flt_status_pay_get(Filter *flt, guint32 kpay); gboolean da_flt_status_cat_get(Filter *flt, guint32 kcat); gboolean da_flt_status_tag_get(Filter *flt, guint32 ktag); GList *filter_glist_sorted(gint column); void filter_status_acc_clear_except(Filter *flt, guint32 selkey); void filter_status_pay_clear_except(Filter *flt, guint32 selkey); void filter_status_cat_clear_except(Filter *flt, guint32 selkey); void filter_reset(Filter *flt); void filter_preset_daterange_set(Filter *flt, gint range, guint32 kacc); void filter_preset_type_set(Filter *flt, gint type, gint mode); gboolean filter_preset_daterange_future_enable(Filter *flt, gint range); guint32 filter_get_maxdate_forecast(Filter *filter); void filter_preset_daterange_add_futuregap(Filter *filter, gint nbdays); void filter_set_tag_by_id(Filter *flt, guint32 key); void filter_preset_status_set(Filter *flt, gint value); gchar *filter_daterange_text_get(Filter *flt); gchar *filter_text_summary_get(Filter *flt); gboolean filter_txn_search_match(gchar *needle, Transaction *txn, gint flags); gboolean filter_tpl_search_match(gchar *needle, Archive *arc); gint filter_acc_match(Filter *flt, Account *acc); gint filter_txn_match(Filter *flt, Transaction *ope); #endif homebank-5.9.1/src/list-scheduled.c0000644000175000017500000012566414766240116012664 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "list-scheduled.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern char *CYA_ARC_FREQ2[]; /* = = = = = = = = = = = = = = = = */ gchar *ui_arc_listview_get_freq_label(gint index) { if(index <= AUTO_FREQ_YEAR) return CYA_ARC_FREQ2[index]; return ""; } /* = = = = = = = = = = = = = = = = */ static void lst_sch_widget_to_string_row(GString *node, gchar sep, GtkTreeModel *model, GtkTreeIter *iter, guint flags) { gchar strbuf[G_ASCII_DTOSTR_BUF_SIZE]; gdouble expense, income; Archive *arc; gint nblate; Payee *payee; gchar *memo; gtk_tree_model_get (model, iter, LST_DSPUPC_DATAS, &arc, LST_DSPUPC_NB_LATE, &nblate, LST_DSPUPC_EXPENSE, &expense, LST_DSPUPC_INCOME , &income, LST_DSPUPC_MEMO, &memo, -1); DB( g_print("---- %p\n", arc) ); //late if(arc && nblate > 0) { g_string_append_printf(node, nblate < 10 ? "%d" : "+10", nblate); } g_string_append_c (node, sep ); //still if(arc && (arc->rec_flags & TF_LIMIT) ) { g_string_append_printf(node, "%d", arc->limit); } g_string_append_c (node, sep ); //date if( arc != NULL ) { hb_sprint_date(strbuf, arc->nextdate); g_string_append (node, strbuf ); } g_string_append_c (node, sep ); //number //g_string_append(node, arc->number); //g_string_append_c (node, sep ); //payee if( arc != NULL ) { payee = da_pay_get(arc->kpay); if(payee != NULL) g_string_append(node, payee->name); } g_string_append_c (node, sep ); //expense if(expense < 0) { g_snprintf(strbuf, sizeof (strbuf), "%.2f", expense); g_string_append(node, strbuf); } g_string_append_c (node, sep ); //income if(income > 0) { g_snprintf(strbuf, sizeof (strbuf), "%.2f", income); g_string_append(node, strbuf); } g_string_append_c (node, sep ); //memo g_string_append(node, memo); g_string_append_c (node, sep ); g_free(memo); //account if( arc != NULL ) { Account *acc = da_acc_get(arc->kacc); g_string_append (node, (acc != NULL) ? acc->name : ""); } //eol g_string_append (node, "\n" ); } GString *lst_sch_widget_to_string(GtkTreeView *treeview, ToStringMode mode) { GString *node; GtkTreeModel *model; GtkTreeIter iter; gboolean valid; guint32 nbcols, i; gint uid; gchar sep; DB( g_print("\n[lst_sch] to string\n") ); node = g_string_new(NULL); sep = (mode == HB_STRING_PRINT) ? '\t' : ';'; // header (nbcols-2 for icon column) nbcols = gtk_tree_view_get_n_columns (treeview) - 1; for( i=1 ; i < nbcols ; i++ ) { GtkTreeViewColumn *column = gtk_tree_view_get_column (treeview, i); //todo: ? restrict to visibility if( GTK_IS_TREE_VIEW_COLUMN(column) ) { if( gtk_tree_view_column_get_visible(column)) { //skip columns uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); if( uid == COL_SCH_UID_PAYNUMBER || uid == COL_SCH_UID_CATEGORY || uid == COL_SCH_UID_CLR ) continue; /*uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); switch(uid) { case COL_DSPACC_RECON : flags |= LST_TXN_ACC_REC; break; case COL_DSPACC_CLEAR : flags |= LST_TXN_ACC_CLR; break; case COL_DSPACC_TODAY : flags |= LST_TXN_ACC_TOD; break; case COL_DSPACC_FUTURE: flags |= LST_TXN_ACC_FUT; break; }*/ g_string_append(node, gtk_tree_view_column_get_title (column)); if( i < nbcols-1 ) { g_string_append_c(node, sep); } } } } g_string_append_c(node, '\n'); //lines model = gtk_tree_view_get_model(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { lst_sch_widget_to_string_row(node, sep, model, &iter, 0); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } return node; } #if MYDEBUG == 1 static void ui_arc_listview_cell_data_function_debugkey (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *item; gchar *string; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &item, -1); string = g_strdup_printf ("[%d]", item->key ); g_object_set(renderer, "text", string, NULL); g_free(string); } #endif static void lst_sch_cell_data_func_lateicon (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gchar *iconname = NULL; gint nblate; gtk_tree_model_get(model, iter, LST_DSPUPC_NB_LATE, &nblate, -1); iconname = ( nblate > 0 ) ? ICONNAME_WARNING : NULL; g_object_set(renderer, "icon-name", iconname, NULL); } static void lst_sch_cell_data_func_latetext (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *markuptxt; gchar *color; gint nblate; //gint weight; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, LST_DSPUPC_NB_LATE, &nblate, -1); if(arc && nblate > 0) { markuptxt = g_strdup_printf(nblate < 10 ? "%d" : "+10", nblate); color = NULL; //weight = PANGO_WEIGHT_NORMAL; if(nblate > 0 && PREFS->custom_colors == TRUE) { color = PREFS->color_warn; } g_object_set(renderer, //"weight", weight, "foreground", color, "text", markuptxt, NULL); g_free(markuptxt); } else g_object_set(renderer, "text", NULL, NULL); } static void lst_sch_cell_data_func_still (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *markuptxt; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); if(arc && (arc->rec_flags & TF_LIMIT) ) { markuptxt = g_strdup_printf("%d", arc->limit); g_object_set(renderer, "markup", markuptxt, NULL); g_free(markuptxt); } else g_object_set(renderer, "text", NULL, NULL); } static void lst_sch_cell_data_func_date (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *text = NULL; gchar buffer[256]; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); if( arc != NULL ) { //TODO: g_date_valid(arc->nextdate) ? if( arc->nextdate > 0 ) { //#2099918 get date weekend shift GDate *date = g_date_new_julian (scheduled_get_txn_real_postdate(arc->nextdate, arc->weekend)); g_date_strftime (buffer, 256-1, PREFS->date_format, date); g_date_free(date); text = buffer; } } g_object_set(renderer, "text", text, NULL); } static void lst_sch_cell_data_func_payee (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *text = NULL; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); if( arc != NULL ) { //#bugfix 5.6.3 if(arc->flags & OF_INTXFER) { Account *acc = da_acc_get(arc->kxferacc); //5.6 use acc strings for 5.3 add > < for internal xfer if( acc ) text = ( arc->flags & OF_INCOME ) ? acc->xferincname : acc->xferexpname; } else { Payee *pay = da_pay_get(arc->kpay); text = (pay != NULL) ? pay->name : NULL; } } g_object_set(renderer, "text", text, NULL); } static void lst_sch_cell_data_func_category (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *text = NULL; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); if( arc != NULL ) { if(arc->flags & OF_SPLIT) { text = _("- split -"); } else { Category *cat = da_cat_get(arc->kcat); text = (cat != NULL) ? cat->fullname : ""; } } g_object_set(renderer, "text", text, NULL); } static void lst_sch_cell_data_func_memo (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *memo; gint weight; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, LST_DSPUPC_MEMO, &memo, -1); //to display total weight = arc == NULL ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; g_object_set(renderer, "weight", weight, "text", memo, NULL); //leak g_free(memo); } static void ui_arc_listview_cell_data_function_memo (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *text = NULL; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); if(arc) { text = arc->memo; } g_object_set(renderer, "text", text, NULL); } static void lst_sch_cell_data_func_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gdouble expense, income, amount; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gint column = GPOINTER_TO_INT(user_data); gchar *color; gint weight; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, LST_DSPUPC_EXPENSE, &expense, LST_DSPUPC_INCOME , &income, -1); amount = (column == -1) ? expense : income; if( amount != 0.0 ) { Account *acc = NULL; guint32 kcur = GLOBALS->kcur; if( arc != NULL ) /* display total */ { if(arc->flags & OF_INTXFER) { if( column == -1) acc = da_acc_get(arc->kacc); else acc = da_acc_get(arc->kxferacc); } else { acc = da_acc_get(arc->kacc); } } if(acc != NULL) kcur = acc->kcur; hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, kcur, GLOBALS->minor); color = get_normal_color_amount(amount); weight = (arc == NULL) ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; g_object_set(renderer, "weight", weight, "foreground", color, "text", buf, NULL); } else { g_object_set(renderer, "text", NULL, NULL); } } static void ui_arc_listview_cell_data_function_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gdouble amount; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; Account *acc; gchar *color; gint weight; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); amount = arc->amount; if( amount != 0.0) { acc = da_acc_get(arc->kacc); if( acc != NULL ) hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, acc->kcur, GLOBALS->minor); else hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, GLOBALS->kcur, GLOBALS->minor); color = get_normal_color_amount(amount); weight = arc == NULL ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; g_object_set(renderer, "weight", weight, "foreground", color, "text", buf, NULL); } else { g_object_set(renderer, "text", NULL, NULL); } } static void ui_arc_listview_cell_data_func_info (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *iconname = NULL; gchar *text = NULL; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); switch(GPOINTER_TO_INT(user_data)) { case 1: if( arc != NULL ) iconname = (arc->flags & OF_INTXFER) ? ICONNAME_HB_PM_INTXFER : (gchar *)get_paymode_icon_name(arc->paymode); g_object_set(renderer, "icon-name", iconname, NULL); break; case 2: //list_txn_eval_future(renderer, ope); if( arc != NULL ) text = arc->number; #if MYDEBUG if( arc != NULL ) { gchar *ds = g_strdup_printf ("%s kx[%d] f[%d]", text == NULL ? "" : text, arc->kxferacc, arc->flags ); g_object_set(renderer, "text", ds, NULL); g_free(ds); } #else g_object_set(renderer, "text", text, NULL); #endif break; } } static void ui_arc_listview_cell_data_func_clr (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *iconname = NULL; //const gchar *c = ""; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); if( arc != NULL ) { switch(GPOINTER_TO_INT(user_data)) { case 1: { if( arc->flags & OF_REMIND ) iconname = ICONNAME_HB_ITEM_REMIND; break; } case 2: { switch(arc->status) { /*case TXN_STATUS_CLEARED: c = "c"; break; case TXN_STATUS_RECONCILED: c = "R"; break; case TXN_STATUS_REMIND: c = "!"; break;*/ case TXN_STATUS_CLEARED: iconname = ICONNAME_HB_ITEM_CLEAR; break; case TXN_STATUS_RECONCILED: iconname = ICONNAME_HB_ITEM_RECON; break; //case TXN_STATUS_REMIND: iconname = ICONNAME_HB_ITEM_REMIND; break; case TXN_STATUS_VOID: iconname = ICONNAME_HB_ITEM_VOID; break; } break; } } } //TODO 5.6 after switch to on the change prevent do not display, maybe gtk bug //DB( g_print("\n[list_txn] clr lockrecon=%d, icon=%s", data->lockreconciled, iconname) ); //g_object_set(renderer, "text", c, NULL); g_object_set(renderer, "icon-name", iconname, NULL); } static void lst_sch_cell_data_func_account (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *arc; gchar *text = NULL; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &arc, -1); if( arc != NULL ) { Account *acc = da_acc_get(arc->kacc); if(acc != NULL) text = acc->name; } g_object_set(renderer, "text", text, NULL); } /* ** The function should return: ** a negative integer if the first value comes before the second, ** 0 if they are equal, ** or a positive integer if the first value comes after the second. */ static gint ui_arc_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); Archive *item1, *item2; gdouble tmpval; gint retval = 0; gtk_tree_model_get(model, a, LST_DSPUPC_DATAS, &item1, -1); gtk_tree_model_get(model, b, LST_DSPUPC_DATAS, &item2, -1); switch (sortcol) { case COL_SCH_UID_NEXTDATE: retval = item1->nextdate - item2->nextdate; //#2024956 default to next date if(!retval) goto domemo; break; case COL_SCH_UID_MEMO: domemo: retval = (item1->flags & GF_INCOME) - (item2->flags & GF_INCOME); if(!retval) { retval = hb_string_utf8_compare(item1->memo, item2->memo); } break; case COL_SCH_UID_PAYNUMBER: if(!(retval = item1->paymode - item2->paymode)) { retval = hb_string_utf8_compare(item1->number, item2->number); } break; case COL_SCH_UID_PAYEE: { Payee *p1, *p2; p1 = da_pay_get(item1->kpay); p2 = da_pay_get(item2->kpay); if( p1 != NULL && p2 != NULL ) { retval = hb_string_utf8_compare(p1->name, p2->name); } } break; case COL_SCH_UID_CATEGORY: { Category *c1, *c2; c1 = da_cat_get(item1->kcat); c2 = da_cat_get(item2->kcat); if( c1 != NULL && c2 != NULL ) { retval = hb_string_utf8_compare(c1->fullname, c2->fullname); } } break; case COL_SCH_UID_CLR: retval = item1->status - item2->status; break; case COL_SCH_UID_AMOUNT: tmpval = item1->amount - item2->amount; retval = tmpval > 0 ? 1 : -1; break; //#1928147 sort on account as well case COL_SCH_UID_ACCOUNT: { Account *a1, *a2; a1 = da_acc_get(item1->kacc); a2 = da_acc_get(item2->kacc); if( a1 != NULL && a2 != NULL ) { retval = hb_string_utf8_compare(a1->name, a2->name); } } break; default: g_return_val_if_reached(0); } return retval; } static void ui_arc_listview_cell_data_func_icons (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *item; gchar *iconname = NULL; gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &item, -1); switch(GPOINTER_TO_INT(user_data)) { case 1: iconname = ( item->dspflags & FLAG_TMP_PREFILLED ) ? ICONNAME_HB_ITEM_PREFILLED : NULL; break; } g_object_set(renderer, "icon-name", iconname, NULL); } static void ui_arc_listview_cell_data_function_auto (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Archive *item; gchar *info, *iconname; // get the transaction gtk_tree_model_get(model, iter, LST_DSPUPC_DATAS, &item, -1); switch(GPOINTER_TO_INT(user_data)) { case 1: iconname = ( item->rec_flags & TF_RECUR ) ? ICONNAME_HB_ITEM_AUTO : NULL; g_object_set(renderer, "icon-name", iconname, NULL); break; case 2: info = NULL; //#1898294 not translated if( ( item->rec_flags & TF_RECUR ) ) info = g_strdup_printf("%d %s", item->rec_every, ui_arc_listview_get_freq_label(item->rec_freq)); g_object_set(renderer, "text", info, NULL); g_free(info); break; } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static gboolean ui_arc_listview_func_column_drop (GtkTreeView *tree_view, GtkTreeViewColumn *column, GtkTreeViewColumn *prev_column, GtkTreeViewColumn *next_column, gpointer data) { gboolean retval = FALSE; //DB( g_print ("\n[lst_sch] column drop %p %p\n", prev_column, next_column) ); if( prev_column != NULL ) { gint coluid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(prev_column), "uid")); retval = coluid < COL_SCH_UID_PAYNUMBER ? FALSE : TRUE; //DB( g_print (" coluid=%d > %d\n", coluid, retval) ); } return retval; } static gboolean lst_sch_cb_selection_func(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean path_currently_selected, gpointer data) { GtkTreeIter iter; Archive *arc; if(gtk_tree_model_get_iter(model, &iter, path)) { gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arc, -1); if( arc == NULL ) return FALSE; } return TRUE; } static void lst_sch_popmenu_cb_activate (GtkCheckMenuItem *checkmenuitem, gpointer user_data) { GtkTreeViewColumn *column = user_data; //GtkWidget *treeview; DB( g_print ("\n[lst_sch] menuitem activated\n") ); if( !GTK_IS_TREE_VIEW_COLUMN(column) ) return; //TDOO: useless until we link dsp_accoutn balance to this list //treeview = gtk_tree_view_column_get_tree_view(GTK_TREE_VIEW_COLUMN(column)); gtk_tree_view_column_set_visible(column, gtk_check_menu_item_get_active(checkmenuitem) ); //lst_sch_columns_prefs_get(GTK_TREE_VIEW(treeview)); } static gint lst_sch_cb_button_pressed_event (GtkWidget *widget, GdkEvent *event, GtkWidget *menu) { GdkEventType type; guint button = 0; type = gdk_event_get_event_type(event); gdk_event_get_button(event, &button); DB( g_print ("\n[lst_sch] popmenu pop\n") ); if (type == GDK_BUTTON_PRESS && button == 3) { // check we ARE in the header but in bin window if (gdk_event_get_window(event) != gtk_tree_view_get_bin_window (GTK_TREE_VIEW (widget))) { #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) gtk_menu_popup_at_pointer(GTK_MENU(menu), (GdkEvent *)event); #else gtk_menu_popup (GTK_MENU(menu), NULL, NULL, NULL, NULL, button, gdk_event_get_time(event)); #endif // On indique à l'appelant que l'on a géré cet événement. return TRUE; } // On indique à l'appelant que l'on n'a pas géré cet événement. } return FALSE; } static void lst_sch_popmenu_destroy(GtkTreeView *treeview, gpointer user_data) { DB( g_print ("\n[lst_sch] menu destroy\n") ); } static GtkWidget * lst_sch_popmenu_new(GtkTreeView *treeview) { GtkWidget *menu, *menuitem; guint i; DB( g_print ("\n[lst_sch] create popmenu\n") ); menu = gtk_menu_new(); //data->ME_popmenu = menu; for(i=0 ; i < gtk_tree_view_get_n_columns(GTK_TREE_VIEW(treeview)) - 1 ; i++ ) { GtkTreeViewColumn *column = gtk_tree_view_get_column(GTK_TREE_VIEW(treeview), i); if( column != NULL ) { gint uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); if( (uid == COL_SCH_UID_PAYEE) || (uid == COL_SCH_UID_CATEGORY) || (uid == COL_SCH_UID_MEMO) ) { menuitem = gtk_check_menu_item_new_with_label ( gtk_tree_view_column_get_title (column) ); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), gtk_tree_view_column_get_visible (column) ); g_signal_connect (menuitem, "activate", G_CALLBACK (lst_sch_popmenu_cb_activate), column); DB( g_print (" [%02d] uid=%02d add\n", i, uid) ); } } } g_signal_connect (menu, "destroy", G_CALLBACK (lst_sch_popmenu_destroy), NULL); gtk_widget_show_all(menu); return menu; } static void lst_sch_widget_columns_prefs_set(struct lst_sch_data *data) { guint i; DB( g_print ("\n[lst_sch] colums prefs set\n") ); for(i=COL_SCH_UID_PAYEE;itreeview));i++) { GtkTreeViewColumn *column = gtk_tree_view_get_column(GTK_TREE_VIEW(data->treeview), i); if(column) { gint coluid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); switch(coluid) { case COL_SCH_UID_PAYEE: gtk_tree_view_column_set_visible(column, PREFS->pnl_upc_col_pay_show); gtk_tree_view_column_set_fixed_width(column, PREFS->pnl_upc_col_pay_width); break; case COL_SCH_UID_CATEGORY: gtk_tree_view_column_set_visible(column, PREFS->pnl_upc_col_cat_show); gtk_tree_view_column_set_fixed_width(column, PREFS->pnl_upc_col_cat_width); break; case COL_SCH_UID_MEMO: gtk_tree_view_column_set_visible(column, PREFS->pnl_upc_col_mem_show); gtk_tree_view_column_set_fixed_width(column, PREFS->pnl_upc_col_mem_width); break; } } } } static void lst_sch_widget_columns_prefs_get(struct lst_sch_data *data) { guint i; DB( g_print ("\n[lst_sch] colums prefs get\n") ); for(i=COL_SCH_UID_PAYEE;itreeview));i++) { GtkTreeViewColumn *column = gtk_tree_view_get_column(GTK_TREE_VIEW(data->treeview), i); if(column) { gint coluid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); //#1830656 use xxx_get_fixed_width instead of width, as if not visible will save 0 otherwise switch(coluid) { case COL_SCH_UID_PAYEE: PREFS->pnl_upc_col_pay_show = gtk_tree_view_column_get_visible(column); PREFS->pnl_upc_col_pay_width = gtk_tree_view_column_get_fixed_width(column); break; case COL_SCH_UID_CATEGORY: PREFS->pnl_upc_col_cat_show = gtk_tree_view_column_get_visible(column); PREFS->pnl_upc_col_cat_width = gtk_tree_view_column_get_fixed_width(column); break; case COL_SCH_UID_MEMO: PREFS->pnl_upc_col_mem_show = gtk_tree_view_column_get_visible(column); PREFS->pnl_upc_col_mem_width = gtk_tree_view_column_get_fixed_width(column); break; } } } } // test 5.8 static GtkTreeViewColumn * ui_arc_listview_widget_get_column_by_uid(GtkTreeView *treeview, gint uid) { GtkTreeViewColumn *column; guint i; gint coluid; for(i=0;ilst_sch_columns; DB( g_print ("\n[lst_sch] columns set order\n") ); base_column = ui_arc_listview_widget_get_column_by_uid(treeview, COL_SCH_UID_NEXTDATE); for(i=0;imove %d '%s' after %d '%s'\n", colpos_ptr[i], gtk_tree_view_column_get_title(column), GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(base_column), "uid")), gtk_tree_view_column_get_title(base_column) ) ); gtk_tree_view_move_column_after(treeview, column, base_column); base_column = column; } } } void ui_arc_listview_widget_columns_order_save(GtkTreeView *treeview) { guint i; gint *colpos_ptr = PREFS->lst_sch_columns; DB( g_print ("\n[lst_arc] columns get order\n") ); for(i=0;i= COL_SCH_UID_PAYNUMBER ) { DB( g_print(" > store %d\n", coluid) ); *colpos_ptr++ = coluid; //as amount is split into upcoming, fill in exp/inc after if( coluid == COL_SCH_UID_AMOUNT ) { *colpos_ptr++ = COL_SCH_UID_EXPENSE; *colpos_ptr++ = COL_SCH_UID_INCOME; } } } } *colpos_ptr = 0; } static GtkTreeViewColumn * ui_arc_listview_column_info_create(gint sortcolumnid) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Pay./Number")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_func_info, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_func_info, GINT_TO_POINTER(2), NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_SCH_UID_PAYNUMBER)); if( sortcolumnid > 0 ) gtk_tree_view_column_set_sort_column_id (column, COL_SCH_UID_PAYNUMBER); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); return column; } static GtkTreeViewColumn * lst_sch_listview_column_text_create(gchar *title, gint uid, GtkTreeCellDataFunc func, gpointer user_data) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new_with_attributes(title, renderer, NULL); if( uid > 0 ) g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(uid)); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); //gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_GROW_ONLY); //gtk_tree_view_column_set_expand (column, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, func, user_data, NULL); return column; } static void lst_sch_widget_destroy(GtkTreeView *treeview, gpointer user_data) { struct lst_sch_data *data; data = g_object_get_data(G_OBJECT(treeview), "inst_data"); DB( g_print ("\n[lst_sch] destroy\n") ); lst_sch_widget_columns_prefs_get(data); gtk_widget_destroy (data->menu); } GtkWidget * lst_sch_widget_new(gint listtype) { struct lst_sch_data *data; GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; DB( g_print ("\n[lst_sch] create\n") ); data = g_malloc0(sizeof(struct lst_sch_data)); if(!data) return NULL; /* create list store */ store = gtk_list_store_new( NUM_LST_DSPUPC, G_TYPE_POINTER, /* scheduled */ G_TYPE_INT, /* next (sort) */ G_TYPE_STRING, /* memo/total */ G_TYPE_DOUBLE, /* expense */ G_TYPE_DOUBLE, /* income */ G_TYPE_INT /* nb late */ ); //treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); data->treeview = treeview; g_object_unref(store); //store our window private data g_object_set_data(G_OBJECT(treeview), "inst_data", (gpointer)data); DB( g_print(" - treeview=%p, inst_data=%p\n", treeview, data) ); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_MULTIPLE); /* column: system */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //add system icon to 1st column gtk_tree_view_column_set_clickable(column, TRUE); GtkWidget *img = hbtk_image_new_from_icon_name_16 (ICONNAME_EMBLEM_SYSTEM); gtk_widget_show(img); gtk_tree_view_column_set_widget(column, img); /* column : Late */ column = gtk_tree_view_column_new(); //TRANSLATORS: title of list column to inform the scheduled transaction is Late gtk_tree_view_column_set_title(column, _("Late")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_sch_cell_data_func_lateicon, NULL, NULL); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_sch_cell_data_func_latetext, NULL, NULL); //gtk_tree_view_column_set_sort_column_id (column, LST_DSPUPC_NB_LATE); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column : Still (for limited scheduled) */ column = gtk_tree_view_column_new(); //TRANSLATORS: title of list column to inform how many occurence remain to post for limited scheduled txn gtk_tree_view_column_set_title(column, _("Still")); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_sch_cell_data_func_still, NULL, NULL); //gtk_tree_view_column_set_sort_column_id (column, LST_DSPUPC_REMAINING); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Next Date */ renderer = gtk_cell_renderer_text_new (); //#2004631 date and column title alignement //g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Next date")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_sch_cell_data_func_date, NULL, NULL); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_SCH_UID_NEXTDATE)); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // info column column = ui_arc_listview_column_info_create(-1); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Payee */ column = lst_sch_listview_column_text_create(_("Payee"), COL_SCH_UID_PAYEE, lst_sch_cell_data_func_payee, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Category */ column = lst_sch_listview_column_text_create(_("Category"), COL_SCH_UID_CATEGORY, lst_sch_cell_data_func_category, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Memo */ column = lst_sch_listview_column_text_create(_("Memo"), COL_SCH_UID_MEMO, lst_sch_cell_data_func_memo, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // status column column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Status")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_func_clr, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_func_clr, GINT_TO_POINTER(2), NULL); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_SCH_UID_CLR)); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Amount */ column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Expense")); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_sch_cell_data_func_amount, GINT_TO_POINTER(-1), NULL); //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_NAME); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_SCH_UID_EXPENSE)); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Amount */ column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Income")); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_sch_cell_data_func_amount, GINT_TO_POINTER(1), NULL); //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_NAME); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_SCH_UID_INCOME)); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Account */ column = lst_sch_listview_column_text_create(_("Account"), COL_SCH_UID_ACCOUNT, lst_sch_cell_data_func_account, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // treeview func gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), lst_sch_cb_selection_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DSPUPC_NEXT, GTK_SORT_ASCENDING); lst_sch_widget_columns_prefs_set(data); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); GtkWidget *popmenu = lst_sch_popmenu_new(GTK_TREE_VIEW(treeview)); data->menu = popmenu; g_signal_connect (treeview, "destroy", G_CALLBACK (lst_sch_widget_destroy), NULL); g_signal_connect (treeview, "button-press-event", G_CALLBACK (lst_sch_cb_button_pressed_event), popmenu); return(treeview); } GtkWidget *ui_arc_listview_widget_new(void) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; //store store = gtk_list_store_new ( 1, G_TYPE_POINTER /* scheduled */ ); //treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); #if MYDEBUG == 1 column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_function_debugkey, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); #endif // column: icons column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_func_icons, GINT_TO_POINTER(1), NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Scheduled icon */ column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_function_auto, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_function_auto, GINT_TO_POINTER(2), NULL); gtk_tree_view_column_set_spacing(column, SPACING_TINY); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Date Next on */ renderer = gtk_cell_renderer_text_new (); //#2004631 date and column title alignement //g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Next date")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_sch_cell_data_func_date, NULL, NULL); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_SCH_UID_NEXTDATE)); gtk_tree_view_column_set_sort_column_id (column, COL_SCH_UID_NEXTDATE); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // info column column = ui_arc_listview_column_info_create(COL_SCH_UID_PAYNUMBER); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Payee */ column = lst_sch_listview_column_text_create(_("Payee"), COL_SCH_UID_PAYEE, lst_sch_cell_data_func_payee, NULL); gtk_tree_view_column_set_sort_column_id (column, COL_SCH_UID_PAYEE); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Category */ column = lst_sch_listview_column_text_create(_("Category"), COL_SCH_UID_CATEGORY, lst_sch_cell_data_func_category, NULL); gtk_tree_view_column_set_sort_column_id (column, COL_SCH_UID_CATEGORY); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column: Memo */ column = lst_sch_listview_column_text_create(_("Memo"), COL_SCH_UID_MEMO, ui_arc_listview_cell_data_function_memo, NULL); gtk_tree_view_column_set_sort_column_id (column, COL_SCH_UID_MEMO); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // status column column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Status")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_func_clr, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_func_clr, GINT_TO_POINTER(2), NULL); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_SCH_UID_CLR)); gtk_tree_view_column_set_sort_column_id (column, COL_SCH_UID_CLR); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column : amount */ column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Amount")); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_arc_listview_cell_data_function_amount, NULL, NULL); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_SCH_UID_AMOUNT)); gtk_tree_view_column_set_sort_column_id (column, COL_SCH_UID_AMOUNT); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column : Account */ column = lst_sch_listview_column_text_create(_("Account"), COL_SCH_UID_ACCOUNT, lst_sch_cell_data_func_account, NULL); gtk_tree_view_column_set_sort_column_id (column, COL_SCH_UID_ACCOUNT); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column : empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //sortable gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), COL_SCH_UID_NEXTDATE, ui_arc_listview_compare_func, GINT_TO_POINTER(COL_SCH_UID_NEXTDATE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), COL_SCH_UID_PAYNUMBER, ui_arc_listview_compare_func, GINT_TO_POINTER(COL_SCH_UID_PAYNUMBER), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), COL_SCH_UID_PAYEE, ui_arc_listview_compare_func, GINT_TO_POINTER(COL_SCH_UID_PAYEE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), COL_SCH_UID_CATEGORY, ui_arc_listview_compare_func, GINT_TO_POINTER(COL_SCH_UID_CATEGORY), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), COL_SCH_UID_CLR, ui_arc_listview_compare_func, GINT_TO_POINTER(COL_SCH_UID_CLR), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), COL_SCH_UID_AMOUNT, ui_arc_listview_compare_func, GINT_TO_POINTER(COL_SCH_UID_AMOUNT), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), COL_SCH_UID_MEMO, ui_arc_listview_compare_func, GINT_TO_POINTER(COL_SCH_UID_MEMO), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), COL_SCH_UID_ACCOUNT, ui_arc_listview_compare_func, GINT_TO_POINTER(COL_SCH_UID_ACCOUNT), NULL); //#2024956 default to next date //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), COL_SCH_UID_MEMO, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), COL_SCH_UID_NEXTDATE, GTK_SORT_ASCENDING); //gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(view), FALSE); //gtk_tree_view_set_reorderable (GTK_TREE_VIEW(view), TRUE); gtk_tree_view_set_column_drag_function(GTK_TREE_VIEW(treeview), ui_arc_listview_func_column_drop, NULL, NULL); return(treeview); } homebank-5.9.1/src/list-operation.c0000644000175000017500000016542014774455134012725 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-widgets.h" #include "list-operation.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* This is not pretty. Of course you can also use a * separate compare function for each sort ID value */ static gint list_txn_sort_iter_compare_strings(gchar *s1, gchar *s2) { return hb_string_utf8_compare(s1, s2); } static gint list_txn_sort_iter_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); gint retval = 0; Transaction *ope1, *ope2; gdouble tmpval = 0; gtk_tree_model_get(model, a, MODEL_TXN_POINTER, &ope1, -1); gtk_tree_model_get(model, b, MODEL_TXN_POINTER, &ope2, -1); switch (sortcol) { case LST_DSPOPE_STATUS: if(!(retval = (ope1->dspflags & FLAG_TMP_ADDED) - (ope2->dspflags & FLAG_TMP_ADDED) ) ) { retval = (ope1->dspflags & FLAG_TMP_EDITED) - (ope2->dspflags & FLAG_TMP_EDITED); } break; case LST_DSPOPE_GRPFLAG: retval = ope1->grpflg - ope2->grpflg; break; case LST_DSPOPE_DATE: //5.7 let date as last sorting break; case LST_DSPOPE_ACCOUNT: { Account *a1, *a2; a1 = da_acc_get(ope1->kacc); a2 = da_acc_get(ope2->kacc); retval = list_txn_sort_iter_compare_strings((a1 != NULL) ? a1->name : NULL, (a2 != NULL) ? a2->name : NULL); } break; case LST_DSPOPE_PAYNUMBER: if(!(retval = ope1->paymode - ope2->paymode)) { retval = list_txn_sort_iter_compare_strings(ope1->number, ope2->number); } break; case LST_DSPOPE_PAYEE: { //#1721980 gchar *name1 = NULL; gchar *name2 = NULL; if( ope1->flags & OF_INTXFER ) { Account *acc = da_acc_get(ope1->kxferacc); name1 = (acc != NULL) ? acc->name : NULL; } else { Payee *pay = da_pay_get(ope1->kpay); name1 = (pay != NULL) ? pay->name : NULL; } if( ope2->flags & OF_INTXFER ) { Account *acc = da_acc_get(ope2->kxferacc); name2 = (acc != NULL) ? acc->name : NULL; } else { Payee *pay = da_pay_get(ope2->kpay); name2 = (pay != NULL) ? pay->name : NULL; } retval = list_txn_sort_iter_compare_strings(name1, name2); } break; case LST_DSPOPE_MEMO: retval = list_txn_sort_iter_compare_strings(ope1->memo, ope2->memo); break; case LST_DSPOPE_CLR: retval = ope1->status - ope2->status; break; case LST_DSPOPE_AMOUNT: case LST_DSPOPE_EXPENSE: case LST_DSPOPE_INCOME: //tmpval = ope1->amount - ope2->amount; //#1945636 amount sort in base currency tmpval = hb_amount_base(ope1->amount, ope1->kcur) - hb_amount_base(ope2->amount, ope2->kcur); retval = tmpval > 0 ? 1 : -1; break; case LST_DSPOPE_CATEGORY: { //2027201 order - split - gchar *name1 = NULL; gchar *name2 = NULL; if( ope1->flags & OF_SPLIT ) name1 = _("- split -"); else { Category *cat = da_cat_get(ope1->kcat); name1 = (cat != NULL) ? cat->fullname : NULL; } if( ope2->flags & OF_SPLIT ) name2 = _("- split -"); else { Category *cat = da_cat_get(ope2->kcat); name2 = (cat != NULL) ? cat->fullname : NULL; } retval = list_txn_sort_iter_compare_strings(name1, name2); } break; case LST_DSPOPE_TAGS: { gchar *t1, *t2; t1 = tags_tostring(ope1->tags); t2 = tags_tostring(ope2->tags); retval = list_txn_sort_iter_compare_strings(t1, t2); g_free(t2); g_free(t1); } break; case LST_DSPOPE_MATCH: { tmpval = ope1->matchrate - ope2->matchrate; retval = tmpval > 0 ? 1 : -1; if(!retval) { retval = ope1->date - ope2->date; } } break; default: g_return_val_if_reached(0); } //5.7 let date as last sorting if( retval == 0 ) { if(! (retval = ope1->date - ope2->date) ) { //g_print("sort on balance d1=%d, d2=%d %f %f\n", ope1->date, ope2->date, ope1->balance , ope2->balance); tmpval = ope1->pos - ope2->pos; retval = tmpval > 0 ? 1 : -1; } //g_print("ret=%d\n", ret); } return retval; } static void list_txn_cell_set_color(GtkCellRenderer *renderer, Transaction *txn) { DB( g_print("\n[list_txn] cell eval future\n") ); if( PREFS->custom_bg_future == FALSE) return; if(txn->date > GLOBALS->today) { GdkRGBA bgrgba; DB( g_print(" %s\n", PREFS->color_bg_future) ); gdk_rgba_parse(&bgrgba, PREFS->color_bg_future); bgrgba.alpha = (GLOBALS->theme_is_dark) ? 0.165 : 0.33; g_object_set(renderer, "cell-background-rgba", &bgrgba, NULL); } else { g_object_set(renderer, "cell-background-rgba", NULL, NULL); } } static void list_txn_eval_future(GtkCellRenderer *renderer, Transaction *txn) { DB( g_print("\n[list_txn] eval future\n") ); if(txn->date > GLOBALS->today) { g_object_set(renderer, "style", PANGO_STYLE_OBLIQUE, NULL); } else { //5.4.3 scale disabled g_object_set(renderer, "style-set", FALSE, NULL); } //if( txn->marker == TXN_MARK_DUPDST ) if( txn->dspflags & FLAG_TMP_DUPDST ) { g_object_set(renderer, // "strikethrough-set", TRUE, "strikethrough", TRUE, NULL); } else { g_object_set(renderer, "strikethrough-set", FALSE, NULL); } //if( txn->marker == TXN_MARK_DUPSRC ) if( txn->dspflags & FLAG_TMP_DUPSRC ) { g_object_set(renderer, // "weight-set", TRUE, "weight", PANGO_WEIGHT_BOLD, NULL); } else { g_object_set(renderer, "weight-set", FALSE, NULL); } } static void list_txn_cell_data_func_status (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; Split *split; gchar *iconname = NULL; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); switch(GPOINTER_TO_INT(user_data)) { //status icons case 1: if( ope->dspflags & FLAG_TMP_EDITED ) iconname = ICONNAME_HB_ITEM_EDITED; else if( ope->dspflags & FLAG_TMP_ADDED ) iconname = ICONNAME_HB_ITEM_ADDED; break; //actions icons case 2: //temporary icons if( ope->dspflags & FLAG_TMP_DUPDST ) iconname = ICONNAME_HB_ITEM_SIMILAR; else if( ope->flags & OF_ISIMPORT ) iconname = ICONNAME_HB_ITEM_IMPORT; else if( ope->flags & OF_ISPAST ) iconname = ICONNAME_HB_ITEM_PAST; else if( ope->date > GLOBALS->today ) iconname = ICONNAME_HB_ITEM_FUTURE; break; } } g_object_set(renderer, "icon-name", iconname, NULL); } static void list_txn_cell_data_func_status_dupgid (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Split *split; Transaction *ope; gchar buffer[6]; buffer[0] = 0; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); if( ope->dspflags & (FLAG_TMP_DUPSRC|FLAG_TMP_DUPDST) ) g_snprintf(buffer, 6-1, ":%d", ope->dupgid); else if( ope->dspflags & (FLAG_TMP_CHKSIGN) ) { buffer[0]='*'; buffer[1]=0; } } g_object_set(renderer, "text", buffer, NULL); } static void list_txn_cell_data_func_account (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; Split *split; gchar *text = NULL; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { Account *acc = da_acc_get(ope->kacc); //fixed 5.6.3 list_txn_cell_set_color(renderer, ope); list_txn_eval_future(renderer, ope); if( acc ) { text = acc->name; } } g_object_set(renderer, "text", text, NULL); } static void list_txn_cell_data_func_grpflag (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; Split *split; const gchar *iconname = NULL; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); iconname = ope->grpflg > 0 ? get_grpflag_icon_name(ope->grpflg) : NULL; } g_object_set(renderer, "icon-name", iconname, NULL); } static void list_txn_cell_data_func_match_rate (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; gchar buffer[8]; gtk_tree_model_get(model, iter, MODEL_TXN_POINTER, &ope, -1); g_snprintf(buffer, 8-1, "%d %%", ope->matchrate); g_object_set(renderer, "text", buffer, NULL); } static void list_txn_cell_data_func_date (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; Split *split; gchar buffer[256]; GDate date; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split != NULL ) { g_object_set(renderer, "text", NULL, NULL); } else { list_txn_cell_set_color(renderer, ope); list_txn_eval_future(renderer, ope); if(ope->date > 0) { g_date_set_julian (&date, ope->date); g_date_strftime (buffer, 256-1, PREFS->date_format, &date); #if MYDEBUG gchar *ds = g_strdup_printf ("%s [%02d]", buffer, ope->pos ); g_object_set(renderer, "text", ds, NULL); g_free(ds); #else g_object_set(renderer, "text", buffer, NULL); #endif } else g_object_set(renderer, "text", "????", NULL); } } static void list_txn_cell_data_func_info (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; Split *split; gchar *iconname = NULL; gchar *text = NULL; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) list_txn_cell_set_color(renderer, ope); switch(GPOINTER_TO_INT(user_data)) { case 1: if( split == NULL ) { iconname = (ope->flags & OF_INTXFER) ? ICONNAME_HB_PM_INTXFER : (gchar *)get_paymode_icon_name(ope->paymode); } g_object_set(renderer, "icon-name", iconname, NULL); break; case 2: if( split == NULL ) { list_txn_eval_future(renderer, ope); text = ope->number; } #if MYDEBUG gchar *ds = g_strdup_printf ("%s kx[%d] f[%d]", text == NULL ? "" : text, ope->kxfer, ope->flags ); g_object_set(renderer, "text", ds, NULL); g_free(ds); #else g_object_set(renderer, "text", text, NULL); #endif break; } } static void list_txn_cell_data_func_payee (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; Split *split; gchar *text = NULL; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); list_txn_eval_future(renderer, ope); //#926782 if(ope->flags & OF_INTXFER) { Account *acc = da_acc_get(ope->kxferacc); //5.6 use acc strings for 5.3 add > < for internal xfer if( acc ) text = ( ope->flags & OF_INCOME ) ? acc->xferincname : acc->xferexpname; } else { Payee *pay = da_pay_get(ope->kpay); text = (pay != NULL) ? pay->name : NULL; } } g_object_set(renderer, "text", text, NULL); } static void list_txn_cell_data_func_tags (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Split *split; Transaction *ope; gchar *str; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); list_txn_eval_future(renderer, ope); if(ope->tags != NULL) { str = tags_tostring(ope->tags); g_object_set(renderer, "text", str, NULL); g_free(str); } else g_object_set(renderer, "text", "", NULL); } else g_object_set(renderer, "text", NULL, NULL); } static void list_txn_cell_data_func_memo (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; Split *split; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); list_txn_eval_future(renderer, ope); g_object_set(renderer, "text", ope->memo, NULL); } else if( split != NULL ) { g_object_set(renderer, "text", split->memo, NULL); } } static void list_txn_cell_data_func_account_icon (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Transaction *ope; Split *split; Account *acc; gchar *iconname = NULL; gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); acc = da_acc_get(ope->kacc); if( acc && (acc->flags & AF_CLOSED) ) { iconname = ICONNAME_HB_ITEM_CLOSED; } } g_object_set(renderer, "icon-name", iconname, NULL); } static void list_txn_cell_data_func_clr (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { struct list_txn_data *data = NULL; GtkWidget *widget; Transaction *ope; Split *split; gchar *iconname = NULL; //const gchar *c = ""; widget = gtk_tree_view_column_get_tree_view(col); if( widget ) data = g_object_get_data(G_OBJECT(widget), "inst_data"); gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) list_txn_cell_set_color(renderer, ope); switch(GPOINTER_TO_INT(user_data)) { case 1: //todo: remove this //if( (data->lockreconciled == TRUE) && (ope->status == TXN_STATUS_RECONCILED) ) // iconname = ICONNAME_CHANGES_PREVENT; if( ope->flags & OF_REMIND ) iconname = ICONNAME_HB_ITEM_REMIND; break; case 2: { if( split == NULL ) { switch(ope->status) { /*case TXN_STATUS_CLEARED: c = "c"; break; case TXN_STATUS_RECONCILED: c = "R"; break; case TXN_STATUS_REMIND: c = "!"; break;*/ case TXN_STATUS_CLEARED: iconname = ICONNAME_HB_ITEM_CLEAR; break; case TXN_STATUS_RECONCILED: iconname = ICONNAME_HB_ITEM_RECON; if( (data->lockreconciled == TRUE) ) iconname = ICONNAME_HB_ITEM_RECONLOCK; break; //case TXN_STATUS_REMIND: iconname = ICONNAME_HB_ITEM_REMIND; break; case TXN_STATUS_VOID: iconname = ICONNAME_HB_ITEM_VOID; break; } } break; } } //TODO 5.6 after switch to on the change prevent do not display, maybe gtk bug //DB( g_print("\n[list_txn] clr lockrecon=%d, icon=%s", data->lockreconciled, iconname) ); //g_object_set(renderer, "text", c, NULL); g_object_set(renderer, "icon-name", iconname, NULL); } static void list_txn_cell_data_func_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { struct list_txn_data *data = NULL; GtkWidget *widget; Transaction *ope; Split *split; gint column = GPOINTER_TO_INT(user_data); gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gint type; gdouble amount, samount; gchar *color; widget = gtk_tree_view_column_get_tree_view(col); if( widget ) data = g_object_get_data(G_OBJECT(widget), "inst_data"); g_return_if_fail(data != NULL); // get the transaction gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_SPLITAMT, &samount, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); list_txn_eval_future(renderer, ope); if(column == LST_DSPOPE_BALANCE) amount = ope->balance; else amount = ope->amount; if(column == LST_DSPOPE_INCOME || column == LST_DSPOPE_EXPENSE) { type = (ope->flags & OF_INCOME) ? LST_DSPOPE_INCOME : LST_DSPOPE_EXPENSE; if( type != column) { g_object_set(renderer, "markup", NULL, NULL); return; } } //for detail display the split part (if any) if( data->list_type == LIST_TXN_TYPE_DETAIL ) amount = samount; } else if( split != NULL ) { amount = split->amount; } //if(amount != 0) //{ //5.8 test for life energy if( data->life_energy == FALSE || column == LST_DSPOPE_BALANCE || column == LST_DSPOPE_INCOME ) hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, ope->kcur, GLOBALS->minor); else hb_strlifeenergy(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, ope->kcur, GLOBALS->minor); color = get_normal_color_amount(amount); //if( (column == LST_DSPOPE_BALANCE) && (ope->overdraft == TRUE) && (PREFS->custom_colors == TRUE) ) if( (column == LST_DSPOPE_BALANCE) && (PREFS->custom_colors == TRUE) && (ope->dspflags & FLAG_TMP_OVER) ) { color = PREFS->color_warn; } //5.6.3 future alpha if( color != NULL && ope->date > GLOBALS->today ) { g_object_set(renderer, "foreground", color, NULL); } else { g_object_set(renderer, "foreground", color, "text", buf, NULL); } g_object_set(renderer, "text", buf, NULL); //} //test if( (column == LST_DSPOPE_BALANCE) && (ope->dspflags & FLAG_TMP_LOWBAL)) g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, NULL); else g_object_set(renderer, "weight", PANGO_WEIGHT_NORMAL, NULL); } static void list_txn_cell_data_func_category (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { struct list_txn_data *data = NULL; GtkWidget *widget; Transaction *ope; Split *split; Category *cat; gchar *color = NULL; gchar *text = NULL; widget = gtk_tree_view_column_get_tree_view(col); if( widget ) data = g_object_get_data(G_OBJECT(widget), "inst_data"); gtk_tree_model_get(model, iter, MODEL_TXN_SPLITPTR, &split, MODEL_TXN_POINTER, &ope, -1); if( split == NULL ) { list_txn_cell_set_color(renderer, ope); list_txn_eval_future(renderer, ope); if(ope->flags & OF_SPLIT) { text = _("- split -"); } else { if( ope->kcat > 0 ) { cat = da_cat_get(ope->kcat); text = (cat != NULL) ? cat->fullname : ""; } else { //#1673902 add a visual marker for uncategorized txn //#1844881 but not for internal xfer if( (data->warnnocategory == TRUE) && !(ope->flags & OF_INTXFER) ) { color = PREFS->color_warn; text = _("- this needs a category -"); } } } } else if( split != NULL ) { if( split->kcat > 0 ) { cat = da_cat_get(split->kcat); text = (cat != NULL) ? cat->fullname : ""; } } //if( color != NULL ) //{ g_object_set(renderer, "foreground", color, NULL); //} g_object_set(renderer, "text", text, NULL); } /* = = = = = = = = = = = = = = = = */ //#1967708 encode csv string: add string delimiter ", and doubled if inside static void list_txn_to_string_csv_text(GString *node, gchar csep, gchar *text) { gchar sep[2]; sep[0] = csep; sep[1] = 0; DB( g_print("---- stt csv text ----\n") ); DB( g_print(" text: '%s' '%s' %ld\n", text, sep, strlen(sep)) ); if( text == NULL ) { g_string_append (node, ""); DB( g_print(" >skipped null\n") ); } else { size_t textlen = strlen(text); if( textlen == 0 ) { g_string_append (node, ""); DB( g_print(" >skipped empty\n") ); } else { //sep into string ? DB( g_print(" search '%s' in '%s' %ld\n", sep, text, textlen) ); if( g_strstr_len(text, textlen, sep) == NULL ) { //no: put native text g_string_append (node, text); DB( g_print(" >not found\n") ); } else { DB( g_print(" >found, so add \"xxx\"\n") ); //yes: encode with string delimiter g_string_append_c (node, '"' ); // " not inside inside ? if( g_strstr_len(text, textlen, "\"") == NULL ) { //no: put native text DB( g_print(" >no \" found put text\n") ); g_string_append (node, text); } else { //yes: double the text delimiter GString *dtext = g_string_new(text); DB( g_print(" >\" found double \" into text\n") ); g_string_replace(dtext, "\"", "\"\"", 0); g_string_append (node, dtext->str); g_string_free(dtext, TRUE); } g_string_append_c (node, '"' ); } } } DB( g_print("---- end csv text ----\n") ); } static void list_txn_to_string_line(GString *node, gchar sep, Transaction *ope, guint32 kcat, gchar *memo, gdouble amount, guint flags) { Account *acc; Payee *payee; Category *category; gchar *tags; gint digits = 2; char strbuf[G_ASCII_DTOSTR_BUF_SIZE]; DB( g_print("----\n") ); //#2090183 get currency digits acc = da_acc_get(ope->kacc); if( acc != NULL ) { Currency *cur = da_cur_get(acc->kcur); if( cur != NULL) digits = cur->frac_digits; } //account if( flags & LST_TXN_EXP_ACC ) { g_string_append (node, (acc != NULL) ? acc->name : ""); g_string_append_c (node, sep ); } //date hb_sprint_date(strbuf, ope->date); g_string_append (node, strbuf ); //paymode if( flags & LST_TXN_EXP_PMT ) { g_snprintf(strbuf, sizeof (strbuf), "%d", ope->paymode); g_string_append_c (node, sep ); g_string_append (node, strbuf ); } //info //g_string_append (node, (ope->number != NULL) ? ope->number : "" ); g_string_append_c (node, sep ); DB( g_print(" num: '%s'\n", ope->number) ); list_txn_to_string_csv_text(node, sep, ope->number); //payee payee = da_pay_get(ope->kpay); g_string_append_c (node, sep ); //#2078281 if(payee != NULL) { //g_string_append (node, (payee->name != NULL) ? payee->name : ""); DB( g_print(" pay: '%s'\n", payee->name) ); list_txn_to_string_csv_text(node, sep, payee->name); } //memo //g_string_append (node, (memo != NULL) ? memo : "" ); g_string_append_c (node, sep ); //#2051440 include split memo :D DB( g_print(" mem: '%s'\n", memo) ); list_txn_to_string_csv_text(node, sep, memo); //amount //#793719 //g_ascii_dtostr (amountbuf, sizeof (amountbuf), ope->amount); //#1750257 use locale numdigit //g_ascii_formatd (amountbuf, sizeof (amountbuf), "%.2f", ope->amount); //TODO: or not we should use the currency fmt here g_snprintf(strbuf, sizeof (strbuf), "%.*f", digits, amount); DB( g_print("amount = %f '%s'\n", amount, strbuf) ); g_string_append_c (node, sep ); g_string_append (node, strbuf ); //#1847907 v 5.3.2 add reconcile as c column like in pdf export //status if( flags & LST_TXN_EXP_CLR ) { DB( g_print("clr = %s\n", transaction_get_status_string(ope)) ); g_string_append_c (node, sep ); g_string_append (node, transaction_get_status_string(ope) ); } //category if( flags & LST_TXN_EXP_CAT ) { g_string_append_c (node, sep ); category = da_cat_get(kcat); if(category != NULL) { //g_string_append (node, (category->fullname != NULL) ? category->fullname : "" ); DB( g_print(" cat: '%s'\n", category->fullname) ); list_txn_to_string_csv_text(node, sep, category->fullname); } } //tags if( flags & LST_TXN_EXP_TAG ) { tags = tags_tostring(ope->tags); g_string_append_c (node, sep ); g_string_append (node, tags != NULL ? tags : ""); g_free(tags); } //balance if( flags & LST_TXN_EXP_BAL ) { g_snprintf(strbuf, sizeof (strbuf), "%.*f", digits, ope->balance); DB( g_print(" balance = %f '%s'\n", ope->balance, strbuf) ); g_string_append_c (node, sep ); g_string_append (node, strbuf ); } //eol g_string_append (node, "\n" ); } GString *list_txn_to_string(GtkTreeView *treeview, gboolean isclipboard, gboolean hassplit, gboolean selectonly, guint flags) { struct list_txn_data *data = NULL; GtkTreeModel *model; GtkTreeIter iter; GtkTreeSelection *selection; gboolean valid; GString *node; Transaction *ope; gdouble amount, samount; gchar sep; DB( g_print("\n[list_txn] to string\n") ); //adding account, status, split, balance break csv reimport //date payment paynumber payee memo amount category tags data = g_object_get_data(G_OBJECT(treeview), "inst_data"); node = g_string_new(NULL); sep = (isclipboard == TRUE) ? '\t' : ';'; // header line if( flags & LST_TXN_EXP_ACC ) { //g_string_append (node, "account" ); g_string_append (node, _("Account") ); g_string_append_c (node, sep ); } //g_string_append (node, "date" ); g_string_append (node, _("Date") ); if( flags & LST_TXN_EXP_PMT ) { g_string_append_c (node, sep ); //g_string_append (node, "paymode" ); g_string_append (node, _("Payment") ); } g_string_append_c (node, sep ); //g_string_append (node, "info" ); g_string_append (node, _("Number") ); g_string_append_c (node, sep ); //g_string_append (node, "payee" ); g_string_append (node, _("Payee") ); g_string_append_c (node, sep ); //g_string_append (node, "memo" ); g_string_append (node, _("Memo") ); g_string_append_c (node, sep ); //g_string_append (node, "amount" ); g_string_append (node, _("Amount") ); //#1847907 v 5.3.2 add reconcile as c column like in pdf export if( flags & LST_TXN_EXP_CLR ) { g_string_append_c (node, sep ); g_string_append (node, "C" ); //CLR/STATUS } if( flags & LST_TXN_EXP_CAT ) { g_string_append_c (node, sep ); //g_string_append (node, "category" ); g_string_append (node, _("Category") ); } if( flags & LST_TXN_EXP_TAG ) { g_string_append_c (node, sep ); //g_string_append (node, "tags" ); g_string_append (node, _("Tags") ); } if( flags & LST_TXN_EXP_BAL ) { g_string_append_c (node, sep ); //g_string_append (node, "balance" ); g_string_append (node, _("Balance") ); } g_string_append (node, "\n" ); DB( g_print(" head: '%s'", node->str) ); // each txn //total = 0.0; model = gtk_tree_view_get_model(treeview); selection = gtk_tree_view_get_selection(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { gtk_tree_model_get (model, &iter, MODEL_TXN_POINTER, &ope, MODEL_TXN_SPLITAMT, &samount, -1); if( selectonly && gtk_tree_selection_iter_is_selected(selection, &iter) == FALSE ) goto next; //normal export: if we don't want split or the txn has no split if( (hassplit == FALSE) ) { amount = ope->amount; //for detail display the split part (if any) if( data && (data->list_type == LIST_TXN_TYPE_DETAIL) ) amount = samount; list_txn_to_string_line(node, sep, ope, ope->kcat, ope->memo, amount, flags); //total += amount; } else { if( (ope->splits == NULL) ) { list_txn_to_string_line(node, sep, ope, ope->kcat, ope->memo, ope->amount, flags); //total += ope->amount; } else { guint i, nbsplit = da_splits_length(ope->splits); DB( g_print(" split detail\n") ); for(i=0;isplits, i); DB( g_print(" split %d\n", i) ); list_txn_to_string_line(node, sep, ope, split->kcat, split->memo, split->amount, flags); //total += split->amount; } } } next: valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } //DB( g_print("text is:\n%s", node->str) ); return node; } gboolean list_txn_column_id_isvisible(GtkTreeView *treeview, gint sort_id) { GtkTreeViewColumn *column; gint n, id; for(n=0; n < NUM_LST_DSPOPE-1 ; n++ ) // -1 cause account not to be processed { column = gtk_tree_view_get_column (treeview, n); if(column == NULL) continue; if( gtk_tree_view_column_get_visible(column) ) { id = gtk_tree_view_column_get_sort_column_id (column); if( sort_id == id ) return TRUE; } } return FALSE; } static GtkTreeViewColumn *list_txn_get_column(GList *list, gint search_id) { GtkTreeViewColumn *column = NULL; GList *tmp; gint id; tmp = g_list_first(list); while (tmp != NULL) { id = gtk_tree_view_column_get_sort_column_id(tmp->data); if( search_id == id ) { column = tmp->data; break; } tmp = g_list_next(tmp); } return column; } guint list_txn_get_quicksearch_column_mask(GtkTreeView *treeview) { GtkTreeViewColumn *column; guint n, mask; gint id; mask = 0; for(n=0; n < NUM_LST_DSPOPE-1 ; n++ ) // -1 cause account not to be processed { column = gtk_tree_view_get_column (treeview, n); if(column == NULL) continue; if( gtk_tree_view_column_get_visible(column) ) { id = gtk_tree_view_column_get_sort_column_id (column); switch(id) { case LST_DSPOPE_MEMO: mask |= FLT_QSEARCH_MEMO; break; case LST_DSPOPE_PAYNUMBER: mask |= FLT_QSEARCH_NUMBER; break; case LST_DSPOPE_PAYEE: mask |= FLT_QSEARCH_PAYEE; break; case LST_DSPOPE_CATEGORY: mask |= FLT_QSEARCH_CATEGORY; break; case LST_DSPOPE_TAGS: mask |= FLT_QSEARCH_TAGS; break; case LST_DSPOPE_AMOUNT: case LST_DSPOPE_EXPENSE: case LST_DSPOPE_INCOME: mask |= FLT_QSEARCH_AMOUNT; break; } } } return mask; } void list_txn_set_save_column_width(GtkTreeView *treeview, gboolean save_column_width) { struct list_txn_data *data; DB( g_print("\n[list_txn] save column width\n") ); data = g_object_get_data(G_OBJECT(treeview), "inst_data"); if( data ) { data->save_column_width = save_column_width; } } void list_txn_set_lockreconciled(GtkTreeView *treeview, gboolean lockreconciled) { struct list_txn_data *data; DB( g_print("\n[list_txn] set lock reconciled\n") ); data = g_object_get_data(G_OBJECT(treeview), "inst_data"); data->lockreconciled = lockreconciled; DB( g_print(" lockrecon=%d\n", data->lockreconciled) ); } void list_txn_set_warn_nocategory(GtkTreeView *treeview, gboolean warn) { struct list_txn_data *data; data = g_object_get_data(G_OBJECT(treeview), "inst_data"); data->warnnocategory = warn; } void list_txn_set_life_energy(GtkTreeView *treeview, gboolean life_energy) { struct list_txn_data *data = g_object_get_data(G_OBJECT(treeview), "inst_data"); data->life_energy = life_energy; //gtk_widget_queue_draw (GTK_WIDGET(treeview)); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(treeview)); } void list_txn_set_column_acc_visible(GtkTreeView *treeview, gboolean visible) { struct list_txn_data *data; GList *list; GtkTreeViewColumn *column; data = g_object_get_data(G_OBJECT(treeview), "inst_data"); data->showall = visible; list = gtk_tree_view_get_columns( treeview ); //if acc visible: balance must be invisible column = list_txn_get_column(list, LST_DSPOPE_ACCOUNT); if(column) gtk_tree_view_column_set_visible (column, visible); column = list_txn_get_column(list, LST_DSPOPE_BALANCE); if(column) gtk_tree_view_column_set_visible (column, !visible); g_list_free(list); } void list_txn_sort_force(GtkTreeSortable *sortable, gpointer user_data) { gint sort_column_id; GtkSortType order; DB( g_print("\n[list_txn] sort\n") ); gtk_tree_sortable_get_sort_column_id(sortable, &sort_column_id, &order); DB( g_print(" - id %d order %d\n", sort_column_id, order) ); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sortable), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, order); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sortable), sort_column_id, order); } void list_txn_get_columns(GtkTreeView *treeview) { struct list_txn_data *data; GtkTreeViewColumn *column; gint i, col_id; gint *col_id_ptr; gint *col_width_ptr; DB( g_print("\n[list_txn] get columns position/width\n") ); data = g_object_get_data(G_OBJECT(treeview), "inst_data"); //default for LIST_TXN_TYPE_BOOK col_id_ptr = PREFS->lst_ope_columns; col_width_ptr = PREFS->lst_ope_col_width; if( data->list_type == LIST_TXN_TYPE_DETAIL ) { col_id_ptr = PREFS->lst_det_columns; col_width_ptr = PREFS->lst_det_col_width; } DB( g_print(" nbcol=%d, nbsortid=%d\n", NUM_LST_DSPOPE, gtk_tree_view_get_n_columns (treeview)) ); for(i=0 ; i < NUM_LST_DSPOPE-1 ; i++ ) // -1 'caus: account and blank column { column = gtk_tree_view_get_column(treeview, i); if(column != NULL) { col_id = gtk_tree_view_column_get_sort_column_id (column); if( col_id >= 0 ) { gboolean visible; visible = gtk_tree_view_column_get_visible (column); if( col_id == LST_DSPOPE_BALANCE) //keep initial state of balance visible = data->tvc_is_visible; if( visible ) { col_id_ptr[i] = col_id; //5.2 moved here to keep old width in case not visible col_width_ptr[col_id-1] = gtk_tree_view_column_get_width(column); } else col_id_ptr[i] = -col_id; DB( g_print(" col-%2d => %2d '%s' w=%d\n", i, col_id, gtk_tree_view_column_get_title(column), PREFS->lst_ope_col_width[col_id-1] ) ); } else //should not occurs col_id_ptr[i] = 0; } } } void list_txn_set_columns(GtkTreeView *treeview, gint *col_id) { struct list_txn_data *data; GtkTreeViewColumn *column, *base; gboolean visible; GList *list; gint i = 0; gint id; gint *col_width_ptr; DB( g_print("\n[list_txn] set columns order/width\n") ); data = g_object_get_data(G_OBJECT(treeview), "inst_data"); #if MYDEBUG == 1 gchar *type = NULL; switch(data->list_type) { case LIST_TXN_TYPE_BOOK: type="Book";break; case LIST_TXN_TYPE_DETAIL: type="Detail";break; case LIST_TXN_TYPE_OTHER: type="OtherOpe";break; case LIST_TXN_TYPE_XFERSOURCE: type="xferSrc";break; case LIST_TXN_TYPE_XFERTARGET: type="xferTgt";break; } DB( g_print(" type='%s'\n", type) ); DB( g_print("debug column sortid\n") ); DB( g_print(" |.0|.1|.2|.3|.4|.5|.6|.7|.8|.9|10|11|12|13|14|15|16\n ") ); for(i=0; i < NUM_LST_DSPOPE-1 ; i++ ) // -1 cause account not to be processed { DB( g_print("|%2d",col_id[i]) ); } DB( g_print("\n") ); #endif DB( g_print("apply column prefs\n") ); list = gtk_tree_view_get_columns( treeview ); //5.8 fix 4 first columns base = list_txn_get_column(list, LST_DSPOPE_STATUS); column = list_txn_get_column(list, LST_DSPOPE_GRPFLAG); gtk_tree_view_move_column_after(treeview, column, base); base = column; column = list_txn_get_column(list, LST_DSPOPE_ACCOUNT); gtk_tree_view_move_column_after(treeview, column, base); base = column; column = list_txn_get_column(list, LST_DSPOPE_DATE); gtk_tree_view_move_column_after(treeview, column, base); base = column; for(i=0; i < NUM_LST_DSPOPE-1 ; i++ ) // -1 cause account not to be processed { /* hidden are stored as col_id negative */ id = ABS(col_id[i]); column = list_txn_get_column(list, id); DB( g_print(" get colid=%2d '%s' [%p]\n", id, column != NULL ? gtk_tree_view_column_get_title(column) : "null", column) ); if( column != NULL ) { //5.8 first columns are created in correct order, just ignore stored position if( id!=LST_DSPOPE_STATUS && id!=LST_DSPOPE_GRPFLAG && id!=LST_DSPOPE_ACCOUNT && id!=LST_DSPOPE_DATE ) { gtk_tree_view_move_column_after(treeview, column, base); base = column; } else { DB( g_print(" >skipped\n") ); } visible = col_id[i] < 0 ? FALSE : TRUE; /* display exception for detail/import list */ if(data->list_type != LIST_TXN_TYPE_BOOK) { if( id == LST_DSPOPE_AMOUNT ) visible = TRUE; if( id == LST_DSPOPE_STATUS || id == LST_DSPOPE_EXPENSE || id == LST_DSPOPE_INCOME ) visible = FALSE; } if(data->list_type == LIST_TXN_TYPE_DETAIL) { if( id == LST_DSPOPE_STATUS ) visible = TRUE; } if( id == LST_DSPOPE_BALANCE ) { data->tvc_is_visible = visible; } gtk_tree_view_column_set_visible (column, visible); //5.6 do not apply to allow autosize on XFER dialog if( (data->list_type != LIST_TXN_TYPE_XFERSOURCE) && (data->list_type != LIST_TXN_TYPE_XFERTARGET) ) { col_width_ptr = PREFS->lst_ope_col_width; if( data->list_type == LIST_TXN_TYPE_DETAIL ) col_width_ptr = PREFS->lst_det_col_width; if( id == LST_DSPOPE_PAYNUMBER || id == LST_DSPOPE_PAYEE || id == LST_DSPOPE_MEMO || id == LST_DSPOPE_CATEGORY || id == LST_DSPOPE_TAGS || id == LST_DSPOPE_ACCOUNT ) { gtk_tree_view_column_set_fixed_width( column, col_width_ptr[id - 1]); } } } } g_list_free(list ); } static void list_txn_sort_column_changed(GtkTreeSortable *sortable, gpointer user_data) { struct list_txn_data *data = user_data; gint id; GtkSortType order; gboolean showBalance; gtk_tree_sortable_get_sort_column_id(sortable, &id, &order); DB( g_print("list_txn_columns_changed %d %d\n", id, order) ); //here save the transaction list columnid and sort order PREFS->lst_ope_sort_id = id; PREFS->lst_ope_sort_order = order; //manage visibility of balance column //showBalance = (id == LST_DSPOPE_DATE && order == GTK_SORT_ASCENDING) ? data->tvc_is_visible : FALSE; showBalance = (id == LST_DSPOPE_DATE) ? data->tvc_is_visible : FALSE; if(data->showall == TRUE) showBalance = FALSE; gtk_tree_view_column_set_visible (data->tvc_balance, showBalance); } static void list_txn_column_popup_menuitem_on_activate (GtkCheckMenuItem *checkmenuitem, gpointer user_data) { GtkTreeViewColumn *column = user_data; DB( g_print("toggled\n") ); gtk_tree_view_column_set_visible(column, gtk_check_menu_item_get_active(checkmenuitem) ); } //beta static void list_txn_popmenu_destroy(GtkTreeView *treeview, gpointer user_data) { DB( g_print ("\n[list_txn] menu destroy\n") ); } static gboolean list_txn_column_popup_callback ( GtkWidget *button, GdkEventButton *ev, gpointer user_data ) { struct list_txn_data *data = user_data; GtkWidget *menu, *menuitem; GtkTreeViewColumn *column; gint i, col_id; if (ev->type == GDK_BUTTON_PRESS && ev->button == 3) { DB( g_print("should popup\n") ); menu = gtk_menu_new (); //beta g_signal_connect (menu, "destroy", G_CALLBACK (list_txn_popmenu_destroy), NULL); //note: deactive this disable any menuitem action g_signal_connect (menu, "selection-done", G_CALLBACK (gtk_widget_destroy), NULL); for(i=0 ; i < NUM_LST_DSPOPE-1 ; i++ ) // -1 'caus: account and blank column { column = gtk_tree_view_get_column(GTK_TREE_VIEW(data->treeview), i); if( column != NULL ) { col_id = gtk_tree_view_column_get_sort_column_id (column); if( (col_id == -1) || (col_id == LST_DSPOPE_STATUS) || (col_id == LST_DSPOPE_ACCOUNT) || (col_id == LST_DSPOPE_DATE) || (col_id == LST_DSPOPE_BALANCE) ) continue; //if( (data->tvc_is_visible == FALSE) && (col_id == LST_DSPOPE_BALANCE) ) // continue; if( (data->list_type == LIST_TXN_TYPE_DETAIL) && ( (col_id == LST_DSPOPE_AMOUNT) || (col_id == LST_DSPOPE_EXPENSE) || (col_id == LST_DSPOPE_INCOME) ) ) continue; menuitem = gtk_check_menu_item_new_with_label ( gtk_tree_view_column_get_title (column) ); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), gtk_tree_view_column_get_visible (column) ); gtk_widget_show (menuitem); g_signal_connect (menuitem, "activate", G_CALLBACK (list_txn_column_popup_menuitem_on_activate), column); } } gtk_menu_attach_to_widget (GTK_MENU (menu), button, NULL); #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) gtk_menu_popup_at_pointer(GTK_MENU (menu), NULL); #else gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, ev->button, ev->time); #endif } return FALSE; } static GtkTreeViewColumn * list_txn_column_amount_create(gint list_type, gchar *title, gint sortcolumnid, GtkTreeCellDataFunc func) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new_with_attributes(title, renderer, NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_column_set_sort_column_id (column, sortcolumnid); if(list_type == LIST_TXN_TYPE_BOOK) { gtk_tree_view_column_set_reorderable(column, TRUE); } gtk_tree_view_column_set_cell_data_func(column, renderer, func, GINT_TO_POINTER(sortcolumnid), NULL); return column; } static GtkTreeViewColumn * list_txn_column_text_create(gint list_type, gchar *title, gint sortcolumnid, GtkTreeCellDataFunc func, gpointer user_data) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, title); //#1861337 add icon for closed account if( sortcolumnid == LST_DSPOPE_ACCOUNT ) { renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_account_icon, NULL, NULL); } renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, func, user_data, NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_column_set_sort_column_id (column, sortcolumnid); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); if(list_type == LIST_TXN_TYPE_BOOK || list_type == LIST_TXN_TYPE_DETAIL) { if(list_type == LIST_TXN_TYPE_BOOK) gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); } return column; } static GtkTreeViewColumn * list_txn_column_paynumber_create(gint list_type) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Pay./Number")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_info, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_info, GINT_TO_POINTER(2), NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_column_set_sort_column_id (column, LST_DSPOPE_PAYNUMBER); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); if(list_type == LIST_TXN_TYPE_BOOK || list_type == LIST_TXN_TYPE_DETAIL) { if(list_type == LIST_TXN_TYPE_BOOK) gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); } return column; } Transaction *list_txn_get_surround_transaction(GtkTreeView *treeview, Transaction **prev, Transaction **next) { GtkTreeModel *model; GtkTreeIter iter; GtkTreeIter *previter, *nextiter; GList *list; Transaction *ope; ope = NULL; model = gtk_tree_view_get_model(treeview); list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(treeview), &model); if(list != NULL) { gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &ope, -1); if(prev != NULL) { previter = gtk_tree_iter_copy(&iter); if( gtk_tree_model_iter_previous(model, previter) ) { gtk_tree_model_get(model, previter, MODEL_TXN_POINTER, prev, -1); } gtk_tree_iter_free(previter); } if(next != NULL) { nextiter = gtk_tree_iter_copy(&iter); if( gtk_tree_model_iter_next(model, nextiter) ) { gtk_tree_model_get(model, nextiter, MODEL_TXN_POINTER, next, -1); } gtk_tree_iter_free(nextiter); } } g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); g_list_free(list); return ope; } Transaction *list_txn_get_active_transaction(GtkTreeView *treeview) { GtkTreeModel *model; GList *list; Transaction *ope; ope = NULL; model = gtk_tree_view_get_model(treeview); list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(treeview), &model); if(list != NULL) { GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &ope, -1); } g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); g_list_free(list); return ope; } static gboolean gtk_tree_view_set_tooltip_query_cb (GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer data) { GtkTreeIter iter; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeModel *model; GtkTreeView *tree_view = GTK_TREE_VIEW (widget); gboolean retval = FALSE; gint colid; if (gtk_tree_view_get_tooltip_context (GTK_TREE_VIEW (widget), &x, &y, keyboard_tip, &model, NULL, &iter) == FALSE ) return FALSE; gtk_tree_view_get_path_at_pos(tree_view, x, y, &path, &column, NULL, NULL); colid = gtk_tree_view_column_get_sort_column_id(column); //if( colid == LST_DSPOPE_STATUS || colid == LST_DSPOPE_CLR ) if( colid == LST_DSPOPE_STATUS ) { GString *node = g_string_sized_new(16); Transaction *ope; gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &ope, -1); #if MYDEBUG == 1 gchar *txtpath = gtk_tree_path_to_string(path); g_string_append_printf(node, "col:%d, row:%s\n0x%04x", colid, txtpath, ope->flags); #endif if( colid == LST_DSPOPE_STATUS ) { gboolean addlf = FALSE; if( ope->flags & OF_ISIMPORT ) { g_string_append(node, _("Imported") ); addlf = TRUE; } if( ope->flags & OF_ISPAST ) { if(addlf) g_string_append(node, "\n" ); g_string_append(node, _("Past date") ); } } gtk_tooltip_set_markup (tooltip, node->str); gtk_tree_view_set_tooltip_row (tree_view, tooltip, path); g_string_free(node, TRUE); retval = TRUE; } gtk_tree_path_free (path); return retval; } static void list_txn_destroy( GtkWidget *widget, gpointer user_data ) { struct list_txn_data *data; data = g_object_get_data(G_OBJECT(widget), "inst_data"); DB( g_print ("\n[list_txn] destroy event occurred\n") ); if( data->save_column_width ) { list_txn_get_columns(GTK_TREE_VIEW(data->treeview)); } DB( g_print(" - view=%p, inst_data=%p\n", widget, data) ); g_free(data); } /* ** create our transaction list ** hb: Status Date PayNumber Payee Category Tags CLR (Amount) Expense, Income (Balance) Memo (Account) (Match) ** quic: flg Date (Account) Check # Payee Memo Category Tag att. Exp clr Inc Total/Balance ** ynab: (Account) flg Date (Check #) Payee Category Memo Exp Inc (Balance) clr ** mmex: flg Date Number (Account) Payee Status Category Tag Exp Inc (Balance) Notes */ GtkWidget *create_list_transaction(gint list_type, gboolean *pref_columns) { struct list_txn_data *data; GtkTreeStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column, *col_acc = NULL, *col_status = NULL, *col_match = NULL; DB( g_print ("\n[list_txn] new\n") ); data = g_malloc0(sizeof(struct list_txn_data)); if(!data) return NULL; data->list_type = list_type; data->warnnocategory = FALSE; data->save_column_width = FALSE; /* create list store */ store = gtk_tree_store_new( 3, G_TYPE_POINTER, // MODEL_TXN_POINTER G_TYPE_DOUBLE, // MODEL_TXN_SPLITAMT amount part of split for detail only G_TYPE_POINTER // MODEL_TXN_SPLITPTR ); //treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); data->treeview = treeview; g_object_unref(store); //store our private data g_object_set_data(G_OBJECT(treeview), "inst_data", (gpointer)data); DB( g_print(" - treeview=%p, inst_data=%p\n", treeview, data) ); // connect our dispose function g_signal_connect (treeview, "destroy", G_CALLBACK (list_txn_destroy), (gpointer)data); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); //gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), // COLUMN_DESCRIPTION); if(list_type == LIST_TXN_TYPE_BOOK) gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_MULTIPLE); // 1 -- status/column pref column = gtk_tree_view_column_new(); //gtk_tree_view_column_set_title(column, _("Status")); col_status = column; renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_cell_renderer_set_padding(renderer, 1, 0); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_status, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_status, GINT_TO_POINTER(2), NULL); //5.8.6 renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_status_dupgid, NULL, NULL); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (column, LST_DSPOPE_STATUS); //gtk_tree_view_column_set_resizable(column, TRUE); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //add system icon to 1st column GtkWidget *img = hbtk_image_new_from_icon_name_16 (ICONNAME_EMBLEM_SYSTEM); gtk_widget_show(img); gtk_tree_view_column_set_widget(column, img); if( list_type == LIST_TXN_TYPE_BOOK || list_type == LIST_TXN_TYPE_DETAIL ) g_signal_connect ( G_OBJECT (gtk_tree_view_column_get_button (column)), "button-press-event", G_CALLBACK ( list_txn_column_popup_callback ), data ); // 2 -- flag column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Flag")); renderer = gtk_cell_renderer_pixbuf_new (); g_object_set(renderer, "xalign", 0.25, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_grpflag, NULL, NULL); gtk_tree_view_column_set_sort_column_id (column, LST_DSPOPE_GRPFLAG); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // 3 -- account //5.2 Account is always created but not visible for BOOK column = list_txn_column_text_create(list_type, _("Account"), LST_DSPOPE_ACCOUNT, list_txn_cell_data_func_account, NULL); gtk_tree_view_column_set_reorderable(column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); col_acc = column; // 4 -- match rate //5.5 Match Rate if(list_type == LIST_TXN_TYPE_XFERTARGET) { column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Match")); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); g_object_set(renderer, "xalign", 0.5, NULL); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_match_rate, NULL, NULL); gtk_tree_view_column_set_sort_column_id (column, LST_DSPOPE_MATCH); //gtk_tree_view_column_set_resizable(column, TRUE); col_match = column; gtk_tree_view_column_set_clickable(column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } // 5 -- date column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Date")); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); //#2004631 date and column title alignement //g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_date, NULL, NULL); gtk_tree_view_column_set_sort_column_id (column, LST_DSPOPE_DATE); //gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //info column = list_txn_column_paynumber_create(list_type); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = list_txn_column_text_create(list_type, _("Payee"), LST_DSPOPE_PAYEE, list_txn_cell_data_func_payee, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = list_txn_column_text_create(list_type, _("Memo"), LST_DSPOPE_MEMO, list_txn_cell_data_func_memo, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column status CLR */ column = gtk_tree_view_column_new(); //gtk_tree_view_column_set_title(column, _("Status")); gtk_tree_view_column_set_title(column, _("St.")); //#2043152 gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_clr, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_func_clr, GINT_TO_POINTER(2), NULL); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_column_set_sort_column_id (column, LST_DSPOPE_CLR); //gtk_tree_view_column_set_sort_indicator (column, FALSE); //gtk_tree_view_column_set_resizable(column, TRUE); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = list_txn_column_amount_create(list_type, _("Amount"), LST_DSPOPE_AMOUNT, list_txn_cell_data_func_amount); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = list_txn_column_amount_create(list_type, _("Expense"), LST_DSPOPE_EXPENSE, list_txn_cell_data_func_amount); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = list_txn_column_amount_create(list_type, _("Income"), LST_DSPOPE_INCOME, list_txn_cell_data_func_amount); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = list_txn_column_text_create(list_type, _("Category"), LST_DSPOPE_CATEGORY, list_txn_cell_data_func_category, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //set expander column for LIST_TXN_TYPE_DETAIL if(list_type == LIST_TXN_TYPE_DETAIL) gtk_tree_view_set_expander_column(GTK_TREE_VIEW(treeview), column); column = list_txn_column_text_create(list_type, _("Tags"), LST_DSPOPE_TAGS, list_txn_cell_data_func_tags, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); if(list_type == LIST_TXN_TYPE_BOOK) { column = list_txn_column_amount_create(list_type, _("Balance"), LST_DSPOPE_BALANCE, list_txn_cell_data_func_amount); data->tvc_balance = column; gtk_tree_view_column_set_clickable(column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } /* column 9: empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* sort */ gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_STATUS , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_STATUS), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_DATE , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_DATE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_PAYNUMBER, list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_PAYNUMBER), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_PAYEE , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_PAYEE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_MEMO , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_MEMO), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_AMOUNT , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_AMOUNT), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_EXPENSE , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_EXPENSE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_INCOME , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_INCOME), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_CATEGORY, list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_CATEGORY), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_TAGS , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_TAGS), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_CLR , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_CLR), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_ACCOUNT , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_ACCOUNT), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_MATCH , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_MATCH), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_GRPFLAG , list_txn_sort_iter_compare_func, GINT_TO_POINTER(LST_DSPOPE_GRPFLAG), NULL); /* apply user preference for columns */ list_txn_set_columns(GTK_TREE_VIEW(treeview), pref_columns); /* force account column for detail treeview */ gtk_tree_view_move_column_after(GTK_TREE_VIEW(treeview), col_acc, col_status); /* move match column */ if(list_type == LIST_TXN_TYPE_XFERTARGET) { gtk_tree_view_move_column_after(GTK_TREE_VIEW(treeview), col_match, col_status); } /* by default book don't display acc column, except showall */ //#1821850 detail account column visible gboolean visible = (list_type == LIST_TXN_TYPE_BOOK) ? FALSE: TRUE; gtk_tree_view_column_set_visible (col_acc, visible); /* set initial sort order */ DB( g_print("set sort to %d %d\n", PREFS->lst_ope_sort_id, PREFS->lst_ope_sort_order) ); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), PREFS->lst_ope_sort_id, PREFS->lst_ope_sort_order); //add tooltip gtk_widget_set_has_tooltip (GTK_WIDGET (treeview), TRUE); /* signals */ if(list_type == LIST_TXN_TYPE_BOOK) g_signal_connect (GTK_TREE_SORTABLE(store), "sort-column-changed", G_CALLBACK (list_txn_sort_column_changed), data); g_signal_connect (treeview, "query-tooltip", G_CALLBACK (gtk_tree_view_set_tooltip_query_cb), NULL); return(treeview); } homebank-5.9.1/src/ui-group.c0000664000175000017500000002020014736461407011505 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-group.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /** * ui_grp_comboboxentry_get_key_add_new: * * get the key of the active group * and create the group if it do not exists * * Return value: the key or 0 * */ guint32 ui_grp_comboboxentry_get_key_add_new(GtkComboBox *entry_box) { guint32 retval; gchar *name; Group *item; retval = 0; name = (gchar *)gtk_entry_get_text(GTK_ENTRY (gtk_bin_get_child(GTK_BIN (entry_box)))); item = da_grp_get_by_name(name); if( item == NULL ) { gchar *stripname; stripname = g_strdup(name); g_strstrip(stripname); if( strlen(stripname) > 0 ) { /* automatic add */ //todo: check prefs + ask the user here 1st time item = da_grp_malloc(); item->name = g_strdup(name); da_grp_append(item); ui_grp_comboboxentry_add(entry_box, item); retval = item->key; } g_free(stripname); } else retval = item->key; return retval; } /** * ui_grp_comboboxentry_get_key: * * get the key of the active group * * Return value: the key or 0 * */ guint32 ui_grp_comboboxentry_get_key(GtkComboBox *entry_box) { gchar *name; Group *item; name = (gchar *)gtk_entry_get_text(GTK_ENTRY (gtk_bin_get_child(GTK_BIN (entry_box)))); item = da_grp_get_by_name(name); if( item != NULL ) return item->key; return 0; } Group *ui_grp_comboboxentry_get(GtkComboBox *entry_box) { gchar *name; Group *item = NULL; DB( g_print ("ui_grp_comboboxentry_get()\n") ); name = (gchar *)gtk_entry_get_text(GTK_ENTRY (gtk_bin_get_child(GTK_BIN (entry_box)))); item = da_grp_get_by_name(name); return item; } gboolean ui_grp_comboboxentry_set_active(GtkComboBox *entry_box, guint32 key) { Group *item; DB( g_print ("ui_grp_comboboxentry_set_active()\n") ); DB( g_print("- key:%d\n", key) ); if( key > 0 ) { item = da_grp_get(key); if( item != NULL ) { DB( g_print("- set combo to '%s'\n", item->name) ); gtk_entry_set_text(GTK_ENTRY (gtk_bin_get_child(GTK_BIN (entry_box))), item->name); return TRUE; } } DB( g_print("- set combo to ''\n") ); gtk_entry_set_text(GTK_ENTRY (gtk_bin_get_child(GTK_BIN (entry_box))), ""); return FALSE; } /** * ui_grp_comboboxentry_add: * * Add a single element (useful for dynamics add) * * Return value: -- * */ void ui_grp_comboboxentry_add(GtkComboBox *entry_box, Group *grp) { if( grp->name != NULL ) { GtkTreeModel *model; GtkTreeIter iter; model = gtk_combo_box_get_model(GTK_COMBO_BOX(entry_box)); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, 0, grp->name, -1); } } static void ui_grp_comboboxentry_populate_ghfunc(gpointer key, gpointer value, struct grpPopContext *ctx) { GtkTreeIter iter; Group *grp = value; if( ( grp->key != ctx->except_key ) ) { //gtk_list_store_append (GTK_LIST_STORE(ctx->model), &iter); //gtk_list_store_set (GTK_LIST_STORE(ctx->model), &iter, 0, grp->name, -1); gtk_list_store_insert_with_values(GTK_LIST_STORE(ctx->model), &iter, -1, 0, grp->name, -1); } } /** * ui_grp_comboboxentry_populate: * * Populate the list and completion * * Return value: -- * */ void ui_grp_comboboxentry_populate(GtkComboBox *entry_box, GHashTable *hash) { ui_grp_comboboxentry_populate_except(entry_box, hash, -1); } void ui_grp_comboboxentry_populate_except(GtkComboBox *entry_box, GHashTable *hash, guint except_key) { GtkTreeModel *model; //GtkEntryCompletion *completion; struct grpPopContext ctx; DB( g_print ("ui_grp_comboboxentry_populate\n") ); model = gtk_combo_box_get_model(GTK_COMBO_BOX(entry_box)); //completion = gtk_entry_get_completion(GTK_ENTRY (gtk_bin_get_child(GTK_BIN (entry_box)))); /* keep our model alive and detach from comboboxentry and completion */ //g_object_ref(model); //gtk_combo_box_set_model(GTK_COMBO_BOX(entry_box), NULL); //gtk_entry_completion_set_model (completion, NULL); /* clear and populate */ ctx.model = model; ctx.except_key = except_key; gtk_list_store_clear (GTK_LIST_STORE(model)); //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(GTK_LIST_STORE(model)), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING); g_hash_table_foreach(hash, (GHFunc)ui_grp_comboboxentry_populate_ghfunc, &ctx); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); /* reatach our model */ //g_print("reattach\n"); //gtk_combo_box_set_model(GTK_COMBO_BOX(entry_box), model); //gtk_entry_completion_set_model (completion, model); //g_object_unref(model); } static gint ui_grp_comboboxentry_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint retval = 0; gchar *name1, *name2; gtk_tree_model_get(model, a, 0, &name1, -1); gtk_tree_model_get(model, b, 0, &name2, -1); retval = hb_string_utf8_compare(name1, name2); g_free(name2); g_free(name1); return retval; } static void ui_grp_comboboxentry_test (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gchar *name; gtk_tree_model_get(tree_model, iter, 0, &name, -1); if( !name ) g_object_set(cell, "text", _("(no group)"), NULL); else g_object_set(cell, "text", name, NULL); //leak g_free(name); } /** * ui_grp_comboboxentry_new: * * Create a new group comboboxentry * * Return value: the new widget * */ GtkWidget * ui_grp_comboboxentry_new(GtkWidget *label) { GtkListStore *store; GtkWidget *comboboxentry; GtkEntryCompletion *completion; GtkCellRenderer *renderer; DB( g_print ("ui_grp_comboboxentry_new()\n") ); store = gtk_list_store_new (1, G_TYPE_STRING ); gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_grp_comboboxentry_compare_func, NULL, NULL); completion = gtk_entry_completion_new (); gtk_entry_completion_set_model (completion, GTK_TREE_MODEL(store)); g_object_set(completion, "text-column", 0, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (completion), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (completion), renderer, "text", 0, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (completion), renderer, ui_grp_comboboxentry_test, NULL, NULL); // dothe same for combobox comboboxentry = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store)); gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(comboboxentry), 0); gtk_cell_layout_clear(GTK_CELL_LAYOUT (comboboxentry)); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (comboboxentry), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (comboboxentry), renderer, "text", 0, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (comboboxentry), renderer, ui_grp_comboboxentry_test, NULL, NULL); gtk_entry_set_completion (GTK_ENTRY (gtk_bin_get_child(GTK_BIN (comboboxentry))), completion); g_object_unref(store); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), comboboxentry); gtk_widget_set_size_request(comboboxentry, HB_MINWIDTH_LIST, -1); return comboboxentry; } homebank-5.9.1/src/hb-payee.c0000644000175000017500000003152614736461407011443 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-payee.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ //Payee * //da_pay_clone void da_pay_free(Payee *item) { DB( g_print("da_pay_free\n") ); if(item != NULL) { DB( g_print(" => %d, %s\n", item->key, item->name) ); g_free(item->name); g_free(item->notes); g_free(item); } } Payee * da_pay_malloc(void) { DB( g_print("da_pay_malloc\n") ); return g_malloc0(sizeof(Payee)); } void da_pay_destroy(void) { DB( g_print("da_pay_destroy\n") ); g_hash_table_destroy(GLOBALS->h_pay); } void da_pay_new(void) { Payee *item; DB( g_print("da_pay_new\n") ); GLOBALS->h_pay = g_hash_table_new_full(g_int_hash, g_int_equal, (GDestroyNotify)g_free, (GDestroyNotify)da_pay_free); // insert our 'no payee' item = da_pay_malloc(); item->name = g_strdup(""); da_pay_insert(item); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /** * da_pay_length: * * Return value: the number of elements */ guint da_pay_length(void) { return g_hash_table_size(GLOBALS->h_pay); } static void da_pay_max_key_ghfunc(gpointer key, Payee *item, guint32 *max_key) { *max_key = MAX(*max_key, item->key); } /** * da_pay_get_max_key: * * Get the biggest key from the GHashTable * * Return value: the biggest key value * */ guint32 da_pay_get_max_key(void) { guint32 max_key = 0; g_hash_table_foreach(GLOBALS->h_pay, (GHFunc)da_pay_max_key_ghfunc, &max_key); return max_key; } /** * da_pay_delete: * * delete an payee from the GHashTable * * Return value: TRUE if the key was found and deleted * */ gboolean da_pay_delete(guint32 key) { DB( g_print("da_pay_delete %d\n", key) ); return g_hash_table_remove(GLOBALS->h_pay, &key); } //#1889659: ensure name != null/empty static gboolean da_pay_ensure_name(Payee *item) { // (no payee) have name="" if( item->key > 0 ) { if( item->name == NULL || strlen(item->name) == 0 ) { g_free(item->name); item->name = g_strdup_printf("no name %d", item->key); return TRUE; } } return FALSE; } static void da_pay_rename(Payee *item, gchar *newname) { DB( g_print("- renaming '%s' => '%s'\n", item->name, newname) ); g_free(item->name); item->name = g_strdup(newname); //#1889659: ensure name != null/empty da_pay_ensure_name(item); } /** * da_pay_insert: * * insert an payee into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_pay_insert(Payee *item) { guint32 *new_key; DB( g_print("da_pay_insert\n") ); new_key = g_new0(guint32, 1); *new_key = item->key; //#1889659: ensure name != null/empty da_pay_ensure_name(item); g_hash_table_insert(GLOBALS->h_pay, new_key, item); return TRUE; } /** * da_pay_append: * * append a new payee into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_pay_append(Payee *item) { Payee *existitem; DB( g_print("da_pay_append\n") ); existitem = da_pay_get_by_name( item->name ); if( existitem == NULL ) { item->key = da_pay_get_max_key() + 1; da_pay_insert(item); return TRUE; } DB( g_print(" -> %s already exist: %d\n", item->name, item->key) ); return FALSE; } /** * da_pay_append_if_new: * * append a new payee into the GHashTable * * Return value: existing or new payee * */ Payee * da_pay_append_if_new(gchar *rawname) { Payee *retval = NULL; retval = da_pay_get_by_name(rawname); if(retval == NULL) { retval = da_pay_malloc(); retval->key = da_pay_get_max_key() + 1; retval->name = g_strdup(rawname); g_strstrip(retval->name); da_pay_insert(retval); } return retval; } static gboolean da_pay_name_grfunc(gpointer key, Payee *item, gchar *name) { if( name && item->name ) { if(!strcasecmp(name, item->name)) return TRUE; } return FALSE; } /** * da_pay_get_by_name: * * Get an payee structure by its name * * Return value: Payee * or NULL if not found * */ Payee * da_pay_get_by_name(gchar *rawname) { Payee *retval = NULL; gchar *stripname; DB( g_print("da_pay_get_by_name\n") ); if( rawname ) { stripname = g_strdup(rawname); g_strstrip(stripname); if( strlen(stripname) == 0 ) retval = da_pay_get(0); else retval = g_hash_table_find(GLOBALS->h_pay, (GHRFunc)da_pay_name_grfunc, stripname); g_free(stripname); } return retval; } /** * da_pay_get: * * Get a payee structure by key * * Return value: Payee * or NULL if not found * */ Payee * da_pay_get(guint32 key) { //DB( g_print("da_pay_get\n") ); return g_hash_table_lookup(GLOBALS->h_pay, &key); } //gchar *da_pay_get_name(Payee *item) void da_pay_consistency(Payee *item) { g_strstrip(item->name); //5.2.4 we drop internal xfer here as it will disapear //was faulty possible if( item->paymode == OLDPAYMODE_INTXFER ) item->paymode = PAYMODE_XFER; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if MYDEBUG static void da_pay_debug_list_ghfunc(gpointer key, gpointer value, gpointer user_data) { guint32 *id = key; Payee *item = value; DB( g_print(" %d :: %s\n", *id, item->name) ); } static void da_pay_debug_list(void) { DB( g_print("\n** debug **\n") ); g_hash_table_foreach(GLOBALS->h_pay, da_pay_debug_list_ghfunc, NULL); DB( g_print("\n** end debug **\n") ); } #endif /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ gint payee_delete_unused(void) { GList *lpay, *list; gint count = 0; lpay = list = g_hash_table_get_values(GLOBALS->h_pay); while (list != NULL) { Payee *entry = list->data; if(entry->nb_use_all <= 0 && entry->key > 0) { da_pay_delete (entry->key); count++; } list = g_list_next(list); } g_list_free(lpay); return count; } void payee_fill_usage(void) { GList *lpay; GList *lst_acc, *lnk_acc; GList *lnk_txn; GList *lrul, *list; DB( g_print("[da_pay] fill usage\n") ); lpay = list = g_hash_table_get_values(GLOBALS->h_pay); while (list != NULL) { Payee *entry = list->data; entry->nb_use_all = 0; entry->nb_use_txn = 0; list = g_list_next(list); } g_list_free(lpay); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; Payee *pay = da_pay_get (txn->kpay); if(pay) { pay->nb_use_all++; pay->nb_use_txn++; } lnk_txn = g_list_next(lnk_txn); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; Payee *pay = da_pay_get (entry->kpay); if(pay) pay->nb_use_all++; list = g_list_next(list); } lrul = list = g_hash_table_get_values(GLOBALS->h_rul); while (list != NULL) { Assign *entry = list->data; Payee *pay = da_pay_get (entry->kpay); if(pay) pay->nb_use_all++; list = g_list_next(list); } g_list_free(lrul); } void payee_move(guint32 key1, guint32 key2) { GList *lst_acc, *lnk_acc; GList *lnk_txn; GList *lrul, *list; lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; if(txn->kpay == key1) { txn->kpay = key2; txn->dspflags |= FLAG_TMP_EDITED; } lnk_txn = g_list_next(lnk_txn); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; if(entry->kpay == key1) { entry->kpay = key2; } list = g_list_next(list); } lrul = list = g_hash_table_get_values(GLOBALS->h_rul); while (list != NULL) { Assign *entry = list->data; if(entry->kpay == key1) { entry->kpay = key2; } list = g_list_next(list); } g_list_free(lrul); } gboolean payee_rename(Payee *item, const gchar *newname) { Payee *existitem; gchar *stripname; gboolean retval = FALSE; stripname = g_strdup(newname); g_strstrip(stripname); existitem = da_pay_get_by_name(stripname); if( existitem != NULL && existitem->key != item->key) { DB( g_print("- error, same name already exist with other key %d <> %d\n", existitem->key, item->key) ); } else { DB( g_print("- renaming\n") ); da_pay_rename (item, stripname); retval = TRUE; } g_free(stripname); return retval; } static gint payee_glist_name_compare_func(Payee *a, Payee *b) { return hb_string_utf8_compare(a->name, b->name); } static gint payee_glist_key_compare_func(Payee *a, Payee *b) { return a->key - b->key; } GList * payee_glist_sorted(gint column) { GList *list = g_hash_table_get_values(GLOBALS->h_pay); switch(column) { case HB_GLIST_SORT_NAME: return g_list_sort(list, (GCompareFunc)payee_glist_name_compare_func); break; //case HB_GLIST_SORT_KEY: default: return g_list_sort(list, (GCompareFunc)payee_glist_key_compare_func); break; } } gboolean payee_load_csv(gchar *filename, gchar **error) { gboolean retval; GIOChannel *io; gchar *tmpstr; gint io_stat; gchar **str_array; const gchar *encoding; gint nbcol; encoding = homebank_file_getencoding(filename); DB( g_print(" -> encoding should be %s\n", encoding) ); retval = TRUE; *error = NULL; io = g_io_channel_new_file(filename, "r", NULL); if(io != NULL) { if( encoding != NULL ) { g_io_channel_set_encoding(io, encoding, NULL); } for(;;) { io_stat = g_io_channel_read_line(io, &tmpstr, NULL, NULL, NULL); if( io_stat == G_IO_STATUS_EOF) break; if( io_stat == G_IO_STATUS_NORMAL) { if( tmpstr != NULL) { DB( g_print("\n + strip\n") ); hb_string_strip_crlf(tmpstr); DB( g_print(" + split '%s'\n", tmpstr) ); str_array = g_strsplit (tmpstr, ";", 2); // payee;category : later paymode? nbcol = g_strv_length (str_array); if( nbcol > 2 ) { *error = _("invalid CSV format"); retval = FALSE; DB( g_print(" + error %s\n", *error) ); } else { Payee *pay = NULL; Category *cat = NULL; if( nbcol >= 1 ) { DB( g_print(" add pay:'%s' ?\n", str_array[0]) ); pay = da_pay_append_if_new(str_array[0]); DB( g_print(" pay: %p\n", pay) ); if( pay != NULL ) { GLOBALS->changes_count++; } } if( nbcol == 2 ) { DB( g_print(" add cat:'%s'\n", str_array[1]) ); cat = da_cat_append_ifnew_by_fullname(str_array[1]); DB( g_print(" cat: %p %p\n", cat, pay) ); if( cat != NULL ) { if( pay != NULL) { DB( g_print(" set default cat to %d\n", cat->key) ); pay->kcat = cat->key; } GLOBALS->changes_count++; } } } g_strfreev (str_array); } g_free(tmpstr); } } g_io_channel_unref (io); } return retval; } void payee_save_csv(gchar *filename) { GIOChannel *io; GList *lpay, *list; gchar *outstr; io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { lpay = list = payee_glist_sorted(HB_GLIST_SORT_NAME); while (list != NULL) { Payee *item = list->data; gchar *fullcatname; if(item->key != 0) { fullcatname = NULL; if( item->kcat > 0 ) { Category *cat = da_cat_get(item->kcat); if( cat != NULL ) { fullcatname = cat->fullname; } } if( fullcatname != NULL ) outstr = g_strdup_printf("%s;%s\n", item->name, fullcatname); else outstr = g_strdup_printf("%s;\n", item->name); DB( g_print(" + export %s %s\n", item->name, fullcatname) ); g_io_channel_write_chars(io, outstr, -1, NULL, NULL); g_free(outstr); //#1999250 don't free here... //g_free(fullcatname); } list = g_list_next(list); } g_list_free(lpay); g_io_channel_unref (io); } DB( g_print(" export ok\n") ); } homebank-5.9.1/src/ui-account.c0000644000175000017500000017355115005624451012013 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-account.h" #include "ui-account.h" #include "ui-currency.h" #include "ui-dialogs.h" #include "ui-group.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern HbKvData CYA_ACC_TYPE[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static GtkWidget * container_get_nth(GtkBox *container, gint nth) { GList *lchild, *list; GtkWidget *child; if(!GTK_IS_CONTAINER(container)) return NULL; lchild = list = gtk_container_get_children (GTK_CONTAINER(container)); child = g_list_nth_data (list, nth); g_list_free(lchild); return child; } GtkTreeModel * ui_acc_entry_popover_get_model(GtkBox *box) { GtkWidget *entry = container_get_nth(box, 0); if( GTK_IS_ENTRY(entry) ) { return gtk_entry_completion_get_model(gtk_entry_get_completion(GTK_ENTRY(entry))); } return NULL; } GtkWidget * ui_acc_entry_popover_get_entry(GtkBox *box) { return container_get_nth(box, 0); } Account *ui_acc_entry_popover_get(GtkBox *box) { GtkWidget *entry; gchar *name; Account *item = NULL; DB( g_print ("ui_acc_entry_popover_get()\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { name = (gchar *)gtk_entry_get_text(GTK_ENTRY (entry)); item = da_acc_get_by_name(name); } return item; } guint32 ui_acc_entry_popover_get_key(GtkBox *box) { Account *item = ui_acc_entry_popover_get(box); return ((item != NULL) ? item->key : 0); } //#1859077 preset account if single void ui_acc_entry_popover_set_single(GtkBox *box) { GtkWidget *entry; GtkTreeModel *model; GtkTreeIter iter; DB( g_print ("ui_acc_popover_set_single()\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { model = gtk_entry_completion_get_model(gtk_entry_get_completion(GTK_ENTRY(entry))); if(model != NULL && gtk_tree_model_iter_n_children(model, NULL) == 1) { if( gtk_tree_model_get_iter_first(model, &iter) == TRUE ) { gchar *item; gtk_tree_model_get(model, &iter, 0, &item, -1); hbtk_entry_set_text(GTK_ENTRY(entry), item != NULL ? item : ""); g_free(item); } } } } void ui_acc_entry_popover_set_active(GtkBox *box, guint32 key) { GtkWidget *entry; DB( g_print ("ui_acc_popover_set_active()\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { Account *item = da_acc_get(key); gchar *txt = ""; //#1972078 forbid set a closed account if( (item != NULL) && !(item->flags & AF_CLOSED) ) { txt = item->name; } hbtk_entry_set_text(GTK_ENTRY(entry), txt); } } static gboolean ui_acc_manage_cb_on_key_press(GtkWidget *source, GdkEvent *event, gpointer user_data) { struct ui_acc_manage_data *data = user_data; GdkModifierType state; guint keyval; gdk_event_get_state (event, &state); gdk_event_get_keyval(event, &keyval); // On Control-f enable search entry if (state & GDK_CONTROL_MASK && keyval == GDK_KEY_f) { gtk_widget_grab_focus(data->ST_search); } else if(keyval == GDK_KEY_Escape && gtk_widget_has_focus(data->ST_search)) { hbtk_entry_set_text(GTK_ENTRY(data->ST_search), NULL); gtk_widget_grab_focus(data->LV_acc); return TRUE; } return GDK_EVENT_PROPAGATE; } static void ui_acc_entry_popover_cb_row_activated(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; GtkEntry *entry = user_data; if( GTK_IS_ENTRY(entry) ) { treeselection = gtk_tree_view_get_selection(tree_view); if( gtk_tree_selection_get_selected(treeselection, &model, &iter) ) { gchar *item; gtk_tree_model_get(model, &iter, 0, &item, -1); gtk_entry_set_text(GTK_ENTRY(user_data), item); g_free(item); } } } static void ui_acc_entry_popover_populate_ghfunc(gpointer key, gpointer value, struct accPopContext *ctx) { GtkTreeIter iter; Account *acc = value; if( (acc->flags & AF_CLOSED) ) return; if( (ctx->insert_type == ACC_LST_INSERT_REPORT) && (acc->flags & AF_NOREPORT) ) return; if( (acc->key == ctx->except_key) ) return; //#1673260 this was for xfer with same currency only //if( (ctx->kcur > 0 ) && (acc->kcur != ctx->kcur) ) return; DB( g_print (" -> append model '%s'\n", acc->name) ); gtk_list_store_append (GTK_LIST_STORE(ctx->model), &iter); gtk_list_store_set (GTK_LIST_STORE(ctx->model), &iter, 0, acc->name, 1, acc->pos, -1); } void ui_acc_entry_popover_populate(GtkBox *box, GHashTable *hash, gint insert_type) { ui_acc_entry_popover_populate_except(box, hash, 0, insert_type); } void ui_acc_entry_popover_populate_except(GtkBox *box, GHashTable *hash, guint except_key, gint insert_type) { GtkTreeModel *model; struct accPopContext ctx; DB( g_print ("ui_acc_entry_popover_populate\n") ); DB( g_print (" -> except is %d\n", except_key) ); model = ui_acc_entry_popover_get_model(GTK_BOX(box)); /* keep our model alive and detach from popover and completion */ g_object_ref(model); /* clear and populate */ ctx.model = model; ctx.except_key = except_key; ctx.insert_type = insert_type; //#1673260 xfer same currency //ctx.kcur = 0; //Account *acc = da_acc_get(except_key); //if(acc != NULL) //ctx.kcur = acc->kcur; gtk_list_store_clear (GTK_LIST_STORE(model)); //5.3 empty the entry gtk_entry_set_text(GTK_ENTRY (ui_acc_entry_popover_get_entry(GTK_BOX (box))), ""); g_hash_table_foreach(hash, (GHFunc)ui_acc_entry_popover_populate_ghfunc, &ctx); /* reatach our model */ g_object_unref(model); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); } static void ui_acc_entry_popover_function (GtkEditable *editable, gpointer user_data) { DB( g_print("text changed to %s\n", gtk_entry_get_text(GTK_ENTRY(editable)) ) ); } static void ui_acc_entry_popover_cb_toggled (GtkToggleButton *togglebutton, gpointer user_data) { GtkWidget *entry = user_data; GtkAllocation allocation; GtkPopover *popover; DB( g_print ("[acc entry popover] open\n") ); if(GTK_IS_ENTRY(entry)) { gtk_widget_get_allocation (entry, &allocation); popover = gtk_menu_button_get_popover(GTK_MENU_BUTTON(togglebutton)); if(GTK_IS_POPOVER(popover)) { gtk_widget_set_size_request (GTK_WIDGET(popover), allocation.width + (2*SPACING_POPOVER), -1); DB( g_print("should set width to %d\n", allocation.width + (2*SPACING_POPOVER)) ); } } } static gint ui_acc_entry_popover_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint pos1, pos2; gtk_tree_model_get(model, a, 1, &pos1, -1); gtk_tree_model_get(model, b, 1, &pos2, -1); return (pos1 - pos2); } static gboolean ui_acc_entry_popover_completion_func (GtkEntryCompletion *completion, const gchar *key, GtkTreeIter *iter, gpointer user_data) { gchar *name = NULL; gchar *normalized_string; gchar *case_normalized_string; gboolean ret = FALSE; GtkTreeModel *model; model = gtk_entry_completion_get_model (completion); gtk_tree_model_get (model, iter, 0, &name, -1); if (name != NULL) { normalized_string = g_utf8_normalize (name, -1, G_NORMALIZE_ALL); if (normalized_string != NULL) { case_normalized_string = g_utf8_casefold (normalized_string, -1); //g_print("match '%s' for '%s' ?\n", key, case_normalized_string); //if (!strncmp (key, case_normalized_string, strlen (key))) if (g_strstr_len (case_normalized_string, strlen (case_normalized_string), key )) { ret = TRUE; // g_print(" ==> yes !\n"); } g_free (case_normalized_string); } g_free (normalized_string); } return ret; } static void ui_acc_entry_popover_destroy( GtkWidget *widget, gpointer user_data ) { DB( g_print ("[acc entry popover] destroy\n") ); } GtkWidget * ui_acc_entry_popover_new(GtkWidget *label) { GtkWidget *mainbox, *box, *entry, *menubutton, *image, *popover, *scrollwin, *treeview; GtkListStore *store; GtkEntryCompletion *completion; DB( g_print ("[acc entry popover] new\n") ); mainbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(mainbox)), GTK_STYLE_CLASS_LINKED); entry = gtk_entry_new(); hbtk_box_prepend (GTK_BOX(mainbox), entry); menubutton = gtk_menu_button_new (); //data->MB_template = menubutton; image = hbtk_image_new_from_icon_name_16 ("pan-down-symbolic"); gtk_button_set_image(GTK_BUTTON(menubutton), image); gtk_menu_button_set_direction (GTK_MENU_BUTTON(menubutton), GTK_ARROW_LEFT ); //gtk_widget_set_halign (menubutton, GTK_ALIGN_END); gtk_box_prepend(GTK_BOX(mainbox), menubutton); completion = gtk_entry_completion_new (); gtk_entry_set_completion (GTK_ENTRY (entry), completion); g_object_unref(completion); store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT ); gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_acc_entry_popover_compare_func, NULL, NULL); gtk_entry_completion_set_model (completion, GTK_TREE_MODEL(store)); gtk_entry_completion_set_match_func(completion, ui_acc_entry_popover_completion_func, NULL, NULL); g_object_unref(store); gtk_entry_completion_set_text_column (completion, 0); gtk_widget_show_all(mainbox); //popover box = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX(box), scrollwin); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_show_all(box); //gtk_widget_set_can_focus(GTK_WIDGET(treeview), FALSE); GtkCellRenderer *renderer; GtkTreeViewColumn *column; renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", 0, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_view_set_hover_selection(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); gtk_tree_view_set_activate_on_single_click(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); //gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_BROWSE); //popover = create_popover (menubutton, box, GTK_POS_BOTTOM); popover = create_popover (menubutton, box, GTK_POS_LEFT); //gtk_widget_set_size_request (popover, HB_MINWIDTH_LIST, HB_MINHEIGHT_LIST); gtk_widget_set_vexpand(popover, TRUE); gtk_menu_button_set_popover(GTK_MENU_BUTTON(menubutton), popover); // connect our dispose function g_signal_connect (entry, "destroy", G_CALLBACK (ui_acc_entry_popover_destroy), NULL); g_signal_connect_after (entry , "changed", G_CALLBACK (ui_acc_entry_popover_function), NULL); g_signal_connect (menubutton, "toggled", G_CALLBACK (ui_acc_entry_popover_cb_toggled), entry); g_signal_connect (treeview, "row-activated", G_CALLBACK (ui_acc_entry_popover_cb_row_activated), entry); #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) g_signal_connect_swapped(treeview, "row-activated", G_CALLBACK(gtk_popover_popdown), popover); #else g_signal_connect_swapped(treeview, "row-activated", G_CALLBACK(gtk_widget_hide), popover); #endif //g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed", G_CALLBACK (ui_acc_entry_popover_cb_selection), entry); //g_signal_connect_swapped(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed", G_CALLBACK(gtk_popover_popdown), popover); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), entry); return mainbox; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ guint ui_acc_listview_toggle_to_filter(GtkTreeView *treeview, Filter *filter) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; guint change = 0; DB( g_print("[ui_acc_listview] toggle_to_filter\n") ); model = gtk_tree_view_get_model(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Account *item; gboolean toggled; gtk_tree_model_get (model, &iter, LST_DEFACC_TOGGLE, &toggled, LST_DEFACC_DATAS , &item, -1); DB( g_print(" acc k:%3d = %d (%s)\n", item->key, toggled, item->name) ); change += da_flt_status_acc_set(filter, item->key, toggled); /* Make iter point to the next row in the list store */ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } return change; } static void ui_acc_listview_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeView *treeview = (GtkTreeView *)data; GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW(treeview)); GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, LST_DEFACC_TOGGLE, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, fixed, -1); /* clean up */ gtk_tree_path_free (path); } static void ui_acc_listview_sort_force(GtkTreeSortable *sortable, gpointer user_data) { gint sort_column_id; GtkSortType order; DB( g_print("\n[ui-cacc-listview] sort force\n") ); gtk_tree_sortable_get_sort_column_id(sortable, &sort_column_id, &order); DB( g_print(" id %d\n order %d\n", sort_column_id, order) ); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sortable), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, order); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sortable), sort_column_id, order); } static gint ui_acc_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); gint retval = 0; Account *accitem1, *accitem2; gtk_tree_model_get(model, a, LST_DEFACC_DATAS, &accitem1, -1); gtk_tree_model_get(model, b, LST_DEFACC_DATAS, &accitem2, -1); switch (sortcol) { case LST_DEFACC_SORT_POS: retval = accitem1->pos - accitem2->pos; break; case LST_DEFACC_SORT_NAME: retval = hb_string_utf8_compare(accitem1->name, accitem2->name); break; } return retval; } static void ui_acc_listview_icon_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Account *entry; gchar *iconname = NULL; gtk_tree_model_get(model, iter, LST_DEFACC_DATAS, &entry, -1); if( entry->flags & AF_CLOSED ) iconname = ICONNAME_HB_ITEM_CLOSED; else { if( !(entry->flags & AF_NOBUDGET) ) iconname = ICONNAME_HB_ITEM_BUDGET; } g_object_set(renderer, "icon-name", iconname, NULL); } static void ui_acc_listview_cell_data_function_pos (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Account *accitem; gchar buffer[256]; gtk_tree_model_get(model, iter, LST_DEFACC_DATAS, &accitem, -1); g_snprintf(buffer, 256-1, "%d", accitem->pos); g_object_set(renderer, "text", buffer, NULL); } static void ui_acc_listview_name_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Account *entry; gchar *name; gtk_tree_model_get(model, iter, LST_DEFACC_DATAS, &entry, -1); if(entry->name == NULL) name = _("(none)"); // can never occurs ! else name = entry->name; g_object_set(renderer, "text", name, NULL); } #if MYDEBUG == 1 static void ui_acc_listview_cell_data_function_debugkey (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Account *item; gchar *string; gtk_tree_model_get(model, iter, LST_DEFACC_DATAS, &item, -1); string = g_strdup_printf ("[%d]", item->key ); g_object_set(renderer, "text", string, NULL); g_free(string); } #endif /* = = = = = = = = = = = = = = = = */ void ui_acc_listview_set_active(GtkTreeView *treeview, guint32 key) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Account *accitem; gtk_tree_model_get (model, &iter, LST_DEFACC_DATAS, &accitem, -1); if( accitem->key == key ) { gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, TRUE, -1); break; } /* Make iter point to the next row in the list store */ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } /** * acc_list_add: * * Add a single element (useful for dynamics add) * * Return value: -- * */ void ui_acc_listview_add(GtkTreeView *treeview, Account *item) { if( item->name != NULL ) { GtkTreeModel *model; GtkTreeIter iter; model = gtk_tree_view_get_model(treeview); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DEFACC_TOGGLE, FALSE, LST_DEFACC_DATAS, item, -1); gtk_tree_selection_select_iter (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), &iter); } } guint32 ui_acc_listview_get_selected_key(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Account *item; gtk_tree_model_get(model, &iter, LST_DEFACC_DATAS, &item, -1); if( item!= NULL ) return item->key; } return 0; } void ui_acc_listview_remove_selected(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_list_store_remove(GTK_LIST_STORE(model), &iter); } } void ui_acc_listview_quick_select(GtkTreeView *treeview, const gchar *uri) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gboolean toggle; gint qselect = hb_clicklabel_to_int(uri); DB( g_print("[ui_acc_listview] quick select\n") ); DB( g_print(" comboboxlink '%s' %d\n", uri, qselect) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { switch(qselect) { case HB_LIST_QUICK_SELECT_ALL: gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, TRUE, -1); break; case HB_LIST_QUICK_SELECT_NONE: gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, FALSE, -1); break; case HB_LIST_QUICK_SELECT_INVERT: gtk_tree_model_get (model, &iter, LST_DEFACC_TOGGLE, &toggle, -1); toggle ^= 1; gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, toggle, -1); break; } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } void ui_acc_listview_populate(GtkWidget *view, gint insert_type, gchar *needle) { GtkTreeModel *model; GtkTreeIter iter; GList *lacc, *list; gboolean hastext = FALSE; gboolean insert = TRUE; DB( g_print("[ui_acc_listview] populate\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); gtk_list_store_clear (GTK_LIST_STORE(model)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(view), NULL); /* Detach model from view */ if( needle != NULL ) hastext = (strlen(needle) >= 2) ? TRUE : FALSE; /* populate */ //g_hash_table_foreach(GLOBALS->h_acc, (GHFunc)ui_acc_listview_populate_ghfunc, model); list = g_hash_table_get_values(GLOBALS->h_acc); //lacc = list = g_list_sort(list, (GCompareFunc)ui_acc_glist_compare_func); lacc = list = account_glist_sorted(HB_GLIST_SORT_POS); while (list != NULL) { Account *item = list->data; if( insert_type == ACC_LST_INSERT_REPORT ) { //#1674045 ony rely on nosummary //if( (item->flags & AF_CLOSED) ) goto next1; if( (item->flags & AF_NOREPORT) ) goto next1; } if(hastext) insert = hb_string_utf8_strstr(item->name, needle, FALSE); else insert = TRUE; if( insert == TRUE ) { DB( g_print(" populate acc k=%d\n", item->key) ); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DEFACC_TOGGLE , FALSE, LST_DEFACC_DATAS, item, -1); } next1: list = g_list_next(list); } g_list_free(lacc); gtk_tree_view_set_model(GTK_TREE_VIEW(view), model); /* Re-attach model to view */ g_object_unref(model); } GtkWidget * ui_acc_listview_new(gboolean withtoggle) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; DB( g_print("[ui_acc_listview] new\n") ); // create list store store = gtk_list_store_new(NUM_LST_DEFACC, G_TYPE_BOOLEAN, G_TYPE_POINTER ); // treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); #if MYDEBUG == 1 column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_acc_listview_cell_data_function_debugkey, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); #endif // column 1: toggle if( withtoggle == TRUE ) { renderer = gtk_cell_renderer_toggle_new (); column = gtk_tree_view_column_new_with_attributes (_("Visible"), renderer, "active", LST_DEFACC_TOGGLE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_NONE); g_signal_connect (renderer, "toggled", G_CALLBACK (ui_acc_listview_toggled_cb), treeview); g_object_set_data(G_OBJECT(treeview), "togrdr_data", renderer); } //column: icons if( withtoggle == FALSE ) { column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_acc_listview_icon_cell_data_function, GINT_TO_POINTER(LST_DEFACC_DATAS), NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } //2028464 sort by pos/name // column: position if( withtoggle == FALSE ) { renderer = gtk_cell_renderer_text_new (); //#2004631 date and column title alignement g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, "#"); gtk_tree_view_column_set_sort_column_id (column, LST_DEFACC_SORT_POS); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_acc_listview_cell_data_function_pos, GINT_TO_POINTER(LST_DEFACC_DATAS), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } // column: name column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Account")); gtk_tree_view_column_set_sort_column_id (column, LST_DEFACC_SORT_NAME); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL); if( withtoggle == FALSE ) { g_object_set(renderer, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); } gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_acc_listview_name_cell_data_function, GINT_TO_POINTER(LST_DEFACC_DATAS), NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // treeviewattribute gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), !withtoggle); //5.7 no more dragndrop //gtk_tree_view_set_reorderable (GTK_TREE_VIEW(treeview), TRUE); //sortable gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFACC_SORT_POS, ui_acc_listview_compare_func, GINT_TO_POINTER(LST_DEFACC_SORT_POS), NULL); if( withtoggle == FALSE ) { gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFACC_SORT_NAME, ui_acc_listview_compare_func, GINT_TO_POINTER(LST_DEFACC_SORT_NAME), NULL); } gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DEFACC_SORT_POS, GTK_SORT_ASCENDING); //gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(treeview), ui_acc_listview_search_equal_func, NULL, NULL); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); return treeview; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_acc_manage_dialog_refilter(struct ui_acc_manage_data *data) { gchar *needle; DB( g_print("[ui-acc] refilter\n") ); needle = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_search)); ui_acc_listview_populate(data->LV_acc, ACC_LST_INSERT_NORMAL, needle); } static void ui_acc_manage_getlast(struct ui_acc_manage_data *data) { gboolean active; gdouble value; Account *item; DB( g_print("\n[ui-acc] getlast\n") ); DB( g_print(" -> for account id=%d\n", data->lastkey) ); item = da_acc_get(data->lastkey); if(item != NULL) { gchar *olddigest, *newdigest; guint length; //data->change++; length = offsetof(Account, rdate); olddigest = g_compute_checksum_for_data (G_CHECKSUM_MD5, (const guchar *)item, length); item->type = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); account_set_currency(item, ui_cur_combobox_get_key(GTK_COMBO_BOX(data->CY_curr)) ); hbtk_entry_replace_text(GTK_ENTRY(data->ST_institution), &item->bankname); hbtk_entry_replace_text(GTK_ENTRY(data->ST_number), &item->number); item->kgrp = ui_grp_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->ST_group)); hbtk_entry_replace_text(GTK_ENTRY(data->ST_website), &item->website); GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (data->TB_notes)); GtkTextIter siter, eiter; gtk_text_buffer_get_iter_at_offset (buffer, &siter, 0); gtk_text_buffer_get_end_iter(buffer, &eiter); gchar *newnotes = gtk_text_buffer_get_text(buffer, &siter, &eiter, FALSE); gint tmpcmp = hb_string_ascii_compare(item->notes, newnotes); if( tmpcmp != 0 ) { g_free(item->notes); item->notes = g_strdup(newnotes); } item->flags &= ~(AF_CLOSED); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_closed)); if(active) item->flags |= AF_CLOSED; item->flags &= ~(AF_NOBUDGET); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_nobudget)); if(active) item->flags |= AF_NOBUDGET; item->flags &= ~(AF_NOSUMMARY); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_nosummary)); if(active) item->flags |= AF_NOSUMMARY; item->flags &= ~(AF_NOREPORT); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_noreport)); if(active) item->flags |= AF_NOREPORT; //#1896441 outflow summary item->flags &= ~(AF_OUTFLOWSUM); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_outflowsum)); if(active) item->flags |= AF_OUTFLOWSUM; gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_initial)); value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_initial)); item->initial = value; //gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_warning)); //value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_warning)); //item->warning = value; gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_minimum)); value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_minimum)); item->minimum = value; gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_maximum)); value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_maximum)); item->maximum = value; gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_cheque1)); item->cheque1 = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->ST_cheque1)); gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_cheque2)); item->cheque2 = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->ST_cheque2)); item->karc= hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_template)); //active_id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_template)); //item->karc = atoi(active_id); newdigest = g_compute_checksum_for_data (G_CHECKSUM_MD5, (const guchar *)item, length); DB( g_print(" checksum: '%s'\n", olddigest) ); DB( g_print(" checksum: '%s'\n", newdigest) ); if (strcmp(olddigest, newdigest) ) { data->change++; DB( g_print(" > checksum differs\n") ); } g_free (olddigest); g_free (newdigest); } } //#1743254 set frac digits as well static void ui_acc_manage_changed_curr_cb(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; guint32 key; Currency *cur; DB( g_print("\n[ui-acc] changed_curr_cb\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); key = ui_cur_combobox_get_key(GTK_COMBO_BOX(data->CY_curr)); cur = da_cur_get (key); if( cur != NULL ) { DB( g_print("- set digits to '%s' %d\n", cur->name, cur->frac_digits) ); gtk_spin_button_set_digits (GTK_SPIN_BUTTON(data->ST_initial), cur->frac_digits); gtk_spin_button_set_digits (GTK_SPIN_BUTTON(data->ST_minimum), cur->frac_digits); gtk_spin_button_set_digits (GTK_SPIN_BUTTON(data->ST_maximum), cur->frac_digits); } } /* ** set widgets contents from the selected account */ static void ui_acc_manage_set(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; Account *item; //gchar idbuffer[12]; DB( g_print("\n[ui-acc] set\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DEFACC_DATAS, &item, -1); DB( g_print(" -> set acc id=%d\n", item->key) ); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_type), item->type ); ui_cur_combobox_set_active(GTK_COMBO_BOX(data->CY_curr), item->kcur); if(item->bankname != NULL) gtk_entry_set_text(GTK_ENTRY(data->ST_institution), item->bankname); else gtk_entry_set_text(GTK_ENTRY(data->ST_institution), ""); if(item->number != NULL) gtk_entry_set_text(GTK_ENTRY(data->ST_number), item->number); else gtk_entry_set_text(GTK_ENTRY(data->ST_number), ""); ui_grp_comboboxentry_set_active(GTK_COMBO_BOX(data->ST_group), item->kgrp); if(item->website != NULL) gtk_entry_set_text(GTK_ENTRY(data->ST_website), item->website); else gtk_entry_set_text(GTK_ENTRY(data->ST_website), ""); GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (data->TB_notes)); GtkTextIter iter; gtk_text_buffer_set_text (buffer, "", 0); gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); if(item->notes != NULL) gtk_text_buffer_insert (buffer, &iter, item->notes, -1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_nobudget), item->flags & AF_NOBUDGET); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_nosummary), item->flags & AF_NOSUMMARY); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_noreport), item->flags & AF_NOREPORT); //#1896441 outflow summary gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_outflowsum), item->flags & AF_OUTFLOWSUM); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_closed), item->flags & AF_CLOSED); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_initial), item->initial); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_warning), item->warning); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_minimum), item->minimum); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_maximum), item->maximum); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_cheque1), item->cheque1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_cheque2), item->cheque2); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_template), item->karc); //g_snprintf(idbuffer, 11, "%d", item->karc); //gtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_template), idbuffer); } } /* static gboolean ui_acc_manage_focus_out(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { ui_acc_manage_get(widget, user_data); return FALSE; } */ /* ** update the widgets status and contents from action/selection value */ static void ui_acc_manage_update(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; gboolean selected, sensitive, canup, candw; guint32 key; DB( g_print("\n[ui-acc] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //window = gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW); //DB( g_print("(defpayee) widget=%08lx, window=%08lx, inst_data=%08lx\n", treeview, window, data) ); key = ui_acc_listview_get_selected_key(GTK_TREE_VIEW(data->LV_acc)); //if true there is a selected node selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)), &model, &iter); DB( g_print(" -> selected = %d action = %d key = %d\n", selected, data->action, key) ); sensitive = (selected == TRUE) ? TRUE : FALSE; gtk_widget_set_sensitive(data->notebook, sensitive); sensitive = (selected == TRUE && data->action == 0) ? TRUE : FALSE; gtk_widget_set_sensitive(data->BT_edit, sensitive); gtk_widget_set_sensitive(data->BT_rem, sensitive); canup = candw = selected; if( selected == TRUE ) { GtkTreeIter *tmpIter; gint sort_column_id; GtkSortType sort_order; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_acc)); DB( g_print(" model is %p %d\n", model, GTK_IS_LIST_STORE(model)) ); sort_column_id = GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID; sort_order = GTK_SORT_DESCENDING; gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(model), &sort_column_id, &sort_order); DB( g_print(" sort is colid=%d order=%d (ok is %d %d)\n", sort_column_id, sort_order, LST_DEFACC_SORT_POS, GTK_SORT_ASCENDING) ); if( !((sort_column_id == LST_DEFACC_SORT_POS) && (sort_order == GTK_SORT_ASCENDING)) ) { canup = candw = FALSE; DB( g_print(" sort is not by position ASC\n") ); goto next; } tmpIter = gtk_tree_iter_copy(&iter); canup = gtk_tree_model_iter_previous(model, tmpIter); gtk_tree_iter_free(tmpIter); tmpIter = gtk_tree_iter_copy(&iter); candw = gtk_tree_model_iter_next(model, tmpIter); gtk_tree_iter_free(tmpIter); } next: DB( g_print(" can up=%d dw=%d\n", canup, candw) ); gtk_widget_set_sensitive(data->BT_up , canup); gtk_widget_set_sensitive(data->BT_down, candw); if(selected) { if(key != data->lastkey) { DB( g_print(" -> should first do a get for account %d\n", data->lastkey) ); ui_acc_manage_getlast(data); } ui_acc_manage_set(widget, NULL); } data->lastkey = key; } static void ui_acc_manage_cb_move_updown(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; GtkDirectionType direction = GPOINTER_TO_INT(user_data); GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; gboolean hasprvnxt; Account *curitem, *prvnxtitem; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-acc] up/down (data=%p)\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DEFACC_DATAS, &curitem, -1); hasprvnxt = FALSE; if( direction == GTK_DIR_UP ) hasprvnxt = gtk_tree_model_iter_previous(model, &iter); else if( direction == GTK_DIR_DOWN ) hasprvnxt = gtk_tree_model_iter_next(model, &iter); if( hasprvnxt == TRUE ) { gushort tmp = curitem->pos; gtk_tree_model_get(model, &iter, LST_DEFACC_DATAS, &prvnxtitem, -1); //swap position curitem->pos = prvnxtitem->pos; prvnxtitem->pos = tmp; //#1999243 add change data->change++; ui_acc_listview_sort_force(GTK_TREE_SORTABLE(model), NULL); } } } /* ** add an empty new account to our temp GList and treeview */ static void ui_acc_manage_add(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; Account *item; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-acc] add data=%p\n", data) ); gchar *name = dialog_get_name(_("Account name"), NULL, GTK_WINDOW(data->dialog)); if(name != NULL) { if(account_exists(name)) { ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("Error"), _("Cannot add an account '%s',\n" "this name already exists."), name ); } else { item = da_acc_malloc(); item->name = name; //g_strdup_printf( _("(account %d)"), da_acc_length()+1); item->kcur = GLOBALS->kcur; g_strstrip(item->name); if( strlen(item->name) > 0 ) { if( da_acc_append(item) ) { ui_acc_listview_add(GTK_TREE_VIEW(data->LV_acc), item); data->change++; } } } } } /* ** delete the selected account to our treeview and temp GList */ static void ui_acc_manage_delete(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; guint32 key; gint result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-acc] remove data=%p\n", data) ); key = ui_acc_listview_get_selected_key(GTK_TREE_VIEW(data->LV_acc)); if( key > 0 ) { Account *item = da_acc_get(key); guint usagecode = account_is_used(key); if( usagecode != ACC_USAGE_NONE ) { gchar *title, *reason; title = g_strdup_printf ( _("Cannot delete account '%s'"), item->name); switch(usagecode) { case ACC_USAGE_TXN : reason = _("It has transaction"); break; case ACC_USAGE_TXN_XFER: reason = _("It is target of xfer transaction"); break; case ACC_USAGE_ARC : reason = _("It has scheduled/template"); break; case ACC_USAGE_ARC_XFER: reason = _("It is target of xfer scheduled/template"); break; default: reason = ""; break; } ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, title, reason //_("This account contains transactions and/or is part of internal transfers.") ); g_free(title); } else { gchar *title; gchar *secondtext; title = g_strdup_printf ( _("Are you sure you want to permanently delete '%s'?"), item->name); secondtext = _("If you delete an account, it will be permanently lost."); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Delete"), TRUE ); g_free(title); if( result == GTK_RESPONSE_OK ) { da_acc_delete(key); ui_acc_listview_remove_selected(GTK_TREE_VIEW(data->LV_acc)); data->change++; } } } } /* ** rename the selected account to our treeview and temp GList */ static void ui_acc_manage_rename(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; Account *item; guint32 key; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-acc] rename data=%p\n", data) ); key = ui_acc_listview_get_selected_key(GTK_TREE_VIEW(data->LV_acc)); if( key > 0 ) { item = da_acc_get(key); gchar *name = dialog_get_name(_("Account name"), item->name, GTK_WINDOW(data->dialog)); if(name != NULL) { if(account_rename(item, name)) { gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_acc)); data->change++; } else { ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("Error"), _("Cannot rename this Account,\n" "from '%s' to '%s',\n" "this name already exists."), item->name, name ); } } } } static void ui_acc_manage_toggled_nobudget(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; Account *accitem; gboolean selected, active; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-acc] toggled_nobudget data=%p\n", data) ); selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)), &model, &iter); if(selected) { gtk_tree_model_get(model, &iter, LST_DEFACC_DATAS, &accitem, -1); accitem->flags &= ~(AF_NOBUDGET); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_nobudget)); if(active) accitem->flags |= AF_NOBUDGET; /* redraw the row to display/hide the icon */ path = gtk_tree_model_get_path(model, &iter); gtk_tree_model_row_changed(model, path, &iter); gtk_tree_path_free (path); // gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_arc)); //gtk_widget_queue_draw (GTK_WIDGET(data->LV_arc)); } } static void ui_acc_manage_toggled_closed(GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; Account *accitem; gboolean selected, active; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-acc] toggled_closed data=%p\n", data) ); selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)), &model, &iter); if(selected) { gtk_tree_model_get(model, &iter, LST_DEFACC_DATAS, &accitem, -1); accitem->flags &= ~(AF_CLOSED); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_closed)); if(active) accitem->flags |= AF_CLOSED; /* redraw the row to display/hide the icon */ path = gtk_tree_model_get_path(model, &iter); gtk_tree_model_row_changed(model, path, &iter); gtk_tree_path_free (path); // gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_arc)); //gtk_widget_queue_draw (GTK_WIDGET(data->LV_arc)); } } static void ui_acc_manage_rowactivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { //struct account_data *data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); ui_acc_manage_rename(GTK_WIDGET(treeview), NULL); } /* ** */ static void ui_acc_manage_selection(GtkTreeSelection *treeselection, gpointer user_data) { ui_acc_manage_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static void ui_acc_manage_sort_changed(GtkTreeSortable *sortable, gpointer user_data) { struct ui_acc_manage_data *data = user_data; DB( g_printf("\n[ui-acc] sort changed\n") ); ui_acc_manage_update(data->dialog, NULL); } //gint ui_acc_manage_list_sort(struct _Account *a, struct _Account *b) { return( a->acc_Id - b->acc_Id); } /* ** */ static gboolean ui_acc_manage_cleanup(struct ui_acc_manage_data *data, gint result) { guint32 key; gboolean doupdate = FALSE; DB( g_print("\n[ui-acc] cleanup %p\n", data) ); key = ui_acc_listview_get_selected_key(GTK_TREE_VIEW(data->LV_acc)); if(key > 0) { data->lastkey = key; DB( g_print(" -> should first do a get for account %d\n", data->lastkey) ); ui_acc_manage_getlast(data); } DB( g_print(" changes: %d\n", data->change) ); GLOBALS->changes_count += data->change; group_delete_unused(); return doupdate; } static void ui_acc_manage_search_changed_cb (GtkWidget *widget, gpointer user_data) { struct ui_acc_manage_data *data = user_data; DB( g_printf("\n[ui-acc] search_changed_cb\n") ); ui_acc_manage_dialog_refilter(data); } /* ** */ static void ui_acc_manage_setup(struct ui_acc_manage_data *data) { GList *tmplist; GString *tpltitle; DB( g_print("\n[ui-acc] setup\n") ); DB( g_print(" init data\n") ); //init GList data->tmp_list = NULL; //hb-glist_clone_list(GLOBALS->acc_list, sizeof(struct _Account)); data->action = 0; data->change = 0; data->lastkey = 0; DB( g_print(" populate\n") ); ui_acc_listview_populate(data->LV_acc, ACC_LST_INSERT_NORMAL, NULL); ui_cur_combobox_populate(GTK_COMBO_BOX(data->CY_curr), GLOBALS->h_cur); //populate_view_acc(data->LV_acc, GLOBALS->acc_list, TRUE); ui_grp_comboboxentry_populate(GTK_COMBO_BOX(data->ST_group), GLOBALS->h_grp); //TODO: move to ui-archive DB( g_print(" populate tpl start\n") ); //setting wrap causes O(n^2) performance regression because after //every insert the drop-down list size is re-computed. //gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 0); //populate template hbtk_combo_box_text_append(GTK_COMBO_BOX(data->CY_template), 0, _("(none)")); tpltitle = g_string_sized_new(255); tmplist = g_list_first(GLOBALS->arc_list); while (tmplist != NULL) { Archive *item = tmplist->data; if( !(item->rec_flags & TF_RECUR) ) { da_archive_get_display_label(tpltitle, item); hbtk_combo_box_text_append(GTK_COMBO_BOX(data->CY_template), item->key, tpltitle->str); } tmplist = g_list_next(tmplist); } g_string_free(tpltitle, TRUE); //gtk_combo_box_set_active(GTK_COMBO_BOX(data->CY_template), 0); //gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(data->CY_template), 1); DB( g_print(" populate tpl end\n") ); //DB( g_print(" set widgets default\n") ); DB( g_print(" connect widgets signals\n") ); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)), "changed", G_CALLBACK (ui_acc_manage_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_acc), "row-activated", G_CALLBACK (ui_acc_manage_rowactivated), GINT_TO_POINTER(2)); g_signal_connect (gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_acc)), "sort-column-changed", G_CALLBACK (ui_acc_manage_sort_changed), data); gtk_tree_view_set_search_entry(GTK_TREE_VIEW(data->LV_acc), GTK_ENTRY(data->ST_search)); g_signal_connect (G_OBJECT (data->ST_search), "search-changed", G_CALLBACK (ui_acc_manage_search_changed_cb), data); g_signal_connect (data->CY_curr , "changed", G_CALLBACK (ui_acc_manage_changed_curr_cb), NULL); g_signal_connect (data->CM_closed, "toggled", G_CALLBACK (ui_acc_manage_toggled_closed), NULL); g_signal_connect (data->CM_nobudget, "toggled", G_CALLBACK (ui_acc_manage_toggled_nobudget), NULL); g_signal_connect (G_OBJECT (data->BT_add) , "clicked", G_CALLBACK (ui_acc_manage_add), NULL); g_signal_connect (G_OBJECT (data->BT_edit), "clicked", G_CALLBACK (ui_acc_manage_rename), NULL); g_signal_connect (G_OBJECT (data->BT_rem) , "clicked", G_CALLBACK (ui_acc_manage_delete), NULL); g_signal_connect (G_OBJECT (data->BT_up ), "clicked", G_CALLBACK (ui_acc_manage_cb_move_updown), GUINT_TO_POINTER(GTK_DIR_UP)); g_signal_connect (G_OBJECT (data->BT_down), "clicked", G_CALLBACK (ui_acc_manage_cb_move_updown), GUINT_TO_POINTER(GTK_DIR_DOWN)); } static gboolean ui_acc_manage_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct ui_acc_manage_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[ui-acc] mapped\n") ); ui_acc_manage_setup(data); ui_acc_manage_update(data->LV_acc, NULL); data->mapped_done = TRUE; return FALSE; } /* ** */ GtkWidget *ui_acc_manage_dialog (void) { struct ui_acc_manage_data *data; GtkWidget *dialog, *content, *mainbox, *vbox, *scrollwin, *notebook; GtkWidget *content_grid, *group_grid, *tbar, *bbox; GtkWidget *label, *widget, *treeview, *hpaned; gint w, h, dw, dh, row; DB( g_print("\n[ui-acc] new\n") ); data = g_malloc0(sizeof(struct ui_acc_manage_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Manage Accounts"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 4:3 dw = (dh * 4) / 3; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" dialog=%p, inst_data=%p\n", dialog, data) ); //window contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (content), mainbox); hb_widget_set_margin(GTK_WIDGET(mainbox), SPACING_LARGE); hpaned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); hbtk_box_prepend (GTK_BOX (mainbox), hpaned); // set paned position //w = w/PHI; //gtk_paned_set_position(GTK_PANED(hpaned), w - (w/PHI)); /* left area */ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_margin_end(vbox, SPACING_SMALL); gtk_paned_pack1 (GTK_PANED(hpaned), vbox, FALSE, FALSE); widget = make_search (); data->ST_search = widget; gtk_widget_set_size_request(widget, HB_MINWIDTH_SEARCH, -1); gtk_widget_set_halign(widget, GTK_ALIGN_END); hb_widget_set_margins(GTK_WIDGET(widget), 0, 0, SPACING_MEDIUM, 0); gtk_box_prepend (GTK_BOX (vbox), widget); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); treeview = ui_acc_listview_new(FALSE); data->LV_acc = treeview; gtk_widget_set_size_request(treeview, HB_MINWIDTH_LIST, -1); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_ADD, _("Add")); data->BT_add = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); data->BT_rem = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_EDIT, _("Rename")); data->BT_edit = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_MOVE_UP, _("Move up")); data->BT_up = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_MOVE_DOWN, _("Move down")); data->BT_down = widget; gtk_box_prepend(GTK_BOX(bbox), widget); /* right area */ notebook = gtk_notebook_new(); data->notebook = notebook; gtk_widget_set_margin_start(notebook, SPACING_SMALL); gtk_paned_pack2 (GTK_PANED(hpaned), notebook, FALSE, FALSE); /* page :: General */ content_grid = gtk_grid_new(); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); label = gtk_label_new(_("General")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), content_grid, label); // group :: Account group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 0, 1, 1); //label = make_label_group(_("Account")); //gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 0; label = make_label_widget(_("_Type:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_ACC_TYPE); data->CY_type = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Group:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); //widget = make_string(label); widget = ui_grp_comboboxentry_new(label); data->ST_group = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); row++; label = make_label_widget(_("_Institution:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string(label); data->ST_institution = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); row++; label = make_label_widget(_("N_umber:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string(label); data->ST_number = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); row++; label = make_label_widget(_("Start _balance:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_amount(label); data->ST_initial = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Currency:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = ui_cur_combobox_new(label); data->CY_curr = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("this account was _closed")); data->CM_closed = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); //5.7 row++; label = make_label_widget(_("Website:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string(label); data->ST_website = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); row++; label = make_label_widget(_("Notes:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = gtk_text_view_new (); //#1697171 add wrap gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(widget), GTK_WRAP_WORD); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_size_request (scrollwin, -1, 48); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), widget); gtk_widget_set_hexpand (scrollwin, TRUE); gtk_widget_set_vexpand (scrollwin, TRUE); data->TB_notes = widget; gtk_grid_attach (GTK_GRID (group_grid), scrollwin, 2, row, 2, 1); /* page :: Behaviour */ content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); label = gtk_label_new(_("Behaviour")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), content_grid, label); // group :: miscelleaneous group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 1, 1, 1); label = make_label_group(_("Automation")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 2, 1); row = 1; label = make_label_widget(_("Default _Template:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new(label); data->CY_template = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); /* test not working GValue gvalue = G_VALUE_INIT; g_value_init (&gvalue, G_TYPE_BOOLEAN); g_value_set_boolean (&gvalue, TRUE); g_object_set_property(data->CY_template, "appears-as-list", &gvalue); */ // group :: Report exclusion group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 2, 1, 1); label = make_label_group(_("Report exclusion")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 2, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("exclude from account _summary")); data->CM_nosummary = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); //#1896441 outflow summary row++; widget = gtk_check_button_new_with_mnemonic (_("outflow into summary")); data->CM_outflowsum= widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("exclude from the _budget")); data->CM_nobudget = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("exclude from any _reports")); data->CM_noreport = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); /* page :: Misc. */ content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); label = gtk_label_new(_("Misc.")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), content_grid, label); // group :: Current check number group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 3, 1, 1); label = make_label_group(_("Current check number")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_widget(_("Checkbook _1:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_long (label); data->ST_cheque1 = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Checkbook _2:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_long (label); data->ST_cheque2 = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: Institution group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 0, 1, 1); label = make_label_group(_("Balance limits")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row++; label = make_label_widget(_("_Overdraft at:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_amount(label); data->ST_minimum = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Max_imum:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_amount(label); data->ST_maximum = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); //TODO: warning/absolute minimum balance /* label = make_label_widget(_("_Warning at:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_amount(label); data->ST_warning = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); */ // connect dialog signals g_signal_connect (dialog, "map-event", G_CALLBACK (ui_acc_manage_mapped), &dialog); g_signal_connect (dialog, "key-press-event", G_CALLBACK (ui_acc_manage_cb_on_key_press), (gpointer)data); // setup, init and show dialog //moved to mapped-event //g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)), "changed", G_CALLBACK (ui_acc_manage_selection), NULL); //g_signal_connect (GTK_TREE_VIEW(data->LV_acc), "row-activated", G_CALLBACK (ui_acc_manage_rowactivated), GINT_TO_POINTER(2)); //g_signal_connect (data->CY_curr , "changed", G_CALLBACK (ui_acc_manage_changed_curr_cb), NULL); //g_signal_connect (data->CM_closed, "toggled", G_CALLBACK (ui_acc_manage_toggled_closed), NULL); //g_signal_connect (data->CM_nobudget, "toggled", G_CALLBACK (ui_acc_manage_toggled_nobudget), NULL); //g_signal_connect (G_OBJECT (data->BT_add) , "clicked", G_CALLBACK (ui_acc_manage_add), NULL); //g_signal_connect (G_OBJECT (data->BT_edit), "clicked", G_CALLBACK (ui_acc_manage_rename), NULL); //g_signal_connect (G_OBJECT (data->BT_rem) , "clicked", G_CALLBACK (ui_acc_manage_delete), NULL); //setup, init and show dialog //ui_acc_manage_setup(data); //ui_acc_manage_update(data->LV_acc, NULL); //avoid focus on search gtk_window_set_focus(GTK_WINDOW(dialog), data->BT_add); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all (dialog); gint result = gtk_dialog_run (GTK_DIALOG (dialog)); // cleanup & destroy ui_acc_manage_cleanup(data, result); gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/src/list-report.h0000664000175000017500000000463215001132656012225 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __LIST_REPORT__H__ #define __LIST_REPORT__H__ enum { LST_REPORT_POS, //keep for compatibility with chart LST_REPORT_KEY, LST_REPORT_LABEL, //LST_REPORT_ROW, LST_REPORT_EXPENSE, LST_REPORT_INCOME, LST_REPORT_TOTAL, LST_REPORT_OVERLABEL, NUM_LST_REPORT }; #define LST_REPORT_POS_TOTAL G_MAXINT // --- time stuff --- //time maximum column (4 years = 365,25 * 4) #define LST_REP_COLID_MAX 1461 //special column id #define LST_REP_COLID_POS LST_REP_COLID_MAX + 10 #define LST_REP_COLID_AVERAGE LST_REP_COLID_MAX + 11 #define LST_REP_COLID_TOTAL LST_REP_COLID_MAX + 12 enum { LST_REPORT2_POS, LST_REPORT2_KEY, LST_REPORT2_LABEL, LST_REPORT2_ROW, LST_REPORT2_OVERLABEL, NUM_LST_REPORT2 }; struct lst_report_data { GtkWidget *treeview; // guint intvl; // guint n_cols; // DataCol **cols; gdouble tot_exp; gdouble tot_inc; }; GtkTreeStore *lst_report_new(void); GtkWidget *lst_report_create(void); void lst_report_add_columns(GtkTreeView *treeview, GtkTreeModel *model); gboolean lst_report_get_top_level (GtkTreeModel *liststore, guint32 key, GtkTreeIter *return_iter); GString *lst_report_to_string(ToStringMode mode, GtkTreeView *treeview, gint src, gchar *title); gboolean lst_rep_time_get_top_level (GtkTreeModel *liststore, guint32 key, GtkTreeIter *return_iter); GString *lst_rep_time_to_string(ToStringMode mode, GtkTreeView *treeview, gint src, gchar *title); GtkWidget *lst_rep_time_createtype(GtkListStore *store); GtkTreeStore *lst_rep_time_new(void); GtkWidget *lst_rep_time_create(void); void lst_rep_time_renewcol(GtkTreeView *treeview, GtkTreeModel *model, DataTable *dt, gboolean avg); #endif homebank-5.9.1/src/ui-archive.h0000644000175000017500000000322014766240166012000 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_ARCHIVE_GTK_H__ #define __HB_ARCHIVE_GTK_H__ enum { HID_ARC_MEMO, HID_ARC_VALID, HID_ARC_REMIND, HID_ARC_MAX }; struct ui_arc_manage_data { GtkWidget *dialog; gboolean mapped_done; GList *tmp_list; gint change; Archive *ext_arc; GtkWidget *BT_typsch, *BT_typtpl; GtkWidget *ST_search; GtkWidget *LV_arc; GtkWidget *BT_add, *BT_rem, *BT_edit, *BT_dup, *BT_schedule; //recurrent popover GtkWidget *PO_recurrent, *GR_recurrent; GtkWidget *SW_recurrent; GtkWidget *RA_rec_freq; GtkWidget *LB_next, *PO_next; GtkWidget *IM_wrnwe; GtkWidget *LB_rec_every, *NB_rec_every, *LB_rec_every2; GtkWidget *CM_relative, *LB_relative, *CY_ordinal, *CY_weekday; GtkWidget *LB_weekend, *CY_weekend; GtkWidget *EX_options; GtkWidget *CM_limit; GtkWidget *NB_limit; GtkWidget *LB_posts; }; GtkWidget *ui_arc_manage_dialog (Archive *ext_arc); #endif homebank-5.9.1/src/ui-assist-import.c0000644000175000017500000022276415005634006013173 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hub-account.h" #include "hb-import.h" #include "ui-assist-import.h" #include "dsp-mainwindow.h" #include "list-operation.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern HbKvData CYA_IMPORT_DATEORDER[]; extern HbKvData CYA_IMPORT_OFXNAME[]; extern HbKvData CYA_IMPORT_OFXMEMO[]; static void ui_import_page_filechooser_eval(GtkWidget *widget, gpointer user_data); /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if MYDEBUG == 1 static void list_txn_cell_data_function_debug (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GenTxn *gentxn; gchar *text; gtk_tree_model_get(model, iter, LST_GENTXN_POINTER, &gentxn, -1); text = g_strdup_printf("%d %d > %d", gentxn->is_imp_similar, gentxn->is_dst_similar, gentxn->to_import); g_object_set(renderer, "text", text, NULL); g_free(text); } #endif static void list_txn_cell_data_function_toggle (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GenTxn *gentxn; gtk_tree_model_get(model, iter, LST_GENTXN_POINTER, &gentxn, -1); g_object_set(renderer, "active", gentxn->to_import, NULL); } static void list_txn_cell_data_function_warning (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GenTxn *gentxn; gchar *iconname = NULL; // get the transaction gtk_tree_model_get(model, iter, LST_GENTXN_POINTER, &gentxn, -1); //iconname = ( gentxn->julian == 0 ) ? ICONNAME_WARNING : NULL; //if(iconname == NULL) iconname = ( gentxn->is_dst_similar || gentxn->is_imp_similar ) ? ICONNAME_HB_ITEM_SIMILAR : NULL; g_object_set(renderer, "icon-name", iconname, NULL); } static void list_txn_cell_data_function_error (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GenTxn *gentxn; gchar *iconname = NULL; // get the transaction gtk_tree_model_get(model, iter, LST_GENTXN_POINTER, &gentxn, -1); iconname = ( gentxn->julian == 0 ) ? ICONNAME_ERROR : NULL; g_object_set(renderer, "icon-name", iconname, NULL); } static void list_txn_cell_data_function_text (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gint colid = GPOINTER_TO_INT(user_data); gchar buf[12]; GDate date; gchar *text = ""; GenTxn *item; gtk_tree_model_get(model, iter, LST_GENTXN_POINTER, &item, -1); switch(colid) { case LST_DSPOPE_DATE: //date { gchar *color = NULL; if(item->julian > 0) { g_date_set_julian(&date, item->julian); //#1794170 %F is ignored under ms windows //g_date_strftime (buf, 12-1, "%F", &date); g_date_strftime (buf, 12-1, "%Y-%m-%d", &date); text = buf; } else { text = item->date; color = PREFS->color_warn; } g_object_set(renderer, "foreground", color, NULL); } //g_object_set(renderer, "text", item->date, NULL); break; case LST_DSPOPE_MEMO: //memo text = item->memo; break; case LST_DSPOPE_PAYEE: //payee text = item->payee; break; case LST_DSPOPE_CATEGORY: //category text = item->category; break; } g_object_set(renderer, "text", text, //"scale-set", TRUE, //"scale", item->to_import ? 1.0 : 0.8, "strikethrough-set", TRUE, "strikethrough", item->to_import ? FALSE : TRUE, NULL); } /* ** amount cell function */ static void list_txn_cell_data_function_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GenTxn *item; gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; gdouble amount; gchar *color; gtk_tree_model_get(model, iter, LST_GENTXN_POINTER, &item, -1); //#1866456 amount = (item->togamount == TRUE) ? -item->amount : item->amount; //todo: we could use digit and currency of target account //hb_strfnum(buf, G_ASCII_DTOSTR_BUF_SIZE-1, item->amount, GLOBALS->kcur, FALSE); //hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, ope->amount, GLOBALS->minor); g_ascii_formatd(formatd_buf, G_ASCII_DTOSTR_BUF_SIZE-1, "%.2f", amount); color = get_normal_color_amount(amount); g_object_set(renderer, "foreground", color, "text", formatd_buf, NULL); } static void list_txn_cell_data_function_info (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GenTxn *item; gtk_tree_model_get(model, iter, LST_GENTXN_POINTER, &item, -1); switch(GPOINTER_TO_INT(user_data)) { case 1: g_object_set(renderer, "icon-name", get_paymode_icon_name(item->paymode), NULL); break; case 2: g_object_set(renderer, "text", item->number, NULL); break; } } static void list_txn_importfixed_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer userdata) { GtkTreeView *treeview; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); GenTxn *gentxn; g_return_if_fail(GTK_IS_TREE_VIEW(userdata)); treeview = userdata; model = gtk_tree_view_get_model(treeview); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, LST_GENTXN_POINTER, &gentxn, -1); gentxn->to_import ^= 1; gtk_tree_path_free (path); //#1993727 no update after toggle //fake a treeview changed signal g_signal_emit_by_name(gtk_tree_view_get_selection(treeview), "changed", NULL); } static gint list_txn_import_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); gint retval = 0; GenTxn *gentxn1, *gentxn2; gtk_tree_model_get(model, a, LST_GENTXN_POINTER, &gentxn1, -1); gtk_tree_model_get(model, b, LST_GENTXN_POINTER, &gentxn2, -1); switch(sortcol) { case LST_DSPOPE_MEMO: retval = hb_string_utf8_compare(gentxn1->memo, gentxn2->memo); break; case LST_DSPOPE_AMOUNT: retval = (gentxn1->amount - gentxn2->amount) > 0 ? 1 : -1; break; case LST_DSPOPE_PAYEE: retval = hb_string_utf8_compare(gentxn1->payee, gentxn2->payee); break; case LST_DSPOPE_CATEGORY: retval = hb_string_utf8_compare(gentxn1->category, gentxn2->category); break; case LST_DSPOPE_DATE: default: retval = gentxn1->julian - gentxn2->julian; break; } return retval; } static GtkTreeViewColumn * list_txn_import_column_text_create(gchar *title, gint sortcolumnid, gpointer user_data) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; renderer = gtk_cell_renderer_text_new (); /*g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL);*/ if( sortcolumnid == LST_DSPOPE_AMOUNT ) g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new_with_attributes(title, renderer, NULL); //#2004631 date and column title alignement if( sortcolumnid == LST_DSPOPE_AMOUNT ) gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_set_sort_column_id (column, sortcolumnid); if(sortcolumnid == LST_DSPOPE_AMOUNT ) gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_amount, GINT_TO_POINTER(sortcolumnid), NULL); else gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_text, GINT_TO_POINTER(sortcolumnid), NULL); return column; } static GtkWidget *list_txn_import_create(void) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; /* create list store */ store = gtk_list_store_new( NUM_LST_GENTXN, G_TYPE_POINTER ); //treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines|GTK_TREE_VIEW_GRID_LINES_VERTICAL); // debug/import checkbox column = gtk_tree_view_column_new(); #if MYDEBUG == 1 renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_debug, NULL, NULL); #endif renderer = gtk_cell_renderer_toggle_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_toggle, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (list_txn_importfixed_toggled), treeview); // icons column = gtk_tree_view_column_new(); //gtk_tree_view_column_set_title(column, _("Import ?")); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, 16, -1); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_warning, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // date column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_error, NULL, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_text, GINT_TO_POINTER(LST_DSPOPE_DATE), NULL); gtk_tree_view_column_set_title (column, _("Date")); gtk_tree_view_column_set_sort_column_id (column, LST_DSPOPE_DATE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // memo column = list_txn_import_column_text_create(_("Memo"), LST_DSPOPE_MEMO, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // amount column = list_txn_import_column_text_create(_("Amount"), LST_DSPOPE_AMOUNT, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // info column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Pay./Number")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_info, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_text_new (); /*g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL);*/ gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_txn_cell_data_function_info, GINT_TO_POINTER(2), NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // payee column = list_txn_import_column_text_create(_("Payee"), LST_DSPOPE_PAYEE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // category column = list_txn_import_column_text_create(_("Category"), LST_DSPOPE_CATEGORY, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // empty column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), list_txn_import_compare_func, NULL, NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_DATE , list_txn_import_compare_func, GINT_TO_POINTER(LST_DSPOPE_DATE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_MEMO , list_txn_import_compare_func, GINT_TO_POINTER(LST_DSPOPE_MEMO), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_AMOUNT , list_txn_import_compare_func, GINT_TO_POINTER(LST_DSPOPE_AMOUNT), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_PAYEE , list_txn_import_compare_func, GINT_TO_POINTER(LST_DSPOPE_PAYEE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DSPOPE_CATEGORY, list_txn_import_compare_func, GINT_TO_POINTER(LST_DSPOPE_CATEGORY), NULL); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); return(treeview); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static gint ui_genacc_comboboxtext_get_active(GtkWidget *widget) { GtkTreeModel *model; GtkTreeIter iter; gint key = -1; g_return_val_if_fail(GTK_IS_COMBO_BOX(widget), key); if( gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter)) { model = gtk_combo_box_get_model (GTK_COMBO_BOX(widget)); gtk_tree_model_get(model, &iter, LST_GENACC_KEY, &key, -1); } return key; } static void ui_genacc_comboboxtext_set_active(GtkWidget *widget, gint active_key) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gint key; g_return_if_fail(GTK_IS_COMBO_BOX(widget)); model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { gtk_tree_model_get(model, &iter, LST_GENACC_KEY, &key, -1); if(key == active_key) gtk_combo_box_set_active_iter (GTK_COMBO_BOX(widget), &iter); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } static GtkWidget *ui_genacc_comboboxtext_new(struct import_data *data, GtkWidget *label) { GtkListStore *store; GtkCellRenderer *renderer; GtkWidget *combobox; GtkTreeIter iter; GList *lacc, *list; store = gtk_list_store_new (NUM_LST_GENACC, G_TYPE_STRING, G_TYPE_INT); combobox = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store)); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), renderer, FALSE); gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT(combobox), renderer, "text", LST_GENACC_NAME); g_object_unref(store); gtk_list_store_insert_with_values (GTK_LIST_STORE(store), &iter, -1, LST_GENACC_NAME, _(""), LST_GENACC_KEY, DST_ACC_GLOBAL, -1); gtk_list_store_insert_with_values (GTK_LIST_STORE(store), &iter, -1, LST_GENACC_NAME, _(""), LST_GENACC_KEY, DST_ACC_NEW, -1); //#2030333 5.7 sort by pos lacc = list = account_glist_sorted(HB_GLIST_SORT_POS); while (list != NULL) { Account *item = list->data; if( !(item->flags & AF_CLOSED) ) { gtk_list_store_insert_with_values (GTK_LIST_STORE(store), &iter, -1, LST_GENACC_NAME, item->name, LST_GENACC_KEY, item->key, -1); } list = g_list_next(list); } g_list_free(lacc); gtk_list_store_insert_with_values (GTK_LIST_STORE(store), &iter, -1, LST_GENACC_NAME, _(""), LST_GENACC_KEY, DST_ACC_SKIP, -1); gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), combobox); return combobox; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ enum { TARGET_URI_LIST }; static GtkTargetEntry drop_types[] = { {"text/uri-list", 0, TARGET_URI_LIST} }; static void list_file_add(GtkWidget *treeview, GenFile *genfile) { char *basename; GtkTreeModel *model; GtkTreeIter iter; basename = g_path_get_basename(genfile->filepath); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_GENFILE_POINTER, genfile, LST_GENFILE_NAME, g_strdup(basename), -1); g_free(basename); } static void list_file_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time, GtkWindow *window) { struct import_data *data; gchar **uris, **str; gchar *newseldata; gint slen; if (info != TARGET_URI_LIST) return; DB( g_print("\n[ui-treeview] drag_data_received\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); /* On MS-Windows, it looks like `selection_data->data' is not NULL terminated. */ slen = gtk_selection_data_get_length(selection_data); newseldata = g_new (gchar, slen + 1); memcpy (newseldata, gtk_selection_data_get_data(selection_data), slen); newseldata[slen] = 0; uris = g_uri_list_extract_uris (newseldata); ImportContext *ictx = &data->ictx; str = uris; for (str = uris; *str; str++) //if( *str ) { GError *error = NULL; gchar *path = g_filename_from_uri (*str, NULL, &error); if (path) { GenFile *genfile; genfile = da_gen_file_append_from_filename(ictx, path); if(genfile) list_file_add(data->LV_file, genfile); } else { g_warning ("Could not convert uri to local path: %s", error->message); g_error_free (error); } g_free (path); } g_strfreev (uris); g_free(newseldata); ui_import_page_filechooser_eval(widget, NULL); } static void list_file_valid_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GenFile *genfile; gchar *iconname = NULL; gtk_tree_model_get(model, iter, LST_GENFILE_POINTER, &genfile, -1); iconname = (genfile->filetype == FILETYPE_UNKNOWN) ? ICONNAME_HB_FILE_INVALID : ICONNAME_HB_FILE_VALID; g_object_set(renderer, "icon-name", iconname, NULL); } static GtkWidget * list_file_new(void) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; // create list store store = gtk_list_store_new(NUM_LST_FILE, G_TYPE_POINTER, G_TYPE_STRING ); // treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); //column: valid column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Valid")); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, 16, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_file_valid_cell_data_function, NULL, NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); g_object_set(renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); // column: name renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, "text", LST_GENFILE_NAME, NULL); gtk_tree_view_column_set_sort_column_id (column, LST_GENFILE_NAME); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // treeviewattribute gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); //gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_acc_listview_compare_func, NULL, NULL); //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); gtk_drag_dest_set (GTK_WIDGET (treeview), GTK_DEST_DEFAULT_ALL, drop_types, G_N_ELEMENTS (drop_types), GDK_ACTION_COPY); g_signal_connect (G_OBJECT (treeview), "drag-data-received", G_CALLBACK (list_file_drag_data_received), treeview); return treeview; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_import_page_filechooser_delete_action(GtkWidget *widget, gpointer user_data) { struct import_data *data; ImportContext *ictx; GtkTreeModel *model; GtkTreeIter iter; GtkTreeSelection *selection; DB( g_print("\n[ui-import] page_filechooser_delete_action\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ictx = &data->ictx; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_file)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { GenFile *genfile; gtk_tree_model_get(model, &iter, LST_GENFILE_POINTER, &genfile, -1); gtk_list_store_remove(GTK_LIST_STORE(model), &iter); ictx->gen_lst_file = g_list_remove(ictx->gen_lst_file, genfile); da_gen_file_free(genfile); } ui_import_page_filechooser_eval(widget, NULL); } static void ui_import_page_filechooser_add_action(GtkWidget *widget, gpointer user_data) { struct import_data *data; ImportContext *ictx; GtkWidget *dialog; GtkFileFilter *filter; gint res; DB( g_print("\n[ui-import] page_filechooser_add_action\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ictx = &data->ictx; dialog = gtk_file_chooser_dialog_new ("Open File", GTK_WINDOW(data->assistant), GTK_FILE_CHOOSER_ACTION_OPEN, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(dialog), PREFS->path_import); DB( g_print(" set current folder '%s'\n", PREFS->path_import) ); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), TRUE); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Known files")); gtk_file_filter_add_pattern (filter, "*.[Qq][Ii][Ff]"); #ifndef NOOFX gtk_file_filter_add_pattern (filter, "*.[OoQq][Ff][Xx]"); #endif gtk_file_filter_add_pattern (filter, "*.[Cc][Ss][Vv]"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter); //if(data->filetype == FILETYPE_UNKNOWN) // gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(dialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("QIF files")); gtk_file_filter_add_pattern (filter, "*.[Qq][Ii][Ff]"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter); //if(data->filetype == FILETYPE_QIF) // gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(dialog), filter); #ifndef NOOFX filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("OFX/QFX files")); gtk_file_filter_add_pattern (filter, "*.[OoQq][Ff][Xx]"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter); //if(data->filetype == FILETYPE_OFX) // gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(dialog), filter); #endif filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("CSV files")); gtk_file_filter_add_pattern (filter, "*.[Cc][Ss][Vv]"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter); //if(data->filetype == FILETYPE_CSV_HB) // gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(dialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter); res = gtk_dialog_run (GTK_DIALOG (dialog)); if (res == GTK_RESPONSE_ACCEPT) { GSList *list; GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog); list = gtk_file_chooser_get_filenames(chooser); while(list) { GenFile *genfile; DB( g_print(" selected '%p'\n", list->data) ); genfile = da_gen_file_append_from_filename(ictx, list->data); if(genfile) list_file_add(data->LV_file, genfile); list = g_slist_next(list); } g_slist_free_full (list, g_free); /* remind folder to preference */ gchar *folder = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(chooser)); DB( g_print(" store folder '%s'\n", folder) ); g_free(PREFS->path_import); PREFS->path_import = folder; } gtk_window_destroy (GTK_WINDOW(dialog)); ui_import_page_filechooser_eval(widget, NULL); } static void ui_import_page_filechooser_visible (GtkWidget *widget, gpointer user_data) { struct import_data *data; DB( g_print("\n[ui-import] page_filechooser_visible\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //open the file add if no file if( gtk_tree_model_iter_n_children(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_file)), NULL) == 0 ) { //g_signal_emit_by_name(data->BT_file_add, "clicked", NULL); ui_import_page_filechooser_add_action(data->BT_file_add, NULL); } } static void ui_import_page_confirmation_fill(struct import_data *data) { ImportContext *ictx = &data->ictx; GList *list; GString *node; DB( g_print("\n[ui-import] page_confirmation_fill\n") ); node = g_string_sized_new(255); list = g_list_first(ictx->gen_lst_acc); while (list != NULL) { GenAcc *genacc = list->data; gchar *targetname = NULL; switch( genacc->kacc ) { case DST_ACC_GLOBAL: targetname = _("new global account"); break; case DST_ACC_NEW: targetname = _("new account"); break; case DST_ACC_SKIP: targetname = _("skipped"); break; default: { Account *acc = da_acc_get (genacc->kacc); if(acc) targetname = acc->name; } break; } //line1: title g_string_append_printf(node, "'%s'\n => '%s'", genacc->name, targetname); //line2: count if( genacc->kacc != DST_ACC_SKIP) { hb_import_gen_acc_count_txn(ictx, genacc); g_string_append_printf(node, _(", %d of %d transactions"), genacc->n_txnimp, genacc->n_txnall); } g_string_append(node, "\n\n"); list = g_list_next(list); } gtk_label_set_markup (GTK_LABEL(data->TX_summary), node->str); g_string_free(node, TRUE); } static gboolean ui_import_page_import_eval(GtkWidget *widget, gpointer user_data) { //struct import_data *data; //ImportContext *ictx; //gint count; DB( g_print("\n[ui-import] page_import_eval\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //ictx = &data->ictx; //count = g_list_length (ictx->gen_lst_acc); //DB( g_print(" count=%d (max=%d)\n", count, TXN_MAX_ACCOUNT) ); //if( count <= TXN_MAX_ACCOUNT ) return TRUE; //return FALSE; } static void ui_import_page_filechooser_eval(GtkWidget *widget, gpointer user_data) { struct import_data *data; ImportContext *ictx; GList *list; gint count = 0; DB( g_print("\n[ui-import] page_filechooser_eval\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ictx = &data->ictx; list = g_list_first(ictx->gen_lst_file); while (list != NULL) { GenFile *genfile = list->data; if(genfile->filetype != FILETYPE_UNKNOWN) count++; list = g_list_next(list); } gint index = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)); GtkWidget *current_page = gtk_assistant_get_nth_page (GTK_ASSISTANT(data->assistant), index); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->assistant), current_page, (count > 0) ? TRUE : FALSE); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static ImpTxnData *ui_import_page_transaction_data_get(GArray *txndata, guint32 idx) { //gint i; /*g_print(" array @%p, len is %d\n", txndata, txndata->len); for(i=0;ilen;i++) g_print(" %d %p\n", i, &g_array_index(txndata, ImpTxnData, i) ); g_print(" get idx=%d - %p\n", idx, &g_array_index (txndata, ImpTxnData, idx) ); */ if( idx <= txndata->len ) return &g_array_index (txndata, ImpTxnData, idx); return NULL; } //#1993727 no update after toggle static void ui_import_page_transaction_update_count(struct import_data *data) { ImpTxnData *txndata; ImportContext *ictx; gchar *label = NULL; GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gint count; DB( g_print("\n[ui-import] txn update count\n") ); ictx = &data->ictx; //get the account, it will be the account into the glist gint acckey = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)) - (PAGE_IMPORT); GenAcc *genacc = da_gen_acc_get_by_key(ictx->gen_lst_acc, acckey); txndata = ui_import_page_transaction_data_get(data->txndata, acckey); //count gentxn total and toimport count = 0; genacc->n_txnimp = 0; model = gtk_tree_view_get_model(GTK_TREE_VIEW(txndata->LV_gentxn)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { GenTxn *gentxn; gtk_tree_model_get(model, &iter, LST_GENTXN_POINTER, &gentxn, -1); count++; if(gentxn->to_import) genacc->n_txnimp++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } if(genacc->n_txnsimimp || genacc->n_txnsimdst) label = g_strdup_printf(_("%d transaction(s), %d similar, %d existing, %d selected"), count, genacc->n_txnsimimp, genacc->n_txnsimdst, genacc->n_txnimp); else label = g_strdup_printf(_("%d transaction(s), %d selected"), count, genacc->n_txnimp); gtk_label_set_markup (GTK_LABEL(txndata->LB_txn_title), label); g_free(label); } static void ui_import_page_transaction_cb_fill_same(GtkTreeSelection *treeselection, gpointer user_data) { struct import_data *data; ImpTxnData *txndata; //ImportContext *ictx; GtkTreeSelection *selection; GtkTreeModel *model, *dupmodel; GtkTreeIter iter, newiter; GList *tmplist; GtkWidget *widget; guint count = 0; DB( g_print("\n[ui-import] page_transaction_cb_fill_same\n") ); widget = GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //ictx = &data->ictx; gint pageidx = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)); gint acckey = pageidx - (PAGE_IMPORT); //GenAcc *genacc = da_gen_acc_get_by_key(ictx->gen_lst_acc, acckey); //txndata = &data->txndata[acckey]; txndata = ui_import_page_transaction_data_get(data->txndata, acckey); ui_import_page_transaction_update_count(data); //update same dupmodel = gtk_tree_view_get_model(GTK_TREE_VIEW(txndata->LV_duptxn)); gtk_tree_store_clear (GTK_TREE_STORE(dupmodel)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(txndata->LV_gentxn)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { GenTxn *gentxn; gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &gentxn, -1); if( gentxn->lst_existing != NULL ) { tmplist = g_list_first(gentxn->lst_existing); while (tmplist != NULL) { Transaction *tmp = tmplist->data; /* append to our treeview */ //gtk_list_store_append (GTK_LIST_STORE(dupmodel), &newiter); //gtk_list_store_set (GTK_LIST_STORE(dupmodel), &newiter, //#1830523/#1840393 count++; gtk_tree_store_insert_with_values(GTK_TREE_STORE(dupmodel), &newiter, NULL, -1, MODEL_TXN_POINTER, tmp, MODEL_TXN_SPLITAMT, tmp->amount, -1); //DB( g_print(" - fill: %s %.2f %x\n", item->memo, item->amount, (unsigned int)item->same) ); tmplist = g_list_next(tmplist); } } } gtk_expander_set_expanded (GTK_EXPANDER(txndata->EX_duptxn), (count > 0) ? TRUE : FALSE); } static void ui_import_page_transaction_options_get(struct import_data *data) { ImpTxnData *txndata; ImportContext *ictx; DB( g_print("\n[ui-import] options_get\n") ); ictx = &data->ictx; gint pageidx = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)); gint accidx = pageidx - (PAGE_IMPORT); //GenAcc *genacc = g_list_nth_data(ictx->gen_lst_acc, accidx); //txndata = &data->txndata[accidx]; txndata = ui_import_page_transaction_data_get(data->txndata, accidx); ictx->opt_dateorder = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(txndata->CY_txn_dateorder)); ictx->opt_daygap = gtk_spin_button_get_value(GTK_SPIN_BUTTON(txndata->NB_txn_daygap)); ictx->opt_ucfirst = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(txndata->CM_txn_ucfirst)); ictx->opt_togamount = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(txndata->CM_txn_togamount)); ictx->opt_ofxname = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(txndata->CY_txn_ofxname)); ictx->opt_ofxmemo = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(txndata->CY_txn_ofxmemo)); ictx->opt_qifmemo = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(txndata->CM_txn_qifmemo)); ictx->opt_qifswap = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(txndata->CM_txn_qifswap)); DB( g_print(" datefmt = '%s' (%d)\n", CYA_IMPORT_DATEORDER[ictx->opt_dateorder], ictx->opt_dateorder) ); } static void ui_import_page_transaction_update(struct import_data *data) { ImpTxnData *txndata; ImportContext *ictx; gboolean sensitive, visible; gboolean iscomplete; GtkTreeModel *model; DB( g_print("\n[ui-import] page_transaction_update\n") ); ictx = &data->ictx; gint pageidx = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)); gint acckey = pageidx - (PAGE_IMPORT); //GenAcc *genacc = g_list_nth_data(ictx->gen_lst_acc, acckey); GenAcc *genacc = da_gen_acc_get_by_key(ictx->gen_lst_acc, acckey); //txndata = &data->txndata[acckey]; txndata = ui_import_page_transaction_data_get(data->txndata, acckey); DB( g_print(" page idx:%d, genacckey:%d genacc:%p, txndata:%p\n", pageidx, acckey, genacc, txndata) ); if(genacc) { DB( g_print(" genacc id=%d name='%s'\n dstacc=%d\n", acckey, genacc->name, genacc->kacc ) ); visible = (genacc->is_unamed == TRUE) && (genacc->filetype != FILETYPE_CSV_HB) ? TRUE: FALSE; hb_widget_visible (txndata->IM_unamed, visible); sensitive = (genacc->kacc == DST_ACC_SKIP) ? FALSE : TRUE; DB( g_print(" sensitive=%d\n", sensitive) ); gtk_widget_set_sensitive(txndata->LV_gentxn, sensitive); gtk_widget_set_sensitive(txndata->EX_duptxn, sensitive); //todo: disable option button gtk_widget_set_sensitive(txndata->GR_misc, sensitive); gtk_widget_set_sensitive(txndata->GR_date, sensitive); gtk_widget_set_sensitive(txndata->GR_ofx, sensitive); gtk_widget_set_sensitive(txndata->GR_qif, sensitive); gtk_widget_set_sensitive(txndata->GR_select, sensitive); //todo: display a warning if incorrect date gchar *msg_icon = NULL, *msg_label = NULL; iscomplete = (genacc->n_txnbaddate > 0) ? FALSE : TRUE; iscomplete = (genacc->kacc == DST_ACC_SKIP) ? TRUE : iscomplete; DB( g_print(" nbbaddates=%d, dstacc=%d\n", genacc->n_txnbaddate, genacc->kacc) ); DB( g_print(" iscomplete=%d\n", iscomplete) ); //show/hide invalid date group visible = FALSE; if(genacc->n_txnbaddate > 0) { visible = TRUE; DB( g_print(" invalid date detected\n" ) ); msg_icon = ICONNAME_ERROR; msg_label = _("Some date cannot be converted. Please try to change the date order to continue."); } gtk_image_set_from_icon_name(GTK_IMAGE(txndata->IM_txn), msg_icon, GTK_ICON_SIZE_BUTTON); gtk_label_set_text(GTK_LABEL(txndata->LB_txn), msg_label); hb_widget_visible (txndata->GR_msg, visible); //show/hide select valid button visible = (!genacc->n_txnsimimp && !genacc->n_txnsimdst) ? FALSE : TRUE; hb_widget_visible (txndata->BT_val, visible); //show/hide bottom duplicate panel visible = TRUE; if( genacc->kacc==DST_ACC_GLOBAL || genacc->kacc==DST_ACC_NEW || genacc->kacc==DST_ACC_SKIP) visible = FALSE; hb_widget_visible (txndata->EX_duptxn, visible); model = gtk_tree_view_get_model(GTK_TREE_VIEW(txndata->LV_gentxn)); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), LST_DSPOPE_DATE, GTK_SORT_ASCENDING); //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING); //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); GtkWidget *page = gtk_assistant_get_nth_page (GTK_ASSISTANT(data->assistant), pageidx); gtk_assistant_set_page_complete(GTK_ASSISTANT(data->assistant), page, iscomplete); } } static void ui_import_page_transaction_cb_account_changed(GtkWidget *widget, gpointer user_data) { struct import_data *data; ImpTxnData *txndata; ImportContext *ictx; gint dstacc; DB( g_print("\n[ui-import] cb_account_changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ictx = &data->ictx; gint pageidx = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)); gint acckey = pageidx - (PAGE_IMPORT); //GenAcc *genacc = g_list_nth_data(ictx->gen_lst_acc, accidx); GenAcc *genacc = da_gen_acc_get_by_key(ictx->gen_lst_acc, acckey); //txndata = &data->txndata[acckey]; txndata = ui_import_page_transaction_data_get(data->txndata, acckey); //set target acc id dstacc = ui_genacc_comboboxtext_get_active (txndata->CY_acc); genacc->kacc = dstacc; ui_import_page_transaction_options_get(data); hb_import_option_apply(ictx, genacc); hb_import_gen_txn_check_duplicate(ictx, genacc); hb_import_gen_txn_check_target_similar(ictx, genacc); genacc->is_dupcheck = TRUE; gtk_tree_view_columns_autosize(GTK_TREE_VIEW(txndata->LV_gentxn)); ui_import_page_transaction_update(data); } static void ui_import_page_transaction_cb_option_changed(GtkWidget *widget, gpointer user_data) { struct import_data *data; ImpTxnData *txndata; ImportContext *ictx; DB( g_print("\n[ui-import] cb_option_changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ictx = &data->ictx; gint pageidx = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)); gint acckey = pageidx - (PAGE_IMPORT); //GenAcc *genacc = g_list_nth_data(ictx->gen_lst_acc, accidx); GenAcc *genacc = da_gen_acc_get_by_key(ictx->gen_lst_acc, acckey); //txndata = &data->txndata[acckey]; txndata = ui_import_page_transaction_data_get(data->txndata, acckey); ui_import_page_transaction_options_get(data); hb_import_option_apply(ictx, genacc); //#1866456 check also target similar if( txndata->CM_txn_togamount == widget ) { DB( g_print(" should check target similar\n") ); hb_import_gen_txn_check_duplicate(ictx, genacc); hb_import_gen_txn_check_target_similar(ictx, genacc); } gtk_tree_view_columns_autosize(GTK_TREE_VIEW(txndata->LV_gentxn)); ui_import_page_transaction_update(data); } static void ui_import_page_transaction_fill(struct import_data *data) { ImpTxnData *txndata; ImportContext *ictx = &data->ictx; GtkWidget *view; GtkTreeModel *model; GtkTreeIter iter; GList *tmplist; gchar *label = NULL; gboolean visible; //gint nbacc; DB( g_print("\n[ui-import] page_transaction_fill\n") ); //get the account, it will be the account into the glist //of pagenum - PAGE_IMPORT //gint pageidx = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)); gint acckey = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)) - (PAGE_IMPORT); //GenAcc *genacc = g_list_nth_data(ictx->gen_lst_acc, acckey); GenAcc *genacc = da_gen_acc_get_by_key(ictx->gen_lst_acc, acckey); //nbacc = g_list_length(ictx->gen_lst_acc); //txndata = &data->txndata[acckey]; txndata = ui_import_page_transaction_data_get(data->txndata, acckey); DB( g_print(" genacckey:%d genacc:%p, txndata:%p\n", acckey, genacc, txndata) ); if(genacc) { gint count; DB( g_print(" genacc id=%d name='%s'\n dstacc=%d\n", acckey, genacc->name, genacc->kacc ) ); g_signal_handlers_block_by_func(txndata->CY_acc, G_CALLBACK(ui_import_page_transaction_cb_account_changed), NULL); ui_genacc_comboboxtext_set_active(txndata->CY_acc, genacc->kacc); g_signal_handlers_unblock_by_func(txndata->CY_acc, G_CALLBACK(ui_import_page_transaction_cb_account_changed), NULL); g_signal_handlers_block_by_func(txndata->NB_txn_daygap, G_CALLBACK(ui_import_page_transaction_cb_account_changed), NULL); ictx->opt_daygap = PREFS->dtex_daygap; DB( g_print(" init %d to dategap\n", ictx->opt_daygap) ); gtk_spin_button_set_value(GTK_SPIN_BUTTON(txndata->NB_txn_daygap), ictx->opt_daygap); g_signal_handlers_unblock_by_func(txndata->NB_txn_daygap, G_CALLBACK(ui_import_page_transaction_cb_account_changed), NULL); ui_import_page_transaction_options_get(data); hb_import_option_apply(ictx, genacc); if( genacc->is_dupcheck == FALSE ) { hb_import_gen_txn_check_duplicate(ictx, genacc); hb_import_gen_txn_check_target_similar(ictx, genacc); genacc->is_dupcheck = TRUE; } view = txndata->LV_gentxn; model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); gtk_list_store_clear (GTK_LIST_STORE(model)); count = 0; genacc->n_txnimp = 0; tmplist = g_list_first(ictx->gen_lst_txn); while (tmplist != NULL) { GenTxn *item = tmplist->data; //todo: change this, this should be account if(item->kacc == genacc->key) { // append to our treeview //gtk_list_store_append (GTK_LIST_STORE(model), &iter); //gtk_list_store_set (GTK_LIST_STORE(model), &iter, gtk_list_store_insert_with_values(GTK_LIST_STORE(model), &iter, -1, LST_GENTXN_POINTER, item, -1); DB( g_print(" fill: %s, %d, %s %.2f\n", item->account, item->julian, item->memo, item->amount) ); count++; if(item->to_import) genacc->n_txnimp++; } tmplist = g_list_next(tmplist); } //label = g_strdup_printf(_("'%s' - %s"), genacc->name, hb_import_filetype_char_get(genacc)); label = g_strdup_printf(_("Import %s in_to:"), genacc->is_unamed ? _("this file") : _("this account") ); gtk_label_set_markup_with_mnemonic (GTK_LABEL(txndata->LB_acc_title), label); g_free(label); //build tooltip GenFile *genfile = da_gen_file_get (ictx->gen_lst_file, genacc->kfile); label = g_strdup_printf(_("Name: %s\nNumber: %s\nFile: %s\nEncoding: %s"), genacc->name, genacc->number, genfile->filepath, genfile->encoding); gtk_widget_set_tooltip_text (GTK_WIDGET(txndata->LB_acc_title), label); gtk_widget_set_tooltip_text (GTK_WIDGET(txndata->LB_acc_info), label); g_free(label); //label = g_strdup_printf(_("Account %d of %d"), acckey+1, nbacc); //gtk_label_set_markup (GTK_LABEL(txndata->LB_acc_count), label); //g_free(label); //#1993727 no update after toggle ui_import_page_transaction_update_count(data); visible = (genacc->filetype == FILETYPE_OFX) ? FALSE : TRUE; hb_widget_visible(GTK_WIDGET(txndata->GR_date), visible); visible = (genacc->filetype == FILETYPE_OFX) ? TRUE : FALSE; hb_widget_visible(GTK_WIDGET(txndata->GR_ofx), visible); visible = (genacc->filetype == FILETYPE_QIF) ? TRUE : FALSE; hb_widget_visible(GTK_WIDGET(txndata->GR_qif), visible); gtk_stack_set_visible_child_name(GTK_STACK(txndata->ST_stack), visible ? "QIF" : "OFX"); } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_import_page_intro_cb_dontshow(GtkWidget *widget, gpointer user_data) { PREFS->dtex_nointro = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget)); } static GtkWidget * ui_import_page_intro_create(GtkWidget *assistant, struct import_data *data) { GtkWidget *mainbox, *label, *widget; mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); gtk_widget_set_halign(mainbox, GTK_ALIGN_CENTER); gtk_widget_set_valign(mainbox, GTK_ALIGN_CENTER); label = make_label(_("Import transactions from bank or credit card"), 0, 0); gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1); gtk_box_prepend (GTK_BOX (mainbox), label); //SPACING_SMALL label = make_label( _("With this assistant you will be guided through the process of importing one or several\n" \ "downloaded statements from your bank or credit card, in the following formats:"), 0, 0); gtk_box_prepend (GTK_BOX (mainbox), label); //SPACING_SMALL label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), _("Recommended: .OFX or .QFX\n" \ "(Sometimes named Money™ or Quicken™)\n" \ "Supported: .QIF\n" \ "(Common Quicken™ file)\n" \ "Advanced users only: .CSV\n" "(format is specific to HomeBank, see the documentation)")); /* supported format */ /*label = make_label( _("HomeBank can import files in the following formats:\n" \ "- QIF\n" \ "- OFX/QFX (optional at compilation time)\n" \ "- CSV (format is specific to HomeBank, see the documentation)\n" \ ), 0.0, 0.0);*/ gtk_box_prepend (GTK_BOX (mainbox), label); //SPACING_SMALL label = make_label( _("No changes will be made until you click \"Apply\" at the end of this assistant."), 0., 0.0); gtk_box_prepend (GTK_BOX (mainbox), label); //SPACING_SMALL widget = gtk_check_button_new_with_mnemonic (_("Don't show this again")); data->CM_dsta = widget; gtk_box_append (GTK_BOX (mainbox), widget); //SPACING_SMALL gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_dsta), PREFS->dtex_nointro); gtk_widget_show_all (mainbox); g_signal_connect (data->CM_dsta, "toggled", G_CALLBACK (ui_import_page_intro_cb_dontshow), data); return mainbox; } static void ui_import_page_filechooser_update(GtkWidget *widget, gpointer user_data) { struct import_data *data; GtkTreeSelection *selection; gboolean sensitive; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_file)); gint count = gtk_tree_selection_count_selected_rows(selection); sensitive = (count > 0) ? TRUE : FALSE; gtk_widget_set_sensitive(data->BT_file_delete, sensitive); //gtk_widget_set_sensitive(data->BT_merge, sensitive); //gtk_widget_set_sensitive(data->BT_delete, sensitive); } static void ui_import_page_filechooser_selection(GtkTreeSelection *treeselection, gpointer user_data) { ui_import_page_filechooser_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static GtkWidget * ui_import_page_filechooser_create (GtkWidget *assistant, struct import_data *data) { GtkWidget *mainbox, *vbox, *hbox, *bbox; GtkWidget *widget, *label, *scrollwin, *treeview, *tbar; mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (mainbox), hbox); widget = hbtk_image_new_from_icon_name_24 (ICONNAME_HB_QUICKTIPS); gtk_box_prepend (GTK_BOX (hbox), widget); //SPACING_SMALL label = make_label( _("Drag&Drop one or several files to import.\n" \ "You can also use the add/delete buttons of the list.") , 0., 0.0); gtk_box_prepend (GTK_BOX (hbox), label); //SPACING_SMALL vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hbtk_box_prepend (GTK_BOX (mainbox), vbox); //list scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_hexpand(scrollwin, TRUE); gtk_widget_set_vexpand(scrollwin, TRUE); treeview = list_file_new(); data->LV_file = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); //list toolbar tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_ADD, _("Add")); data->BT_file_add = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); data->BT_file_delete = widget; gtk_box_prepend (GTK_BOX (bbox), widget); gtk_widget_show_all (mainbox); ui_import_page_filechooser_update(assistant, NULL); g_signal_connect (G_OBJECT (data->BT_file_add), "clicked", G_CALLBACK (ui_import_page_filechooser_add_action), data); g_signal_connect (G_OBJECT (data->BT_file_delete), "clicked", G_CALLBACK (ui_import_page_filechooser_delete_action), data); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_file)), "changed", G_CALLBACK (ui_import_page_filechooser_selection), NULL); return mainbox; } static GtkWidget * ui_import_page_import_create (GtkWidget *assistant, struct import_data *data) { GtkWidget *mainbox; GtkWidget *label, *widget; gchar *txt; mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); //gtk_widget_set_halign(mainbox, GTK_ALIGN_CENTER); //gtk_widget_set_valign(mainbox, GTK_ALIGN_CENTER); widget = hbtk_image_new_from_icon_name_32(ICONNAME_ERROR); gtk_box_prepend (GTK_BOX (mainbox), widget); txt = _("There is too much account in the files you choose,\n" \ "please use the back button to select less files."); label = gtk_label_new(txt); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_box_prepend (GTK_BOX (mainbox), label); gtk_widget_show_all (mainbox); return mainbox; } static gboolean ui_import_page_transaction_cb_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { struct import_data *data; ImpTxnData *txndata; GtkTreeModel *model; GtkTreeIter iter; gboolean valid; guint action; //g_return_val_if_fail(GTK_IS_TREE_VIEW(user_data), TRUE); data = user_data; gint acckey = gtk_assistant_get_current_page(GTK_ASSISTANT(data->assistant)) - (PAGE_IMPORT); txndata = ui_import_page_transaction_data_get(data->txndata, acckey); model = gtk_tree_view_get_model(GTK_TREE_VIEW(txndata->LV_gentxn)); DB( g_print(" comboboxlink '%s' \n", uri) ); //define the action action = LST_SELECT_UNSET; if (g_strcmp0 (uri, "all") == 0) action = LST_SELECT_ALL; else if (g_strcmp0 (uri, "non") == 0) action = LST_SELECT_NONE; else if (g_strcmp0 (uri, "inv") == 0) action = LST_SELECT_INVERT; else if (g_strcmp0 (uri, "val") == 0) action = LST_SELECT_VALID; //apply the action valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { GenTxn *gentxn; gtk_tree_model_get(model, &iter, LST_GENTXN_POINTER, &gentxn, -1); switch(action) { case LST_SELECT_ALL : gentxn->to_import = TRUE; break; case LST_SELECT_NONE: gentxn->to_import = FALSE; break; case LST_SELECT_INVERT: gentxn->to_import ^= TRUE; break; case LST_SELECT_VALID: gentxn->to_import = (!gentxn->is_imp_similar && !gentxn->is_dst_similar) ? TRUE : FALSE; break; } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } gtk_widget_queue_draw(GTK_WIDGET(txndata->LV_gentxn)); ui_import_page_transaction_update_count(data); return TRUE; } static GtkWidget * ui_import_page_transaction_create (GtkWidget *assistant, gint idx, struct import_data *data) { ImpTxnData *txndata; GtkWidget *table, *box, *group, *stack; GtkWidget *label, *scrollwin, *treeview, *expander, *widget; ImpTxnData tmp; gint row; //txndata = &data->txndata[idx]; memset(&tmp, 0, sizeof(ImpTxnData)); g_array_insert_vals(data->txndata, idx, &tmp, 1); txndata = ui_import_page_transaction_data_get(data->txndata, idx); DB( g_print(" txndat=%p\n", txndata) ); if(!txndata) return NULL; table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); row = 0; //line 1 left box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); //gtk_widget_set_hexpand(box, TRUE); gtk_grid_attach (GTK_GRID(table), box, 0, row, 1, 1); //5.6 info icon widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); txndata->LB_acc_info = widget; gtk_box_prepend (GTK_BOX (box), widget); // XXX (type) + accname label = make_label(NULL, 0.0, 0.5); txndata->LB_acc_title = label; //gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1); gtk_box_prepend (GTK_BOX (box), label); widget = ui_genacc_comboboxtext_new(data, label); //gtk_widget_set_hexpand(widget, TRUE); txndata->CY_acc = widget; gtk_box_prepend (GTK_BOX (box), widget); widget = hbtk_image_new_from_icon_name_16(ICONNAME_WARNING); txndata->IM_unamed = widget; gtk_widget_set_tooltip_text (widget, _("Target account identification by name or number failed.")); gtk_box_prepend (GTK_BOX (box), widget); //line 1 right box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); //gtk_widget_set_hexpand(box, TRUE); gtk_grid_attach (GTK_GRID(table), box, 1, row, 1, 1); //csv options group = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); txndata->GR_date = group; gtk_box_prepend (GTK_BOX(box), group); label = make_label(_("Date order:"), 0, 0.5); gtk_box_prepend (GTK_BOX(group), label); widget = hbtk_combo_box_new_with_data(label, CYA_IMPORT_DATEORDER); txndata->CY_txn_dateorder = widget; gtk_box_prepend (GTK_BOX(group), widget); stack = gtk_stack_new(); gtk_box_prepend (GTK_BOX(box), stack); txndata->ST_stack= stack; //qif options group = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); txndata->GR_qif = group; gtk_stack_add_named(GTK_STACK(stack), group, "QIF"); widget = gtk_check_button_new_with_mnemonic (_("_Import memos")); txndata->CM_txn_qifmemo = widget; gtk_box_prepend (GTK_BOX(group), widget); widget = gtk_check_button_new_with_mnemonic (_("_Swap memos with payees")); txndata->CM_txn_qifswap = widget; gtk_box_prepend (GTK_BOX(group), widget); //ofx options group = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); txndata->GR_ofx = group; gtk_stack_add_named(GTK_STACK(stack), group, "OFX"); label = make_label(_("OFX _Name:"), 0, 0.5); gtk_box_prepend (GTK_BOX(group), label); widget = hbtk_combo_box_new_with_data(label, CYA_IMPORT_OFXNAME); txndata->CY_txn_ofxname = widget; gtk_box_prepend (GTK_BOX(group), widget); label = make_label(_("OFX _Memo:"), 0, 0.5); gtk_box_prepend (GTK_BOX(group), label); widget = hbtk_combo_box_new_with_data(label, CYA_IMPORT_OFXMEMO); txndata->CY_txn_ofxmemo = widget; gtk_box_prepend (GTK_BOX(group), widget); // n transaction ... row++; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); //gtk_widget_set_hexpand(box, TRUE); gtk_grid_attach (GTK_GRID(table), box, 0, row, 1, 1); group = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); txndata->GR_select = group; gtk_box_prepend (GTK_BOX (box), group); label = make_label (_("Select:"), 0, 0.5); gtk_box_prepend (GTK_BOX (group), label); label = make_clicklabel("all", _("All")); txndata->BT_all= label; gtk_box_prepend (GTK_BOX (group), label); label = make_clicklabel("non", _("None")); txndata->BT_non = label; gtk_box_prepend (GTK_BOX (group), label); label = make_clicklabel("inv", _("Invert")); txndata->BT_inv = label; gtk_box_prepend (GTK_BOX (group), label); label = make_clicklabel("val", _("Valid")); txndata->BT_val = label; gtk_box_prepend (GTK_BOX (group), label); label = make_label(NULL, 0.5, 0.5); txndata->LB_txn_title = label; hbtk_box_prepend (GTK_BOX (box), label); // import into box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_grid_attach (GTK_GRID(table), box, 1, row, 1, 1); group = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); txndata->GR_misc = group; gtk_box_prepend (GTK_BOX (box), group); widget = gtk_check_button_new_with_mnemonic (_("Sentence _case memo/payee")); txndata->CM_txn_ucfirst = widget; gtk_box_prepend (GTK_BOX(group), widget); widget = gtk_check_button_new_with_mnemonic (_("_Toggle amount")); txndata->CM_txn_togamount = widget; gtk_box_prepend (GTK_BOX(group), widget); // error messages row++; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); txndata->GR_msg = box; //gtk_widget_set_hexpand(box, TRUE); gtk_grid_attach (GTK_GRID(table), box, 0, row, 2, 1); widget = gtk_image_new (); txndata->IM_txn = widget; gtk_widget_set_valign(widget, GTK_ALIGN_START); gtk_box_prepend (GTK_BOX (box), widget); label = make_label(NULL, 0.0, 0.5); txndata->LB_txn = label; gtk_box_prepend (GTK_BOX (box), label); row++; scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); treeview = list_txn_import_create(); txndata->LV_gentxn = treeview; gtk_widget_set_hexpand(scrollwin, TRUE); gtk_widget_set_vexpand(scrollwin, TRUE); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_grid_attach (GTK_GRID(table), scrollwin, 0, row, 2, 1); //duplicate row++; expander = gtk_expander_new (_("Similar transaction in target account (possible duplicate)")); txndata->EX_duptxn = expander; //gtk_widget_set_hexpand(expander, TRUE); gtk_grid_attach (GTK_GRID(table), expander, 0, row, 2, 1); group = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group), SPACING_SMALL); gtk_expander_set_child (GTK_EXPANDER(expander), group); row = 0; scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_hexpand(scrollwin, TRUE); treeview = create_list_transaction(LIST_TXN_TYPE_OTHER, PREFS->lst_impope_columns); txndata->LV_duptxn = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_set_size_request(scrollwin, -1, HB_MINWIDTH_LIST/2); gtk_grid_attach (GTK_GRID (group), scrollwin, 0, row, 5, 1); row++; label = make_label(_("Date _gap:"), 0, 0.5); gtk_grid_attach (GTK_GRID (group), label, 0, row, 1, 1); widget = make_numeric(label, 0.0, HB_DATE_MAX_GAP); txndata->NB_txn_daygap = widget; gtk_grid_attach (GTK_GRID (group), widget, 1, row, 1, 1); //TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days of date tolerance label = make_label(_("days"), 0, 0.5); gtk_grid_attach (GTK_GRID (group), label, 2, row, 1, 1); widget = hbtk_image_new_from_icon_name_16(ICONNAME_HB_QUICKTIPS ); gtk_widget_set_hexpand(widget, FALSE); gtk_grid_attach (GTK_GRID (group), widget, 3, row, 1, 1); label = make_label (_( "The match is done in order: by account, amount and date.\n" \ "A date tolerance of 0 day means an exact match"), 0, 0.5); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_widget_set_hexpand(label, TRUE); gtk_grid_attach (GTK_GRID (group), label, 4, row, 1, 1); // init ofx/qfx option to move hbtk_combo_box_set_active_id(GTK_COMBO_BOX(txndata->CY_txn_dateorder), PREFS->dtex_datefmt); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(txndata->CM_txn_ucfirst), PREFS->dtex_ucfirst); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(txndata->CY_txn_ofxname), PREFS->dtex_ofxname); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(txndata->CY_txn_ofxmemo), PREFS->dtex_ofxmemo); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(txndata->CM_txn_qifmemo), PREFS->dtex_qifmemo); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(txndata->CM_txn_qifswap), PREFS->dtex_qifswap); gtk_widget_show_all (table); gtk_widget_hide(txndata->GR_qif); gtk_widget_hide(txndata->GR_ofx); //#1993727 no update after toggle g_signal_connect (txndata->BT_all, "activate-link", G_CALLBACK (ui_import_page_transaction_cb_activate_link), data); g_signal_connect (txndata->BT_non, "activate-link", G_CALLBACK (ui_import_page_transaction_cb_activate_link), data); g_signal_connect (txndata->BT_inv, "activate-link", G_CALLBACK (ui_import_page_transaction_cb_activate_link), data); g_signal_connect (txndata->BT_val, "activate-link", G_CALLBACK (ui_import_page_transaction_cb_activate_link), data); g_signal_connect (txndata->CY_acc , "changed", G_CALLBACK (ui_import_page_transaction_cb_account_changed), data); g_signal_connect (txndata->CY_txn_dateorder, "changed", G_CALLBACK (ui_import_page_transaction_cb_account_changed), data); g_signal_connect (txndata->NB_txn_daygap , "value-changed", G_CALLBACK (ui_import_page_transaction_cb_account_changed), data); g_signal_connect (txndata->CY_txn_ofxname , "changed", G_CALLBACK (ui_import_page_transaction_cb_option_changed), data); g_signal_connect (txndata->CY_txn_ofxmemo , "changed", G_CALLBACK (ui_import_page_transaction_cb_option_changed), data); g_signal_connect (txndata->CM_txn_qifmemo, "toggled", G_CALLBACK (ui_import_page_transaction_cb_option_changed), data); g_signal_connect (txndata->CM_txn_qifswap, "toggled", G_CALLBACK (ui_import_page_transaction_cb_option_changed), data); g_signal_connect (txndata->CM_txn_ucfirst, "toggled", G_CALLBACK (ui_import_page_transaction_cb_option_changed), data); g_signal_connect (txndata->CM_txn_togamount, "toggled", G_CALLBACK (ui_import_page_transaction_cb_option_changed), data); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(txndata->LV_gentxn)), "changed", G_CALLBACK (ui_import_page_transaction_cb_fill_same), NULL); return table; } static GtkWidget * ui_import_page_confirmation_create(GtkWidget *assistant, struct import_data *data) { GtkWidget *group_grid, *label, *widget, *scrollwin; gint row = 0; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_NONE); gtk_widget_set_hexpand(scrollwin, TRUE); gtk_widget_set_vexpand(scrollwin, TRUE); widget = gtk_label_new (NULL); data->TX_summary = widget; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), widget); gtk_grid_attach (GTK_GRID (group_grid), scrollwin, 0, row, 4, 1); row++; label = make_label_group(_("Option")); gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic(_("Import as pending")); gtk_widget_set_margin_start(widget, SPACING_MEDIUM); data->CM_set_pending = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 1, 1); row++; label = make_label_group(_("Run automation")); gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic(_("1) Enrich with _payee default")); gtk_widget_set_margin_start(widget, SPACING_MEDIUM); data->CM_do_auto_payee = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic(_("2) Run automatic _assigment rules")); gtk_widget_set_margin_start(widget, SPACING_MEDIUM); data->CM_do_auto_assign = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 1, 1); row++; label = make_label(_("Click \"Apply\" to update your accounts."), 0, 0.5); gtk_widget_set_margin_top(label, SPACING_LARGE); gtk_widget_set_margin_bottom(label, SPACING_LARGE); gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_do_auto_payee), PREFS->dtex_dodefpayee); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_do_auto_assign), PREFS->dtex_doautoassign); gtk_widget_show_all (group_grid); return group_grid; } static void ui_import_assistant_prepare (GtkWidget *widget, GtkWidget *page, gpointer user_data) { struct import_data *data; ImportContext *ictx; gint current_page, n_pages; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ictx = &data->ictx; current_page = gtk_assistant_get_current_page (GTK_ASSISTANT(data->assistant)); n_pages = gtk_assistant_get_n_pages (GTK_ASSISTANT(data->assistant)); DB( g_print("\n--------\n[ui-import] prepare \n page %d of %d\n", current_page, n_pages) ); switch( current_page ) { case PAGE_WELCOME: DB( g_print("\n #1 intro\n") ); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->assistant), page, TRUE); break; case PAGE_FILES: DB( g_print("\n #2 file choose\n") ); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->assistant), page, FALSE); // the page complete is contextual in ui_import_page_filechooser_selection_changed // check is something valid :: count total rows ui_import_page_filechooser_eval(widget, user_data); break; case PAGE_IMPORT: DB( g_print("\n #3 real import\n") ); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->assistant), page, FALSE); //todo: more test needed here //clean any previous txn page /*for(i=(n_pages-1);i>=PAGE_IMPORT+1;i--) { GtkWidget *page = gtk_assistant_get_nth_page (GTK_ASSISTANT(data->assistant), i); gboolean isacc; if( page != NULL ) { isacc = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(page), "pgacc")); DB( g_print(" %d is acc: %d\n", i, isacc) ); if( isacc ) { gtk_assistant_remove_page(GTK_ASSISTANT(data->assistant), i); gtk_widget_destroy (page); } } }*/ hb_import_load_all(&data->ictx); //add 1 page per account gint key, nbacc; nbacc = g_list_length (ictx->gen_lst_acc); if(data->txndata) { g_array_free(data->txndata, TRUE); data->txndata = NULL; } data->txndata = g_array_sized_new(FALSE, TRUE, sizeof(ImpTxnData), nbacc); //#1820618 patch for glib < 2.58 https://gitlab.gnome.org/GNOME/glib/issues/1374 if( glib_minor_version < 58 ) { g_array_set_size(data->txndata, nbacc); } DB( g_print(" accnb=%d @%p\n", nbacc, data->txndata) ); //debug //_import_context_debug_acc_list(&data->ictx); //if(nbacc < TXN_MAX_ACCOUNT) //{ for(key=1;keygen_lst_acc, key); DB( g_print(" create page txn for '%s' '%s' at page %d\n", genacc->name, genacc->number, PAGE_IMPORT + key) ); page = ui_import_page_transaction_create (data->assistant, key, data); //g_object_set_data(G_OBJECT(page), "pgacc", (gpointer)TRUE); gtk_widget_show_all (page); gtk_assistant_insert_page (GTK_ASSISTANT (data->assistant), page, PAGE_IMPORT + key); //gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, _("Transaction")); //gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, genacc->name); title = g_strdup_printf("%s %d", (!genacc->is_unamed) ? _("Account") : _("Unknown"), key ); gtk_assistant_set_page_title (GTK_ASSISTANT (data->assistant), page, title); g_free(title); } //} // obsolete ?? if( ui_import_page_import_eval (widget, NULL) ) { /*if(ictx->nb_new_acc == 0) { DB( g_print(" -> jump to Transaction page\n") ); //gtk_assistant_set_page_complete (GTK_ASSISTANT(data->assistant), data->pages[PAGE_ACCOUNT], TRUE); gtk_assistant_next_page(GTK_ASSISTANT(data->assistant)); gtk_assistant_next_page(GTK_ASSISTANT(data->assistant)); //gtk_assistant_set_current_page (GTK_ASSISTANT(data->assistant), PAGE_TRANSACTION); } else { DB( g_print(" -> jump to Account page\n") ); //gtk_assistant_set_current_page (GTK_ASSISTANT(data->assistant), PAGE_ACCOUNT); gtk_assistant_next_page(GTK_ASSISTANT(data->assistant)); }*/ gtk_assistant_next_page(GTK_ASSISTANT(data->assistant)); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->assistant), page, TRUE); } break; default: if(current_page != (n_pages - 1)) { DB( g_print("\n #4 transaction\n") ); if( current_page == PAGE_IMPORT + 1) //hack to get rid of back button gtk_assistant_set_page_type (GTK_ASSISTANT(data->assistant), page, GTK_ASSISTANT_PAGE_INTRO); ui_import_page_transaction_fill(data); ui_import_page_transaction_update(data); } else { DB( g_print("\n #5 confirmation\n") ); ui_import_page_confirmation_fill(data); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->assistant), page, TRUE); } } } static void ui_import_assistant_apply (GtkWidget *widget, gpointer user_data) { struct import_data *data; ImportContext *ictx; DB( g_print("\n[ui-import] apply\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ictx = &data->ictx; ictx->set_pending = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_set_pending)); ictx->do_auto_payee = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_do_auto_payee)); ictx->do_auto_assign = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_do_auto_assign)); //#1845388 persist options for lazy people PREFS->dtex_dodefpayee = ictx->do_auto_payee; PREFS->dtex_doautoassign = ictx->do_auto_assign; PREFS->dtex_daygap = ictx->opt_daygap; DB( g_print(" store %d to daygap\n", PREFS->dtex_daygap) ); hb_import_apply(&data->ictx); } static gboolean ui_import_assistant_dispose(GtkWidget *widget, gpointer user_data) { struct import_data *data = user_data; DB( g_print("\n[ui-import] dispose\n") ); #if MYDEBUG == 1 gpointer data2 = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); g_print(" user_data=%p to be free, data2=%p\n", user_data, data2); #endif da_import_context_destroy(&data->ictx); if(data->txndata) { g_array_free(data->txndata, TRUE); } // todo: optimize this //if(data->imp_cnt_trn > 0) //{ //GLOBALS->changes_count += data->imp_cnt_trn; //our global list has changed, so update the treeview account_compute_balances (FALSE); ui_hub_account_populate(GLOBALS->mainwindow, NULL); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); //} g_free(user_data); //delete-event TRUE abort/FALSE destroy return FALSE; } static void ui_import_assistant_close_cancel (GtkWidget *widget, gpointer user_data) { struct import_data *data; GtkWidget *assistant = (GtkWidget *) user_data; DB( g_print("\n[ui-import] close\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ui_import_assistant_dispose(widget, data); gtk_window_destroy (GTK_WINDOW(assistant)); } /* starting point of import */ GtkWidget *ui_import_assistant_new (gchar **paths) { struct import_data *data; GtkWidget *assistant, *page, *page_file; gint w, h; DB( g_print("\n[ui-import] new\n") ); data = g_malloc0(sizeof(struct import_data)); if(!data) return NULL; assistant = gtk_assistant_new (); data->assistant = assistant; //store our window private data g_object_set_data(G_OBJECT(assistant), "inst_data", (gpointer)data); //DB( g_print("** \n[ui-import] window=%x, inst_data=%x\n", assistant, data) ); gtk_window_set_modal(GTK_WINDOW (assistant), TRUE); gtk_window_set_transient_for(GTK_WINDOW(assistant), GTK_WINDOW(GLOBALS->mainwindow)); //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); gtk_window_set_default_size (GTK_WINDOW(assistant), w * 0.8, h * 0.8); //gtk_window_set_default_size (GTK_WINDOW(assistant), w - 24, h - 24); page = ui_import_page_intro_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_INTRO); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Welcome")); gtk_assistant_set_page_complete (GTK_ASSISTANT(assistant), page, TRUE ); page = ui_import_page_filechooser_create (assistant, data); page_file = page; gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Select file(s)")); page = ui_import_page_import_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); //gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Import")); //3...x transaction page will be added automatically //page = ui_import_page_transaction_create (assistant, 0, data); //gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); //hack to hide the back button here //gtk_assistant_set_page_type (GTK_ASSISTANT(assistant), page, GTK_ASSISTANT_PAGE_INTRO); //gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Transaction")); page = ui_import_page_confirmation_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Confirmation")); //gtk_assistant_set_forward_page_func(GTK_ASSISTANT(assistant), ui_import_assistant_forward_page_func, data, NULL); //setup //ui_import_page_filechooser_selection_changed(assistant, data); DB( g_printf(" check list of paths '%p'\n", paths) ); if( paths != NULL ) { ImportContext *ictx = &data->ictx; GenFile *genfile; gchar **str = paths; while(*str != NULL) { DB( g_printf(" try to append '%s'\n", *str) ); genfile = da_gen_file_append_from_filename(ictx, *str); if(genfile) { list_file_add(data->LV_file, genfile); } str++; } g_strfreev(paths); } //connect all our signals //g_signal_connect (window, "delete-event", G_CALLBACK (hbfile_dispose), (gpointer)data); g_signal_connect (G_OBJECT (assistant), "prepare", G_CALLBACK (ui_import_assistant_prepare), NULL); g_signal_connect (G_OBJECT (page_file), "map", G_CALLBACK (ui_import_page_filechooser_visible), NULL); g_signal_connect (G_OBJECT (assistant), "cancel", G_CALLBACK (ui_import_assistant_close_cancel), assistant); g_signal_connect (G_OBJECT (assistant), "close", G_CALLBACK (ui_import_assistant_close_cancel), assistant); g_signal_connect (G_OBJECT (assistant), "apply", G_CALLBACK (ui_import_assistant_apply), NULL); #ifdef G_OS_WIN32 hbtk_assistant_hack_button_order(GTK_ASSISTANT(assistant)); #endif gtk_widget_show (assistant); if(PREFS->dtex_nointro) gtk_assistant_set_current_page(GTK_ASSISTANT(assistant), PAGE_FILES); return assistant; } homebank-5.9.1/src/ui-transaction.c0000644000175000017500000016615315006223107012676 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "hbtk-decimalentry.h" #include "ui-transaction.h" #include "gtk-dateentry.h" #include "hbtk-switcher.h" #include "ui-payee.h" #include "ui-category.h" #include "ui-account.h" #include "ui-txn-split.h" #include "ui-tag.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; //extern HbKvData CYA_TXN_STATUS[]; extern HbKivData CYA_TXN_STATUSIMG[]; extern gchar *CYA_TXN_TYPE[]; static void ui_popover_tpl_populate(struct deftransaction_data *data, GList *srclist); /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void deftransaction_set_amount_currency(Account *acc, GtkWidget *stamount, GtkWidget *lbcurr) { guint curdigits = 2; gchar *curlabel = ""; if( acc != NULL ) { Currency *cur = da_cur_get(acc->kcur); curdigits = (cur != NULL) ? cur->frac_digits : 2; curlabel = strlen(cur->iso_code) == 3 ? cur->iso_code : cur->symbol; } //gtk_spin_button_set_digits (GTK_SPIN_BUTTON(stamount), curdigits); hbtk_decimal_entry_set_digits(HBTK_DECIMAL_ENTRY(stamount), curdigits); gtk_label_set_label(GTK_LABEL(lbcurr), curlabel); } static void deftransaction_set_amount_xfer(struct deftransaction_data *data) { Account *srcacc, *dstacc; gdouble srcamt, dstamt; gboolean haswarn = FALSE; if( data->action != TXN_DLG_ACTION_ADD ) goto end; DB( g_print("\n[ui-transaction] set xfer amount\n") ); srcacc = ui_acc_entry_popover_get(GTK_BOX(data->PO_acc)); dstacc = ui_acc_entry_popover_get(GTK_BOX(data->PO_accto)); if( srcacc != NULL && dstacc != NULL ) { //srcamt = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); srcamt = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_amount)); //return 0 if convertion fail dstamt = hb_amount_convert(-srcamt, srcacc->kcur, dstacc->kcur); if( hb_amount_cmp(dstamt, 0.0) == 0 ) haswarn = TRUE; else //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_xferamt), dstamt); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_xferamt), dstamt); } end: hb_widget_visible(data->IM_xfernorate, haswarn); } static void deftransaction_update(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; gint type, paymode; gboolean sensitive, visible, xferamtvisible; Account *srcacc, *dstacc; gchar *lbto; DB( g_print("\n[ui-transaction] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); type = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_type)); paymode = paymode_combo_box_get_active(GTK_COMBO_BOX(data->NU_mode)); //template: hide date visible = (data->type == TXN_DLG_TYPE_TPL) ? FALSE : TRUE; hb_widget_visible(data->LB_date, visible); hb_widget_visible(data->GR_date, visible); //xfer: hide split+paymode / show accto visible = (type == TXN_TYPE_INTXFER) ? FALSE : TRUE; DB( g_print(" is xfer %d: hide split/pay, show accto\n", !visible) ); hb_widget_visible(data->BT_split, visible); hb_widget_visible(data->LB_mode , visible); hb_widget_visible(data->NU_mode , visible); hb_widget_visible(data->LB_accto, !visible); hb_widget_visible(data->PO_accto, !visible); //5.8 if( PREFS->xfer_syncdate == FALSE && data->action == TXN_DLG_ACTION_EDIT && data->type == TXN_DLG_TYPE_TXN ) { hb_widget_visible(data->LB_dateto, !visible); hb_widget_visible(data->PO_dateto, !visible); } //this code is duplicated into paymode visible = (paymode == PAYMODE_CHECK) ? TRUE : FALSE; visible = (type == TXN_TYPE_INTXFER) ? FALSE : visible; hb_widget_visible(data->CM_cheque, visible); //disable amount+category if split is set sensitive = (data->ope->flags & (OF_SPLIT)) ? FALSE : TRUE; DB( g_print(" is plit %d: disable amt/cat\n", !sensitive) ); gtk_widget_set_sensitive(data->RA_type, sensitive); gtk_widget_set_sensitive(data->ST_amount, sensitive); gtk_widget_set_sensitive(data->PO_cat, sensitive); DB( g_print(" action:%d type:%d\n", data->action, data->type) ); //srcacc = ui_acc_comboboxentry_get(GTK_COMBO_BOX(data->PO_acc)); //dstacc = ui_acc_comboboxentry_get(GTK_COMBO_BOX(data->PO_accto)); srcacc = ui_acc_entry_popover_get(GTK_BOX(data->PO_acc)); dstacc = ui_acc_entry_popover_get(GTK_BOX(data->PO_accto)); //#1676162 update the nb digits of amount //set digits and currency label deftransaction_set_amount_currency(srcacc, data->ST_amount, data->LB_curr); lbto = _("_To:"); xferamtvisible = FALSE; if( type == TXN_TYPE_INTXFER ) { //gdouble amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); gdouble amount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_amount)); DB( g_print(" xfer stuff, amt=%.2f\n", amount) ); //5.8 test lbto = ( amount <= 0.0 ) ? _("_To:") : _("_From:"); //#1673260 show target amount if != kcur if(srcacc != NULL && dstacc != NULL) { xferamtvisible = (srcacc->kcur == dstacc->kcur) ? FALSE : TRUE; } //set digits and currency label deftransaction_set_amount_currency(dstacc, data->ST_xferamt, data->LB_xfercurr); deftransaction_set_amount_xfer(data); } else hb_widget_visible(data->IM_xfernorate, FALSE); DB( g_print(" lblto: '%s'\n", lbto ) ); DB( g_print(" show tgt amt %d\n", xferamtvisible ) ); if( PREFS->xfer_syncdate == FALSE && data->action == TXN_DLG_ACTION_EDIT && data->type == TXN_DLG_TYPE_TXN ) { gtk_label_set_text_with_mnemonic (GTK_LABEL(data->LB_dateto), lbto); } gtk_label_set_text_with_mnemonic (GTK_LABEL(data->LB_accto) , lbto); hb_widget_visible(data->ST_xferamt , xferamtvisible); hb_widget_visible(data->LB_xfercurr, xferamtvisible); // item validation sensitive = FALSE; if( (data->type == TXN_DLG_TYPE_TPL) ) { DB( g_print(" add tpl no check\n") ); sensitive = TRUE; } else { DB( g_print(" eval src/dst acc\n") ); sensitive = ( (srcacc != NULL) && (srcacc->key != 0) ) ? TRUE : FALSE; if( (type == TXN_TYPE_INTXFER) ) { sensitive = FALSE; //#1858682 still disabled > faulty test a copy/paste acc instead of accto... //todo if( (srcacc != NULL) && (dstacc != NULL) ) { if( (dstacc->key != 0) && (dstacc->key != srcacc->key) //#1673260 xfer //&& (dstacc->kcur == srcacc->kcur) ) { sensitive = TRUE; } } } } gtk_dialog_set_response_sensitive(GTK_DIALOG (data->dialog), GTK_RESPONSE_ACCEPT, sensitive); gtk_dialog_set_response_sensitive(GTK_DIALOG (data->dialog), HB_RESPONSE_ADD , sensitive); gtk_dialog_set_response_sensitive(GTK_DIALOG (data->dialog), HB_RESPONSE_ADDKEEP, sensitive); } static void deftransaction_update_warnsign(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; gboolean warning = FALSE; gdouble amount; gint type; Category *cat; DB( g_print("\n[ui-transaction] update warning sign\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //#1830707 no warning for xfer type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)); if( type != TXN_TYPE_INTXFER ) { //cat = ui_cat_comboboxentry_get(GTK_COMBO_BOX(data->PO_cat)); cat = ui_cat_entry_popover_get(GTK_BOX(data->PO_cat)); if(cat != NULL && cat->key > 0) { //amount = hb_amount_round(gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)), 2); amount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_amount)); if(amount != 0.0) { type = (amount > 0) ? 1 : -1; warning = (category_type_get(cat) != type) ? TRUE : FALSE; } } } if(warning) { gtk_widget_show_all(data->IB_warnsign); //#GTK+710888: hack waiting a GTK fix gtk_widget_queue_resize (data->IB_warnsign); } else gtk_widget_hide(data->IB_warnsign); } static void deftransaction_cb_payee_changed(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; Category *cat; gint paymode; Payee *pay; DB( g_print("\n[ui-transaction] update payee\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //pay = ui_pay_comboboxentry_get(GTK_COMBO_BOX(data->PO_pay)); pay = ui_pay_entry_popover_get(GTK_BOX(data->PO_pay)); if( pay != NULL ) { // only set for empty category // #1635053 and also paymode unset // #1817278 and independently //cat = ui_cat_comboboxentry_get(GTK_COMBO_BOX(data->PO_cat)); cat = ui_cat_entry_popover_get(GTK_BOX(data->PO_cat)); if( (cat == NULL || cat->key == 0) ) { DB( g_print("set cat to %d\n", pay->kcat) ); g_signal_handlers_block_by_func (G_OBJECT (ui_cat_entry_popover_get_entry(GTK_BOX(data->PO_cat))), G_CALLBACK (deftransaction_update_warnsign), NULL); //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), pay->kcat); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_cat), pay->kcat); g_signal_handlers_unblock_by_func (G_OBJECT (ui_cat_entry_popover_get_entry(GTK_BOX(data->PO_cat))), G_CALLBACK (deftransaction_update_warnsign), NULL); } paymode = paymode_combo_box_get_active(GTK_COMBO_BOX(data->NU_mode)); if( (paymode == PAYMODE_NONE) ) { DB( g_print("set paymode to %d\n", pay->paymode) ); paymode_combo_box_set_active(GTK_COMBO_BOX(data->NU_mode), pay->paymode); } } } static void deftransaction_set_cheque(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; Account *acc; guint cheque; gint type, paymode; gchar *cheque_str; DB( g_print("\n[ui-transaction] set_cheque\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->action != TXN_DLG_ACTION_EDIT ) { paymode = paymode_combo_box_get_active(GTK_COMBO_BOX(data->NU_mode)); if(paymode == PAYMODE_CHECK) { type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)); if( type == TXN_TYPE_EXPENSE ) { //acc = ui_acc_comboboxentry_get(GTK_COMBO_BOX(data->PO_acc)); acc = ui_acc_entry_popover_get(GTK_BOX(data->PO_acc)); //#1410166 if(acc != NULL) { cheque = ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cheque))==TRUE ? acc->cheque2 : acc->cheque1 ); //#1915660 only when cheque number is set if( cheque > 0 ) { cheque_str = g_strdup_printf("%d", cheque + 1); DB( g_print(" - should fill for acc %d '%s' chequenr='%s'\n", acc->key, acc->name, cheque_str) ); gtk_entry_set_text(GTK_ENTRY(data->ST_number), cheque_str); g_free(cheque_str); } } } else if( type == TXN_TYPE_INCOME ) { gtk_entry_set_text(GTK_ENTRY(data->ST_number), ""); } } } } static void deftransaction_cb_accfrom_changed(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; Account *srcacc; DB( g_print("\n[ui-transaction] accfrom change > update accto\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //srcacc = ui_acc_comboboxentry_get(GTK_COMBO_BOX(data->PO_acc)); srcacc = ui_acc_entry_popover_get(GTK_BOX(data->PO_acc)); if( srcacc ) { //ui_acc_comboboxentry_populate_except(GTK_COMBO_BOX(data->PO_accto), GLOBALS->h_acc, srcacc->key, ACC_LST_INSERT_NORMAL); ui_acc_entry_popover_populate_except(GTK_BOX(data->PO_accto), GLOBALS->h_acc, srcacc->key, ACC_LST_INSERT_NORMAL); } deftransaction_update(widget, user_data); } //#1673260 static gboolean deftransaction_cb_dstamount_focusout(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct deftransaction_data *data; gint type; gdouble amount; DB( g_print("\n[ui-transaction] dst amount focus-out-event %d\n", gtk_widget_is_focus(widget)) ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)); // when add xfer, dst amount must be positive if( (type == TXN_TYPE_INTXFER) && (data->action == TXN_DLG_ACTION_ADD) ) { //amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_xferamt)); amount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_xferamt)); if( amount < 0 ) { g_signal_handlers_block_by_func(G_OBJECT(data->ST_xferamt), G_CALLBACK(deftransaction_cb_dstamount_focusout), NULL); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_xferamt), ABS(amount)); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_xferamt), ABS(amount)); g_signal_handlers_unblock_by_func(G_OBJECT(data->ST_xferamt), G_CALLBACK(deftransaction_cb_dstamount_focusout), NULL); } } return FALSE; } static gboolean deftransaction_cb_amount_focusout(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct deftransaction_data *data; gint type; gdouble amount; gboolean change; DB( g_print("\n[ui-transaction] amount focus-out-event %d\n", gtk_widget_is_focus(widget)) ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)); //amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); amount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_amount)); change = FALSE; if( type == TXN_TYPE_INTXFER ) { DB( g_print(" is xfer\n") ); // for internal transfer add, amount must be expense by default if( data->action == TXN_DLG_ACTION_ADD && amount > 0) change = TRUE; //#2101050 if( data->action == TXN_DLG_ACTION_EDIT && !data->isxferdst && amount > 0) change = TRUE; } else { DB( g_print(" is not xfer\n") ); if( hb_amount_type_match(amount, type) == FALSE ) change = TRUE; } if( change == TRUE ) { g_signal_handlers_block_by_func(G_OBJECT(data->ST_amount), G_CALLBACK(deftransaction_cb_amount_focusout), NULL); DB( g_print(" force value to %.2f\n", amount * -1) ); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), amount * -1); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_amount), amount * -1); g_signal_handlers_unblock_by_func(G_OBJECT(data->ST_amount), G_CALLBACK(deftransaction_cb_amount_focusout), NULL); } if( type == TXN_TYPE_INTXFER ) { DB( g_print(" - call set amt xfer\n") ); deftransaction_set_amount_xfer(data); } else { //#1872329 fill-in cheque if condition match DB( g_print(" - call set cheque\n") ); deftransaction_set_cheque(widget, NULL); } DB( g_print(" - call warnsign\n") ); deftransaction_update_warnsign(widget, NULL); return FALSE; } static void deftransaction_cb_type_toggled(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; gint type; DB( g_print("\n[ui-transaction] type change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); type = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_type)); DB( g_print(" type: %d\n", type ) ); if( type == TXN_TYPE_INTXFER ) { if( !(data->action == TXN_DLG_ACTION_EDIT) ) deftransaction_cb_accfrom_changed(widget, user_data); } //#1882456 ui_cat_entry_popover_sort_type(GTK_BOX(data->PO_cat), type); deftransaction_cb_amount_focusout(widget, NULL, user_data); deftransaction_update(widget, user_data); } static void deftransaction_set(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; Transaction *entry; gint type; gchar *tagstr; DB( g_print("\n[ui-transaction] set\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); entry = data->ope; type = transaction_get_type(entry); DB( g_print(" - ope=%p data=%p\n", data->ope, data) ); g_signal_handlers_block_by_func(G_OBJECT(data->RA_type), G_CALLBACK(deftransaction_cb_type_toggled), NULL); hbtk_switcher_set_active(HBTK_SWITCHER(data->RA_type), type); g_signal_handlers_unblock_by_func(G_OBJECT(data->RA_type), G_CALLBACK(deftransaction_cb_type_toggled), NULL); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_date), (guint)entry->date); hbtk_entry_set_text(GTK_ENTRY(data->ST_memo), entry->memo); g_signal_handlers_block_by_func(G_OBJECT(data->ST_amount), G_CALLBACK(deftransaction_cb_amount_focusout), NULL); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), entry->amount); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_amount), entry->amount); g_signal_handlers_unblock_by_func(G_OBJECT(data->ST_amount), G_CALLBACK(deftransaction_cb_amount_focusout), NULL); //#1673260 if( type == TXN_TYPE_INTXFER ) { g_signal_handlers_block_by_func(G_OBJECT(data->ST_xferamt), G_CALLBACK(deftransaction_cb_dstamount_focusout), NULL); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_xferamt), entry->xferamount); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_xferamt), entry->xferamount); g_signal_handlers_unblock_by_func(G_OBJECT(data->ST_xferamt), G_CALLBACK(deftransaction_cb_dstamount_focusout), NULL); } gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_cheque), (entry->flags & OF_CHEQ2) ? 1 : 0); hbtk_entry_set_text(GTK_ENTRY(data->ST_number), entry->number); //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), entry->kcat); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_cat), entry->kcat); //#1910857 don't trigger autofill when set payee g_signal_handlers_block_by_func(G_OBJECT(ui_pay_entry_popover_get_entry(GTK_BOX(data->PO_pay))), G_CALLBACK(deftransaction_cb_payee_changed), NULL); //ui_pay_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_pay), entry->kpay); ui_pay_entry_popover_set_active(GTK_BOX(data->PO_pay), entry->kpay); g_signal_handlers_unblock_by_func(G_OBJECT(ui_pay_entry_popover_get_entry(GTK_BOX(data->PO_pay))), G_CALLBACK(deftransaction_cb_payee_changed), NULL); tagstr = tags_tostring(entry->tags); hbtk_entry_set_text(GTK_ENTRY(data->ST_tags), tagstr); g_free(tagstr); hbtk_switcher_set_active (HBTK_SWITCHER(data->RA_status), entry->status); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_remind), (entry->flags & OF_REMIND) ? 1 : 0); //as we trigger an event on this //let's place it at the end to avoid missvalue on the trigger function //g_signal_handlers_block_by_func (G_OBJECT (data->PO_acc), G_CALLBACK (deftransaction_cb_accfrom_changed), NULL); g_signal_handlers_block_by_func (G_OBJECT (ui_acc_entry_popover_get_entry(GTK_BOX(data->PO_acc))), G_CALLBACK (deftransaction_cb_accfrom_changed), NULL); if( entry->kacc > 0 ) { //ui_acc_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_acc), entry->kacc); ui_acc_entry_popover_set_active(GTK_BOX(data->PO_acc), entry->kacc); } else //1829007 set first item if only 1 account { //#1859077 >=5.3 no default account, as we should pass acckey here ui_acc_entry_popover_set_single(GTK_BOX(data->PO_acc)); } //g_signal_handlers_unblock_by_func (G_OBJECT (data->PO_acc), G_CALLBACK (deftransaction_cb_accfrom_changed), NULL); g_signal_handlers_unblock_by_func (G_OBJECT (ui_acc_entry_popover_get_entry(GTK_BOX(data->PO_acc))), G_CALLBACK (deftransaction_cb_accfrom_changed), NULL); //ui_acc_comboboxentry_populate_except(GTK_COMBO_BOX(data->PO_accto), GLOBALS->h_acc, entry->kacc, ACC_LST_INSERT_NORMAL); ui_acc_entry_popover_populate_except(GTK_BOX(data->PO_accto), GLOBALS->h_acc, entry->kacc, ACC_LST_INSERT_NORMAL); //ui_acc_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_accto), entry->kxferacc); ui_acc_entry_popover_set_active(GTK_BOX(data->PO_accto), entry->kxferacc); paymode_combo_box_set_active(GTK_COMBO_BOX(data->NU_mode), entry->paymode); } static void deftransaction_cb_split_clicked(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; Transaction *ope; gdouble amount; Account *srcacc; gint type, nbsplit; guint32 kcur, date; DB( g_print("\n[ui-transaction] cb split clicked\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ope = data->ope; type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)); date = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_date)); //amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); amount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_amount)); srcacc = ui_acc_entry_popover_get(GTK_BOX(data->PO_acc)); kcur = (srcacc != NULL) ? srcacc->kcur : GLOBALS->kcur; ui_split_dialog(data->dialog, &ope->splits, type, date, amount, kcur, &deftransaction_set_amount_from_split); DB( g_print(" - after closed dialog\n") ); /* old stuffs */ //# 1419476 empty category when no split either... if( (ope->flags & (OF_SPLIT)) ) { //# 1416624 empty category when split g_signal_handlers_block_by_func (G_OBJECT (data->PO_cat), G_CALLBACK (deftransaction_update_warnsign), NULL); //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), 0); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_cat), 0); g_signal_handlers_unblock_by_func (G_OBJECT (data->PO_cat), G_CALLBACK (deftransaction_update_warnsign), NULL); } //eval split to garantee disabled items ope->flags &= ~(OF_SPLIT); nbsplit = da_splits_length(ope->splits); if(nbsplit > 0) data->ope->flags |= (OF_SPLIT); DB( g_print(" - call update\n") ); deftransaction_update(data->dialog, NULL); } static void deftransaction_paymode(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; gint type, paymode; gboolean visible; DB( g_print("\n[ui-transaction] paymode change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)); paymode = paymode_combo_box_get_active(GTK_COMBO_BOX(data->NU_mode)); visible = (paymode == PAYMODE_CHECK) ? TRUE : FALSE; visible = (type == TXN_TYPE_INTXFER) ? FALSE : visible; hb_widget_visible(data->CM_cheque, visible); /* todo: prefill the cheque number ? */ deftransaction_set_cheque(widget, user_data); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void deftransaction_set_amount_from_split(GtkWidget *widget, gdouble amount) { struct deftransaction_data *data; gint type; DB( g_print("\n[ui-transaction] set_amount_from_split\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("- amount=%.2f\n", amount) ); //#1885413 enable sign invert from split dialog type = (amount < 0.0) ? TXN_TYPE_EXPENSE : TXN_TYPE_INCOME; g_signal_handlers_block_by_func(data->RA_type, G_CALLBACK(deftransaction_cb_type_toggled), NULL); hbtk_switcher_set_active (HBTK_SWITCHER(data->RA_type), type); g_signal_handlers_unblock_by_func(data->RA_type, G_CALLBACK(deftransaction_cb_type_toggled), NULL); data->ope->amount = amount; //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), amount); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_amount), amount); deftransaction_update(widget, NULL); } void deftransaction_get(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; Transaction *entry; gchar *txt; gint type, active; DB( g_print("\n[ui-transaction] get\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); entry = data->ope; DB( g_print(" txn: %p\n", entry) ); //if( entry == NULL ) // return; type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)); DB( g_print(" type: %d\n", type) ); entry->flags &= ~(OF_INCOME|OF_INTXFER); if( type == TXN_TYPE_INCOME) entry->flags |= OF_INCOME; if( type == TXN_TYPE_INTXFER) entry->flags |= OF_INTXFER; entry->date = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_date)); DB( hb_print_date(entry->date, " date:") ); //#1988594 ensure amount are updated //entry->amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); entry->amount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_amount)); DB( g_print(" amount: %f '%s'\n", entry->amount, gtk_entry_get_text(GTK_ENTRY(data->ST_amount))) ); //entry->xferamount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_xferamt)); entry->xferamount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_xferamt)); DB( g_print(" xferamount %f '%s'\n", entry->xferamount, gtk_entry_get_text(GTK_ENTRY(data->ST_xferamt))) ); //entry->kacc = ui_acc_comboboxentry_get_key(GTK_COMBO_BOX(data->PO_acc)); entry->kacc = ui_acc_entry_popover_get_key(GTK_BOX(data->PO_acc)); //entry->kxferacc = ui_acc_comboboxentry_get_key(GTK_COMBO_BOX(data->PO_accto)); entry->kxferacc = ui_acc_entry_popover_get_key(GTK_BOX(data->PO_accto)); DB( g_print(" srcacc: %d\n", entry->kacc) ); DB( g_print(" dstacc: %d\n", entry->kxferacc) ); //free any previous string if( entry->memo ) { g_free(entry->memo); entry->memo = NULL; } txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_memo)); // ignore if entry is empty if (txt && *txt) { entry->memo = g_strdup(txt); //#1716182 add into memo autocomplete if(PREFS->txn_memoacp == TRUE) { if( da_transaction_insert_memo(entry->memo, entry->date) ) { GtkEntryCompletion *completion; GtkTreeModel *model; GtkTreeIter iter; DB( g_print(" add memo to completion\n") ); completion = gtk_entry_get_completion (GTK_ENTRY(data->ST_memo)); model = gtk_entry_completion_get_model (completion); gtk_list_store_insert_with_values(GTK_LIST_STORE(model), &iter, -1, 0, txt, -1); } } } DB( g_print(" memo: '%s'\n", entry->memo) ); //free any previous string if( entry->number ) { g_free(entry->number); entry->number = NULL; } txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_number)); // ignore if entry is empty if (txt && *txt) { entry->number = g_strdup(txt); } DB( g_print(" info: '%s'\n", entry->number) ); entry->paymode = paymode_combo_box_get_active(GTK_COMBO_BOX(data->NU_mode)); //entry->kcat = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_cat)); entry->kcat = ui_cat_entry_popover_get_key_add_new(GTK_BOX(data->PO_cat)); //entry->kpay = ui_pay_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_pay)); entry->kpay = ui_pay_entry_popover_get_key_add_new(GTK_BOX(data->PO_pay)); DB( g_print(" paymode: %d\n", entry->paymode) ); DB( g_print(" cat: %d\n", entry->kcat) ); DB( g_print(" pay: %d\n", entry->kpay) ); txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_tags)); DB( g_print(" tags: '%s'\n", txt) ); g_free(entry->tags); entry->tags = tags_parse(txt); //entry->status = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_status)); entry->status = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_status)); DB( g_print(" status: '%d'\n", entry->status) ); entry->flags &= ~(OF_REMIND); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_remind)); if(active == 1) entry->flags |= OF_REMIND; // consistency checks //#617936/#1988594 ensure amount sign if( data->action == TXN_DLG_ACTION_ADD ) { entry->amount = ABS(entry->amount); entry->xferamount = ABS(entry->xferamount); if( (type == TXN_TYPE_EXPENSE) || (type == TXN_TYPE_INTXFER) ) { entry->amount = -entry->amount; } } //#1615245: moved here, after get combo entry key //if( entry->paymode != PAYMODE_INTXFER ) if( !(entry->flags & OF_INTXFER) ) { //#677351: revert kxferacc to 0 entry->kxferacc = 0; } else entry->paymode = PAYMODE_NONE; /* flags */ //entry->flags = 0; entry->flags &= ~(OF_SPLIT|OF_ADVXFER|OF_CHEQ2); //remove existing flags //1859117: keep the split flag if( da_splits_length (entry->splits) > 0 ) entry->flags |= OF_SPLIT; //Flag that Splits are active if( data->action == TXN_DLG_ACTION_ADD || data->action == TXN_DLG_ACTION_INHERIT) entry->dspflags |= FLAG_TMP_ADDED; if( data->action == TXN_DLG_ACTION_EDIT) entry->dspflags |= FLAG_TMP_EDITED; active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cheque)); if(active == 1) entry->flags |= OF_CHEQ2; //#1673260 if( type == TXN_TYPE_INTXFER ) { Account *srcacc, *dstacc; srcacc = da_acc_get(entry->kacc); dstacc = da_acc_get(entry->kxferacc); if( srcacc && dstacc ) { if( srcacc->kcur != dstacc->kcur ) { DB( g_print(" get OF_ADVXFER\n") ); entry->flags |= OF_ADVXFER; } } } else entry->xferamount = 0; //active = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_amount)); //we keep this in case the user want to force the type da_transaction_set_flag(entry); } static gboolean confirm_handler(struct deftransaction_data *data) { DB( g_print("\n[ui-transaction] hide confirm text\n") ); //#1859088 normally dispose remove the event source, so we don't land here after timeout hb_widget_visible(data->LB_msgadded, FALSE); data->evtsrcid = 0; return FALSE; } void deftransaction_external_confirm(GtkWidget *dialog, Transaction *ope) { struct deftransaction_data *data; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gchar *txt; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(dialog, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-transaction] display confirm text\n") ); if(data->evtsrcid > 0 ) return; hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, ope->amount, ope->kcur, GLOBALS->minor); txt = g_strdup_printf(_("Transaction of %s created."), buf); gtk_label_set_text(GTK_LABEL(data->LB_msgadded), txt); g_free(txt); hb_widget_visible(data->LB_msgadded, TRUE); data->evtsrcid = g_timeout_add(5000, (GSourceFunc) confirm_handler, (gpointer) data); } /* ** called from outside (ledger/report detail) */ gint deftransaction_external_edit(GtkWindow *parent, Transaction *old_txn, Transaction *new_txn) { struct deftransaction_data *data; GtkWidget *dialog; gboolean result, accchanged; Transaction *child; Account *acc; DB( g_print("\n------------------------\n") ); DB( g_print("\n[ui-transaction] external edit (from out)\n") ); dialog = create_deftransaction_window(GTK_WINDOW(parent), TXN_DLG_ACTION_EDIT, TXN_DLG_TYPE_TXN, 0); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(dialog, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print(" -- test xfer\n") ); //5.7 test if xfer src or dst // and disable expense or income as well to avoid mistake data->isxferdst = FALSE; child = NULL; if( old_txn->flags & OF_INTXFER ) { //use old in case of dst_acc change child = transaction_xfer_child_strong_get(old_txn); if( old_txn->amount < 0 ) { //disable income hbtk_switcher_set_nth_sensitive(HBTK_SWITCHER(data->RA_type), 1, FALSE); } if( old_txn->amount > 0 ) { data->isxferdst = TRUE; //disable expense hbtk_switcher_set_nth_sensitive(HBTK_SWITCHER(data->RA_type), 0, FALSE); } //#1867979 todate //#2109861 child can be null if( PREFS->xfer_syncdate == FALSE && child != NULL ) gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_dateto), (guint)child->date); } DB( g_print(" xfer is target: %d\n", data->isxferdst) ); deftransaction_set_transaction(dialog, new_txn); DB( g_print(" ** dialog run **\n") ); result = gtk_dialog_run (GTK_DIALOG (dialog)); DB( g_print(" ** dialog ended :: result=%d**\n", result) ); accchanged = FALSE; if(result == GTK_RESPONSE_ACCEPT) { deftransaction_get(dialog, NULL); account_balances_sub(old_txn); account_balances_add(new_txn); accchanged = TRUE; /* ok different case here * new is intxfer a) old was not check for existing child or add it b) old was sync (acc change is inside now) * new is not intxfer a) old was manage break intxfer * always manage account change */ acc = da_acc_get(new_txn->kacc); //#1931816: sort if date changed if(old_txn->date != new_txn->date) { da_transaction_queue_sort(acc->txn_queue); accchanged = TRUE; } //if( new_txn->paymode == PAYMODE_INTXFER ) if( new_txn->flags & OF_INTXFER ) { // change to an internal xfer if( !(old_txn->flags & OF_INTXFER) ) { gint tmpxferresult; // this call can popup a user dialog to choose tmpxferresult = transaction_xfer_search_or_add_child(GTK_WINDOW(dialog), FALSE, new_txn, new_txn->kxferacc); if( tmpxferresult == GTK_RESPONSE_CANCEL ) accchanged = FALSE; } else // just sync the existing xfer { //#2109861 child can be null if( child != NULL) { //#1584342 was faultly old_txn transaction_xfer_child_sync(new_txn, child); //#1867979 todate if( PREFS->xfer_syncdate == FALSE ) child->date = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_dateto)); } accchanged = TRUE; } } else { //#1250061 : manage ability to break an internal xfer if(old_txn->flags & OF_INTXFER) { gint break_result; DB( g_print(" - should break internal xfer\n") ); break_result = ui_dialog_msg_confirm_alert( GTK_WINDOW(parent), NULL, _("Do you want to break the internal transfer?\n\n" "Proceeding will delete the target transaction."), _("_Break"), TRUE ); if(break_result == GTK_RESPONSE_OK) { //we must use old_txn to ensure get the child //#1663789 but we must clean new as well transaction_xfer_remove_child(old_txn); transaction_xfer_change_to_normal(new_txn); accchanged = TRUE; } else //force paymode to internal xfer { //new_txn->paymode = PAYMODE_INTXFER; new_txn->flags |= OF_INTXFER; } } } //#1638035: manage account change if( old_txn->kacc != new_txn->kacc ) { //todo: maybe we should restrict this also to same currency account //=> no pb for normal, and intxfer is restricted by ui (in theory) transaction_acc_move(new_txn, old_txn->kacc, new_txn->kacc); accchanged = TRUE; } //#1581863 store reconciled date if( (old_txn->status != new_txn->status) && (new_txn->status == TXN_STATUS_RECONCILED) ) { if(acc) acc->rdate = GLOBALS->today; } } //#1883403 we may have changed the split amount but if we cancel it must be restored else { if( old_txn->flags & OF_SPLIT ) new_txn->amount = old_txn->amount; } /* update account flag */ if( accchanged == TRUE ) { DB( g_print(" mark acc as changed\n") ); acc = da_acc_get(new_txn->kacc); if(acc) acc->dspflags |= FLAG_ACC_TMP_EDITED; } deftransaction_dispose(dialog, NULL); gtk_window_destroy (GTK_WINDOW(dialog)); return result; } void deftransaction_set_transaction(GtkWidget *widget, Transaction *ope) { struct deftransaction_data *data; DB( g_print("\n[ui-transaction] set transaction (from out)\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //if( ope == NULL ) // return; data->ope = ope; DB( g_print(" - ope=%p data=%p\n", data->ope, data) ); DB( g_print(" - call set\n") ); deftransaction_set(widget, NULL); DB( g_print(" - call update\n") ); deftransaction_update(widget, NULL); DB( g_print(" - call warnsign\n") ); deftransaction_update_warnsign(widget, NULL); } // end external call static void deftransaction_setup(struct deftransaction_data *data) { DB( g_print("\n[ui-transaction] setup\n") ); //DB( g_print(" init data\n") ); DB( g_print(" populate\n") ); if( data->showtemplate ) { ui_popover_tpl_populate (data, GLOBALS->arc_list); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(data->modelfilter)); } //ui_acc_comboboxentry_populate(GTK_COMBO_BOX(data->PO_acc), GLOBALS->h_acc, ACC_LST_INSERT_NORMAL); ui_acc_entry_popover_populate(GTK_BOX(data->PO_acc), GLOBALS->h_acc, ACC_LST_INSERT_NORMAL); //5.3 it seems no need to populate @init //ui_acc_comboboxentry_populate(GTK_COMBO_BOX(data->PO_accto), GLOBALS->h_acc, ACC_LST_INSERT_NORMAL); //ui_acc_entry_popover_populate(GTK_COMBO_BOX(data->PO_accto), GLOBALS->h_acc, ACC_LST_INSERT_NORMAL); //5.3 done in popover //ui_cat_comboboxentry_populate(GTK_COMBO_BOX(data->PO_cat), GLOBALS->h_cat); //5.2.7 done in popover //ui_pay_comboboxentry_populate(GTK_COMBO_BOX(data->PO_pay), GLOBALS->h_pay); //ui_tag_combobox_populate(GTK_COMBO_BOX_TEXT(data->CY_tags)); //DB( g_print(" set widgets default\n") ); //DB( g_print(" connect widgets signals\n") ); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_popover_tpl_onRowActivated(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct deftransaction_data *data; GtkTreeModel *model; GtkTreeIter iter; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); model = gtk_tree_view_get_model(treeview); if (gtk_tree_model_get_iter(model, &iter, path)) { Archive *arc; Transaction *txn; gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, LST_DSPTPL_DATAS, &arc, -1); txn = data->ope; da_transaction_init_from_template(txn, arc); DB( g_print(" calls\n") ); deftransaction_set(GTK_WIDGET(treeview), NULL); deftransaction_paymode(GTK_WIDGET(treeview), NULL); deftransaction_update(GTK_WIDGET(treeview), NULL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->MB_template), FALSE); } } static gint ui_popover_tpl_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint retval = 0; Archive *entry1, *entry2; gtk_tree_model_get(model, a, LST_DSPTPL_DATAS, &entry1, -1); gtk_tree_model_get(model, b, LST_DSPTPL_DATAS, &entry2, -1); retval = hb_string_utf8_compare(entry1->memo, entry2->memo); return retval; } static void ui_popover_tpl_populate(struct deftransaction_data *data, GList *srclist) { GtkTreeModel *model; GtkTreeIter iter; GList *list; GString *tpltitle; //insert all glist item into treeview model = data->model; gtk_list_store_clear(GTK_LIST_STORE(model)); tpltitle = g_string_sized_new(255); list = g_list_first(srclist); while (list != NULL) { Archive *item = list->data; //#1968249 build a non empty label, when memo/payee/category are empty da_archive_get_display_label(tpltitle, item); gtk_list_store_insert_with_values(GTK_LIST_STORE(model), &iter, -1, LST_DSPTPL_DATAS, item, LST_DSPTPL_NAME, tpltitle->str, -1); //DB( g_print(" populate_treeview: %d %08x\n", i, list->data) ); list = g_list_next(list); } g_string_free(tpltitle, TRUE); } static void ui_popover_tpl_refilter (GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data = user_data; DB( g_print(" text changed\n") ); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(data->modelfilter)); } static gboolean ui_popover_tpl_func_visible (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { struct deftransaction_data *data = user_data; Archive *entry; gchar *str; gboolean visible = TRUE; gboolean showsched; gboolean showallacc; showsched = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_showsched)); showallacc = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_showallacc)); gchar *needle = g_ascii_strdown(gtk_entry_get_text(GTK_ENTRY(data->ST_search)), -1); gtk_tree_model_get (model, iter, LST_DSPTPL_DATAS, &entry, LST_DSPTPL_NAME, &str, -1); if( entry ) { if( !showallacc && (data->kacc != 0) && (entry->kacc != data->kacc) ) visible = FALSE; else { if( (entry->rec_flags & TF_RECUR) && !showsched) { visible = FALSE; } else { gchar *haystack = g_ascii_strdown(str, -1); if (str && g_strrstr (haystack, needle) == NULL ) { visible = FALSE; } DB( g_print("filter: '%s' '%s' %d\n", str, needle, visible) ); g_free(haystack); } } } g_free(needle); g_free (str); return visible; } static GtkWidget *ui_popover_tpl_create(struct deftransaction_data *data) { GtkListStore *store; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkWidget *box, *widget, *scrollwin, *treeview; box = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL); widget = make_search(); data->ST_search = widget; gtk_box_prepend (GTK_BOX(box), widget); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX(box), scrollwin); store = gtk_list_store_new(NUM_LST_DSPTPL, G_TYPE_POINTER, G_TYPE_STRING); data->model = GTK_TREE_MODEL(store); //#1865361 txn dialog template list switch sort order on each save gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_popover_tpl_compare_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); data->modelfilter = GTK_TREE_MODEL_FILTER(gtk_tree_model_filter_new(GTK_TREE_MODEL(data->model), NULL)); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(data->modelfilter), ui_popover_tpl_func_visible, data, NULL); treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(data->modelfilter)); data->LV_arc = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_grab_focus(treeview); /* column for bug numbers */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", LST_DSPTPL_NAME, NULL); //gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), FALSE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); widget = gtk_check_button_new_with_mnemonic(_("Show _scheduled")); data->CM_showsched = widget; gtk_box_prepend (GTK_BOX(box), widget); widget = gtk_check_button_new_with_mnemonic(_("Show _all accounts")); data->CM_showallacc = widget; gtk_box_prepend (GTK_BOX(box), widget); gtk_widget_show_all (box); //#1796564 hide show all template if no account gtk_widget_set_visible (data->CM_showallacc, data->kacc == 0 ? FALSE : TRUE); //signals g_signal_connect (data->CM_showsched, "toggled", G_CALLBACK (ui_popover_tpl_refilter), data); g_signal_connect (data->CM_showallacc, "toggled", G_CALLBACK (ui_popover_tpl_refilter), data); g_signal_connect (data->ST_search, "search-changed", G_CALLBACK (ui_popover_tpl_refilter), data); return box; } static GtkWidget *deftransaction_create_template(struct deftransaction_data *data) { GtkWidget *box, *menubutton, *image; menubutton = gtk_menu_button_new (); data->MB_template = menubutton; box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); image = hbtk_image_new_from_icon_name_16 ("pan-down-symbolic"); gtk_box_prepend (GTK_BOX(box), image); gtk_container_add(GTK_CONTAINER(menubutton), box); gtk_widget_set_tooltip_text(menubutton, _("Use a template")); gtk_menu_button_set_direction (GTK_MENU_BUTTON(menubutton), GTK_ARROW_DOWN ); gtk_widget_set_halign (menubutton, GTK_ALIGN_END); gtk_widget_show_all(menubutton); GtkWidget *template = ui_popover_tpl_create(data); GtkWidget *popover = create_popover (menubutton, template, GTK_POS_BOTTOM); gtk_widget_set_size_request (popover, 2*HB_MINWIDTH_LIST, PHI*HB_MINHEIGHT_LIST); gtk_menu_button_set_popover(GTK_MENU_BUTTON(menubutton), popover); g_signal_connect (GTK_TREE_VIEW(data->LV_arc), "row-activated", G_CALLBACK (ui_popover_tpl_onRowActivated), NULL); return menubutton; } static gboolean deftransaction_getgeometry(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct WinGeometry *wg; DB( g_print("\n[ui-transaction] get geometry\n") ); //store size wg = &PREFS->txn_wg; gtk_window_get_size(GTK_WINDOW(widget), &wg->w, NULL); DB( g_print(" window: w=%d\n", wg->w) ); return FALSE; } //#1681532 free in destroy event static void deftransaction_cb_destroy(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; DB( g_print("\n[ui-transaction] --destroy cb\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print(" free data\n") ); g_free(data); } //note: this is called from external usage void deftransaction_dispose(GtkWidget *widget, gpointer user_data) { struct deftransaction_data *data; DB( g_print("\n[ui-transaction] dispose\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //#1859088 remove any pending event source (g_timeout_add) if(data->evtsrcid > 0) g_source_remove(data->evtsrcid); deftransaction_getgeometry(data->dialog, NULL, data); //#1681532 don't free here //g_free(data); } GtkWidget *create_deftransaction_window (GtkWindow *parent, HbTxnDlgAction action, HbTxnDlgType type, guint32 kacc) { struct deftransaction_data *data; struct WinGeometry *wg; GtkWidget *dialog, *content; GtkWidget *bar; GtkWidget *group_grid, *hbox, *label, *widget; gchar *title; gint row; DB( g_print("\n[ui-transaction] new\n") ); data = g_malloc0(sizeof(struct deftransaction_data)); if(!data) return NULL; dialog = gtk_dialog_new(); gtk_window_set_transient_for (GTK_WINDOW(dialog), GTK_WINDOW(parent)); //store our window private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" - window=%p, inst_data=%p\n", dialog, data) ); data->dialog = dialog; data->action = action; data->type = type; data->kacc = kacc; // if you add/delete response_id also change into deftransaction_update if(action == TXN_DLG_ACTION_EDIT) { gtk_dialog_add_buttons (GTK_DIALOG(dialog), _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); } else //ADD_INHERIT { gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Close"), GTK_RESPONSE_REJECT); if( type == TXN_DLG_TYPE_TXN ) gtk_dialog_add_button(GTK_DIALOG(dialog), _("Add & _Keep"), HB_RESPONSE_ADDKEEP); if( !(type == TXN_DLG_TYPE_SCH) ) gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Add"), HB_RESPONSE_ADD); else gtk_dialog_add_button (GTK_DIALOG(dialog), _("_Post"), HB_RESPONSE_ADD); } title = NULL; switch(action) { case TXN_DLG_ACTION_NONE: title = NULL; break; case TXN_DLG_ACTION_ADD: title = _("Add transaction"); if(type == TXN_DLG_TYPE_TPL) { title = _("Add template"); } else if(type == TXN_DLG_TYPE_SCH) { title = _("Post scheduled"); } break; case TXN_DLG_ACTION_INHERIT: title = _("Inherit transaction"); if(type == TXN_DLG_TYPE_TPL) title = _("Inherit template"); break; case TXN_DLG_ACTION_EDIT: title = _("Edit transaction"); if(type == TXN_DLG_TYPE_TPL) title = _("Edit template"); break; } gtk_window_set_title (GTK_WINDOW(dialog), title); DB( g_print(" action:%d '%s', dlgtype:%d \n", action, title, type ) ); //gtk_window_set_decorated(GTK_WINDOW(dialog), TRUE); //dialog contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); //group main group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(group_grid), SPACING_LARGE); gtk_box_prepend (GTK_BOX (content), group_grid); row=0; widget = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup (HBTK_SWITCHER(widget), CYA_TXN_TYPE, TRUE); data->RA_type = widget; gtk_widget_set_halign (widget, GTK_ALIGN_CENTER); gtk_grid_attach (GTK_GRID (group_grid), widget, 0, row, 5, 1); gtk_widget_set_margin_bottom(widget, SPACING_MEDIUM); data->showtemplate = FALSE; if( (data->type == TXN_DLG_TYPE_TXN) && (da_archive_length() > 0) ) { if( (data->action != TXN_DLG_ACTION_EDIT) || PREFS->txn_showtemplate ) { data->showtemplate = TRUE; widget = deftransaction_create_template(data); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_grid_attach (GTK_GRID (group_grid), widget, 4, row, 1, 1); gtk_widget_set_margin_bottom(widget, SPACING_MEDIUM); } } row++; label = make_label_widget(_("_Date:")); data->LB_date = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); data->GR_date = hbox; //gtk_widget_set_hexpand(hbox, FALSE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 4, 1); widget = gtk_date_entry_new(label); data->PO_date = widget; //gtk_widget_set_halign(widget, GTK_ALIGN_START); gtk_box_prepend (GTK_BOX (hbox), widget); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); //gtk_widget_set_tooltip_text(widget, _("Date accepted here are:\nday,\nday/month or month/day,\nand complete date into your locale")); gtk_widget_set_tooltip_text(widget, _("- type: d, d/m, m/d a complete date\n- use arrow key + ctrl or shift\n- empty for today")); gtk_box_prepend (GTK_BOX (hbox), widget); //5.8 xfer date if( PREFS->xfer_syncdate == FALSE && data->action == TXN_DLG_ACTION_EDIT && data->type == TXN_DLG_TYPE_TXN ) { row++; label = make_label_widget(_("T_o:")); data->LB_dateto = label; gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = gtk_date_entry_new(label); gtk_widget_set_halign(widget, GTK_ALIGN_START); data->PO_dateto = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 3, 1); } row++; label = make_label_widget(_("Amou_nt:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); //gtk_widget_set_hexpand(hbox, FALSE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 4, 1); //widget = make_amount(label); widget = hbtk_decimal_entry_new(label); data->ST_amount = widget; //gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widget), GTK_ENTRY_ICON_PRIMARY, ICONNAME_HB_TOGGLE_SIGN); //gtk_entry_set_icon_tooltip_text(GTK_ENTRY(widget), GTK_ENTRY_ICON_PRIMARY, _("Toggle amount sign")); gtk_box_prepend (GTK_BOX (hbox), widget); widget = make_image_button(ICONNAME_HB_BUTTON_SPLIT, _("Transaction splits")); data->BT_split = widget; gtk_box_prepend (GTK_BOX (hbox), widget); label = make_label(NULL, 0, 0.5); data->LB_curr = label; gtk_widget_set_margin_start(label, SPACING_SMALL); gtk_box_prepend (GTK_BOX (hbox), label); //#1673260 row++; hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); //gtk_widget_set_hexpand(hbox, FALSE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 3, 1); //widget = make_amount(label); widget = hbtk_decimal_entry_new(label); data->ST_xferamt = widget; gtk_box_prepend (GTK_BOX (hbox), widget); label = make_label(NULL, 0, 0.5); data->LB_xfercurr = label; //gtk_widget_set_margin_start(label, SPACING_SMALL); gtk_box_prepend (GTK_BOX (hbox), label); widget = hbtk_image_new_from_icon_name_16(ICONNAME_WARNING); data->IM_xfernorate = widget; gtk_widget_set_tooltip_text (widget, _("No rate available to auto fill")); gtk_box_prepend (GTK_BOX (hbox), widget); /*row++; label = make_label_widget(_("A_ccount:")); data->LB_accfrom = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = ui_acc_comboboxentry_new(label); data->PO_acc = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1);*/ row++; label = make_label_widget(_("A_ccount:")); data->LB_accfrom = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = ui_acc_entry_popover_new(label); data->PO_acc = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1); gtk_widget_set_margin_top(label, SPACING_MEDIUM); gtk_widget_set_margin_top(widget, SPACING_MEDIUM); /*row++; label = make_label_widget(_("T_o:")); data->LB_accto = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = ui_acc_comboboxentry_new(label); data->PO_accto = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1);*/ row++; label = make_label_widget(_("T_o:")); data->LB_accto = label; gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = ui_acc_entry_popover_new(label); data->PO_accto = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 3, 1); row++; label = make_label_widget(_("Pa_yment:")); data->LB_mode = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = make_paymode(label); data->NU_mode = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); widget = gtk_check_button_new_with_mnemonic(_("Book _2")); data->CM_cheque = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 2, 1); row++; label = make_label_widget(_("_Number:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = make_string(label); data->ST_number = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; label = make_label_widget(_("_Payee:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_widget_set_hexpand(hbox, TRUE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 4, 1); widget = ui_pay_entry_popover_new(label); data->PO_pay = widget; gtk_widget_set_hexpand(widget, TRUE); hbtk_box_prepend (GTK_BOX (hbox), widget); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); gtk_widget_set_tooltip_text(widget, _("- type some letter for autocompletion\n- type new text to create entry")); gtk_box_prepend (GTK_BOX (hbox), widget); gtk_widget_set_margin_top(label, SPACING_MEDIUM); gtk_widget_set_margin_top(hbox, SPACING_MEDIUM); row++; label = make_label_widget(_("Cate_gory:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_widget_set_hexpand(hbox, TRUE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 4, 1); //widget = ui_cat_comboboxentry_new(label); widget = ui_cat_entry_popover_new(label); data->PO_cat = widget; hbtk_box_prepend (GTK_BOX (hbox), widget); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); //gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available")); gtk_widget_set_tooltip_text(widget, _("- type some letter for autocompletion\n- type new text to create entry")); gtk_box_prepend (GTK_BOX (hbox), widget); /* row++; label = make_label_widget(_("_Status:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = hbtk_combo_box_new_with_data (label, CYA_TXN_STATUS); gtk_widget_set_halign(widget, GTK_ALIGN_START); data->CY_status = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); */ //#1847622 transaction editor: "Status drop" down menu row++; label = make_label_widget(_("_Status:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_widget_set_hexpand(hbox, TRUE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 4, 1); widget = hbtk_switcher_new(GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup_with_data(HBTK_SWITCHER(widget), label, CYA_TXN_STATUSIMG, TRUE); data->RA_status = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = make_image_toggle_button(ICONNAME_HB_ITEM_REMIND, _("Remind")); data->CM_remind = widget; gtk_box_prepend (GTK_BOX (hbox), widget); gtk_widget_set_margin_top(label, SPACING_MEDIUM); gtk_widget_set_margin_top(hbox, SPACING_MEDIUM); row++; label = make_label_widget(_("M_emo:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = make_memo_entry(label); data->ST_memo = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1); row++; label = make_label_widget(_("_Tags:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(hbox)), GTK_STYLE_CLASS_LINKED); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 4, 1); widget = make_string(label); data->ST_tags = widget; hbtk_box_prepend (GTK_BOX (hbox), widget); widget = ui_tag_popover_list(data->ST_tags); data->CY_tags = widget; gtk_box_prepend (GTK_BOX (hbox), widget); DB( g_print(" -- showall\n") ); gtk_widget_show_all(group_grid); row++; bar = gtk_info_bar_new (); data->IB_warnsign = bar; gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); label = gtk_label_new (_("Warning: amount and category sign don't match")); hbtk_box_prepend (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label); gtk_grid_attach (GTK_GRID (group_grid), bar, 1, row, 4, 1); //#1831975 visual add confirmation row++; label = gtk_label_new(NULL); data->LB_msgadded = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 4, 1); //setup, init and show window deftransaction_setup(data); wg = &PREFS->txn_wg; gtk_window_set_default_size(GTK_WINDOW(dialog), wg->w, -1); DB( g_print(" -- signal\n") ); // connect dialog signals g_signal_connect (dialog, "destroy", G_CALLBACK (deftransaction_cb_destroy), NULL); //debug signal not to release //g_signal_connect (dialog, "configure-event", G_CALLBACK (deftransaction_getgeometry), (gpointer)data); g_signal_connect (data->RA_type , "changed", G_CALLBACK (deftransaction_cb_type_toggled), NULL); //5.7 removed //g_signal_connect (data->PO_date, "changed", G_CALLBACK (deftransaction_cb_date_changed), NULL); //g_signal_connect (data->PO_acc , "changed", G_CALLBACK (deftransaction_cb_accfrom_changed), NULL); g_signal_connect (ui_acc_entry_popover_get_entry(GTK_BOX(data->PO_acc)), "changed", G_CALLBACK (deftransaction_cb_accfrom_changed), NULL); //g_signal_connect (data->PO_accto, "changed", G_CALLBACK (deftransaction_update), NULL); g_signal_connect (ui_acc_entry_popover_get_entry(GTK_BOX(data->PO_accto)), "changed", G_CALLBACK (deftransaction_update), NULL); g_signal_connect_after (data->ST_amount, "value-changed", G_CALLBACK (deftransaction_cb_amount_focusout), NULL); g_signal_connect_after (data->ST_amount, "focus-out-event", G_CALLBACK (deftransaction_cb_amount_focusout), NULL); g_signal_connect (data->BT_split, "clicked", G_CALLBACK (deftransaction_cb_split_clicked), NULL); //#1673260 g_signal_connect_after (data->ST_xferamt, "value-changed", G_CALLBACK (deftransaction_cb_dstamount_focusout), NULL); g_signal_connect_after (data->ST_xferamt, "focus-out-event", G_CALLBACK (deftransaction_cb_dstamount_focusout), NULL); g_signal_connect (data->NU_mode , "changed", G_CALLBACK (deftransaction_paymode), NULL); g_signal_connect (data->CM_cheque, "toggled", G_CALLBACK (deftransaction_paymode), NULL); //g_signal_connect (data->PO_pay , "changed", G_CALLBACK (deftransaction_cb_payee_changed), NULL); g_signal_connect (ui_pay_entry_popover_get_entry(GTK_BOX(data->PO_pay)), "changed", G_CALLBACK (deftransaction_cb_payee_changed), NULL); //g_signal_connect (data->PO_cat , "changed", G_CALLBACK (deftransaction_update_warnsign), NULL); g_signal_connect (ui_cat_entry_popover_get_entry(GTK_BOX(data->PO_cat)), "changed", G_CALLBACK (deftransaction_update_warnsign), NULL); DB( g_print(" -- return\n") ); return dialog; } homebank-5.9.1/src/ui-currency.h0000644000175000017500000000626414736461415012223 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_CURRENCY_GTK_H__ #define __HB_CURRENCY_GTK_H__ enum { LST_DEFCUR_TOGGLE, LST_DEFCUR_DATAS, NUM_LST_DEFCUR }; enum { LST_SELCUR_NAME, LST_SELCUR_DATA, NUM_LST_SELCUR }; struct ui_cur_manage_dialog_data { GtkWidget *dialog; gboolean mapped_done; GtkWidget *LV_cur; // GtkWidget *CY_curr; // GtkWidget *BT_curr; GtkWidget *TB_log; GtkWidget *BB_update; GtkWidget *BT_add; GtkWidget *BT_del; GtkWidget *BT_edit; GtkWidget *BT_base; gint change; }; struct ui_cur_edit_dialog_data { GtkWidget *dialog; GtkWidget *LB_name; GtkWidget *LB_rate; GtkWidget *NB_rate; GtkWidget *LB_sample; GtkWidget *ST_symbol; GtkWidget *CM_symisprefix; GtkWidget *ST_decimalchar; GtkWidget *ST_groupingchar; GtkWidget *NB_fracdigits; }; enum { CUR_SELECT_MODE_BASE, CUR_SELECT_MODE_NOCUSTOM, CUR_SELECT_MODE_CUSTOM, }; struct ui_cur_select_dialog_data { GtkWidget *dialog; GtkTreeModel *modelfilter; GtkTreeModel *sortmodel; GtkTreeModel *model; GtkWidget *ST_search; GtkWidget *LV_cur; GtkWidget *CM_custom; GtkWidget *LB_custiso, *ST_custiso; GtkWidget *LB_custname, *ST_custname; }; struct curPopContext { GtkTreeModel *model; guint except_key; }; struct curSelectContext { Currency4217 *cur_4217; gchar *cur_name; gchar *cur_iso; }; gchar *ui_cur_combobox_get_name(GtkComboBox *entry_box); guint32 ui_cur_combobox_get_key(GtkComboBox *entry_box); guint32 ui_cur_combobox_get_key_add_new(GtkComboBox *entry_box); gboolean ui_cur_combobox_set_active(GtkComboBox *entry_box, guint32 key); void ui_cur_combobox_add(GtkComboBox *entry_box, Currency *cur); void ui_cur_combobox_populate(GtkComboBox *entry_box, GHashTable *hash); void ui_cur_combobox_populate_except(GtkComboBox *entry_box, GHashTable *hash, guint except_key); GtkWidget *ui_cur_combobox_new(GtkWidget *label); /* = = = = = = = = = = */ void ui_cur_listview_add(GtkTreeView *treeview, Currency *item); guint32 ui_cur_listview_get_selected_key(GtkTreeView *treeview); void ui_cur_listview_remove_selected(GtkTreeView *treeview); void ui_cur_listview_populate(GtkWidget *view); GtkWidget *ui_cur_listview_new(gboolean withtoggle); gint ui_cur_manage_dialog_update_currencies(GtkWindow *parent, GString *node); GtkWidget *ui_cur_manage_dialog (void); gint ui_cur_select_dialog_new(GtkWindow *parent, gint select_mode, struct curSelectContext *ctx); void ui_cur_edit_dialog_new(GtkWindow *parent, Currency *cur); #endif homebank-5.9.1/src/hb-archive.c0000644000175000017500000004773114766237764012000 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-archive.h" #include "hb-split.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif #define DB2(x); //#define DB2(x) (x); /* our global datas */ extern struct HomeBank *GLOBALS; #if MYDEBUG extern HbKvData CYA_ARC_WEEKEND[]; gchar *WDAY[] = { "bad", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"}; #endif /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void da_archive_clean(Archive *item) { if(item != NULL) { g_free(item->memo); item->memo = NULL; g_free(item->number); item->number = NULL; //5.3 added as it was a leak g_free(item->tags); item->tags = NULL; if(item->splits != NULL) { da_split_destroy(item->splits); item->splits = NULL; item->flags &= ~(OF_SPLIT); //Flag that Splits are cleared } } } void da_archive_free(Archive *item) { if(item != NULL) { da_archive_clean(item); g_free(item); } } Archive * da_archive_malloc(void) { Archive *item; item = g_malloc0(sizeof(Archive)); item->key = 1; return item; } Archive * da_archive_clone(Archive *src_item) { Archive *new_item = g_memdup(src_item, sizeof(Archive)); if(new_item) { //duplicate the string new_item->memo = g_strdup(src_item->memo); new_item->number = g_strdup(src_item->number); //duplicate tags //no g_free here to avoid free the src tags (memdup copie dthe ptr) new_item->tags = tags_clone(src_item->tags); //duplicate splits //no g_free here to avoid free the src tags (memdup copie dthe ptr) new_item->splits = da_splits_clone(src_item->splits); if( da_splits_length (new_item->splits) > 0 ) new_item->flags |= OF_SPLIT; //Flag that Splits are active } return new_item; } void da_archive_destroy(GList *list) { GList *tmplist = g_list_first(list); while (tmplist != NULL) { Archive *item = tmplist->data; da_archive_free(item); tmplist = g_list_next(tmplist); } g_list_free(list); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ guint da_archive_length(void) { return g_list_length(GLOBALS->arc_list); } guint32 da_archive_get_max_key(void) { GList *tmplist = g_list_first(GLOBALS->arc_list); guint32 max_key = 0; while (tmplist != NULL) { Archive *item = tmplist->data; max_key = MAX(item->key, max_key); tmplist = g_list_next(tmplist); } return max_key; } //delete //insert /* append a fav with an existing key (from xml file only) */ gboolean da_archive_append(Archive *item) { //perf must use preprend, see glib doc //GLOBALS->arc_list = g_list_append(GLOBALS->arc_list, item); GLOBALS->arc_list = g_list_prepend(GLOBALS->arc_list, item); return TRUE; } gboolean da_archive_append_new(Archive *item) { item->key = da_archive_get_max_key() + 1; //TODO: perf must use preprend, see glib doc GLOBALS->arc_list = g_list_append(GLOBALS->arc_list, item); return TRUE; } Archive * da_archive_get(guint32 key) { GList *tmplist; Archive *retval = NULL; tmplist = g_list_first(GLOBALS->arc_list); while (tmplist != NULL) { Archive *item = tmplist->data; if(item->key == key) { retval = item; break; } tmplist = g_list_next(tmplist); } return retval; } //#1968249 build a non empty label, when memo/payee/category are empty void da_archive_get_display_label(GString *tpltitle, Archive *item) { g_string_truncate(tpltitle, 0); if(item->memo != NULL) { g_string_append(tpltitle, item->memo); } else { g_string_append(tpltitle, _("(no memo)") ); if(item->kpay > 0) { Payee *pay = da_pay_get(item->kpay); if(pay != NULL) { g_string_append_c(tpltitle, ' '); g_string_append(tpltitle, pay->name); } } if(item->kcat > 0) { Category *cat = da_cat_get(item->kcat); if(cat != NULL) { g_string_append(tpltitle, " / "); g_string_append(tpltitle, cat->fullname); } } } } void da_archive_consistency(Archive *item) { Account *acc; Category *cat; Payee *pay; guint nbsplit; // check category exists cat = da_cat_get(item->kcat); if(cat == NULL) { g_warning("tpl consistency: fixed invalid cat %d", item->kcat); item->kcat = 0; GLOBALS->changes_count++; } //#1340142 check split category if( item->splits != NULL ) { nbsplit = da_splits_consistency(item->splits); //# 1416624 empty category when split if(nbsplit > 0 && item->kcat > 0) { g_warning("tpl consistency: fixed invalid cat on split txn"); item->kcat = 0; GLOBALS->changes_count++; } } // check payee exists pay = da_pay_get(item->kpay); if(pay == NULL) { g_warning("tpl consistency: fixed invalid pay %d", item->kpay); item->kpay = 0; GLOBALS->changes_count++; } // 5.3: fix split on intxfer if( ((item->flags & OF_INTXFER) || (item->paymode == OLDPAYMODE_INTXFER)) && (item->splits != NULL) ) { g_warning("tpl consistency: fixed invalid split on xfer"); item->flags &= ~(OF_INTXFER); item->paymode = PAYMODE_XFER; item->kxferacc = 0; } // reset dst acc for non xfer transaction if( !((item->flags & OF_INTXFER) || (item->paymode == OLDPAYMODE_INTXFER)) ) item->kxferacc = 0; // delete automation if dst_acc not exists if( (item->flags & OF_INTXFER) || (item->paymode == OLDPAYMODE_INTXFER) ) { acc = da_acc_get(item->kxferacc); if(acc == NULL) { item->rec_flags &= ~(TF_RECUR); //delete flag } } } /* = = = = = = = = = = = = = = = = = = = = */ static gint da_archive_glist_name_compare_func(Archive *a, Archive *b) { return hb_string_utf8_compare(a->memo, b->memo); } static gint da_archive_glist_key_compare_func(Archive *a, Archive *b) { return hb_string_utf8_compare(a->memo, b->memo); } GList *da_archive_glist_sorted(gint column) { switch(column) { case HB_GLIST_SORT_NAME: GLOBALS->arc_list = g_list_sort(GLOBALS->arc_list, (GCompareFunc)da_archive_glist_name_compare_func); break; //case HB_GLIST_SORT_KEY: default: GLOBALS->arc_list = g_list_sort(GLOBALS->arc_list, (GCompareFunc)da_archive_glist_key_compare_func); break; } return GLOBALS->arc_list; } void da_archive_stats(gint *nbtpl, gint *nbsch) { GList *tmplist = g_list_first(GLOBALS->arc_list); gint nbt, nbs; nbt = nbs = 0; while (tmplist != NULL) { Archive *item = tmplist->data; if(item->rec_flags & TF_RECUR) nbs++; else nbt++; tmplist = g_list_next(tmplist); } if( nbtpl != NULL) *nbtpl = nbt; if( nbsch != NULL) *nbsch = nbs; } //#1872140 don't prefix if not from ledger Archive *da_archive_init_from_transaction(Archive *arc, Transaction *txn, gboolean fromledger) { DB( g_print("\n[scheduled] init from txn\n") ); da_archive_clean(arc); //fill it arc->amount = txn->amount; arc->kacc = txn->kacc; //#1673260 arc->xferamount = txn->xferamount; arc->kxferacc = txn->kxferacc; arc->paymode = txn->paymode; arc->flags = txn->flags; arc->status = txn->status; arc->kpay = txn->kpay; arc->kcat = txn->kcat; //5.9 clean flags arc->flags &= ~(OF_ISIMPORT|OF_ISPAST); //5.3.3 prefixed with prefilled //#1883063 **PREFILLED** only when fromledger==TRUE, test order was wrogn here if( fromledger == FALSE ) { if(txn->memo != NULL) arc->memo = g_strdup(txn->memo); } else { arc->dspflags |= FLAG_TMP_PREFILLED; //#2018680 if(txn->memo != NULL) arc->memo = g_strdup( txn->memo ); //arc->memo = g_strdup_printf("%s %s", _("**PREFILLED**"), txn->memo ); //else // arc->memo = g_strdup(_("**PREFILLED**")); } if(txn->number != NULL) arc->number = g_strdup(txn->number); arc->tags = tags_clone(txn->tags); arc->splits = da_splits_clone(txn->splits); if( da_splits_length (arc->splits) > 0 ) arc->flags |= OF_SPLIT; //Flag that Splits are active return arc; } /* = = = = = = = = = = = = = = = = = = = = */ gboolean template_is_account_used(Archive *arc) { GList *lacc, *list; gboolean retval = FALSE; lacc = list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { Account *acc = list->data; if( acc->karc == arc->key ) retval = TRUE; list = g_list_next(list); } g_list_free(lacc); return retval; } /* = = = = = = = = = = = = = = = = = = = = */ static guint32 _sched_nextdate_relative(GDate *date, guint ordinal, guint weekday, guint every) { guint daysinmonth, firstwd, gap; g_date_set_day(date, 1); g_date_add_months(date, every); daysinmonth = g_date_get_days_in_month(g_date_get_month(date), g_date_get_year(date)); if( weekday == AUTO_WEEKDAY_DAY ) { gap = (ordinal-1); if( ordinal == AUTO_ORDINAL_LAST ) gap = daysinmonth - 1; } else { //M=1 T=2 W=3 T=4 F=5 S=6 S=7 firstwd = g_date_get_weekday(date); if( weekday < firstwd ) gap = 7 - (firstwd - weekday); else gap = weekday - firstwd; DB( g_print(" fwd=%d weekday=%d gap=%d\n", firstwd, weekday, gap) ); g_date_add_days(date, gap); //add fisrt/second... gap = 7 * (ordinal-1); //but retrieve 7 if next month if( g_date_get_day(date) + gap > daysinmonth ) gap = gap -7; } g_date_add_days(date, gap); return g_date_get_julian(date); } static void _sched_nextdate_weekend_adjust(GDate *date) { GDateWeekday wday = g_date_get_weekday(date); if( wday == G_DATE_SATURDAY ) g_date_add_days (date, 2); else if( wday == G_DATE_SUNDAY ) g_date_add_days (date, 1); } static guint32 _sched_date_get_next_post(GDate *date, Archive *arc, guint32 nextdate) { guint32 nextpostdate = nextdate; DB2( g_print("\n[scheduled] date_get_next_post\n") ); g_date_set_julian(date, nextpostdate); DB2( hb_print_date(g_date_get_julian(date), "in:") ); if( !(arc->rec_flags & TF_RELATIVE) ) { switch(arc->rec_freq) { case AUTO_FREQ_DAY: g_date_add_days(date, arc->rec_every); break; case AUTO_FREQ_WEEK: g_date_add_days(date, 7 * arc->rec_every); break; case AUTO_FREQ_MONTH: g_date_add_months(date, arc->rec_every); break; case AUTO_FREQ_YEAR: g_date_add_years(date, arc->rec_every); break; } DB2( hb_print_date(g_date_get_julian(date), "out:") ); //#1906953 add skip weekend if( arc->weekend == ARC_WEEKEND_SKIP ) { _sched_nextdate_weekend_adjust(date); } } //#2066993/#2067399 relative monthly else { _sched_nextdate_relative(date, arc->rec_ordinal, arc->rec_weekday, arc->rec_every); } DB2( hb_print_date(g_date_get_julian(date), "out:") ); /* get the final post date */ nextpostdate = g_date_get_julian(date); return nextpostdate; } //#1906953 add skip weekend //ui-archive void scheduled_nextdate_weekend_adjust(Archive *arc) { if( arc->weekend == ARC_WEEKEND_SKIP ) { GDate date; g_date_set_julian(&date, arc->nextdate); _sched_nextdate_weekend_adjust(&date); arc->nextdate = g_date_get_julian(&date); } } //ui-archive guint32 scheduled_date_get_next_relative(GDate *date, guint ordinal, guint weekday, guint every) { return _sched_nextdate_relative(date, ordinal, weekday, every); } //hb-report guint32 scheduled_date_get_next_post(GDate *date, Archive *arc, guint32 nextdate) { return _sched_date_get_next_post(date, arc, nextdate); } // hub_scheduled / hb-report gboolean scheduled_is_postable(Archive *arc) { if( !(arc->rec_flags & TF_RECUR) ) return FALSE; if( arc->kacc == 0 ) return FALSE; if( hb_amount_cmp(arc->amount, 0.0) == 0 ) return FALSE; return TRUE; } // hub_scheduled guint32 scheduled_get_latepost_count(GDate *date, Archive *arc, guint32 jrefdate) { guint32 jcurdate = arc->nextdate; guint32 nblate = 0; while (jcurdate <= jrefdate) { jcurdate = _sched_date_get_next_post(date, arc, jcurdate); nblate++; // break if over limit or at 11 max (to display +10) if( nblate >= 11 || ( (arc->rec_flags & TF_LIMIT) && (nblate >= arc->limit) ) ) break; } return nblate; } //used here + hub-scheduled //return date shifted with weekend settings guint32 scheduled_get_txn_real_postdate(guint32 postdate, gint weekend) { DB2( g_print("\n[scheduled] get_txn_real_postdate\n") ); /* manage weekend exception */ if( (weekend == ARC_WEEKEND_BEFORE) || (weekend == ARC_WEEKEND_AFTER) ) { GDate tmpdate; GDateWeekday wday; g_date_set_julian(&tmpdate, postdate); wday = g_date_get_weekday(&tmpdate); DB2( g_print(" wday=%d '%s'\n", wday, WDAY[wday]) ); if( wday >= G_DATE_SATURDAY ) { //here wday is G_DATE_SATURDAY(6) OR G_DATE_SUNDAY(7) if( weekend == ARC_WEEKEND_BEFORE ) return (wday == G_DATE_SATURDAY) ? postdate-1 : postdate-2; else //ARC_WEEKEND_AFTER return (wday == G_DATE_SATURDAY) ? postdate+2 : postdate+1; } } return postdate; } /* return 0 is max number of post is reached */ //used here + hub_scheduled //this modify the arc guint32 scheduled_date_advance(Archive *arc) { GDate date; gushort lastday; DB2( g_print("\n[scheduled] date_advance\n") ); g_date_set_julian(&date, arc->nextdate); // saved the current day number lastday = g_date_get_day(&date); arc->nextdate = _sched_date_get_next_post(&date, arc, arc->nextdate); DB2( g_print(" raw next post date: %02d-%02d-%4d\n", g_date_get_day(&date), g_date_get_month (&date), g_date_get_year(&date) ) ); //todo: review this //# if( !(arc->rec_flags & TF_RELATIVE) ) { //for day > 28 we might have a gap to compensate later if( (arc->rec_freq==AUTO_FREQ_MONTH) || (arc->rec_freq==AUTO_FREQ_YEAR) ) { if( lastday >= 28 ) { DB2( g_print(" lastday:%d, daygap:%d\n", lastday, arc->daygap) ); if( arc->daygap > 0 ) { g_date_add_days (&date, arc->daygap); arc->nextdate = g_date_get_julian (&date); lastday += arc->daygap; DB2( g_print(" adjusted post date: %2d-%2d-%4d\n", g_date_get_day(&date), g_date_get_month (&date), g_date_get_year(&date) ) ); } arc->daygap = CLAMP(lastday - g_date_get_day(&date), 0, 3); DB2( g_print(" daygap is %d\n", arc->daygap) ); } else arc->daygap = 0; } } //#1556289 /* check limit, update and maybe break */ if(arc->rec_flags & TF_LIMIT) { arc->limit--; if(arc->limit <= 0) { arc->flags ^= (TF_LIMIT | TF_RECUR); // invert flags arc->nextdate = 0; } } return arc->nextdate; } //hb-scheduled void scheduled_date_get_show_minmax(gint select, guint32 *mindate, guint32 *maxdate) { GDate *date; guint16 month, year; if( (mindate == NULL) || (maxdate == NULL) ) return; date = g_date_new_julian(GLOBALS->today); switch( select ) { case FLT_SCHEDULED_THISMONTH: case FLT_SCHEDULED_NEXTMONTH: g_date_set_day(date, 1); if( select == FLT_SCHEDULED_NEXTMONTH) g_date_add_months(date, 1); *mindate = g_date_get_julian(date); month = g_date_get_month(date); year = g_date_get_year(date); g_date_add_days(date, g_date_get_days_in_month(month, year)); *maxdate = g_date_get_julian(date) - 1; break; case FLT_SCHEDULED_NEXT30DAYS: *mindate = GLOBALS->today; *maxdate = GLOBALS->today + 30; break; case FLT_SCHEDULED_NEXT60DAYS: *mindate = GLOBALS->today; *maxdate = GLOBALS->today + 60; break; case FLT_SCHEDULED_NEXT90DAYS: *mindate = GLOBALS->today; *maxdate = GLOBALS->today + 90; break; default: *mindate = HB_MINDATE; *maxdate = HB_MAXDATE; break; } g_date_free(date); } /* * return the maximum date a scheduled txn can be posted to */ //hb-scheduled / ui-hbfile guint32 scheduled_date_get_post_max(guint32 start, gint auto_smode, gint auto_nbdays, gint auto_weekday, gint nbmonth) { guint32 nbdays; DB2( g_print("\n[scheduled] get max post date\n") ); switch( auto_smode) { //5.5.8 original algo /* //add until xx of 1 month (excluded) today = g_date_new_julian(GLOBALS->today); //we compute user xx weekday of next month maxdate = g_date_new_julian(GLOBALS->today); g_date_set_day(maxdate, GLOBALS->auto_weekday); if(g_date_get_day (today) >= GLOBALS->auto_weekday) g_date_add_months(maxdate, 1); nbdays = g_date_days_between(today, maxdate); */ //add until xx of the yy month (excluded) //if(auto_smode == 0) case ARC_POSTMODE_PAYOUT: { GDate *tdate, *date; gshort tday; DB2( g_print(" payout %d of %d months\n", auto_weekday, nbmonth) ); tdate = g_date_new_julian(start); tday = g_date_get_day(tdate); //set /xx/xxxx date = g_date_new_julian(start); g_date_set_day(date, auto_weekday); //if today is payout day (or future) if( tday >= auto_weekday ) { DB2( g_print(" day: %d >= %d\n", tday, auto_weekday) ); //we add nbmonth g_date_add_months(date, 1); if( nbmonth > 1 ) { //here we consider start is january //TODO: ? use also fisc_year_day + fisc_year_month for(gshort i=1;iadd 1 month\n") ); g_date_add_months(date, 1); } } } //#2065740 as we now post maxpostdate included: -1 g_date_subtract_days(date, 1); nbdays = g_date_days_between(tdate, date); g_date_free(date); g_date_free(tdate); } break; //add xx days in advance the current date //if(auto_smode == 1) case ARC_POSTMODE_ADVANCE: nbdays = auto_nbdays; break; case ARC_POSTMODE_DUEDATE: default: nbdays = 0; break; } DB2( g_print(" nbdays=%d\n", nbdays) ); DB2( hb_print_date(start + nbdays, "out:") ); return start + nbdays; } //mainwindows / hub-scheduled gint scheduled_post_all_pending(void) { GList *list; gint count = 0; guint32 maxpostdate; DB( g_print("\n[scheduled] -- post_all_pending --\n") ); maxpostdate = scheduled_date_get_post_max(GLOBALS->today, GLOBALS->auto_smode, GLOBALS->auto_nbdays, GLOBALS->auto_weekday, GLOBALS->auto_nbmonths); DB( hb_print_date(maxpostdate, " >maxpostdate") ); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *arc = list->data; if( !(arc->rec_flags & TF_RECUR) ) goto nextarchive; DB( g_print("----\neval %d w.e=%s limit=%d '%s' flags=0x%04x\n", arc->nextdate, hbtk_get_label(CYA_ARC_WEEKEND, arc->weekend), arc->rec_flags & TF_LIMIT ? arc->limit : -1, arc->memo, arc->flags) ); if( !scheduled_is_postable(arc) ) { DB( g_print(" >skip: not postable - auto=%d kacc=%d amt=%.2f \n", arc->flags & TF_RECUR, arc->kacc, arc->amount) ); goto nextarchive; } //TODO: maybe add a security here for(;;) { Transaction *txn; //#2065955 to get weekend before/after posted guint32 jpostdate = scheduled_get_txn_real_postdate(arc->nextdate, arc->weekend); #if MYDEBUG if( arc->nextdate != jpostdate ) DB( g_print(" >shift: %d >> %d\n", arc->nextdate, jpostdate) ); #endif //#2064839 <= if( jpostdate <= maxpostdate ) { DB( g_print(" >post: date=%d (%+d)\n", jpostdate, jpostdate - arc->nextdate) ); //5.5.3 fixed leak as this was outside the loop txn = da_transaction_malloc(); da_transaction_init_from_template(txn, arc); txn->date = jpostdate; /* todo: ? fill in cheque number */ transaction_add(NULL, FALSE, txn); da_transaction_free (txn); count++; //can switch TF_RECUR off, if limit reached scheduled_date_advance(arc); if( !(arc->rec_flags & TF_RECUR) ) { DB( g_print(" >stop: limit reached\n") ); goto nextarchive; } } else { DB( g_print(" >skip: no pending\n") ); goto nextarchive; } } nextarchive: list = g_list_next(list); } GLOBALS->changes_count += count; return count; } homebank-5.9.1/src/ui-flt-widget.h0000664000175000017500000000304214736461415012430 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_FILTER_WIDGET_GTK_H__ #define __HB_FILTER_WIDGET_GTK_H__ /* list display account */ enum { LST_FAVFLT_KEY, LST_FAVFLT_NAME, NUM_LST_FAVFLT }; struct ui_flt_popover_data { Filter *filter; GSimpleActionGroup *actions; GtkWindow *parent; GtkWidget *box; GtkWidget *combobox; GtkWidget *menubutton; }; /* = = = = = = = = = = */ GtkListStore *lst_lst_favfilter_model_new(void); void ui_flt_popover_hub_save (GtkWidget *widget, gpointer user_data); void ui_flt_manage_header_sensitive(GtkWidget *widget, gpointer user_data); GtkWidget *ui_flt_popover_hub_get_combobox(GtkBox *box, gpointer user_data); Filter *ui_flt_popover_hub_get(GtkBox *box, gpointer user_data); GtkWidget *create_popover_widget(GtkWindow *parent, Filter *filter); #endifhomebank-5.9.1/src/ui-category.h0000644000175000017500000000616314736461415012204 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_CATEGORY_GTK_H__ #define __HB_CATEGORY_GTK_H__ enum { LST_DEFCAT_TOGGLE, LST_DEFCAT_DATAS, NUM_LST_DEFCAT }; #define LST_DEFCAT_SORT_NAME 1 #define LST_DEFCAT_SORT_USETXN 2 #define LST_DEFCAT_SORT_USECFG 3 //liststore enum { STO_CAT_DATA, STO_CAT_FULLNAME, NUM_STO_CAT }; enum { CAT_TYPE_ALL, CAT_TYPE_EXPENSE, CAT_TYPE_INCOME }; /* enum { LST_CMBCAT_DATAS, LST_CMBCAT_FULLNAME, LST_CMBCAT_SORTNAME, LST_CMBCAT_NAME, LST_CMBCAT_SUBCAT, NUM_LST_CMBCAT }; */ //TODO: only used into vehicle void ui_cat_entry_popover_clear(GtkBox *box); void ui_cat_entry_popover_sort_type(GtkBox *box, guint type); void ui_cat_entry_popover_add(GtkBox *box, Category *item); GtkWidget *ui_cat_entry_popover_get_entry(GtkBox *box); Category *ui_cat_entry_popover_get(GtkBox *box); guint32 ui_cat_entry_popover_get_key_add_new(GtkBox *box); guint32 ui_cat_entry_popover_get_key(GtkBox *box); void ui_cat_entry_popover_set_active(GtkBox *box, guint32 key); GtkWidget *ui_cat_entry_popover_new(GtkWidget *label); /* = = = = = = = = = = */ guint ui_cat_listview_toggle_to_filter(GtkTreeView *treeview, Filter *filter); void ui_cat_listview_quick_select(GtkTreeView *treeview, const gchar *uri); void ui_cat_listview_add(GtkTreeView *treeview, Category *item, GtkTreeIter *parent); Category *ui_cat_listview_get_selected(GtkTreeView *treeview); Category *ui_cat_listview_get_selected_parent(GtkTreeView *treeview, GtkTreeIter *parent); void ui_cat_listview_remove_selected(GtkTreeView *treeview); void ui_cat_listview_populate(GtkWidget *view, gint type, gchar *needle, gboolean showhidden); GtkWidget *ui_cat_listview_new(gboolean withtoggle, gboolean withcount); /* = = = = = = = = = = */ struct ui_cat_manage_dialog_data { GList *tmp_list; gboolean usagefilled; gint change; GtkWidget *dialog; GActionGroup * actions; gboolean mapped_done; GtkWidget *BT_showhidden; GtkWidget *BT_showusage; GtkWidget *ST_search; GtkWidget *LV_cat; GtkWidget *RE_addreveal; GtkWidget *ST_name1, *ST_name2; //GtkWidget *CM_type; GtkWidget *RA_type; GtkWidget *BT_add; GtkWidget *BT_edit; GtkWidget *BT_merge; GtkWidget *BT_delete; GtkWidget *BT_hide; GtkWidget *BT_expand; GtkWidget *BT_collapse; GtkWidget *LA_category; }; struct catPopContext { GtkTreeModel *model; guint except_key; gint type; }; GtkWidget *ui_cat_manage_dialog (void); #endif homebank-5.9.1/src/ui-currency.c0000644000175000017500000014536415005624304012207 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-currency.h" #include "ui-dialogs.h" #include "ui-widgets.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern Currency4217 iso4217cur[]; extern guint n_iso4217cur; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /** * ui_cur_combobox_get_name: * * get the name of the active curee or -1 * * Return value: a new allocated name tobe freed with g_free * */ gchar * ui_cur_combobox_get_name(GtkComboBox *entry_box) { gchar *cbname; gchar *name = NULL; cbname = (gchar *)gtk_entry_get_text(GTK_ENTRY (gtk_bin_get_child(GTK_BIN (entry_box)))); if( cbname != NULL) { name = g_strdup(cbname); g_strstrip(name); } return name; } /** * ui_cur_combobox_get_key: * * get the key of the active curee * * Return value: the key or 0 * */ guint32 ui_cur_combobox_get_key(GtkComboBox *entry_box) { GtkTreeModel *model; GtkTreeIter iter; guint32 key = 0; if (gtk_combo_box_get_active_iter(entry_box, &iter) == TRUE) { model = gtk_combo_box_get_model(entry_box); gtk_tree_model_get (model, &iter, 1, &key, -1); } return key; } gboolean ui_cur_combobox_set_active(GtkComboBox *entry_box, guint32 key) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; guint32 cbkey; model = gtk_combo_box_get_model(entry_box); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { gtk_tree_model_get (model, &iter, 1, &cbkey, -1); if(cbkey == key) break; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } gtk_combo_box_set_active_iter(entry_box, &iter); return FALSE; } /** * ui_cur_combobox_add: * * Add a single element (useful for dynamics add) * * Return value: -- * */ void ui_cur_combobox_add(GtkComboBox *entry_box, Currency *cur) { if( cur->name != NULL ) { GtkTreeModel *model; GtkTreeIter iter; model = gtk_combo_box_get_model(GTK_COMBO_BOX(entry_box)); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, 0, cur->name, 1, cur->key, -1); } } static void ui_cur_combobox_populate_ghfunc(gpointer key, gpointer value, struct curPopContext *ctx) { GtkTreeIter iter; Currency *cur = value; if( ( cur->key != ctx->except_key ) ) { gtk_list_store_append (GTK_LIST_STORE(ctx->model), &iter); gtk_list_store_set (GTK_LIST_STORE(ctx->model), &iter, 0, cur->name, 1, cur->key, -1); } } void ui_cur_combobox_populate_except(GtkComboBox *entry_box, GHashTable *hash, guint32 except_key) { GtkTreeModel *model; struct curPopContext ctx; DB( g_print ("ui_cur_combobox_populate\n") ); model = gtk_combo_box_get_model(GTK_COMBO_BOX(entry_box)); /* keep our model alive and detach from combobox and completion */ g_object_ref(model); gtk_combo_box_set_model(GTK_COMBO_BOX(entry_box), NULL); /* clear and populate */ ctx.model = model; ctx.except_key = except_key; gtk_list_store_clear (GTK_LIST_STORE(model)); g_hash_table_foreach(hash, (GHFunc)ui_cur_combobox_populate_ghfunc, &ctx); /* reatach our model */ gtk_combo_box_set_model(GTK_COMBO_BOX(entry_box), model); g_object_unref(model); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); } /** * ui_cur_combobox_populate: * * Populate the list and completion * * Return value: -- * */ void ui_cur_combobox_populate(GtkComboBox *entry_box, GHashTable *hash) { ui_cur_combobox_populate_except(entry_box, hash, -1); } static gint ui_cur_combobox_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint ret = 0; gchar *name1, *name2; gtk_tree_model_get(model, a, 0, &name1, -1); gtk_tree_model_get(model, b, 0, &name2, -1); if (name1 == NULL || name2 == NULL) { if (name1 == NULL && name2 == NULL) goto end; ret = (name1 == NULL) ? -1 : 1; } else { ret = g_utf8_collate(name1,name2); } end: g_free(name1); g_free(name2); return ret; } static void ui_cur_combobox_test (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gchar *name; gtk_tree_model_get(tree_model, iter, 0, &name, -1); if( !name ) g_object_set(cell, "text", _("(none)"), NULL); else g_object_set(cell, "text", name, NULL); //leak g_free(name); } /** * ui_cur_combobox_new: * * Create a new curee combobox * * Return value: the new widget * */ GtkWidget * ui_cur_combobox_new(GtkWidget *label) { GtkListStore *store; GtkWidget *combobox; GtkCellRenderer *renderer; store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT ); gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_cur_combobox_compare_func, NULL, NULL); // dothe same for combobox combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); gtk_cell_layout_clear(GTK_CELL_LAYOUT (combobox)); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, "text", 0, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox), renderer, ui_cur_combobox_test, NULL, NULL); g_object_unref(store); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), combobox); gtk_widget_set_size_request (combobox, 10, -1); return combobox; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_cur_listview_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, LST_DEFCUR_TOGGLE, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFCUR_TOGGLE, fixed, -1); /* clean up */ gtk_tree_path_free (path); } static gint ui_cur_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint result = 0; Currency *entry1, *entry2; gchar *name1, *name2; gtk_tree_model_get(model, a, LST_DEFCUR_DATAS, &entry1, -1); gtk_tree_model_get(model, b, LST_DEFCUR_DATAS, &entry2, -1); name1 = (entry1->key == GLOBALS->kcur) ? NULL : entry1->iso_code; name2 = (entry2->key == GLOBALS->kcur) ? NULL : entry2->iso_code; result = hb_string_compare(name1,name2); return result; } static void ui_cur_listview_name_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Currency *entry; gchar *string; gint weight; gtk_tree_model_get(model, iter, LST_DEFCUR_DATAS, &entry, -1); weight = entry->key == GLOBALS->kcur ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; #if MYDEBUG if( entry->key == GLOBALS->kcur ) string = g_strdup_printf ("[%d] %s - %s\n(%s)", entry->key, entry->iso_code, entry->name, _("Base currency")); else string = g_strdup_printf ("[%d] %s - %s", entry->key, entry->iso_code, entry->name); g_object_set(renderer, "weight", weight, "markup", string, NULL); g_free(string); #else if( entry->key == GLOBALS->kcur ) string = g_strdup_printf ("%s - %s\n(%s)", entry->iso_code, entry->name, _("Base currency")); else string = g_strdup_printf ("%s - %s", entry->iso_code, entry->name); g_object_set(renderer, "weight", weight, "markup", string, NULL); g_free(string); #endif } static void ui_cur_listview_symbol_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Currency *entry; gint weight; gtk_tree_model_get(model, iter, LST_DEFCUR_DATAS, &entry, -1); weight = entry->key == GLOBALS->kcur ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; g_object_set(renderer, "weight", weight, "text", entry->symbol, NULL); } static void ui_cur_listview_lastmodified_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Currency *entry; gchar buffer[256]; GDate date; gint weight; gtk_tree_model_get(model, iter, LST_DEFCUR_DATAS, &entry, -1); weight = entry->key == GLOBALS->kcur ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; if(entry->mdate > 0) { g_date_set_julian (&date, entry->mdate); g_date_strftime (buffer, 256-1, PREFS->date_format, &date); //g_snprintf(buf, sizeof(buf), "%d", ope->ope_Date); g_object_set(renderer, "weight", weight, "text", buffer, NULL); } else g_object_set(renderer, "weight", weight, "text", "-", NULL); } static void ui_cur_listview_rate_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Currency *entry; gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; gtk_tree_model_get(model, iter, LST_DEFCUR_DATAS, &entry, -1); if(entry->key == GLOBALS->kcur) g_object_set(renderer, "text", "-", NULL); else { //g_ascii_formatd(formatd_buf, sizeof (formatd_buf), "%.6f", entry->rate); //g_snprintf(formatd_buf, sizeof (formatd_buf), "%f", entry->rate); hb_str_rate(formatd_buf, sizeof (formatd_buf), entry->rate); g_object_set(renderer, "text", formatd_buf, NULL); } } /* = = = = = = = = = = = = = = = = */ void ui_cur_listview_add(GtkTreeView *treeview, Currency *item) { if( item->name != NULL ) { GtkTreeModel *model; GtkTreeIter iter; model = gtk_tree_view_get_model(treeview); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DEFCUR_TOGGLE, FALSE, LST_DEFCUR_DATAS, item, -1); } } guint32 ui_cur_listview_get_selected_key(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Currency *item; gtk_tree_model_get(model, &iter, LST_DEFCUR_DATAS, &item, -1); if( item != NULL ) return item->key; } return 0; } void ui_cur_listview_remove_selected(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_list_store_remove(GTK_LIST_STORE(model), &iter); } } static void ui_cur_listview_populate_ghfunc(gpointer key, gpointer value, GtkTreeModel *model) { GtkTreeIter iter; Currency *item = value; gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DEFCUR_TOGGLE , FALSE, LST_DEFCUR_DATAS, item, -1); } void ui_cur_listview_populate(GtkWidget *view) { GtkTreeModel *model; model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); gtk_list_store_clear (GTK_LIST_STORE(model)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(view), NULL); /* Detach model from view */ /* populate */ g_hash_table_foreach(GLOBALS->h_cur, (GHFunc)ui_cur_listview_populate_ghfunc, model); gtk_tree_view_set_model(GTK_TREE_VIEW(view), model); /* Re-attach model to view */ g_object_unref(model); } /* test */ /* static void ui_cur_listivew_rate_edited_func (GtkCellRendererText *cell, const gchar *path_string, const gchar *new_text, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreeIter iter; g_print("cell edited '%s' path %s\n", new_text, path_string); gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); gtk_tree_model_get_iter (model, &iter, path); Currency *item; gtk_tree_model_get(model, &iter, LST_DEFCUR_DATAS, &item, -1); item->rate = atof(new_text); GLOBALS->changes_count++; gtk_tree_path_free (path); } */ GtkWidget * ui_cur_listview_new(gboolean withtoggle) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; // create list store store = gtk_list_store_new( NUM_LST_DEFCUR, G_TYPE_BOOLEAN, G_TYPE_POINTER ); // treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); // column 1: toggle if( withtoggle == TRUE ) { renderer = gtk_cell_renderer_toggle_new (); column = gtk_tree_view_column_new_with_attributes (_("Visible"), renderer, "active", LST_DEFCUR_TOGGLE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (ui_cur_listview_toggled_cb), store); } gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); // column 1: name renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Name")); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cur_listview_name_cell_data_function, GINT_TO_POINTER(LST_DEFCUR_DATAS), NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column 2: code renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 0.5, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Symbol")); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cur_listview_symbol_cell_data_function, GINT_TO_POINTER(LST_DEFCUR_DATAS), NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column 3: base rate renderer = gtk_cell_renderer_text_new (); //g_object_set (renderer, "editable", TRUE, NULL); g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Exchange rate")); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cur_listview_rate_cell_data_function, GINT_TO_POINTER(LST_DEFCUR_DATAS), NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //g_signal_connect (renderer, "edited", G_CALLBACK (ui_cur_listivew_rate_edited_func), GTK_TREE_MODEL(store)); // column 4: last modified renderer = gtk_cell_renderer_text_new (); //#2004631 date and column title alignement //g_object_set(renderer, "xalign", 0.5, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Last modified")); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cur_listview_lastmodified_cell_data_function, GINT_TO_POINTER(LST_DEFCUR_DATAS), NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // treeview attribute //gtk_tree_view_set_search_column(GTK_TREE_VIEW(treeview), 1); //gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), TRUE); //gtk_tree_view_set_reorderable (GTK_TREE_VIEW(view), TRUE); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFCUR_DATAS, ui_cur_listview_compare_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DEFCUR_DATAS, GTK_SORT_ASCENDING); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); return treeview; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* ** update the number sample label */ static void ui_cur_edit_dialog_update_sample(GtkWidget *widget, gpointer user_data) { struct ui_cur_edit_dialog_data *data; Currency cur; gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; gchar buf[128]; DB( g_printf("[ui_cur_edit] update sample\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); cur.symbol = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_symbol)); cur.sym_prefix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_symisprefix)); cur.decimal_char = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_decimalchar)); cur.grouping_char = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_groupingchar)); cur.frac_digits = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_fracdigits)); da_cur_initformat (&cur); DB( g_print("fmt: %s\n", cur.format) ); g_ascii_formatd(formatd_buf, sizeof (formatd_buf), cur.format, HB_NUMBER_SAMPLE); hb_str_formatd(buf, 127, formatd_buf, &cur, TRUE); gtk_label_set_text(GTK_LABEL(data->LB_sample), buf); } static void ui_cur_edit_dialog_set(GtkWidget *widget, Currency *cur) { struct ui_cur_edit_dialog_data *data; Currency *base; gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; gchar label[128]; DB( g_printf("[ui_cur_edit] set\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); g_snprintf(label, 127, "%s - %s", cur->iso_code, cur->name); gtk_label_set_text (GTK_LABEL(data->LB_name), label); base = da_cur_get(GLOBALS->kcur); g_snprintf(label, 127, "1 %s _=", base->iso_code); gtk_label_set_text_with_mnemonic (GTK_LABEL(data->LB_rate), label); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_rate), cur->rate); da_cur_initformat(cur); g_ascii_formatd(formatd_buf, sizeof (formatd_buf), cur->format, HB_NUMBER_SAMPLE); hb_str_formatd(label, 127, formatd_buf, cur, TRUE); gtk_label_set_text (GTK_LABEL(data->LB_sample), label); hbtk_entry_set_text(GTK_ENTRY(data->ST_symbol), cur->symbol); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_symisprefix), cur->sym_prefix); hbtk_entry_set_text(GTK_ENTRY(data->ST_decimalchar), cur->decimal_char); hbtk_entry_set_text(GTK_ENTRY(data->ST_groupingchar), cur->grouping_char); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_fracdigits), cur->frac_digits); } static void ui_cur_edit_dialog_get(GtkWidget *widget, Currency *cur) { struct ui_cur_edit_dialog_data *data; gdouble rate; DB( g_printf("[ui_cur_edit] get\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); hbtk_entry_replace_text(GTK_ENTRY(data->ST_symbol), &cur->symbol); cur->sym_prefix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_symisprefix)); hbtk_entry_replace_text(GTK_ENTRY(data->ST_decimalchar), &cur->decimal_char); hbtk_entry_replace_text(GTK_ENTRY(data->ST_groupingchar), &cur->grouping_char); cur->frac_digits = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_fracdigits)); da_cur_initformat(cur); rate = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_rate)); if(cur->rate != rate) { cur->rate = rate; cur->mdate = GLOBALS->today; } } void ui_cur_edit_dialog_new(GtkWindow *parent, Currency *cur) { struct ui_cur_edit_dialog_data *data; GtkWidget *dialog, *content_area, *content_grid, *group_grid; GtkWidget *label, *widget, *expander; gint crow, row; data = g_malloc0(sizeof(struct ui_cur_edit_dialog_data)); if(!data) return; dialog = gtk_dialog_new_with_buttons ( _("Edit currency"), GTK_WINDOW (parent), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_printf("[ui_cur_edit] new dialog=%p, inst_data=%p\n", dialog, data) ); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (content_area), content_grid); crow = 0; // group :: Currency group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(_("Currency")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = make_label(NULL, 0, 0.5); data->LB_name = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); // group :: exchange group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(_("Exchange rate")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label(NULL, 0, 0.5); data->LB_rate = label; gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_exchange_rate(label); data->NB_rate = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); gtk_widget_set_sensitive(group_grid, (GLOBALS->kcur == cur->key) ? FALSE : TRUE); // group :: format group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(_("Format")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row++; widget = make_label(NULL, 0, 0.5); data->LB_sample = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; expander = gtk_expander_new_with_mnemonic (_("_Customize")); gtk_grid_attach (GTK_GRID (group_grid), expander, 1, row, 2, 1); group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_expander_set_child (GTK_EXPANDER(expander), group_grid); row = 1; label = make_label_widget(_("_Symbol:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string_maxlength(label, 3); data->ST_symbol = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Is pre_fix")); data->CM_symisprefix = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Decimal char:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string_maxlength(label, 1); data->ST_decimalchar = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Frac digits:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_numeric(label, 0.0, 8.0); data->NB_fracdigits = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Grouping char:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string_maxlength(label, 1); data->ST_groupingchar = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); //gtk_window_resize(GTK_WINDOW(dialog), 400/PHI, 400); ui_cur_edit_dialog_set(dialog, cur); gtk_widget_show_all(content_area); //signals g_signal_connect (data->ST_symbol , "changed", G_CALLBACK (ui_cur_edit_dialog_update_sample), NULL); g_signal_connect (data->CM_symisprefix, "toggled", G_CALLBACK (ui_cur_edit_dialog_update_sample), NULL); g_signal_connect (data->ST_decimalchar , "changed", G_CALLBACK (ui_cur_edit_dialog_update_sample), NULL); g_signal_connect (data->ST_groupingchar, "changed", G_CALLBACK (ui_cur_edit_dialog_update_sample), NULL); g_signal_connect (data->NB_fracdigits, "value-changed", G_CALLBACK (ui_cur_edit_dialog_update_sample), NULL); // wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { ui_cur_edit_dialog_get(dialog, cur); } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ enum { LST_CURSEL_NAME, LST_CURSEL_ISO, LST_CURSEL_FULLNAME, LST_CURSEL_DATA, NUM_LST_CURSEL }; static void ui_cur_select_rowactivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct ui_cur_select_dialog_data *data = userdata; gtk_dialog_response(GTK_DIALOG(data->dialog), GTK_RESPONSE_ACCEPT); } static GtkTreeModel *ui_cur_select_model_create (void) { guint i = 0; GtkListStore *store; GtkTreeIter iter; Currency4217 *cur; gchar buffer[255]; /* create list store */ store = gtk_list_store_new (NUM_LST_CURSEL, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, NULL ); for (i = 0; i< n_iso4217cur; i++) { cur = &iso4217cur[i]; g_snprintf(buffer, 255-1, "%s - %s", cur->curr_iso_code, cur->name); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, LST_CURSEL_NAME, cur->name, LST_CURSEL_ISO, cur->curr_iso_code, LST_CURSEL_FULLNAME, buffer, LST_CURSEL_DATA, cur, -1); } return GTK_TREE_MODEL (store); } static Currency4217 *ui_cur_select_dialog_get_langue(struct ui_cur_select_dialog_data *data) { GtkTreeSelection *treeselection; gboolean selected; GtkTreeModel *model; GtkTreeIter iter; Currency4217 *curfmt = NULL; DB( g_printf("\n[ui_cur_select] get langue\n") ); treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_cur)); selected = gtk_tree_selection_get_selected(treeselection, &model, &iter); if(selected) { gtk_tree_model_get(model, &iter, LST_CURSEL_DATA, &curfmt, -1); DB( g_printf(" - iso is '%s'\n", curfmt->curr_iso_code) ); } return curfmt; } static void ui_cur_select_search_changed_cb (GtkWidget *widget, gpointer user_data) { struct ui_cur_select_dialog_data *data = user_data; DB( g_printf("\n[ui_cur_select] search changed\n") ); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(data->modelfilter)); } /* valid iso is empoty or 3 capital digit */ static guint currency_iso_code_valid(gchar *str) { guint n = 0; while( *str ) { if( *str >= 'A' && *str <= 'Z' ) n++; str++; } return n; } static void ui_cur_select_custom_validate_cb(GtkWidget *widget, gpointer user_data) { struct ui_cur_select_dialog_data *data = user_data; gboolean custom; gboolean valid = TRUE; const gchar *iso, *name; guint len; DB( g_printf("\n[ui_cur_select] custom validate\n") ); custom = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_custom)); DB( g_print(" custom=%d\n", custom) ); //custom if( custom == TRUE ) { valid = FALSE; name = gtk_entry_get_text (GTK_ENTRY (data->ST_custname)); iso = gtk_entry_get_text (GTK_ENTRY (data->ST_custiso)); len = currency_iso_code_valid((gchar *)iso); DB( g_print(" name='%d', iso='%d'\n", (gint)strlen(name), len) ); if( (len==0 || len==3) && (strlen(name) >= 3 ) ) { valid = TRUE; // don't allow to enter stand 4217 iso code if( len == 3 ) { Currency4217 *stdcur = iso4217format_get((gchar *)iso); if(stdcur != NULL) valid = FALSE; } } } gtk_dialog_set_response_sensitive(GTK_DIALOG(data->dialog), GTK_RESPONSE_ACCEPT, valid); } static void ui_cur_select_custom_activate_cb(GtkWidget *widget, gpointer user_data) { struct ui_cur_select_dialog_data *data = user_data; gboolean custom; DB( g_printf("\n[ui_cur_select] custom activate\n") ); custom = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_custom)); DB( g_print(" custom=%d\n", custom) ); gtk_widget_set_sensitive(data->ST_search, !custom); gtk_widget_set_sensitive(data->LV_cur, !custom); hb_widget_visible (data->LB_custname, custom); hb_widget_visible (data->ST_custname, custom); hb_widget_visible (data->LB_custiso, custom); hb_widget_visible (data->ST_custiso, custom); if(custom) { gtk_tree_selection_unselect_all(gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_cur))); gtk_window_set_focus(GTK_WINDOW(data->dialog), data->ST_custname); } ui_cur_select_custom_validate_cb(data->dialog, data); } static gboolean ui_cur_select_model_func_visible (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { // Visible if row is non-empty and first column is “HI” gchar *str; gboolean visible = TRUE; GtkEntry *entry = data; if(!GTK_IS_ENTRY(entry)) return TRUE; gchar *needle = g_ascii_strdown(gtk_entry_get_text(entry), -1); gtk_tree_model_get (model, iter, LST_CURSEL_FULLNAME, &str, -1); gchar *haystack = g_ascii_strdown(str, -1); if (str && g_strrstr (haystack, needle) == NULL) { visible = FALSE; } DB( g_print("filter: '%s' '%s' %d\n", str, needle, visible) ); g_free(haystack); g_free(needle); g_free (str); return visible; } gint ui_cur_select_dialog_new(GtkWindow *parent, gint select_mode, struct curSelectContext *ctx) { struct ui_cur_select_dialog_data *data; GtkWidget *dialog, *content_area, *content_grid, *group_grid; GtkWidget *scrollwin, *treeview, *label, *widget; gint crow, row; data = g_malloc0(sizeof(struct ui_cur_select_dialog_data)); if(!data) return 0; dialog = gtk_dialog_new_with_buttons ( (select_mode == CUR_SELECT_MODE_BASE) ? _("Select base currency") : _("Select currency"), GTK_WINDOW (parent), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_printf("\n[ui_cur_select] new dialog=%p, inst_data=%p\n", dialog, data) ); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (content_area), content_grid); crow = 0; // group :: Search group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); row = 0; widget = make_search(); data->ST_search = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1); row++; scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_grid_attach (GTK_GRID (group_grid), scrollwin, 1, row, 4, 1); gtk_widget_set_vexpand (scrollwin, TRUE); //test treefilter data->model = ui_cur_select_model_create(); data->modelfilter = gtk_tree_model_filter_new(GTK_TREE_MODEL(data->model), NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(data->modelfilter), ui_cur_select_model_func_visible, data->ST_search, NULL); data->sortmodel = gtk_tree_model_sort_new_with_model(data->modelfilter); //treeview treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(data->sortmodel)); data->LV_cur = treeview; //gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), LST_CURSEL_NAME); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(data->sortmodel), LST_CURSEL_NAME, GTK_SORT_ASCENDING); //g_object_unref (model); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); // populate list GtkCellRenderer *renderer; GtkTreeViewColumn *column; renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, "text", LST_CURSEL_NAME, NULL); gtk_tree_view_column_set_sort_column_id (column, LST_CURSEL_NAME); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("ISO Code"), renderer, "text", LST_CURSEL_ISO, NULL); gtk_tree_view_column_set_sort_column_id (column, LST_CURSEL_ISO); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); // group :: Custom row++; widget = gtk_check_button_new_with_mnemonic (_("Add a custom _currency")); data->CM_custom = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1); //custom currency (crypto and discontinued) row++; label = make_label_widget(_("_Name:")); data->LB_custname = label; gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string(label); data->ST_custname = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); label = make_label_widget(_("_ISO:")); data->LB_custiso = label; gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); widget = make_string_maxlength(label, 3); data->ST_custiso = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 4, row, 1, 1); g_signal_connect (G_OBJECT (data->CM_custom) , "toggled", G_CALLBACK (ui_cur_select_custom_activate_cb), data); g_signal_connect (G_OBJECT (data->ST_custname), "changed", G_CALLBACK (ui_cur_select_custom_validate_cb), data); g_signal_connect (G_OBJECT (data->ST_custiso) , "changed", G_CALLBACK (ui_cur_select_custom_validate_cb), data); gtk_window_resize(GTK_WINDOW(dialog), 400/PHI, 400); gtk_widget_show_all(content_area); if( select_mode != CUR_SELECT_MODE_CUSTOM ) { hb_widget_visible (data->CM_custom, FALSE); } hb_widget_visible (data->LB_custname, FALSE); hb_widget_visible (data->ST_custname, FALSE); hb_widget_visible (data->LB_custiso, FALSE); hb_widget_visible (data->ST_custiso, FALSE); // signals g_signal_connect (G_OBJECT(data->ST_search), "search-changed", G_CALLBACK (ui_cur_select_search_changed_cb), data); g_signal_connect (G_OBJECT(data->LV_cur), "row-activated", G_CALLBACK (ui_cur_select_rowactivated), data); //init picker struct memset(ctx, 0, sizeof(struct curSelectContext)); // wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { gboolean custom; custom = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_custom)); if(!custom) { ctx->cur_4217 = ui_cur_select_dialog_get_langue(data); } else //never fill custom in base mode if( select_mode != CUR_SELECT_MODE_BASE ) { ctx->cur_name = g_strdup(gtk_entry_get_text (GTK_ENTRY(data->ST_custname))); ctx->cur_iso = g_strdup(gtk_entry_get_text (GTK_ENTRY(data->ST_custiso))); } } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return result; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ gint ui_cur_manage_dialog_update_currencies(GtkWindow *parent, GString *node) { GError *error = NULL; gboolean retcode = FALSE; DB( g_printf("\n[ui_cur_manage] update currencies\n") ); // do nothing if just the base currency if(da_cur_length() <= 1) { DB( g_print(" abort: no currency\n") ); return TRUE; } //TODO: add a force option ? // add 5.6.2 as the online currency only update every 24h // avoid to call the API too often // this set into hbfile_file_get_time_modified() // removed in 5.7 /*if( GLOBALS->xhb_obsoletecurr == FALSE ) { DB( g_print(" abort: file saved less than 24h\n") ); //TODO maybe ui_dialog_msg_infoerror(GTK_WINDOW(parent), GTK_MESSAGE_ERROR, _("Update online error"), _("Already been updated in last 24h"), NULL ); return TRUE; }*/ retcode = currency_online_sync(&error, node); DB( g_print("retcode: %d\n", retcode) ); if(!retcode) { gchar *msg = _("Unknown error"); if( error ) msg = error->message; g_warning("update online: '%s'", msg); ui_dialog_msg_infoerror(GTK_WINDOW(parent), GTK_MESSAGE_ERROR, _("Update online error"), msg, NULL ); if( error ) g_error_free (error); } return retcode; } static void ui_cur_manage_dialog_sync(GtkWidget *widget, gpointer user_data) { struct ui_cur_manage_dialog_data *data; GtkTextBuffer *buffer; GtkTextIter iter; GString *node; gboolean retcode; DB( g_printf("\n[ui_cur_manage] sync online\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); node = g_string_new(NULL); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (data->TB_log)); gtk_text_buffer_set_text (buffer, "", 0); retcode = ui_cur_manage_dialog_update_currencies(GTK_WINDOW(data->dialog), node); gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); gtk_text_buffer_insert (buffer, &iter, node->str, -1); g_string_free(node, TRUE); if(retcode == TRUE) { gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_cur)); //todo: (or not) msg with changes } } static void ui_cur_manage_dialog_update(GtkWidget *treeview, gpointer user_data) { struct ui_cur_manage_dialog_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; Currency *item; gboolean sensitive; DB( g_printf("\n[ui_cur_manage] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); sensitive = da_cur_length() <= 1 ? FALSE : TRUE; gtk_widget_set_sensitive (data->BB_update, sensitive); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cur)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DEFCUR_DATAS, &item, -1); gtk_widget_set_sensitive(data->BT_edit, TRUE); sensitive = !(currency_is_used(item->key)); //gtk_widget_set_sensitive(data->BT_mov, sensitive); //gtk_widget_set_sensitive(data->BT_mod, sensitive); gtk_widget_set_sensitive(data->BT_del, sensitive); //disable set as base on actual base currency //disable on custom currency sensitive = TRUE; if( (item->key == GLOBALS->kcur) || (item->flags & CF_CUSTOM) ) sensitive = FALSE; gtk_widget_set_sensitive(data->BT_base, sensitive); } else { gtk_widget_set_sensitive(data->BT_edit, FALSE); gtk_widget_set_sensitive(data->BT_del , FALSE); gtk_widget_set_sensitive(data->BT_base, FALSE); } } static void ui_cur_manage_dialog_add(GtkWidget *widget, gpointer user_data) { struct ui_cur_manage_dialog_data *data; struct curSelectContext selectCtx; gint result; gboolean added; DB( g_printf("\n[ui_cur_manage] add\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); result = ui_cur_select_dialog_new(GTK_WINDOW(data->dialog), CUR_SELECT_MODE_CUSTOM, &selectCtx); if( result == GTK_RESPONSE_ACCEPT ) { Currency *item = NULL; added = FALSE; if( selectCtx.cur_4217 != NULL ) { Currency4217 *curfmt; curfmt = selectCtx.cur_4217; DB( g_printf("- user selected: '%s' '%s'\n", curfmt->curr_iso_code, curfmt->name) ); item = da_cur_get_by_iso_code(curfmt->curr_iso_code); if( item == NULL ) { item = currency_add_from_user(curfmt); added = TRUE; } } else { DB( g_printf("- user custom: '%s' '%s'\n", selectCtx.cur_iso, selectCtx.cur_name) ); item = da_cur_malloc (); item->flags |= CF_CUSTOM; item->name = g_strdup(selectCtx.cur_name); item->iso_code = g_strdup(selectCtx.cur_iso); item->symbol = g_strdup(item->iso_code); item->frac_digits = 2; item->sym_prefix = FALSE; item->decimal_char = g_strdup("."); item->grouping_char = NULL; added = da_cur_append(item); if( !added ) { //not append (duplicate) da_cur_free (item); item = NULL; } g_free(selectCtx.cur_iso); g_free(selectCtx.cur_name); } if( added ) { ui_cur_listview_add(GTK_TREE_VIEW(data->LV_cur), item); gtk_tree_sortable_sort_column_changed(GTK_TREE_SORTABLE(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cur)))); ui_cur_manage_dialog_update (widget, user_data); GLOBALS->changes_count++; } } } static void ui_cur_manage_dialog_modify(GtkWidget *widget, gpointer user_data) { struct ui_cur_manage_dialog_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_printf("\n[ui_cur_manage] modify\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cur)); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Currency *item; gtk_tree_model_get(model, &iter, LST_DEFCUR_DATAS, &item, -1); if( item!= NULL ) { ui_cur_edit_dialog_new(GTK_WINDOW(data->dialog), item); GLOBALS->changes_count++; } } } static void ui_cur_manage_dialog_delete(GtkWidget *widget, gpointer user_data) { struct ui_cur_manage_dialog_data *data; guint32 key; gboolean do_delete, result; DB( g_printf("\n[ui_cur_manage] delete\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); do_delete = TRUE; key = ui_cur_listview_get_selected_key(GTK_TREE_VIEW(data->LV_cur)); if( key > 0 ) { Currency *cur; gchar *title; gchar *secondtext; if( currency_is_used(key) == TRUE ) { do_delete = FALSE; } else { cur = da_cur_get(key); title = g_strdup_printf ( _("Are you sure you want to permanently delete '%s'?"), cur->name); secondtext = _("If you delete a currency, it will be permanently lost."); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Delete"), TRUE ); g_free(title); do_delete = (result == GTK_RESPONSE_OK) ? TRUE :FALSE; } if( do_delete ) { ui_cur_listview_remove_selected(GTK_TREE_VIEW(data->LV_cur)); da_cur_delete(key); ui_cur_manage_dialog_update (widget, user_data); data->change++; } } } static void ui_cur_manage_dialog_setbase(GtkWidget *widget, gpointer user_data) { struct ui_cur_manage_dialog_data *data; guint32 key; gboolean do_change; DB( g_printf("\n[ui_cur_manage] setbase\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); key = ui_cur_listview_get_selected_key(GTK_TREE_VIEW(data->LV_cur)); if( key > 0 ) { do_change = ui_dialog_msg_question( GTK_WINDOW(data->dialog), _("Change the base currency"), _("If you proceed, rates of other currencies\n" "will be set to 0, don't forget to update it"), NULL ); if(do_change == GTK_RESPONSE_YES) { hbfile_change_basecurrency(key); gtk_tree_view_columns_autosize(GTK_TREE_VIEW(data->LV_cur)); } } } static void ui_cur_manage_dialog_selection(GtkTreeSelection *treeselection, gpointer user_data) { ui_cur_manage_dialog_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static void ui_cur_manage_dialog_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { //model = gtk_tree_view_get_model(treeview); //gtk_tree_model_get_iter_first(model, &iter); //if(gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), &iter) == FALSE) //{ ui_cur_manage_dialog_modify(GTK_WIDGET(treeview), NULL); //} } static void ui_cur_manage_dialog_setup(struct ui_cur_manage_dialog_data *data) { DB( g_printf("\n[ui_cur_manage] setup\n") ); DB( g_print(" init data\n") ); data->change = 0; DB( g_print(" populate\n") ); ui_cur_listview_populate(data->LV_cur); //ui_cur_combobox_populate(data->CY_curr, GLOBALS->h_cur); //ui_cur_combobox_set_active(GTK_COMBO_BOX(data->CY_curr), GLOBALS->kcur); //DB( g_print(" set widgets default\n") ); DB( g_print(" connect widgets signals\n") ); //g_signal_connect (G_OBJECT (data->ST_name), "activate", G_CALLBACK (ui_cur_manage_dialog_add), NULL); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cur)), "changed", G_CALLBACK (ui_cur_manage_dialog_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_cur), "row-activated", G_CALLBACK (ui_cur_manage_dialog_onRowActivated), NULL); g_signal_connect (G_OBJECT (data->BT_add), "clicked", G_CALLBACK (ui_cur_manage_dialog_add), NULL); g_signal_connect (G_OBJECT (data->BT_del), "clicked", G_CALLBACK (ui_cur_manage_dialog_delete), NULL); g_signal_connect (G_OBJECT (data->BT_edit), "clicked", G_CALLBACK (ui_cur_manage_dialog_modify), NULL); //g_signal_connect (G_OBJECT (data->BT_mov), "clicked", G_CALLBACK (ui_cur_manage_dialog_move), NULL); g_signal_connect (G_OBJECT (data->BT_base), "clicked", G_CALLBACK (ui_cur_manage_dialog_setbase), NULL); } static gboolean ui_cur_manage_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct ui_cur_manage_dialog_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_printf("\n[ui_cur_manage] mapped\n") ); ui_cur_manage_dialog_setup(data); ui_cur_manage_dialog_update(data->LV_cur, NULL); data->mapped_done = TRUE; return FALSE; } GtkWidget *ui_cur_manage_dialog (void) { struct ui_cur_manage_dialog_data *data; GtkWidget *dialog, *content_area, *content_grid, *group_grid, *vbox, *bbox, *tbar; GtkWidget *widget, *label, *scrollwin, *treeview, *expander; gint crow, row, w, h, dw, dh; data = g_malloc0(sizeof(struct ui_cur_manage_dialog_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Currencies"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 1:1 dw = (dh * 1) / 1; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our window private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_printf("[ui_cur_manage] new dialog=%p, inst_data=%p\n", dialog, data) ); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_LARGE); hbtk_box_prepend (GTK_BOX (content_area), content_grid); crow = 0; // group :: -------- group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); row = 1; bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); data->BB_update = bbox; gtk_grid_attach (GTK_GRID(group_grid), bbox, 0, row, 2, 1); widget = make_image_button (ICONNAME_HB_REFRESH, NULL); gtk_box_prepend (GTK_BOX(bbox), widget); g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (ui_cur_manage_dialog_sync), NULL); widget = make_label_widget (_("Update online")); gtk_box_prepend(GTK_BOX(bbox), widget); //5.7.2 log row++; expander = gtk_expander_new_with_mnemonic(_("Call log")); gtk_widget_set_hexpand(expander, TRUE); gtk_grid_attach (GTK_GRID (group_grid), expander, 0, row, 2, 1); label = gtk_text_view_new(); data->TB_log = label; scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_size_request (scrollwin, -1, 128); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), label); //gtk_widget_set_hexpand (scrollwin, TRUE); //gtk_widget_set_vexpand (scrollwin, TRUE); gtk_expander_set_child(GTK_EXPANDER(expander), scrollwin); //hb_widget_set_margin(GTK_WIDGET(scrollwin), SPACING_MEDIUM); // list row++; vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_grid_attach (GTK_GRID (group_grid), vbox, 0, row, 2, 1); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX(vbox), scrollwin); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), HB_MINHEIGHT_LIST); treeview = ui_cur_listview_new(FALSE); data->LV_cur = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_set_vexpand (scrollwin, TRUE); gtk_widget_set_hexpand (scrollwin, TRUE); tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_ADD, _("Add")); data->BT_add = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); data->BT_del = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_EDIT, _("Edit")); data->BT_edit = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = gtk_button_new_with_mnemonic(_("Set as base")); data->BT_base = widget; gtk_box_prepend(GTK_BOX(bbox), widget); // connect dialog signals g_signal_connect (dialog, "map-event", G_CALLBACK (ui_cur_manage_mapped), &dialog); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all (dialog); //wait for the user gtk_dialog_run (GTK_DIALOG (dialog)); // cleanup and destroy GLOBALS->changes_count += data->change; gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/src/hb-tag.h0000644000175000017500000000370714736461415011117 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_TAG_H__ #define __HB_TAG_H__ #include "hb-types.h" struct _tag { guint32 key; gchar *name; /* unsaved datas */ //gboolean flt_select; guint16 nb_use_txn; guint16 nb_use_all; //guint usage_count; }; void da_tag_free(Tag *item); Tag *da_tag_malloc(void); void da_tag_destroy(void); void da_tag_new(void); guint da_tag_length(void); gboolean da_tag_create_none(void); gboolean da_tag_delete(guint32 key); gboolean da_tag_insert(Tag *acc); gboolean da_tag_append(Tag *acc); Tag *da_tag_append_if_new(gchar *rawname); guint32 da_tag_get_max_key(void); Tag *da_tag_get_by_name(gchar *name); Tag *da_tag_get(guint32 key); void da_tag_consistency(Tag *item); gboolean tags_equal(guint32 *stags, guint32 *dtags); guint tags_count(guint32 *tags); guint32 *tags_clone(guint32 *tags); guint32 *tags_parse(const gchar *tagstring); gchar *tags_tostring(guint32 *tags); gint tags_delete_unused(void); void tags_fill_usage(void); void tag_move(guint32 key1, guint32 key2); gboolean tag_rename(Tag *item, const gchar *newname); GList *tag_glist_sorted(gint column); gboolean tag_load_csv(gchar *filename, gchar **error); void tag_save_csv(gchar *filename); #endif homebank-5.9.1/src/hb-preferences.h0000644000175000017500000001432014775773122012642 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_PREFERENCES_H__ #define __HB_PREFERENCES_H__ #include "hb-currency.h" #include "list-account.h" #include "list-scheduled.h" #define DEFAULT_FORMAT_DATE "%x" #define MAX_FRAC_DIGIT 6 //Tango dark #define DEFAULT_EXP_COLOR "#ce5c00" //Orange #define DEFAULT_INC_COLOR "#4e9a36" //Chameleon #define DEFAULT_WARN_COLOR "#a40000" //Scarlett Red #define DEFAULT_FUTURE_BG_COLOR "#204a87" /* ** Preference datas */ struct WinGeometry { gint l, t, w, h, s; }; typedef enum { HB_PREF_WINGEO_NONE, HB_PREF_WINGEO_DEFAULT, HB_PREF_WINGEO_SCREEN, HB_PREF_WINGEO_NETBOOK, //1024x600 HB_PREF_WINGEO_HD, //1366x768 HB_PREF_WINGEO_HDPLUS, //1600x900 HB_PREF_WINGEO_FHD, //1920x1080 } HbPrefWinGeoPreset; struct Preferences { //--general gboolean showsplash; gboolean showwelcome; gboolean loadlast; gboolean appendscheduled; gboolean do_update_currency; //top spending //gint date_range_wal; gint rep_maxspenditems; //--interface gboolean custom_colors; gboolean custom_bg_future; gshort grid_lines; gboolean rep_smallfont; gshort toolbar_style; gboolean gtk_darktheme; gchar *icontheme; gboolean icon_symbolic; gboolean gtk_override; gshort gtk_fontsize; gboolean color_use_palette; gchar *color_exp; gchar *color_inc; gchar *color_warn; gchar *color_bg_future; //locale gchar *language; gchar *date_format; gshort fisc_year_day; gshort fisc_year_month; gboolean vehicle_unit_ismile; // true if unit is mile, default Km gboolean vehicle_unit_isgal; // true if unit is gallon, default Liter //transactions //--general gboolean showremind; gboolean showvoid; gboolean includeremind; //--safety gboolean safe_lock_recon; gboolean safe_pend_recon; gboolean safe_pend_past; gshort safe_pend_past_days; gshort padx; //-- ledger gint date_range_txn; gint date_future_nbdays; gboolean hidereconciled; //-- dialog gboolean heritdate; gboolean txn_memoacp; gshort txn_memoacp_days; gboolean txn_showtemplate; gboolean txn_showconfirm; //--transfer gboolean xfer_showdialog; gshort xfer_daygap; gboolean xfer_syncdate; gboolean xfer_syncstat; //--paymode gint lst_paymode[NUM_PAYMODE_KEY+1]; //import/export gint dtex_datefmt; gint dtex_daygap; gint dtex_ofxname; gint dtex_ofxmemo; gboolean dtex_qifmemo; gboolean dtex_qifswap; gboolean dtex_ucfirst; gint dtex_csvsep; //report options gint date_range_rep; gint report_color_scheme; gboolean stat_byamount; gboolean stat_showrate; gboolean stat_showdetail; gboolean stat_includexfer; gboolean budg_showdetail; gboolean budg_unexclsub; //5.7 gboolean rep_forcast; gint rep_forecat_nbmonth; //backup option gboolean bak_is_automatic; gshort bak_max_num_copies; //folders gchar *path_hbfile; gchar *path_hbbak; gchar *path_import; gchar *path_export; gchar *path_attach; //currency api gchar *api_rate_url; gchar *api_rate_key; //euro zone gboolean euro_active; gint euro_country; gboolean euro_mceii; gdouble euro_value; Currency minor_cur; //---- others data (not in pref dialog) ----- gboolean dtex_nointro; gboolean dtex_dodefpayee; gboolean dtex_doautoassign; gchar IntCurrSymbol[8]; gint lst_impope_columns[NUM_LST_DSPOPE+1]; //register list column gint lst_ope_columns[NUM_LST_DSPOPE+1]; gint lst_ope_col_width[NUM_LST_DSPOPE+1]; gint lst_ope_sort_id; // -- implicit -- gint lst_ope_sort_order; // -- implicit -- //detail list column gint lst_det_columns[NUM_LST_DSPOPE+1]; gint lst_det_col_width[NUM_LST_DSPOPE+1]; /* windows/dialogs size an position */ struct WinGeometry wal_wg; struct WinGeometry acc_wg; struct WinGeometry sta_wg; struct WinGeometry tme_wg; struct WinGeometry ove_wg; struct WinGeometry bud_wg; struct WinGeometry cst_wg; struct WinGeometry txn_wg; struct WinGeometry dbud_wg; // main window stuffs gboolean wal_toolbar; gboolean wal_totchart; gboolean wal_timchart; gboolean wal_upcoming; gint wal_vpaned; gint wal_hpaned; //home panel gshort pnl_acc_col_acc_width; gint lst_acc_columns[NUM_LST_COL_DSPACC+1]; gshort pnl_acc_show_by; //hub total/time gshort hub_tot_view; gshort hub_tot_range; gshort hub_tot_raw; gshort hub_tim_view; gshort hub_tim_range; gshort hub_tim_raw; //5.8 scheduled column order gint lst_sch_columns[NUM_COL_SCH_UID+1]; gshort pnl_upc_col_pay_show; gshort pnl_upc_col_pay_width; gshort pnl_upc_col_cat_show; gshort pnl_upc_col_cat_width; gshort pnl_upc_col_mem_show; gshort pnl_upc_col_mem_width; gint pnl_upc_range; gchar *pnl_list_tab; //vehiclecost units (mile/gal or km/liters) gchar *vehicle_unit_dist0; gchar *vehicle_unit_dist1; gchar *vehicle_unit_vol; gchar *vehicle_unit_100; gchar *vehicle_unit_distbyvol; //unsaved gushort lastlvl1, lastlvl2; }; gint homebank_pref_list_column_get(gint *cols_id, gint uid, gint maxcol); void homebank_pref_setdefault_lst_ope_columns(void); void homebank_pref_setdefault_lst_det_columns(void); void homebank_pref_setdefault_lst_sch_columns(void); void homebank_pref_setdefault_win(void); void homebank_prefs_set_default(void); void homebank_pref_free(void); void homebank_pref_createformat(void); void homebank_pref_init_measurement_units(void); void homebank_pref_icon_symbolic(gboolean active); void homebank_pref_apply_scheme(void); void homebank_pref_apply(void); gboolean homebank_pref_load(void); gboolean homebank_pref_save(void); void homebank_pref_setdefault(void); #endif homebank-5.9.1/src/gtk-chart.h0000644000175000017500000001634614736461415011644 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __GTK_CHART_H__ #define __GTK_CHART_H__ #include "gtk-chart-colors.h" G_BEGIN_DECLS #define GTK_TYPE_CHART (gtk_chart_get_type ()) #define GTK_CHART(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CHART, GtkChart)) #define GTK_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CHART, GtkChartClass) #define GTK_IS_CHART(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CHART)) #define GTK_IS_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CHART)) #define GTK_CHART_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CHART, GtkChartClass)) typedef struct _GtkChart GtkChart; typedef struct _GtkChartClass GtkChartClass; //typedef struct _GtkChartPrivate GtkChartPrivate; typedef struct _ChartItem ChartItem; typedef struct _HbtkDrawContext HbtkDrawContext; typedef gchar (* GtkChartPrintIntFunc) (gint value, gboolean minor); typedef gchar (* GtkChartPrintDoubleFunc) (gdouble value, gboolean minor); /* = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* phi value */ #define PHI 1.61803399 /* default zoomx for charts */ #define GTK_CHART_BARW 41 //24 //TODO: #2038623 maybe go lower to 3 pixels for lines #define GTK_CHART_MINBARW 8 //4 #define GTK_CHART_MAXBARW 41 //128 #define GTK_CHART_SPANBARW GTK_CHART_MAXBARW+1 #define GTK_CHART_MINRADIUS 64 #define CHART_BUFFER_LENGTH 128 // char draw options #define CHART_PARAM_PIE_DONUT TRUE #define CHART_PARAM_PIE_LINE FALSE #define CHART_PARAM_PIE_MARK FALSE // 5.5 //#define CHART_PARAM_PIE_HOLEVALUE 0.5 #define CHART_PARAM_PIE_HOLEVALUE 0.61803399 /* new stuff */ #define CHART_MARGIN 12 //standard a4 margin is 18 #define CHART_SPACING 6 #define CHART_LINE_SPACING 1.25 //#define PROP_SHOW_MINOR 6 //#define PROP_SHOW_LEGEND 7 #define ROUNDHALF(x) floor(x *2) / 2 enum { CHART_TYPE_NONE, CHART_TYPE_COL, CHART_TYPE_PIE, CHART_TYPE_LINE, CHART_TYPE_STACK, CHART_TYPE_STACK100, CHART_TYPE_MAX }; enum { LST_LEGEND_FAKE, LST_LEGEND_COLOR, LST_LEGEND_TITLE, LST_LEGEND_AMOUNT, LST_LEGEND_RATE, NUM_LST_LEGEND }; struct _ChartItem { /* data part */ gchar *label; //gchar *xlabel; //gchar *misclabel; //gshort flags; //gshort pad1; gdouble serie1; gdouble serie2; gdouble rate; gint n_child; /* draw stuffs */ //gchar *legend; double angle2; /* rate for pie */ double height; /* for column */ }; struct _HbtkDrawContext { gboolean isprint; gint visible; double range, max; double min; double unit; gint div; double barw, blkw; // double posbarh, negbarh; /* drawing datas */ double font_h; int l, t, w, h; // int b, r; cairo_rectangle_t graph; cairo_rectangle_t legend; double scale_w; // double scale_x, scale_y, scale_h; // double item_x, item_y, item_w; /* legend dimension */ double legend_font_h; double legend_label_w; double legend_value_w; double legend_rate_w; /* zones height */ double title_zh; double subtitle_zh, subtitle_y; // double header_zh, header_y; // double item_zh; double ox, oy; // gint lastx, lasty, ; // gint lastpress_x, lastpress_y; // guint timer_tag; gint rayon, mark; // gint left, top; }; struct _GtkChart { //own widget here /*< private >*/ //GtkChartPrivate *priv; /* all below should be in priv normally */ GtkBox hbox; GtkWidget *drawarea; GtkAdjustment *adjustment; GtkWidget *scrollbar; GtkWidget *breadcrumb; /* data storage */ GtkTreeModel *totmodel; guint column1, column2; gint nb_items; GArray *items; double rawmin, rawmax; gdouble total; //TODO: test of total, in waiting something else GtkTreeModel *model; gdouble *colsum; gchar **collabel; DataCol **cols; gint nb_cols; gint colindice; gchar *title; gchar *subtitle; /* chart properties */ gint type; // column/pie/line gboolean dual; gboolean abs; gboolean show_breadcrumb; gboolean show_legend; gboolean show_legend_wide; gboolean legend_visible; gboolean legend_wide_visible; gboolean smallfont; gboolean show_over; gboolean show_average; gboolean show_xval; gboolean show_mono; guint32 kcur; gboolean minor; gdouble minor_rate; gdouble minimum, average; gint usrbarw; gchar *minor_symbol; /* color datas */ GtkColorScheme color_scheme; cairo_surface_t *surface; //dynamics gint hover, lasthover; gint colhover, lastcolhover; gboolean drillable; struct _HbtkDrawContext context; PangoFontDescription *pfd; gchar buffer1[CHART_BUFFER_LENGTH]; gchar buffer2[CHART_BUFFER_LENGTH]; }; struct _GtkChartClass { GtkBoxClass parent_class; /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); void (*_gtk_reserved4) (void); }; typedef struct { GtkChart *chart; HbtkDrawContext drawctx; } GtkChartPrintData; GType gtk_chart_get_type (void) G_GNUC_CONST; void gtk_chart_print(GtkChart *chart, GtkWindow *parent, gchar *dirname, gchar *filename); /* public function */ GtkWidget *gtk_chart_new(gint type); void gtk_chart_set_datas_none (GtkChart *chart); void gtk_chart_set_datas_total(GtkChart *chart, GtkTreeModel *model, guint column1, guint column2, gchar *title, gchar *subtitle); void gtk_chart_set_datas_time (GtkChart *chart, GtkTreeView *treeview, DataTable *dt, guint nbrows, guint nbcols, gchar *title, gchar *subtitle); void gtk_chart_set_type(GtkChart *chart, gint type); void gtk_chart_set_color_scheme(GtkChart * chart, gint colorscheme); void gtk_chart_queue_redraw(GtkChart *chart); void gtk_chart_set_minor_prefs(GtkChart * chart, gdouble rate, gchar *symbol); void gtk_chart_set_currency(GtkChart * chart, guint32 kcur); void gtk_chart_show_average(GtkChart * chart, gdouble value, gboolean visible); void gtk_chart_set_overdrawn(GtkChart * chart, gdouble minimum); void gtk_chart_show_xval(GtkChart * chart, gboolean visible); void gtk_chart_set_barw(GtkChart * chart, gdouble barw); void gtk_chart_set_showmono(GtkChart * chart, gboolean mono); void gtk_chart_set_smallfont(GtkChart * chart, gboolean small); void gtk_chart_show_legend(GtkChart * chart, gboolean visible, gboolean showextracol); void gtk_chart_show_overdrawn(GtkChart * chart, gboolean visible); void gtk_chart_show_minor(GtkChart * chart, gboolean minor); void gtk_chart_set_absolute(GtkChart * chart, gboolean abs); G_END_DECLS #endif /* __GTK_CHART_H__ */ homebank-5.9.1/src/language.c0000644000175000017500000005325114736461407011533 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* Win32 language lookup table: * Copyright (C) 2007-2008 Dieter Verfaillie */ #include "homebank.h" #include #include #ifdef G_OS_WIN32 #define WINVER 0x0501 #define _WIN32_WINNT 0x0501 #define _WIN32_WINDOWS 0x0501 #include #include #endif #include "language.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif void language_init (const gchar *language) { DB( g_print ("\n[language] init\n") ); DB( g_print (" pref is '%s'\n", language) ); #ifdef G_OS_WIN32 if (! language) { /* FIXME: This is a hack. gettext doesn't pick the right language * by default on Windows, so we enforce the right one. The * following code is an adaptation of Python code from * pynicotine. For reasons why this approach is needed, and why * the GetLocaleInfo() approach in other libs falls flat, see: * http://blogs.msdn.com/b/michkap/archive/2007/04/15/2146890.aspx */ switch (GetUserDefaultUILanguage()) { case 1078: language = "af"; /* Afrikaans - South Africa */ break; case 1052: language = "sq"; /* Albanian - Albania */ break; case 1118: language = "am"; /* Amharic - Ethiopia */ break; case 1025: language = "ar"; /* Arabic - Saudi Arabia */ break; case 5121: language = "ar"; /* Arabic - Algeria */ break; case 15361: language = "ar"; /* Arabic - Bahrain */ break; case 3073: language = "ar"; /* Arabic - Egypt */ break; case 2049: language = "ar"; /* Arabic - Iraq */ break; case 11265: language = "ar"; /* Arabic - Jordan */ break; case 13313: language = "ar"; /* Arabic - Kuwait */ break; case 12289: language = "ar"; /* Arabic - Lebanon */ break; case 4097: language = "ar"; /* Arabic - Libya */ break; case 6145: language = "ar"; /* Arabic - Morocco */ break; case 8193: language = "ar"; /* Arabic - Oman */ break; case 16385: language = "ar"; /* Arabic - Qatar */ break; case 10241: language = "ar"; /* Arabic - Syria */ break; case 7169: language = "ar"; /* Arabic - Tunisia */ break; case 14337: language = "ar"; /* Arabic - U.A.E. */ break; case 9217: language = "ar"; /* Arabic - Yemen */ break; case 1067: language = "hy"; /* Armenian - Armenia */ break; case 1101: language = "as"; /* Assamese */ break; case 2092: language = NULL; /* Azeri (Cyrillic) */ break; case 1068: language = NULL; /* Azeri (Latin) */ break; case 1069: language = "eu"; /* Basque */ break; case 1059: language = "be"; /* Belarusian */ break; case 1093: language = "bn"; /* Bengali (India) */ break; case 2117: language = "bn"; /* Bengali (Bangladesh) */ break; case 5146: language = "bs"; /* Bosnian (Bosnia/Herzegovina) */ break; case 1026: language = "bg"; /* Bulgarian */ break; case 1109: language = "my"; /* Burmese */ break; case 1027: language = "ca"; /* Catalan */ break; case 1116: language = NULL; /* Cherokee - United States */ break; case 2052: language = "zh"; /* Chinese - People"s Republic of China */ break; case 4100: language = "zh"; /* Chinese - Singapore */ break; case 1028: language = "zh"; /* Chinese - Taiwan */ break; case 3076: language = "zh"; /* Chinese - Hong Kong SAR */ break; case 5124: language = "zh"; /* Chinese - Macao SAR */ break; case 1050: language = "hr"; /* Croatian */ break; case 4122: language = "hr"; /* Croatian (Bosnia/Herzegovina) */ break; case 1029: language = "cs"; /* Czech */ break; case 1030: language = "da"; /* Danish */ break; case 1125: language = "dv"; /* Divehi */ break; case 1043: language = "nl"; /* Dutch - Netherlands */ break; case 2067: language = "nl"; /* Dutch - Belgium */ break; case 1126: language = NULL; /* Edo */ break; case 1033: language = "en"; /* English - United States */ break; case 2057: language = "en"; /* English - United Kingdom */ break; case 3081: language = "en"; /* English - Australia */ break; case 10249: language = "en"; /* English - Belize */ break; case 4105: language = "en"; /* English - Canada */ break; case 9225: language = "en"; /* English - Caribbean */ break; case 15369: language = "en"; /* English - Hong Kong SAR */ break; case 16393: language = "en"; /* English - India */ break; case 14345: language = "en"; /* English - Indonesia */ break; case 6153: language = "en"; /* English - Ireland */ break; case 8201: language = "en"; /* English - Jamaica */ break; case 17417: language = "en"; /* English - Malaysia */ break; case 5129: language = "en"; /* English - New Zealand */ break; case 13321: language = "en"; /* English - Philippines */ break; case 18441: language = "en"; /* English - Singapore */ break; case 7177: language = "en"; /* English - South Africa */ break; case 11273: language = "en"; /* English - Trinidad */ break; case 12297: language = "en"; /* English - Zimbabwe */ break; case 1061: language = "et"; /* Estonian */ break; case 1080: language = "fo"; /* Faroese */ break; case 1065: language = NULL; /* Farsi */ break; case 1124: language = NULL; /* Filipino */ break; case 1035: language = "fi"; /* Finnish */ break; case 1036: language = "fr"; /* French - France */ break; case 2060: language = "fr"; /* French - Belgium */ break; case 11276: language = "fr"; /* French - Cameroon */ break; case 3084: language = "fr"; /* French - Canada */ break; case 9228: language = "fr"; /* French - Democratic Rep. of Congo */ break; case 12300: language = "fr"; /* French - Cote d"Ivoire */ break; case 15372: language = "fr"; /* French - Haiti */ break; case 5132: language = "fr"; /* French - Luxembourg */ break; case 13324: language = "fr"; /* French - Mali */ break; case 6156: language = "fr"; /* French - Monaco */ break; case 14348: language = "fr"; /* French - Morocco */ break; case 58380: language = "fr"; /* French - North Africa */ break; case 8204: language = "fr"; /* French - Reunion */ break; case 10252: language = "fr"; /* French - Senegal */ break; case 4108: language = "fr"; /* French - Switzerland */ break; case 7180: language = "fr"; /* French - West Indies */ break; case 1122: language = "fy"; /* Frisian - Netherlands */ break; case 1127: language = NULL; /* Fulfulde - Nigeria */ break; case 1071: language = "mk"; /* FYRO Macedonian */ break; case 2108: language = "ga"; /* Gaelic (Ireland) */ break; case 1084: language = "gd"; /* Gaelic (Scotland) */ break; case 1110: language = "gl"; /* Galician */ break; case 1079: language = "ka"; /* Georgian */ break; case 1031: language = "de"; /* German - Germany */ break; case 3079: language = "de"; /* German - Austria */ break; case 5127: language = "de"; /* German - Liechtenstein */ break; case 4103: language = "de"; /* German - Luxembourg */ break; case 2055: language = "de"; /* German - Switzerland */ break; case 1032: language = "el"; /* Greek */ break; case 1140: language = "gn"; /* Guarani - Paraguay */ break; case 1095: language = "gu"; /* Gujarati */ break; case 1128: language = "ha"; /* Hausa - Nigeria */ break; case 1141: language = NULL; /* Hawaiian - United States */ break; case 1037: language = "he"; /* Hebrew */ break; case 1081: language = "hi"; /* Hindi */ break; case 1038: language = "hu"; /* Hungarian */ break; case 1129: language = NULL; /* Ibibio - Nigeria */ break; case 1039: language = "is"; /* Icelandic */ break; case 1136: language = "ig"; /* Igbo - Nigeria */ break; case 1057: language = "id"; /* Indonesian */ break; case 1117: language = "iu"; /* Inuktitut */ break; case 1040: language = "it"; /* Italian - Italy */ break; case 2064: language = "it"; /* Italian - Switzerland */ break; case 1041: language = "ja"; /* Japanese */ break; case 1099: language = "kn"; /* Kannada */ break; case 1137: language = "kr"; /* Kanuri - Nigeria */ break; case 2144: language = "ks"; /* Kashmiri */ break; case 1120: language = "ks"; /* Kashmiri (Arabic) */ break; case 1087: language = "kk"; /* Kazakh */ break; case 1107: language = "km"; /* Khmer */ break; case 1111: language = NULL; /* Konkani */ break; case 1042: language = "ko"; /* Korean */ break; case 1088: language = "ky"; /* Kyrgyz (Cyrillic) */ break; case 1108: language = "lo"; /* Lao */ break; case 1142: language = "la"; /* Latin */ break; case 1062: language = "lv"; /* Latvian */ break; case 1063: language = "lt"; /* Lithuanian */ break; case 1086: language = "ms"; /* Malay - Malaysia */ break; case 2110: language = "ms"; /* Malay - Brunei Darussalam */ break; case 1100: language = "ml"; /* Malayalam */ break; case 1082: language = "mt"; /* Maltese */ break; case 1112: language = NULL; /* Manipuri */ break; case 1153: language = "mi"; /* Maori - New Zealand */ break; case 1102: language = "mr"; /* Marathi */ break; case 1104: language = "mn"; /* Mongolian (Cyrillic) */ break; case 2128: language = "mn"; /* Mongolian (Mongolian) */ break; case 1121: language = "ne"; /* Nepali */ break; case 2145: language = "ne"; /* Nepali - India */ break; case 1044: language = "no"; /* Norwegian (Bokmᅢᆬl) */ break; case 2068: language = "no"; /* Norwegian (Nynorsk) */ break; case 1096: language = "or"; /* Oriya */ break; case 1138: language = "om"; /* Oromo */ break; case 1145: language = NULL; /* Papiamentu */ break; case 1123: language = "ps"; /* Pashto */ break; case 1045: language = "pl"; /* Polish */ break; case 1046: language = "pt"; /* Portuguese - Brazil */ break; case 2070: language = "pt"; /* Portuguese - Portugal */ break; case 1094: language = "pa"; /* Punjabi */ break; case 2118: language = "pa"; /* Punjabi (Pakistan) */ break; case 1131: language = "qu"; /* Quecha - Bolivia */ break; case 2155: language = "qu"; /* Quecha - Ecuador */ break; case 3179: language = "qu"; /* Quecha - Peru */ break; case 1047: language = "rm"; /* Rhaeto-Romanic */ break; case 1048: language = "ro"; /* Romanian */ break; case 2072: language = "ro"; /* Romanian - Moldava */ break; case 1049: language = "ru"; /* Russian */ break; case 2073: language = "ru"; /* Russian - Moldava */ break; case 1083: language = NULL; /* Sami (Lappish) */ break; case 1103: language = "sa"; /* Sanskrit */ break; case 1132: language = NULL; /* Sepedi */ break; case 3098: language = "sr"; /* Serbian (Cyrillic) */ break; case 2074: language = "sr"; /* Serbian (Latin) */ break; case 1113: language = "sd"; /* Sindhi - India */ break; case 2137: language = "sd"; /* Sindhi - Pakistan */ break; case 1115: language = "si"; /* Sinhalese - Sri Lanka */ break; case 1051: language = "sk"; /* Slovak */ break; case 1060: language = "sl"; /* Slovenian */ break; case 1143: language = "so"; /* Somali */ break; case 1070: language = NULL; /* Sorbian */ break; case 3082: language = "es"; /* Spanish - Spain (Modern Sort) */ break; case 1034: language = "es"; /* Spanish - Spain (Traditional Sort) */ break; case 11274: language = "es"; /* Spanish - Argentina */ break; case 16394: language = "es"; /* Spanish - Bolivia */ break; case 13322: language = "es"; /* Spanish - Chile */ break; case 9226: language = "es"; /* Spanish - Colombia */ break; case 5130: language = "es"; /* Spanish - Costa Rica */ break; case 7178: language = "es"; /* Spanish - Dominican Republic */ break; case 12298: language = "es"; /* Spanish - Ecuador */ break; case 17418: language = "es"; /* Spanish - El Salvador */ break; case 4106: language = "es"; /* Spanish - Guatemala */ break; case 18442: language = "es"; /* Spanish - Honduras */ break; case 58378: language = "es"; /* Spanish - Latin America */ break; case 2058: language = "es"; /* Spanish - Mexico */ break; case 19466: language = "es"; /* Spanish - Nicaragua */ break; case 6154: language = "es"; /* Spanish - Panama */ break; case 15370: language = "es"; /* Spanish - Paraguay */ break; case 10250: language = "es"; /* Spanish - Peru */ break; case 20490: language = "es"; /* Spanish - Puerto Rico */ break; case 21514: language = "es"; /* Spanish - United States */ break; case 14346: language = "es"; /* Spanish - Uruguay */ break; case 8202: language = "es"; /* Spanish - Venezuela */ break; case 1072: language = NULL; /* Sutu */ break; case 1089: language = "sw"; /* Swahili */ break; case 1053: language = "sv"; /* Swedish */ break; case 2077: language = "sv"; /* Swedish - Finland */ break; case 1114: language = NULL; /* Syriac */ break; case 1064: language = "tg"; /* Tajik */ break; case 1119: language = NULL; /* Tamazight (Arabic) */ break; case 2143: language = NULL; /* Tamazight (Latin) */ break; case 1097: language = "ta"; /* Tamil */ break; case 1092: language = "tt"; /* Tatar */ break; case 1098: language = "te"; /* Telugu */ break; case 1054: language = "th"; /* Thai */ break; case 2129: language = "bo"; /* Tibetan - Bhutan */ break; case 1105: language = "bo"; /* Tibetan - People"s Republic of China */ break; case 2163: language = "ti"; /* Tigrigna - Eritrea */ break; case 1139: language = "ti"; /* Tigrigna - Ethiopia */ break; case 1073: language = "ts"; /* Tsonga */ break; case 1074: language = "tn"; /* Tswana */ break; case 1055: language = "tr"; /* Turkish */ break; case 1090: language = "tk"; /* Turkmen */ break; case 1152: language = "ug"; /* Uighur - China */ break; case 1058: language = "uk"; /* Ukrainian */ break; case 1056: language = "ur"; /* Urdu */ break; case 2080: language = "ur"; /* Urdu - India */ break; case 2115: language = "uz"; /* Uzbek (Cyrillic) */ break; case 1091: language = "uz"; /* Uzbek (Latin) */ break; case 1075: language = "ve"; /* Venda */ break; case 1066: language = "vi"; /* Vietnamese */ break; case 1106: language = "cy"; /* Welsh */ break; case 1076: language = "xh"; /* Xhosa */ break; case 1144: language = NULL; /* Yi */ break; case 1085: language = "yi"; /* Yiddish */ break; case 1130: language = "yo"; /* Yoruba */ break; case 1077: language = "zu"; /* Zulu */ break; default: language = NULL; } } DB( g_print (" mswin detection is '%s'\n", language) ); #endif /* We already set the locale according to the environment, so just * return early if no language is set in gimprc. */ if (! language) return; #if MYDEBUG == 1 const gchar * const *locales = g_get_language_names(); g_print(" system LANGUAGE\n"); for (; locales != NULL && *locales != NULL; locales++) { g_print(" %s\n", *locales); } #endif DB( g_print (" setenv to '%s' and LC_ALL to empty\n", language) ); g_setenv ("LANGUAGE", language, TRUE); setlocale (LC_ALL, ""); } homebank-5.9.1/src/ui-payee.c0000644000175000017500000016074415005624167011466 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-payee.h" #include "ui-category.h" #include "ui-dialogs.h" #include "ui-widgets.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static GtkWidget * container_get_nth(GtkBox *container, gint nth) { GList *lchild, *list; GtkWidget *child; if(!GTK_IS_CONTAINER(container)) return NULL; lchild = list = gtk_container_get_children (GTK_CONTAINER(container)); child = g_list_nth_data (list, nth); g_list_free(lchild); return child; } GtkWidget * ui_pay_entry_popover_get_entry(GtkBox *box) { return container_get_nth(box, 0); } Payee *ui_pay_entry_popover_get(GtkBox *box) { GtkWidget *entry; gchar *name; Payee *item = NULL; DB( g_print ("ui_pay_entry_popover_get()\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { name = (gchar *)gtk_entry_get_text(GTK_ENTRY (entry)); item = da_pay_get_by_name(name); } return item; } guint32 ui_pay_entry_popover_get_key_add_new(GtkBox *box) { Payee *item = ui_pay_entry_popover_get(box); GtkWidget *entry; GtkTreeModel *store; if( item == NULL ) { /* automatic add */ //todo: check prefs + ask the user here 1st time entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { item = da_pay_malloc(); item->name = g_strdup(gtk_entry_get_text(GTK_ENTRY (entry))); da_pay_append(item); store = gtk_entry_completion_get_model(gtk_entry_get_completion(GTK_ENTRY(entry))); if( store ) gtk_list_store_insert_with_values(GTK_LIST_STORE(store), NULL, -1, 0, item->name, -1); } } return item->key; } guint32 ui_pay_entry_popover_get_key(GtkBox *box) { Payee *item = ui_pay_entry_popover_get(box); return ((item != NULL) ? item->key : 0); } void ui_pay_entry_popover_set_active(GtkBox *box, guint32 key) { GtkWidget *entry; DB( g_print ("ui_pay_comboboxentry_set_active()\n") ); entry = container_get_nth(box, 0); if( entry != NULL && GTK_IS_ENTRY(entry) ) { Payee *item = da_pay_get(key); hbtk_entry_set_text(GTK_ENTRY(entry), item != NULL ? item->name : ""); } } static void ui_pay_entry_popover_cb_row_activated(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; GtkEntry *entry = user_data; if( GTK_IS_ENTRY(entry) ) { treeselection = gtk_tree_view_get_selection(tree_view); if( gtk_tree_selection_get_selected(treeselection, &model, &iter) ) { gchar *item; gtk_tree_model_get(model, &iter, 0, &item, -1); gtk_entry_set_text(GTK_ENTRY(user_data), item); g_free(item); } } } static void ui_pay_entry_popover_populate(GtkListStore *store) { GHashTableIter hiter; gpointer key, value; g_hash_table_iter_init (&hiter, GLOBALS->h_pay); while (g_hash_table_iter_next (&hiter, &key, &value)) { Payee *item = value; //#1826360 wish: archive payee/category to lighten the lists if( !(item->flags & PF_HIDDEN) ) { gtk_list_store_insert_with_values(GTK_LIST_STORE(store), NULL, -1, 0, item->name, -1); } } gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); } static void ui_pay_entry_popover_function (GtkEditable *editable, gpointer user_data) { DB( g_print("text changed to %s\n", gtk_entry_get_text(GTK_ENTRY(editable)) ) ); } static void ui_pay_entry_popover_cb_toggled (GtkToggleButton *togglebutton, gpointer user_data) { GtkWidget *entry = user_data; GtkAllocation allocation; GtkPopover *popover; if(GTK_IS_ENTRY(entry)) { gtk_widget_get_allocation (entry, &allocation); popover = gtk_menu_button_get_popover(GTK_MENU_BUTTON(togglebutton)); if(GTK_IS_POPOVER(popover)) { gtk_widget_set_size_request (GTK_WIDGET(popover), allocation.width + (2*SPACING_POPOVER), -1); DB( g_print("should set width to %d\n", allocation.width + (2*SPACING_POPOVER)) ); } } } static gint ui_pay_entry_popover_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint retval = 0; gchar *name1, *name2; gtk_tree_model_get(model, a, 0, &name1, -1); gtk_tree_model_get(model, b, 0, &name2, -1); retval = hb_string_utf8_compare(name1, name2); g_free(name2); g_free(name1); return retval; } static gboolean ui_pay_entry_popover_completion_func (GtkEntryCompletion *completion, const gchar *key, GtkTreeIter *iter, gpointer user_data) { gchar *name = NULL; gchar *normalized_string; gchar *case_normalized_string; gboolean ret = FALSE; GtkTreeModel *model; model = gtk_entry_completion_get_model (completion); gtk_tree_model_get (model, iter, 0, &name, -1); if (name != NULL) { normalized_string = g_utf8_normalize (name, -1, G_NORMALIZE_ALL); if (normalized_string != NULL) { case_normalized_string = g_utf8_casefold (normalized_string, -1); //g_print("match '%s' for '%s' ?\n", key, case_normalized_string); //if (!strncmp (key, case_normalized_string, strlen (key))) if (g_strstr_len (case_normalized_string, strlen (case_normalized_string), key )) { ret = TRUE; // g_print(" ==> yes !\n"); } g_free (case_normalized_string); } g_free (normalized_string); } return ret; } static void ui_pay_entry_popover_destroy( GtkWidget *widget, gpointer user_data ) { DB( g_print ("[pay entry popover] destroy\n") ); } GtkWidget * ui_pay_entry_popover_new(GtkWidget *label) { GtkWidget *mainbox, *box, *entry, *menubutton, *image, *popover, *scrollwin, *treeview; GtkListStore *store; GtkEntryCompletion *completion; DB( g_print ("[pay entry popover] new\n") ); mainbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(mainbox)), GTK_STYLE_CLASS_LINKED); entry = gtk_entry_new(); hbtk_box_prepend (GTK_BOX(mainbox), entry); menubutton = gtk_menu_button_new (); //data->MB_template = menubutton; image = hbtk_image_new_from_icon_name_16 ("pan-down-symbolic"); gtk_button_set_image(GTK_BUTTON(menubutton), image); gtk_menu_button_set_direction (GTK_MENU_BUTTON(menubutton), GTK_ARROW_LEFT ); //gtk_widget_set_halign (menubutton, GTK_ALIGN_END); gtk_box_prepend(GTK_BOX(mainbox), menubutton); completion = gtk_entry_completion_new (); gtk_entry_set_completion (GTK_ENTRY (entry), completion); g_object_unref(completion); store = gtk_list_store_new (1, G_TYPE_STRING ); gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_pay_entry_popover_compare_func, NULL, NULL); ui_pay_entry_popover_populate(store); gtk_entry_completion_set_model (completion, GTK_TREE_MODEL(store)); gtk_entry_completion_set_match_func(completion, ui_pay_entry_popover_completion_func, NULL, NULL); g_object_unref(store); gtk_entry_completion_set_text_column (completion, 0); gtk_widget_show_all(mainbox); box = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX(box), scrollwin); //gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), HB_MINHEIGHT_LIST); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_show_all(box); //gtk_widget_set_can_focus(GTK_WIDGET(treeview), FALSE); GtkCellRenderer *renderer; GtkTreeViewColumn *column; renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", 0, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_view_set_hover_selection(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); gtk_tree_view_set_activate_on_single_click(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); //gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_BROWSE); //popover = create_popover (menubutton, box, GTK_POS_BOTTOM); popover = create_popover (menubutton, box, GTK_POS_LEFT); //gtk_widget_set_size_request (popover, HB_MINWIDTH_LIST, HB_MINHEIGHT_LIST); gtk_widget_set_vexpand(popover, TRUE); gtk_menu_button_set_popover(GTK_MENU_BUTTON(menubutton), popover); // connect our dispose function g_signal_connect (entry, "destroy", G_CALLBACK (ui_pay_entry_popover_destroy), NULL); g_signal_connect_after (entry , "changed", G_CALLBACK (ui_pay_entry_popover_function), NULL); g_signal_connect (menubutton, "toggled", G_CALLBACK (ui_pay_entry_popover_cb_toggled), entry); g_signal_connect (treeview, "row-activated", G_CALLBACK (ui_pay_entry_popover_cb_row_activated), entry); #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) g_signal_connect_swapped(treeview, "row-activated", G_CALLBACK(gtk_popover_popdown), popover); #else g_signal_connect_swapped(treeview, "row-activated", G_CALLBACK(gtk_widget_hide), popover); #endif //g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed", G_CALLBACK (ui_pay_entry_popover_cb_selection), entry); //g_signal_connect_swapped(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed", G_CALLBACK(gtk_popover_popdown), popover); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), entry); //gtk_widget_set_size_request(comboboxentry, HB_MINWIDTH_LIST, -1); return mainbox; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ guint ui_pay_listview_toggle_to_filter(GtkTreeView *treeview, Filter *filter) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gboolean toggled; guint change = 0; DB( g_print("(ui_pay_listview) toggle_to_filter\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_pay)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Payee *payitem; gtk_tree_model_get (model, &iter, LST_DEFPAY_TOGGLE, &toggled, LST_DEFPAY_DATAS, &payitem, -1); DB( g_print(" payee k:%3d = %d (%s)\n", payitem->key, toggled, payitem->name) ); change += da_flt_status_pay_set(filter, payitem->key, toggled); //payitem->flt_select = toggled; /* Make iter point to the next row in the list store */ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } return change; } static void ui_pay_listview_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, LST_DEFPAY_TOGGLE, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFPAY_TOGGLE, fixed, -1); /* clean up */ gtk_tree_path_free (path); //g_signal_emit_by_name(gtk_tree_view_get_selection(treeview), "changed", NULL); } void ui_pay_listview_quick_select(GtkTreeView *treeview, const gchar *uri) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gboolean toggle; gint qselect = hb_clicklabel_to_int(uri); DB( g_print("(ui_acc_listview) quick select\n") ); DB( g_print(" comboboxlink '%s' %d\n", uri, qselect) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { switch(qselect) { case HB_LIST_QUICK_SELECT_ALL: gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFPAY_TOGGLE, TRUE, -1); break; case HB_LIST_QUICK_SELECT_NONE: gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFPAY_TOGGLE, FALSE, -1); break; case HB_LIST_QUICK_SELECT_INVERT: gtk_tree_model_get (model, &iter, LST_DEFPAY_TOGGLE, &toggle, -1); toggle ^= 1; gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFPAY_TOGGLE, toggle, -1); break; } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } static gint ui_pay_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); Payee *entry1, *entry2; gint retval = 0; gtk_tree_model_get(model, a, LST_DEFPAY_DATAS, &entry1, -1); gtk_tree_model_get(model, b, LST_DEFPAY_DATAS, &entry2, -1); switch (sortcol) { case LST_DEFPAY_SORT_NAME: retval = hb_string_utf8_compare(entry1->name, entry2->name); break; case LST_DEFPAY_SORT_USETXN: retval = entry1->nb_use_all - entry2->nb_use_all; break; case LST_DEFPAY_SORT_USECFG: retval = (entry1->nb_use_all - entry1->nb_use_txn) - (entry2->nb_use_all - entry2->nb_use_txn); break; case LST_DEFPAY_SORT_DEFPAY: retval = entry1->paymode - entry2->paymode; break; case LST_DEFPAY_SORT_DEFCAT: { Category *c1, *c2; c1 = da_cat_get(entry1->kcat); c2 = da_cat_get(entry2->kcat); if( c1 != NULL && c2 != NULL ) { retval = hb_string_utf8_compare(c1->fullname, c2->fullname); } } break; default: g_return_val_if_reached(0); } return retval; } static void ui_pay_listview_count_txn_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Payee *entry; gchar buffer[256]; gtk_tree_model_get(model, iter, LST_DEFPAY_DATAS, &entry, -1); if(entry->nb_use_txn > 0) { g_snprintf(buffer, 256-1, "%d", entry->nb_use_txn); g_object_set(renderer, "text", buffer, NULL); } else g_object_set(renderer, "text", "", NULL); } static void ui_pay_listview_count_cfg_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Payee *entry; gchar buffer[256]; guint use; gtk_tree_model_get(model, iter, LST_DEFPAY_DATAS, &entry, -1); use = entry->nb_use_all - entry->nb_use_txn; if(use > 0) { g_snprintf(buffer, 256-1, "%d", use); g_object_set(renderer, "text", buffer, NULL); } else g_object_set(renderer, "text", "", NULL); } static void ui_pay_listview_defcat_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Payee *entry; Category *cat; gtk_tree_model_get(model, iter, LST_DEFPAY_DATAS, &entry, -1); cat = da_cat_get(entry->kcat); if( cat != NULL ) { g_object_set(renderer, "text", cat->fullname, NULL); } else g_object_set(renderer, "text", "", NULL); } static void ui_pay_listview_info_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Payee *entry; gtk_tree_model_get(model, iter, LST_DEFPAY_DATAS, &entry, -1); g_object_set(renderer, "icon-name", get_paymode_icon_name(entry->paymode), NULL); } static void ui_pay_listview_name_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Payee *entry; gchar *name; gtk_tree_model_get(model, iter, LST_DEFPAY_DATAS, &entry, -1); if(entry->key == 0) name = _("(no payee)"); else name = entry->name; g_object_set(renderer, "text", name, NULL); } static void ui_pay_listview_icon_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Payee *entry; gchar *iconname = NULL; gtk_tree_model_get(model, iter, LST_DEFPAY_DATAS, &entry, -1); if( entry->flags & PF_HIDDEN ) iconname = ICONNAME_HB_BUTTON_HIDE; g_object_set(renderer, "icon-name", iconname, NULL); } #if MYDEBUG == 1 static void ui_pay_listview_cell_data_function_debugkey (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Payee *item; gchar *string; gtk_tree_model_get(model, iter, LST_DEFPAY_DATAS, &item, -1); string = g_strdup_printf ("[%d]", item->key ); g_object_set(renderer, "text", string, NULL); g_free(string); } #endif /* = = = = = = = = = = = = = = = = */ void ui_pay_listview_add(GtkTreeView *treeview, Payee *item) { GtkTreeModel *model; GtkTreeIter iter; if( item->name != NULL ) { model = gtk_tree_view_get_model(treeview); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DEFPAY_TOGGLE, FALSE, LST_DEFPAY_DATAS, item, -1); } } guint32 ui_pay_listview_get_selected_key(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Payee *item; gtk_tree_model_get(model, &iter, LST_DEFPAY_DATAS, &item, -1); if( item!= NULL ) return item->key; } return 0; } void ui_pay_listview_remove_selected(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("ui_pay_listview_remove_selected() \n") ); selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_list_store_remove(GTK_LIST_STORE(model), &iter); } } struct PayListContext { GtkTreeModel *model; gchar *needle; gboolean showhidden; }; static void ui_pay_listview_populate_ghfunc(gpointer key, gpointer value, struct PayListContext *context) { GtkTreeIter iter; Payee *item = value; gboolean hastext = FALSE; gboolean insert = TRUE; //DB( g_print(" populate: %p\n", key) ); if( context->needle != NULL ) hastext = (strlen(context->needle) >= 2) ? TRUE : FALSE; if(hastext) insert = hb_string_utf8_strstr(item->name, context->needle, FALSE); if(context->showhidden == FALSE) { if( item->flags & PF_HIDDEN ) insert = FALSE; } if( insert == TRUE ) { gtk_list_store_insert_with_values(GTK_LIST_STORE(context->model), &iter, -1, LST_DEFPAY_TOGGLE , FALSE, LST_DEFPAY_DATAS, item, -1); } } void ui_pay_listview_populate(GtkWidget *treeview, gchar *needle, gboolean showhidden) { struct PayListContext context; DB( g_print("ui_pay_listview_populate \n") ); context.model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); context.needle = needle; context.showhidden = showhidden; gtk_list_store_clear (GTK_LIST_STORE(context.model)); //g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ //gtk_tree_view_set_model(GTK_TREE_VIEW(view), NULL); /* Detach model from view */ /* populate */ g_hash_table_foreach(GLOBALS->h_pay, (GHFunc)ui_pay_listview_populate_ghfunc, &context); //gtk_tree_view_set_model(GTK_TREE_VIEW(view), model); /* Re-attach model to view */ //g_object_unref(model); } static gboolean ui_pay_listview_search_equal_func (GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) { gboolean retval = TRUE; gchar *normalized_string; gchar *normalized_key; gchar *case_normalized_string = NULL; gchar *case_normalized_key = NULL; Payee *item; //gtk_tree_model_get_value (model, iter, column, &value); gtk_tree_model_get(model, iter, LST_DEFPAY_DATAS, &item, -1); if(item != NULL) { normalized_string = g_utf8_normalize (item->name, -1, G_NORMALIZE_ALL); normalized_key = g_utf8_normalize (key, -1, G_NORMALIZE_ALL); if (normalized_string && normalized_key) { case_normalized_string = g_utf8_casefold (normalized_string, -1); case_normalized_key = g_utf8_casefold (normalized_key, -1); if (strncmp (case_normalized_key, case_normalized_string, strlen (case_normalized_key)) == 0) retval = FALSE; } g_free (normalized_key); g_free (normalized_string); g_free (case_normalized_key); g_free (case_normalized_string); } return retval; } GtkWidget * ui_pay_listview_new(gboolean withtoggle, gboolean withcount) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; DB( g_print("ui_pay_listview_new() \n") ); store = gtk_list_store_new( NUM_LST_DEFPAY, G_TYPE_BOOLEAN, G_TYPE_POINTER ); treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); #if MYDEBUG == 1 column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_pay_listview_cell_data_function_debugkey, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); #endif // column: hide icon //#1826360 wish: archive payee/category to lighten the lists if( withtoggle == FALSE ) { column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_pay_listview_icon_cell_data_function, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } // column: toggle if( withtoggle == TRUE ) { renderer = gtk_cell_renderer_toggle_new (); column = gtk_tree_view_column_new_with_attributes (_("Visible"), renderer, "active", LST_DEFPAY_TOGGLE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_NONE); g_signal_connect (G_OBJECT(renderer), "toggled", G_CALLBACK (ui_pay_listview_toggled_cb), store); g_object_set_data(G_OBJECT(treeview), "togrdr_data", renderer); } // column: usage if( withcount == TRUE ) { renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 0.5, NULL); column = gtk_tree_view_column_new(); //TRANSLATORS: 'txn' is abbrevation for transaction gtk_tree_view_column_set_title(column, _("# txn")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_pay_listview_count_txn_cell_data_function, GINT_TO_POINTER(LST_DEFPAY_DATAS), NULL); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (column, LST_DEFPAY_SORT_USETXN); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //by default hide this column gtk_tree_view_column_set_visible(column, FALSE); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 0.5, NULL); column = gtk_tree_view_column_new(); //TRANSLATORS: 'txn' is abbrevation for configuration gtk_tree_view_column_set_title(column, _("# cfg")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_pay_listview_count_cfg_cell_data_function, GINT_TO_POINTER(LST_DEFPAY_DATAS), NULL); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (column, LST_DEFPAY_SORT_USECFG); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //by default hide this column gtk_tree_view_column_set_visible(column, FALSE); } // column: name renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL); if( withtoggle == FALSE ) { g_object_set(renderer, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); } column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Payee")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_pay_listview_name_cell_data_function, GINT_TO_POINTER(LST_DEFPAY_DATAS), NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); //gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST); gtk_tree_view_column_set_sort_column_id (column, LST_DEFPAY_SORT_NAME); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column: category if( withtoggle == FALSE ) { renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Category")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_pay_listview_defcat_cell_data_function, GINT_TO_POINTER(LST_DEFPAY_DATAS), NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); //gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST); gtk_tree_view_column_set_sort_column_id (column, LST_DEFPAY_SORT_DEFCAT); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } // column: payment if( withtoggle == FALSE ) { column = gtk_tree_view_column_new(); //TRANSLATORS: this is abbreviation for Payment gtk_tree_view_column_set_title(column, _("Payment")); renderer = gtk_cell_renderer_pixbuf_new (); g_object_set(renderer, "xalign", 0.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_pay_listview_info_cell_data_function, NULL, NULL); gtk_tree_view_column_set_sort_column_id (column, LST_DEFPAY_SORT_DEFPAY); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } if( withtoggle == TRUE ) gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(treeview), ui_pay_listview_search_equal_func, NULL, NULL); // treeview attribute gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), withcount); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFPAY_SORT_NAME, ui_pay_listview_compare_func, GINT_TO_POINTER(LST_DEFPAY_SORT_NAME), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFPAY_SORT_USETXN, ui_pay_listview_compare_func, GINT_TO_POINTER(LST_DEFPAY_SORT_USETXN), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFPAY_SORT_USECFG, ui_pay_listview_compare_func, GINT_TO_POINTER(LST_DEFPAY_SORT_USECFG), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFPAY_SORT_DEFPAY, ui_pay_listview_compare_func, GINT_TO_POINTER(LST_DEFPAY_SORT_DEFPAY), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFPAY_SORT_DEFCAT, ui_pay_listview_compare_func, GINT_TO_POINTER(LST_DEFPAY_SORT_DEFCAT), NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DEFPAY_SORT_NAME, GTK_SORT_ASCENDING); return treeview; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_pay_manage_dialog_refilter(struct ui_pay_manage_dialog_data *data) { gboolean showhidden; gchar *needle; DB( g_print("(ui_pay_manage_dialog) refilter\n") ); needle = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_search)); showhidden = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_showhidden)); ui_pay_listview_populate(data->LV_pay, needle, showhidden); } static void ui_pay_manage_dialog_delete_unused(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_pay_manage_dialog_data *data = user_data; gboolean result; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(ui_pay_manage_dialog) delete unused - data %p\n", data) ); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), _("Delete unused payee"), _("Are you sure you want to\npermanently delete unused payee?"), _("_Delete"), TRUE ); if( result == GTK_RESPONSE_OK ) { GtkTreeModel *model; //#1996275 fill usage before delete ! if( data->usagefilled == FALSE ) { payee_fill_usage(); data->usagefilled = TRUE; } model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_pay)); gtk_list_store_clear (GTK_LIST_STORE(model)); //#1917075 data->change += payee_delete_unused(); ui_pay_manage_dialog_refilter(data); } } /** * ui_pay_manage_dialog_load_csv: * */ static void ui_pay_manage_dialog_load_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_pay_manage_dialog_data *data = user_data; gchar *filename = NULL; gchar *error; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(ui_pay_manage_dialog) load csv - data %p\n", data) ); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_OPEN, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); if( !payee_load_csv(filename, &error) ) { ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("File format error"), _("The CSV file must contains the exact numbers of column,\nseparated by a semi-colon, please see the help for more details.") ); } g_free( filename ); ui_pay_manage_dialog_refilter(data); } } /** * ui_pay_manage_dialog_save_csv: * */ static void ui_pay_manage_dialog_save_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_pay_manage_dialog_data *data = user_data; gchar *filename = NULL; DB( g_print("(ui_pay_manage_dialog) save csv\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); payee_save_csv(filename); g_free( filename ); } } static void ui_pay_manage_dialog_cb_show_usage (GtkToggleButton *button, gpointer user_data) { struct ui_pay_manage_dialog_data *data; gboolean showusage; GtkTreeViewColumn *column; DB( g_print("(ui_pay_manage_dialog) show usage\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_WINDOW)), "inst_data"); if( data->usagefilled == FALSE ) { payee_fill_usage(); data->usagefilled = TRUE; } showusage = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_showusage)); column = hbtk_treeview_get_column_by_id(GTK_TREE_VIEW(data->LV_pay), LST_DEFPAY_SORT_USETXN); if(column != NULL) { gtk_tree_view_column_set_visible(column, showusage); } column = hbtk_treeview_get_column_by_id(GTK_TREE_VIEW(data->LV_pay), LST_DEFPAY_SORT_USECFG); if(column != NULL) { gtk_tree_view_column_set_visible(column, showusage); } } static void ui_pay_manage_dialog_cb_show_hidden (GtkToggleButton *button, gpointer user_data) { struct ui_pay_manage_dialog_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_WINDOW)), "inst_data"); ui_pay_manage_dialog_refilter(data); } /** * ui_pay_manage_dialog_add: * */ static void ui_pay_manage_dialog_add(GtkWidget *widget, gpointer user_data) { struct ui_pay_manage_dialog_data *data; gboolean isadded; Payee *item; gchar *name; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(defayee) add (data=%p)\n", data) ); name = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_name)); item = da_pay_malloc (); item->name = g_strdup(name); g_strstrip(item->name); isadded = FALSE; if( strlen(item->name) > 0 ) { isadded = da_pay_append(item); if( isadded == TRUE ) { ui_pay_listview_add(GTK_TREE_VIEW(data->LV_pay), item); data->change++; } } //#2051349 warn user and free lack if( isadded == FALSE ) { DB( g_print(" existing item\n") ); da_pay_free (item); ui_dialog_msg_infoerror (GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("Error"), _("Duplicate payee name. Try another name.") ); } gtk_entry_set_text(GTK_ENTRY(data->ST_name), ""); } static void ui_pay_manage_dialog_edit_entry_cb(GtkEditable *editable, gpointer user_data) { GtkDialog *window = user_data; const gchar *buffer; buffer = gtk_entry_get_text(GTK_ENTRY(editable)); gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_ACCEPT, strlen(buffer) > 0 ? TRUE : FALSE); } static void ui_pay_manage_dialog_edit(GtkWidget *dowidget, gpointer user_data) { struct ui_pay_manage_dialog_data *data; GtkWidget *dialog, *content_area, *grid; GtkWidget *label, *widget; GtkWidget *ST_name, *PO_cat, *NU_mode, *TB_notes, *scrollwin; gint row; guint32 key; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(dowidget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(defayee) modify %p\n", data) ); key = ui_pay_listview_get_selected_key(GTK_TREE_VIEW(data->LV_pay)); if( key > 0 ) { Payee *item; item = da_pay_get( key ); dialog = gtk_dialog_new_with_buttons (_("Edit Payee"), GTK_WINDOW (data->dialog), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(grid), SPACING_LARGE); gtk_box_prepend (GTK_BOX (content_area), grid); // group :: General //label = make_label_group(_("Payee")); //gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 0; label = make_label_widget(_("_Name:")); gtk_grid_attach (GTK_GRID (grid), label, 1, row, 1, 1); widget = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(widget), 24); ST_name = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (grid), widget, 2, row, 1, 1); //#1932193 add notes for payee row++; label = make_label(_("Notes:"), 1.0, 0.0); gtk_grid_attach (GTK_GRID (grid), label, 1, row, 1, 1); widget = gtk_text_view_new (); //#1697171 add wrap gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(widget), GTK_WRAP_WORD); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_size_request (scrollwin, -1, 24); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), widget); gtk_widget_set_hexpand (scrollwin, TRUE); gtk_widget_set_vexpand (scrollwin, TRUE); TB_notes = widget; gtk_grid_attach (GTK_GRID (grid), scrollwin, 2, row, 1, 1); // group :: Default row++; label = make_label_group(_("Default Fill")); gtk_widget_set_margin_top(label, SPACING_LARGE); gtk_grid_attach (GTK_GRID (grid), label, 0, row, 3, 1); row++; label = make_label_widget(_("_Category:")); gtk_grid_attach (GTK_GRID (grid), label, 1, row, 1, 1); //widget = ui_cat_comboboxentry_new(label); widget = ui_cat_entry_popover_new(label); PO_cat = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (grid), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Pa_yment:")); gtk_grid_attach (GTK_GRID (grid), label, 1, row, 1, 1); widget = make_paymode(label); NU_mode = widget; gtk_grid_attach (GTK_GRID (grid), widget, 2, row, 1, 1); //setup gtk_entry_set_text(GTK_ENTRY(ST_name), item->name); gtk_widget_grab_focus (ST_name); gtk_entry_set_activates_default (GTK_ENTRY(ST_name), TRUE); //5.5 done in popover //ui_cat_comboboxentry_populate(GTK_COMBO_BOX(PO_cat), GLOBALS->h_cat); //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(PO_cat), item->kcat); ui_cat_entry_popover_set_active(GTK_BOX(PO_cat), item->kcat); paymode_combo_box_set_active(GTK_COMBO_BOX(NU_mode), item->paymode); //#1932193 add notes for payee GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (TB_notes)); GtkTextIter iter; gtk_text_buffer_set_text (buffer, "", 0); gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); if(item->notes != NULL) gtk_text_buffer_insert (buffer, &iter, item->notes, -1); g_signal_connect (G_OBJECT (ST_name), "changed", G_CALLBACK (ui_pay_manage_dialog_edit_entry_cb), dialog); gtk_widget_show_all(grid); gtk_dialog_set_default_response(GTK_DIALOG( dialog ), GTK_RESPONSE_ACCEPT); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { const gchar *name; // 1: manage renaming name = gtk_entry_get_text(GTK_ENTRY(ST_name)); // ignore if item is empty if (name && *name) { if( payee_rename(item, name) ) { //to redraw the active entry gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_pay)); data->change++; } else { ui_dialog_msg_infoerror(GTK_WINDOW(dialog), GTK_MESSAGE_ERROR, _("Error"), _("Cannot rename this Payee,\n" "from '%s' to '%s',\n" "this name already exists."), item->name, name ); } } //item->kcat = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(PO_cat)); item->kcat = ui_cat_entry_popover_get_key_add_new(GTK_BOX(PO_cat)); item->paymode = paymode_combo_box_get_active(GTK_COMBO_BOX(NU_mode)); //#1932193 add notes for payee GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (TB_notes)); GtkTextIter siter, eiter; gchar *notes; gtk_text_buffer_get_iter_at_offset (buffer, &siter, 0); gtk_text_buffer_get_end_iter(buffer, &eiter); notes = gtk_text_buffer_get_text(buffer, &siter, &eiter, FALSE); if(notes != NULL) item->notes = g_strdup(notes); //TODO: missing sort here } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); } } static void ui_pay_manage_dialog_merge_entry_cb(GtkComboBox *widget, gpointer user_data) { GtkDialog *window = user_data; gchar *buffer; //buffer = (gchar *)gtk_entry_get_text(GTK_ENTRY (gtk_bin_get_child(GTK_BIN (widget)))); buffer = (gchar *)gtk_entry_get_text(GTK_ENTRY (widget)); gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, strlen(buffer) > 0 ? TRUE : FALSE); } static void ui_pay_manage_dialog_merge(GtkWidget *widget, gpointer user_data) { struct ui_pay_manage_dialog_data *data; GtkWidget *dialog, *content, *mainvbox; GtkWidget *getwidget, *togglebutton; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(defayee) merge %p\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_pay)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Payee *srcpay; gchar *title; gchar *secondtext; gtk_tree_model_get(model, &iter, LST_DEFPAY_DATAS, &srcpay, -1); title = g_strdup_printf ( _("Merge payee '%s'"), srcpay->name); dialog = gtk_message_dialog_new (GTK_WINDOW (data->dialog), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, title, NULL ); gtk_dialog_add_buttons (GTK_DIALOG(dialog), _("_Cancel"), GTK_RESPONSE_CANCEL, _("Merge"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL); content = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG (dialog)); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (content), mainvbox); secondtext = _("Transactions assigned to this payee,\n" "will be moved to the payee selected below."); g_object_set(GTK_MESSAGE_DIALOG (dialog), "secondary-text", secondtext, NULL); g_free(title); //getwidget = ui_pay_comboboxentry_new(NULL); getwidget = ui_pay_entry_popover_new(NULL); gtk_box_prepend (GTK_BOX (mainvbox), getwidget); secondtext = g_strdup_printf ( _("_Delete the payee '%s'"), srcpay->name); togglebutton = gtk_check_button_new_with_mnemonic(secondtext); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(togglebutton), TRUE); g_free(secondtext); gtk_box_prepend (GTK_BOX (mainvbox), togglebutton); //setup //gtk_combo_box_set_active(GTK_COMBO_BOX(getwidget), oldpos); g_signal_connect (G_OBJECT (ui_pay_entry_popover_get_entry(GTK_BOX(getwidget))), "changed", G_CALLBACK (ui_pay_manage_dialog_merge_entry_cb), dialog); gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_OK, FALSE); //5.5 done in popover, and keep src as well //ui_pay_comboboxentry_populate_except(GTK_COMBO_BOX(getwidget), GLOBALS->h_pay, srcpay->key); gtk_widget_grab_focus (getwidget); gtk_widget_show_all(mainvbox); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_OK) { GtkTreeModel *model; Payee *newpay; guint dstpaykey; //dstpaykey = ui_pay_comboboxentry_get_key_add_new(GTK_COMBO_BOX(getwidget)); dstpaykey = ui_pay_entry_popover_get_key_add_new(GTK_BOX(getwidget)); //do nothing if src = dst... if( srcpay->key != dstpaykey ) { DB( g_print(" -> move pay to %d)\n", dstpaykey) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_pay)); gtk_list_store_clear (GTK_LIST_STORE(model)); payee_move(srcpay->key, dstpaykey); newpay = da_pay_get(dstpaykey); //#1771720: update count newpay->nb_use_all += srcpay->nb_use_all; newpay->nb_use_txn += srcpay->nb_use_txn; srcpay->nb_use_all = 0; srcpay->nb_use_txn = 0; // add the new payee to listview if(newpay) ui_pay_listview_add(GTK_TREE_VIEW(data->LV_pay), newpay); // delete the old payee if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(togglebutton)) ) { DB( g_print(" -> delete %d '%s'\n", srcpay->key, srcpay->name ) ); ui_pay_listview_remove_selected(GTK_TREE_VIEW(data->LV_pay)); da_pay_delete(srcpay->key); } data->change++; //#1958767 if searchbar is active get the text ui_pay_manage_dialog_refilter(data); } } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); } } /* ** delete the selected payee to our treeview and temp GList */ static void ui_pay_manage_dialog_delete(GtkWidget *widget, gpointer user_data) { struct ui_pay_manage_dialog_data *data; Payee *item; guint32 key; gint result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(ui_pay_manage_dialog) delete (data=%p)\n", data) ); key = ui_pay_listview_get_selected_key(GTK_TREE_VIEW(data->LV_pay)); if( key > 0 ) { gchar *title; gchar *secondtext = NULL; item = da_pay_get(key); title = g_strdup_printf ( _("Are you sure you want to permanently delete '%s'?"), item->name); if( item->nb_use_all > 0 ) { secondtext = _("This payee is used.\n" "Any transaction using that payee will be set to (no payee)"); } result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Delete"), TRUE ); g_free(title); if( result == GTK_RESPONSE_OK ) { payee_move(key, 0); ui_pay_listview_remove_selected(GTK_TREE_VIEW(data->LV_pay)); da_pay_delete(key); data->change++; } } } //#1826360 wish: archive payee/category to lighten the lists static void ui_pay_manage_dialog_hide(GtkWidget *widget, gpointer user_data) { struct ui_pay_manage_dialog_data *data; Payee *item; guint32 key; gboolean showhidden; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(ui_pay_manage_dialog) hide (data=%p)\n", data) ); key = ui_pay_listview_get_selected_key(GTK_TREE_VIEW(data->LV_pay)); if( key > 0 ) { item = da_pay_get(key); item->flags ^= PF_HIDDEN; data->change++; } //todo remove row showhidden = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_showhidden)); if( showhidden == FALSE ) ui_pay_listview_remove_selected(GTK_TREE_VIEW(data->LV_pay)); else hbtk_listview_redraw_selected_row (GTK_TREE_VIEW(data->LV_pay)); } static void ui_pay_manage_dialog_update(GtkWidget *treeview, gpointer user_data) { struct ui_pay_manage_dialog_data *data; gboolean sensitive; guint32 key; DB( g_print("\n(ui_pay_manage_dialog) cursor changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); key = ui_pay_listview_get_selected_key(GTK_TREE_VIEW(data->LV_pay)); sensitive = (key > 0) ? TRUE : FALSE; gtk_widget_set_sensitive(data->BT_edit, sensitive); gtk_widget_set_sensitive(data->BT_merge, sensitive); gtk_widget_set_sensitive(data->BT_delete, sensitive); gtk_widget_set_sensitive(data->BT_hide, sensitive); } static gboolean ui_pay_manage_dialog_cb_on_key_press(GtkWidget *source, GdkEvent *event, gpointer user_data) { struct ui_pay_manage_dialog_data *data = user_data; GdkModifierType state; guint keyval; gdk_event_get_state (event, &state); gdk_event_get_keyval(event, &keyval); // On Control-f enable search entry if (state & GDK_CONTROL_MASK && keyval == GDK_KEY_f) { gtk_widget_grab_focus(data->ST_search); } else if (keyval == GDK_KEY_Escape && gtk_widget_has_focus(data->ST_search)) { hbtk_entry_set_text(GTK_ENTRY(data->ST_search), NULL); gtk_widget_grab_focus(data->LV_pay); return TRUE; } return GDK_EVENT_PROPAGATE; } static void ui_pay_manage_dialog_selection(GtkTreeSelection *treeselection, gpointer user_data) { ui_pay_manage_dialog_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static void ui_pay_manage_dialog_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data) { //GtkTreeModel *model; //GtkTreeIter iter; DB( g_print("ui_pay_manage_dialog_onRowActivated()\n") ); //#1960743 double click payee not working after search // no need to check is is not none here, done into edit //model = gtk_tree_view_get_model(treeview); //gtk_tree_model_get_iter_first(model, &iter); //gtk_tree_model_get_iter(model, &iter, path); //if(gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), &iter) == FALSE) //{ ui_pay_manage_dialog_edit(GTK_WIDGET(treeview), NULL); //} } static void ui_pay_manage_search_changed_cb (GtkWidget *widget, gpointer user_data) { struct ui_pay_manage_dialog_data *data = user_data; DB( g_printf("\n[ui_pay_manage_dialog] search_changed_cb\n") ); ui_pay_manage_dialog_refilter(data); } static void ui_pay_manage_setup(struct ui_pay_manage_dialog_data *data) { DB( g_print("\n[ui-budget] setup\n") ); DB( g_print(" init data\n") ); data->change = 0; data->usagefilled = FALSE; //#2051419 show hidden by default gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->BT_showhidden), TRUE); DB( g_print(" populate\n") ); ui_pay_manage_dialog_refilter(data); //DB( g_print(" set widgets default\n") ); DB( g_print(" connect widgets signals\n") ); g_signal_connect (G_OBJECT (data->BT_showhidden), "toggled", G_CALLBACK (ui_pay_manage_dialog_cb_show_hidden), NULL); g_signal_connect (G_OBJECT (data->BT_showusage) , "toggled", G_CALLBACK (ui_pay_manage_dialog_cb_show_usage), NULL); g_object_bind_property (data->BT_add, "active", data->RE_addreveal, "reveal-child", G_BINDING_BIDIRECTIONAL); gtk_tree_view_set_search_entry(GTK_TREE_VIEW(data->LV_pay), GTK_ENTRY(data->ST_search)); g_signal_connect (G_OBJECT (data->ST_search), "search-changed", G_CALLBACK (ui_pay_manage_search_changed_cb), data); g_signal_connect (G_OBJECT (data->ST_name), "activate", G_CALLBACK (ui_pay_manage_dialog_add), NULL); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_pay)), "changed", G_CALLBACK (ui_pay_manage_dialog_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_pay), "row-activated", G_CALLBACK (ui_pay_manage_dialog_onRowActivated), NULL); g_signal_connect (G_OBJECT (data->BT_edit) , "clicked", G_CALLBACK (ui_pay_manage_dialog_edit), NULL); g_signal_connect (G_OBJECT (data->BT_merge) , "clicked", G_CALLBACK (ui_pay_manage_dialog_merge), NULL); g_signal_connect (G_OBJECT (data->BT_delete), "clicked", G_CALLBACK (ui_pay_manage_dialog_delete), NULL); g_signal_connect (G_OBJECT (data->BT_hide), "clicked", G_CALLBACK (ui_pay_manage_dialog_hide), NULL); } static gboolean ui_pay_manage_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct ui_pay_manage_dialog_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n(ui_pay_manage_mapped)\n") ); ui_pay_manage_setup(data); ui_pay_manage_dialog_update(data->LV_pay, NULL); data->mapped_done = TRUE; return FALSE; } static const GActionEntry win_actions[] = { { "imp" , ui_pay_manage_dialog_load_csv, NULL, NULL, NULL, {0,0,0} }, { "exp" , ui_pay_manage_dialog_save_csv, NULL, NULL, NULL, {0,0,0} }, { "del" , ui_pay_manage_dialog_delete_unused, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; GtkWidget *ui_pay_manage_dialog (void) { struct ui_pay_manage_dialog_data *data; GtkWidget *dialog, *content, *mainvbox, *vbox, *bbox, *treeview, *scrollwin, *table; GtkWidget *widget, *image, *revealer, *tbar; gint w, h, dw, dh, row; data = g_malloc0(sizeof(struct ui_pay_manage_dialog_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Manage Payees"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); /* dialog = g_object_new (GTK_TYPE_DIALOG, "use-header-bar", TRUE, NULL); gtk_window_set_title (GTK_WINDOW (dialog), _("Manage Payees")); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW(GLOBALS->mainwindow)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); */ //gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); data->dialog = dialog; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 2:3 dw = (dh * 2) / 3; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print("(ui_pay_manage_dialog) dialog=%p, inst_data=%p\n", dialog, data) ); //dialog contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (content), mainvbox); hb_widget_set_margin(GTK_WIDGET(mainvbox), SPACING_LARGE); //our table table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (mainvbox), table); //filter part row = 0; bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (table), bbox, 0, row, 2, 1); //test headerbar //content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); widget = make_image_toggle_button(ICONNAME_HB_BUTTON_HIDE, _("Show Hidden") ); data->BT_showhidden = widget; gtk_box_prepend(GTK_BOX (bbox), widget); widget = make_image_toggle_button(ICONNAME_HB_BUTTON_USAGE, _("Show Usage") ); data->BT_showusage = widget; gtk_box_prepend(GTK_BOX (bbox), widget); //menubutton widget = gtk_menu_button_new(); image = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_BUTTON_MENU); g_object_set (widget, "image", image, NULL); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_box_append(GTK_BOX (bbox), widget); GMenu *menu = g_menu_new (); GMenu *section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Import CSV..."), "win.imp"); g_menu_append (section, _("E_xport CSV..."), "win.exp"); g_object_unref (section); section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Delete unused..."), "win.del"); g_object_unref (section); GActionGroup *group = (GActionGroup*)g_simple_action_group_new (); data->actions = group; g_action_map_add_action_entries (G_ACTION_MAP (group), win_actions, G_N_ELEMENTS (win_actions), data); gtk_widget_insert_action_group (widget, "win", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); widget = make_search(); data->ST_search = widget; gtk_box_append(GTK_BOX (bbox), widget); // list + toolbar row++; vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_grid_attach (GTK_GRID (table), vbox, 0, row, 2, 1); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX(vbox), scrollwin); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), HB_MINHEIGHT_LIST); gtk_widget_set_hexpand (scrollwin, TRUE); gtk_widget_set_vexpand (scrollwin, TRUE); treeview = ui_pay_listview_new(FALSE, TRUE); data->LV_pay = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); data->BT_add = widget = make_image_toggle_button(ICONNAME_LIST_ADD, _("Add")); gtk_box_prepend(GTK_BOX(bbox), widget); data->BT_delete = widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); data->BT_edit = widget = make_image_button(ICONNAME_LIST_EDIT, _("Edit")); gtk_box_prepend(GTK_BOX(bbox), widget); data->BT_merge = widget = make_image_button(ICONNAME_HB_LIST_MERGE, _("Move/Merge")); gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); data->BT_hide = widget = make_image_button(ICONNAME_HB_BUTTON_HIDE, _("Show/Hide")); gtk_box_prepend(GTK_BOX(bbox), widget); row++; revealer = gtk_revealer_new (); data->RE_addreveal = revealer; gtk_grid_attach (GTK_GRID (table), revealer, 0, row, 2, 1); data->ST_name = gtk_entry_new (); gtk_entry_set_placeholder_text(GTK_ENTRY(data->ST_name), _("new payee") ); gtk_widget_set_hexpand (data->ST_name, TRUE); gtk_revealer_set_child (GTK_REVEALER(revealer), data->ST_name); // connect dialog signals g_signal_connect (dialog, "map-event", G_CALLBACK (ui_pay_manage_mapped), &dialog); g_signal_connect (dialog, "key-press-event", G_CALLBACK (ui_pay_manage_dialog_cb_on_key_press), (gpointer)data); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all (dialog); // wait for the user gtk_dialog_run (GTK_DIALOG (dialog)); // cleanup and destroy GLOBALS->changes_count += data->change; gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/src/ui-pref.c0000644000175000017500000030003215005634041011271 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "hbtk-switcher.h" #include "hb-pref-data.h" #include "ui-pref.h" #include "dsp-mainwindow.h" #include "gtk-chart-colors.h" #include "ui-currency.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; enum { LST_PREF_UID, LST_PREF_ICONNAME, LST_PREF_LABEL, LST_PREF_PAGENUM, LST_PREF_MAX }; //TODO: this is not used //could be to save last page during session enum { PREF_GENERAL, PREF_INTERFACE, PREF_THEMING, PREF_COLOR, PREF_LOCALE, //old DISPLAY PREF_TXN, //old COLUMNS PREF_TXN_DIALOG, PREF_TXN_TRANSFER, PREF_PAYMODE, PREF_IMPORT, PREF_REPORT, PREF_FORECAST, PREF_BACKUP, PREF_FOLDERS, PREF_EURO, PREF_ADVANCED, PREF_MAX }; struct pref_list_datas CYA_PREF_GROUP[PREF_MAX+1] = { // level, identifier iconname label { 1, PREF_GENERAL , "prf-general" , N_("General") }, { 1, PREF_INTERFACE , "prf-interface", N_("Interface") }, { 2, PREF_INTERFACE , "prf-interface-theme", N_("Theming") }, { 2, PREF_INTERFACE , "prf-interface-color", N_("Color") }, { 1, PREF_LOCALE , "prf-locale", N_("Locale") }, { 1, PREF_TXN , "prf-transaction", N_("Transactions") }, { 2, PREF_TXN_DIALOG, "prf-transaction-dialog" , N_("Dialog") }, { 2, PREF_TXN_TRANSFER, "prf-transaction-transfer", N_("Transfer") }, { 2, PREF_PAYMODE , "prf-transaction-payment", N_("Payment") }, { 1, PREF_IMPORT , "prf-import" , N_("Import/Export") }, { 1, PREF_REPORT , "prf-report" , N_("Report") }, { 1, PREF_FORECAST , "prf-forecast" , N_("Forecast") }, { 1, PREF_BACKUP , "prf-backup" , N_("Backup") }, { 1, PREF_FOLDERS , "prf-folder" , N_("Folders") }, { 1, PREF_EURO , "prf-euro" , N_("Euro minor") }, { 1, PREF_ADVANCED , "prf-advanced" , N_("Advanced") }, { 0, 0, NULL , NULL } }; extern HbKvData CYA_TOOLBAR_STYLE[]; extern HbKvData CYA_GRID_LINES[]; extern HbKvData CYA_IMPORT_DATEORDER[]; extern HbKvData CYA_IMPORT_OFXNAME[]; extern HbKvData CYA_IMPORT_OFXMEMO[]; extern HbKvData CYA_IMPORT_CSVSEPARATOR[]; extern HbKvData CYA_CHART_COLORSCHEME[]; extern HbKvData CYA_MONTHS[]; extern EuroParams euro_params[]; extern guint nb_euro_params; extern EuroParams euro_params_euro; extern LangName languagenames[]; static GtkWidget *pref_list_create(void); static gint ui_language_combobox_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint retval = 0; gchar *code1, *code2; gchar *name1, *name2; gtk_tree_model_get(model, a, 0, &code1, 1, &name1, -1); gtk_tree_model_get(model, b, 0, &code2, 1, &name2, -1); //keep system laguage on top if(code1 == NULL) name1 = NULL; if(code2 == NULL) name2 = NULL; retval = hb_string_utf8_compare(name1, name2); g_free(name2); g_free(name1); return retval; } static const gchar * ui_language_combobox_get_name(const gchar *locale) { const gchar *lang; DB( g_print("[ui_language_combobox_get_name]\n") ); // A locale directory name is typically of the form language[_territory] lang = languagename_get (locale); if (! lang) { const gchar *delimiter = strchr (locale, '_'); // strip off the territory suffix if (delimiter) { gchar *copy = g_strndup (locale, delimiter - locale); lang = languagename_get (copy); g_free (copy); } if(! lang) { g_warning(" locale name not found '%s'", locale); lang = locale; } } return lang; } static void ui_language_combobox_populate(GtkWidget *combobox) { GtkTreeModel *model; GtkTreeIter iter; GDir *dir; const gchar *dirname; DB( g_print("\n[ui-pref] lang populate\n") ); model = gtk_combo_box_get_model(GTK_COMBO_BOX(combobox)); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, 0, NULL, 1, _("System Language"), -1); DB( g_print(" open '%s'\n",homebank_app_get_locale_dir () ) ); dir = g_dir_open (homebank_app_get_locale_dir (), 0, NULL); if (! dir) return; while ((dirname = g_dir_read_name (dir)) != NULL) { gchar *filename = g_build_filename (homebank_app_get_locale_dir (), dirname, "LC_MESSAGES", GETTEXT_PACKAGE ".mo", NULL); DB( g_print("- seek for '%s'\n", filename) ); if (g_file_test (filename, G_FILE_TEST_EXISTS)) { const gchar *lang; gchar *label; gtk_list_store_append (GTK_LIST_STORE(model), &iter); lang = ui_language_combobox_get_name(dirname); label = g_strdup_printf ("%s [%s]", lang, dirname); gtk_list_store_set (GTK_LIST_STORE(model), &iter, 0, dirname, 1, label, -1); g_free(label); } g_free (filename); } g_dir_close (dir); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); } static GtkWidget * ui_language_combobox_new(GtkWidget *label) { GtkListStore *store; GtkWidget *combobox; GtkCellRenderer *renderer; DB( g_print("\n[ui-pref] lang combo new\n") ); store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING ); gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_language_combobox_compare_func, NULL, NULL); combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, "text", 1, NULL); gtk_combo_box_set_id_column( GTK_COMBO_BOX(combobox), 0); g_object_unref(store); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), combobox); ui_language_combobox_populate(combobox); gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); return combobox; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ static gint ui_euro_combobox_id_to_active(gint id) { guint retval = 0; DB( g_print("\n[ui-pref] ui_euro_combobox_id_to_active\n") ); for (guint i = 0; i < nb_euro_params; i++) { if( euro_params[i].id == id ) { retval = i; DB( g_print("- id (country)=%d => %d - %s\n", id, i, euro_params[i].name) ); break; } } return retval; } static gint ui_euro_combobox_active_to_id(gint active) { gint id; DB( g_print("\n[ui-pref] ui_euro_combobox_active_to_id\n") ); DB( g_print("- to %d\n", active) ); id = 0; if( active < (gint)nb_euro_params ) { id = euro_params[active].id; DB( g_print("- id (country)=%d '%s'\n", id, euro_params[active].name) ); } return id; } static GtkWidget *ui_euro_combobox_new(GtkWidget *label) { GtkWidget *combobox; guint i; DB( g_print("\n[ui-pref] make euro preset\n") ); combobox = gtk_combo_box_text_new(); for (i = 0; i < nb_euro_params; i++) { gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combobox), euro_params[i].name); } gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), combobox); return combobox; } static void defpref_pathselect(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gint type = GPOINTER_TO_INT(user_data); gchar **path; gchar *title; GtkWidget *entry; gboolean r; DB( g_print("\n[ui-pref] path select\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); switch( type ) { case PRF_PATH_WALLET: path = &PREFS->path_hbfile; entry = data->ST_path_hbfile; title = _("Choose a default HomeBank files folder"); break; case PRF_PATH_BACKUP: path = &PREFS->path_hbbak; entry = data->ST_path_hbbak; title = _("Choose a default HomeBank backup files folder"); break; case PRF_PATH_IMPORT: path = &PREFS->path_import; entry = data->ST_path_import; title = _("Choose a default import folder"); break; case PRF_PATH_EXPORT: path = &PREFS->path_export; entry = data->ST_path_export; title = _("Choose a default export folder"); break; default: return; } DB( g_print(" - hbfile %p %s at %p\n" , PREFS->path_hbfile, PREFS->path_hbfile, &PREFS->path_hbfile) ); DB( g_print(" - import %p %s at %p\n" , PREFS->path_import, PREFS->path_import, &PREFS->path_import) ); DB( g_print(" - export %p %s at %p\n" , PREFS->path_export, PREFS->path_export, &PREFS->path_export) ); DB( g_print(" - before: %s %p\n" , *path, path) ); r = ui_file_chooser_folder(GTK_WINDOW(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), title, path); DB( g_print(" - after: %s\n", *path) ); if( r == TRUE ) gtk_entry_set_text(GTK_ENTRY(entry), *path); } /* ** update the date sample label */ static void defpref_date_sample(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gchar buffer[256]; const gchar *fmt; GDate *date; DB( g_print("\n[ui-pref] date sample\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); fmt = gtk_entry_get_text(GTK_ENTRY(data->ST_datefmt)); date = g_date_new_julian (GLOBALS->today); g_date_strftime (buffer, 256-1, fmt, date); g_date_free(date); gtk_label_set_text(GTK_LABEL(data->LB_date), buffer); } /* ** update the number sample label */ static void defpref_numbereuro_sample(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; Currency cur; gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; gchar buf[128]; DB( g_print("\n[ui-pref] number sample\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); cur.symbol = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_euro_symbol)); cur.sym_prefix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_euro_isprefix)); cur.decimal_char = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_euro_decimalchar)); cur.grouping_char = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_euro_groupingchar)); cur.frac_digits = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_euro_fracdigits)); da_cur_initformat (&cur); DB( g_print("fmt: %s\n", cur.format) ); g_ascii_formatd(formatd_buf, sizeof (formatd_buf), cur.format, HB_NUMBER_SAMPLE); hb_str_formatd(buf, 127, formatd_buf, &cur, TRUE); gtk_label_set_text(GTK_LABEL(data->LB_numbereuro), buf); } /* ** enable/disable euro */ static void defpref_eurotoggle(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gboolean sensitive; DB( g_print("\n[ui-pref] euro toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_euro_enable)); gtk_widget_set_sensitive(data->LB_euro_preset, sensitive); gtk_widget_set_sensitive(data->CY_euro_preset, sensitive); gtk_widget_set_sensitive(data->GRP_configuration, sensitive); gtk_widget_set_sensitive(data->GRP_format , sensitive); } /* ** set euro value widget from a country */ static void defpref_eurosetcurrency(GtkWidget *widget, gint country) { struct defpref_data *data; EuroParams *euro; gchar *buf, *buf2; gint active; DB( g_print("\n[ui-pref] eurosetcurrency\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); active = ui_euro_combobox_id_to_active(country); euro = &euro_params[active]; buf = g_strdup_printf("%s - %s", euro->iso, euro->name); gtk_label_set_markup(GTK_LABEL(data->ST_euro_country), buf); g_free(buf); //5.9 change label if(euro->mceii == FALSE) { buf = g_strdup_printf("1 %s _=", euro->iso); buf2 = g_strdup("EUR"); } else { buf = g_strdup("1 EUR _="); buf2 = g_strdup(euro->iso); } gtk_label_set_text_with_mnemonic(GTK_LABEL(data->LB_euro_src), buf); gtk_label_set_text_with_mnemonic(GTK_LABEL(data->LB_euro_dst), buf2); g_free(buf); g_free(buf2); } /* ** set euro value widget from a country */ static void defpref_europreset(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; EuroParams *euro; gint active; DB( g_print("\n[ui-pref] euro preset\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); active = gtk_combo_box_get_active (GTK_COMBO_BOX(data->CY_euro_preset)); data->country = ui_euro_combobox_active_to_id (active); defpref_eurosetcurrency(widget, data->country); euro = &euro_params[active]; gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_euro_value), euro->value); //#2066110 force EUR for non mceii if( euro->mceii == FALSE) { euro = &euro_params_euro; if( euro_country_notmceii_rate_update(data->country) ) { DB( g_print(" >update rate\n") ); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_euro_value), PREFS->euro_value); } } gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_euro_fracdigits), euro->frac_digits); gtk_entry_set_text(GTK_ENTRY(data->ST_euro_symbol) , euro->symbol); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_euro_isprefix), euro->sym_prefix); gtk_entry_set_text(GTK_ENTRY(data->ST_euro_decimalchar) , euro->decimal_char); gtk_entry_set_text(GTK_ENTRY(data->ST_euro_groupingchar), euro->grouping_char); } static void defpref_colorschemetoggle(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gboolean sensitive; DB( g_print("\n[ui-pref] color scheme toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_use_palette)) == TRUE ) { GtkColorScheme scheme; GdkRGBA rgba; gint index; index = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_color_scheme)); colorscheme_init(&scheme, index); colorsheme_col8_to_rgba(&scheme.colors[scheme.cs_orange], &rgba); gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(data->CP_exp_color), &rgba); colorsheme_col8_to_rgba(&scheme.colors[scheme.cs_green], &rgba); gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(data->CP_inc_color), &rgba); colorsheme_col8_to_rgba(&scheme.colors[scheme.cs_red], &rgba); gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(data->CP_warn_color), &rgba); colorsheme_col8_to_rgba(&scheme.colors[scheme.cs_blue], &rgba); gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(data->CP_fut_bg_color), &rgba); } sensitive = !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_use_palette)); gtk_widget_set_sensitive(data->CP_exp_color, sensitive); gtk_widget_set_sensitive(data->CP_inc_color, sensitive); gtk_widget_set_sensitive(data->CP_warn_color, sensitive); gtk_widget_set_sensitive(data->CP_fut_bg_color, sensitive); } static void defpref_memotoggle(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gboolean sensitive; DB( g_print("\n[ui-pref] memo acp toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_memoacp)); gtk_widget_set_sensitive(data->ST_memoacp_days, sensitive); } static void defpref_gtkoverridetoggle(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gboolean sensitive; DB( g_print("\n[ui-pref] gtk override toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_gtk_override)); gtk_widget_set_sensitive(data->LB_gtk_fontsize, sensitive); gtk_widget_set_sensitive(data->NB_gtk_fontsize, sensitive); } static void defpref_backuptoggle(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gboolean sensitive; DB( g_print("\n[ui-pref] backup toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_bak_is_automatic)); gtk_widget_set_sensitive(data->LB_bak_max_num_copies, sensitive); gtk_widget_set_sensitive(data->NB_bak_max_num_copies, sensitive); gtk_widget_set_sensitive(data->GR_bak_freq , sensitive); } static void defpref_color_scheme_changed(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; DB( g_print("\n[ui-pref] color scheme changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); gtk_widget_queue_draw (data->DA_colors); defpref_colorschemetoggle(widget, user_data); } /* ** set :: fill in widgets from PREFS structure */ static void defpref_set(struct defpref_data *data) { GdkRGBA rgba; DB( g_print("\n[ui-pref] set\n") ); // general gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_show_splash), PREFS->showsplash); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_load_last), PREFS->loadlast); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_append_scheduled), PREFS->appendscheduled); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_do_update_currency), PREFS->do_update_currency); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_maxspenditems), PREFS->rep_maxspenditems); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_fiscyearday), PREFS->fisc_year_day ); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_fiscyearmonth), PREFS->fisc_year_month); // files/backup gtk_entry_set_text(GTK_ENTRY(data->ST_path_hbfile), PREFS->path_hbfile); gtk_entry_set_text(GTK_ENTRY(data->ST_path_hbbak), PREFS->path_hbbak); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_bak_is_automatic), PREFS->bak_is_automatic); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_bak_max_num_copies), PREFS->bak_max_num_copies); // interface if(PREFS->language != NULL) gtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_language), PREFS->language); else gtk_combo_box_set_active (GTK_COMBO_BOX(data->CY_language), 0); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_toolbar), PREFS->toolbar_style); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_gtk_override), PREFS->gtk_override); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_gtk_fontsize), PREFS->gtk_fontsize); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_gtk_darktheme), PREFS->gtk_darktheme); gtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_icontheme), PREFS->icontheme); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_iconsymbolic), PREFS->icon_symbolic); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_image_size), PREFS->image_size); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_custom_colors), PREFS->custom_colors); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_custom_bg_future), PREFS->custom_colors); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_use_palette), PREFS->color_use_palette); gdk_rgba_parse(&rgba, PREFS->color_exp); gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(data->CP_exp_color), &rgba); gdk_rgba_parse(&rgba, PREFS->color_inc); gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(data->CP_inc_color), &rgba); gdk_rgba_parse(&rgba, PREFS->color_warn); gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(data->CP_warn_color), &rgba); gdk_rgba_parse(&rgba, PREFS->color_bg_future); gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(data->CP_fut_bg_color), &rgba); //gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_ruleshint), PREFS->rules_hint); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_gridlines), PREFS->grid_lines); // transactions hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_daterange_txn), PREFS->date_range_txn); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_datefuture_nbdays), PREFS->date_future_nbdays); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_hide_reconciled), PREFS->hidereconciled); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_show_remind), PREFS->showremind); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_show_void), PREFS->showvoid); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_include_remind), PREFS->includeremind); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_lock_reconciled), PREFS->safe_lock_recon); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_safe_pend_recon), PREFS->safe_pend_recon); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_safe_pend_past), PREFS->safe_pend_past); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_safe_pend_past_days), PREFS->safe_pend_past_days); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_herit_date), PREFS->heritdate); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_show_confirm), PREFS->txn_showconfirm); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_show_template), PREFS->txn_showtemplate); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_memoacp), PREFS->txn_memoacp); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_memoacp_days), PREFS->txn_memoacp_days); //xfer gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_xfer_showdialog), PREFS->xfer_showdialog); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_xfer_daygap), PREFS->xfer_daygap); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_xfer_syncdate), PREFS->xfer_syncdate); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_xfer_syncstat), PREFS->xfer_syncstat); // display format gtk_entry_set_text(GTK_ENTRY(data->ST_datefmt), PREFS->date_format); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_unitismile), PREFS->vehicle_unit_ismile); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_unitisgal), PREFS->vehicle_unit_isgal); // import/export hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_dtex_datefmt), PREFS->dtex_datefmt); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_dtex_ucfirst), PREFS->dtex_ucfirst); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_dtex_ofxname), PREFS->dtex_ofxname); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_dtex_ofxmemo), PREFS->dtex_ofxmemo); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_dtex_qifmemo), PREFS->dtex_qifmemo); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_dtex_qifswap), PREFS->dtex_qifswap); gtk_entry_set_text(GTK_ENTRY(data->ST_path_import), PREFS->path_import); gtk_entry_set_text(GTK_ENTRY(data->ST_path_export), PREFS->path_export); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_dtex_csvsep), PREFS->dtex_csvsep); // report hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_daterange_rep), PREFS->date_range_rep); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_color_scheme), PREFS->report_color_scheme); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_rep_smallfont), PREFS->rep_smallfont); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_stat_byamount), PREFS->stat_byamount); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_stat_showrate), PREFS->stat_showrate); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_stat_showdetail), PREFS->stat_showdetail); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_stat_incxfer), PREFS->stat_includexfer); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_budg_showdetail), PREFS->budg_showdetail); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_budg_unexclsub), PREFS->budg_unexclsub); //forecast gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_forecast), PREFS->rep_forcast); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_forecast_nbmonth), PREFS->rep_forecat_nbmonth); /* euro */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_euro_enable), PREFS->euro_active); //gtk_combo_box_set_active(GTK_COMBO_BOX(data->CY_euro_preset), PREFS->euro_country); data->country = PREFS->euro_country; defpref_eurosetcurrency(data->dialog, data->country); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_euro_value), PREFS->euro_value); hbtk_entry_set_text(GTK_ENTRY(data->ST_euro_symbol), PREFS->minor_cur.symbol); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_euro_isprefix), PREFS->minor_cur.sym_prefix); hbtk_entry_set_text(GTK_ENTRY(data->ST_euro_decimalchar), PREFS->minor_cur.decimal_char); hbtk_entry_set_text(GTK_ENTRY(data->ST_euro_groupingchar), PREFS->minor_cur.grouping_char); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_euro_fracdigits), PREFS->minor_cur.frac_digits); //gtk_entry_set_text(GTK_ENTRY(data->ST_euro_symbol), PREFS->euro_symbol); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_euro_nbdec), PREFS->euro_nbdec); //gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_euro_thsep), PREFS->euro_thsep); //advanced gtk_entry_set_text(GTK_ENTRY(data->ST_adv_apirate_url), PREFS->api_rate_url); gtk_entry_set_text(GTK_ENTRY(data->ST_adv_apirate_key), PREFS->api_rate_key); } /* ** get :: fill PREFS structure from widgets */ #define RGBA_TO_INT(x) (int)(x*255) static gchar *gdk_rgba_to_hex(GdkRGBA *rgba) { return g_strdup_printf("#%02x%02x%02x", RGBA_TO_INT(rgba->red), RGBA_TO_INT(rgba->green), RGBA_TO_INT(rgba->blue)); } static void defpref_get(struct defpref_data *data) { GdkRGBA rgba; const gchar *active_id; const gchar *datfmt; DB( g_print("\n[ui-pref] get\n") ); // general PREFS->showsplash = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_show_splash)); PREFS->loadlast = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_load_last)); PREFS->appendscheduled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_append_scheduled)); PREFS->do_update_currency = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_do_update_currency)); //PREFS->date_range_wal = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_daterange_wal)); PREFS->rep_maxspenditems = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_maxspenditems)); PREFS->fisc_year_day = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_fiscyearday)); PREFS->fisc_year_month = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_fiscyearmonth)); // files/backup hbtk_entry_replace_text(GTK_ENTRY(data->ST_path_hbfile), &PREFS->path_hbfile); hbtk_entry_replace_text(GTK_ENTRY(data->ST_path_hbbak) , &PREFS->path_hbbak); PREFS->bak_is_automatic = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_bak_is_automatic)); PREFS->bak_max_num_copies = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_bak_max_num_copies)); g_free(PREFS->language); PREFS->language = NULL; active_id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_language)); if(active_id != NULL) { PREFS->language = g_strdup(active_id); } PREFS->toolbar_style = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_toolbar)); //PREFS->image_size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_image_size)); PREFS->gtk_override = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_gtk_override)); PREFS->gtk_fontsize = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_gtk_fontsize)); PREFS->gtk_darktheme = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_gtk_darktheme)); //icontheme active_id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_icontheme)); if(active_id != NULL) { g_free(PREFS->icontheme); PREFS->icontheme = g_strdup(active_id); } PREFS->icon_symbolic = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_iconsymbolic)); PREFS->custom_colors = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_custom_colors)); PREFS->custom_bg_future = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_custom_bg_future)); PREFS->color_use_palette = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_use_palette)); gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(data->CP_exp_color), &rgba); g_free(PREFS->color_exp); PREFS->color_exp = gdk_rgba_to_hex(&rgba); gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(data->CP_inc_color), &rgba); g_free(PREFS->color_inc); PREFS->color_inc = gdk_rgba_to_hex(&rgba); gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(data->CP_warn_color), &rgba); g_free(PREFS->color_warn); PREFS->color_warn = gdk_rgba_to_hex(&rgba); gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(data->CP_fut_bg_color), &rgba); g_free(PREFS->color_bg_future); PREFS->color_bg_future = gdk_rgba_to_hex(&rgba); //PREFS->rules_hint = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_ruleshint)); PREFS->grid_lines = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_gridlines)); //list_txn_colpref_get(GTK_TREE_VIEW(data->LV_opecolumns), PREFS->lst_ope_columns); // transaction PREFS->date_range_txn = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_daterange_txn)); PREFS->date_future_nbdays = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_datefuture_nbdays)); PREFS->hidereconciled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_hide_reconciled)); PREFS->showremind = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_show_remind)); PREFS->showvoid = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_show_void)); PREFS->includeremind = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_include_remind)); PREFS->safe_lock_recon = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_lock_reconciled)); PREFS->safe_pend_recon = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_safe_pend_recon)); PREFS->safe_pend_past = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_safe_pend_past)); PREFS->safe_pend_past_days = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_safe_pend_past_days)); PREFS->heritdate = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_herit_date)); PREFS->txn_showconfirm = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_show_confirm)); PREFS->txn_showtemplate = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_show_template)); PREFS->txn_memoacp = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_memoacp)); PREFS->txn_memoacp_days = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_memoacp_days)); // txn xfer PREFS->xfer_showdialog = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_xfer_showdialog)); PREFS->xfer_daygap = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_xfer_daygap)); PREFS->xfer_syncdate = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_xfer_syncdate)); PREFS->xfer_syncstat = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_xfer_syncstat)); // display format //1903437 don't allow empty/invalid entry datfmt = gtk_entry_get_text(GTK_ENTRY(data->ST_datefmt)); if( strlen(datfmt) == 0 ) datfmt = "%x"; g_free(PREFS->date_format); PREFS->date_format = g_strdup(datfmt); PREFS->vehicle_unit_ismile = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_unitismile)); PREFS->vehicle_unit_isgal = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_unitisgal)); // import/export PREFS->dtex_datefmt = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_dtex_datefmt)); PREFS->dtex_ucfirst = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_dtex_ucfirst)); PREFS->dtex_ofxname = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_dtex_ofxname)); PREFS->dtex_ofxmemo = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_dtex_ofxmemo)); PREFS->dtex_qifmemo = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_dtex_qifmemo)); PREFS->dtex_qifswap = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_dtex_qifswap)); hbtk_entry_replace_text(GTK_ENTRY(data->ST_path_import), &PREFS->path_import); hbtk_entry_replace_text(GTK_ENTRY(data->ST_path_export), &PREFS->path_export); PREFS->dtex_csvsep = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_dtex_csvsep)); // report PREFS->date_range_rep = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_daterange_rep)); PREFS->report_color_scheme = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_color_scheme)); PREFS->rep_smallfont = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_rep_smallfont)); PREFS->stat_byamount = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_stat_byamount)); PREFS->stat_showrate = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_stat_showrate)); PREFS->stat_showdetail = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_stat_showdetail)); PREFS->stat_includexfer = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_stat_incxfer)); PREFS->budg_showdetail = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_budg_showdetail)); PREFS->budg_unexclsub = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_budg_unexclsub)); //forecast PREFS->rep_forcast = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_forecast)); PREFS->rep_forecat_nbmonth = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_forecast_nbmonth)); // euro minor PREFS->euro_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_euro_enable)); PREFS->euro_country = data->country; PREFS->euro_value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_euro_value)); //strcpy(PREFS->euro_symbol, gtk_entry_get_text(GTK_ENTRY(data->ST_euro_symbol))); //PREFS->euro_nbdec = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_euro_nbdec)); //PREFS->euro_thsep = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_euro_thsep)); hbtk_entry_replace_text(GTK_ENTRY(data->ST_euro_symbol), &PREFS->minor_cur.symbol); PREFS->minor_cur.sym_prefix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_euro_isprefix)); hbtk_entry_replace_text(GTK_ENTRY(data->ST_euro_decimalchar), &PREFS->minor_cur.decimal_char); hbtk_entry_replace_text(GTK_ENTRY(data->ST_euro_groupingchar), &PREFS->minor_cur.grouping_char); PREFS->minor_cur.frac_digits = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_euro_fracdigits)); //PREFS->chart_legend = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_chartlegend)); //advanced hbtk_entry_replace_text(GTK_ENTRY(data->ST_adv_apirate_url), &PREFS->api_rate_url); hbtk_entry_replace_text(GTK_ENTRY(data->ST_adv_apirate_key), &PREFS->api_rate_key); paymode_list_get_order(GTK_TREE_VIEW(data->LV_paymode)); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static GtkWidget *defpref_page_txn_payment (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget, *scrollwin; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: Payment group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Payment shows & chooses")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("Use drag & drop to reorder")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 2, 1); row++; scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_grid_attach (GTK_GRID (group_grid), scrollwin, 1, row, 2, 1); widget = make_paymode_list(); data->LV_paymode = widget; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), widget); gtk_widget_set_hexpand(scrollwin, TRUE); gtk_widget_set_vexpand(scrollwin, TRUE); return content_grid; } static GtkWidget *defpref_page_advanced (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: Advanced options group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Currency API")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("Url:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string(label); data->ST_adv_apirate_url = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_left(_("Key:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string(label); data->ST_adv_apirate_key = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); return content_grid; } static GtkWidget *defpref_page_import (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: Date options group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("General options")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("Date order:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_IMPORT_DATEORDER); data->CY_dtex_datefmt = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Sentence _case memo/payee")); data->CM_dtex_ucfirst = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); // group :: OFX/QFX options crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("OFX/QFX options")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("OFX _Name:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_IMPORT_OFXNAME); data->CY_dtex_ofxname = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_left(_("OFX _Memo:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_IMPORT_OFXMEMO); data->CY_dtex_ofxmemo = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: QIF options crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("QIF options")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("_Import memos")); data->CM_dtex_qifmemo = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); widget = gtk_check_button_new_with_mnemonic (_("_Swap memos with payees")); data->CM_dtex_qifswap = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: other options crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("CSV options")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("(transaction import only)")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 2, 1); row++; label = make_label_left(_("Separator:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_IMPORT_CSVSEPARATOR); data->CY_dtex_csvsep = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); return content_grid; } #define cube_dim 16 static gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer user_data) { struct defpref_data *data = user_data; gint index; GtkColorScheme scheme; gint w, h; gint i, x, y; index = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_color_scheme)); colorscheme_init(&scheme, index); gtk_widget_get_size_request (widget, &w, &h); x = y = 0; for(i=0;iCY_daterange_wal = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); */ // row++; label = make_label_left(_("Max _items:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_numeric(label, 5, 20); data->ST_maxspenditems = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: Initial filter crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Initial filter")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("_Range:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_daterange(label, DATE_RANGE_FLAG_CUSTOM_HIDDEN); data->CY_daterange_rep = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: Statistics options crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Statistics options")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Show by _amount")); data->CM_stat_byamount = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Show _rate column")); data->CM_stat_showrate = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Show _details")); data->CM_stat_showdetail = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Include _transfer")); data->CM_stat_incxfer = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); // group :: Budget options crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Budget options")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Show _details")); data->CM_budg_showdetail = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Exclude subcategories from unbudgeted line")); data->CM_budg_unexclsub = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); return content_grid; } static void defpref_cb_forecast_activate(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gboolean sensitive; DB( g_print("\n[ui-pref] forecats activate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_forecast)); gtk_widget_set_sensitive(data->LB_forecast_nbmonth , sensitive); gtk_widget_set_sensitive(data->ST_forecast_nbmonth , sensitive); } static GtkWidget *defpref_page_forecast (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; //5.7 forecast group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Forecast")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Enable _forecast")); data->CM_forecast = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; label = make_label_left(_("Month number:")); data->LB_forecast_nbmonth = label; //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_numeric(NULL, 1, 36); data->ST_forecast_nbmonth = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); return content_grid; } static GtkWidget *defpref_page_euro (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget, *expander; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: General group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("General")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 4, 1); row=1; widget = gtk_check_button_new_with_mnemonic (_("_Enable")); data->CM_euro_enable = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); row++; label = make_label_left(_("_Preset:")); data->LB_euro_preset =label; //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = ui_euro_combobox_new (label); data->CY_euro_preset = widget; gtk_widget_set_margin_start (label, 2*SPACING_LARGE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: Configuration crow++; group_grid = gtk_grid_new (); data->GRP_configuration = group_grid; gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Configuration")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 4, 1); row=1; widget = make_label_left(NULL); data->ST_euro_country = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); row++; label = make_label_left("1 EUR _="); data->LB_euro_src = label; gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_exchange_rate(label); data->NB_euro_value = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); label = make_label_left(NULL); data->LB_euro_dst = label; gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); // group :: Numbers format crow++; group_grid = gtk_grid_new (); data->GRP_format = group_grid; gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Format")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 4, 1); row = 1; widget = make_label_left(NULL); data->LB_numbereuro = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); row++; expander = gtk_expander_new_with_mnemonic(_("_Customize")); gtk_grid_attach (GTK_GRID (group_grid), expander, 1, row, 1, 1); group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_expander_set_child(GTK_EXPANDER(expander), group_grid); row = 0; label = make_label_left(_("_Symbol:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string_maxlength(label, 3); data->ST_euro_symbol = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Is pre_fix")); data->CM_euro_isprefix = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_left(_("_Decimal char:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string_maxlength(label, 1); data->ST_euro_decimalchar = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_left(_("_Frac digits:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_numeric(label, 0.0, 6.0); data->NB_euro_fracdigits = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_left(_("_Grouping char:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string_maxlength(label, 1); data->ST_euro_groupingchar = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); return content_grid; } static GtkWidget *defpref_page_locale (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget, *expander, *hbox; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: General group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("User interface")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("_Language:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = ui_language_combobox_new(label); data->CY_language = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; row++; label = make_label_left(_("Date display:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_label_left(NULL); data->LB_date = widget; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(widget)), GTK_STYLE_CLASS_DIM_LABEL); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; expander = gtk_expander_new_with_mnemonic(_("C_ustomize")); gtk_grid_attach (GTK_GRID (group_grid), expander, 2, row, 1, 1); group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_expander_set_child (GTK_EXPANDER(expander), group_grid); row++; label = make_label_left(_("_Format:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string(label); data->ST_datefmt = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 1, 1); gtk_widget_set_tooltip_text(widget, _("%a locale's abbreviated weekday name.\n" "%A locale's full weekday name. \n" "%b locale's abbreviated month name. \n" "%B locale's full month name. \n" "%c locale's appropriate date and time representation. \n" "%C century number (the year divided by 100 and truncated to an integer) as a decimal number [00-99]. \n" "%d day of the month as a decimal number [01,31]. \n" "%D same as %m/%d/%y. \n" "%e day of the month as a decimal number [1,31]; a single digit is preceded by a space. \n" "%j day of the year as a decimal number [001,366]. \n" "%m month as a decimal number [01,12]. \n" "%p locale's appropriate date representation. \n" "%y year without century as a decimal number [00,99]. \n" "%Y year with century as a decimal number.") ); row++; widget = make_label_left(NULL); gtk_label_set_markup (GTK_LABEL(widget), "online reference"); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: Fiscal year crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Fiscal year")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; //TRANSLATORS: (fiscal year) starts on label = make_label_left(_("Starts _on:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 1, 1); widget = make_numeric (label, 1, 28); data->NB_fiscyearday = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = hbtk_combo_box_new_with_data (NULL, CYA_MONTHS); data->CY_fiscyearmonth = widget; gtk_box_prepend (GTK_BOX (hbox), widget); // group :: Measurement units crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Measurement units")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Use _miles for meter")); data->CM_unitismile = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Use _gallon for fuel")); data->CM_unitisgal = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); return content_grid; } static GtkWidget *defpref_page_txn (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: txn list group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("General")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Always show remind")); data->CM_show_remind = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Always show void")); data->CM_show_void = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Include remind into balance and report")); data->CM_include_remind = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); crow++; // group :: safety group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Safety")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Lock reconciled for any changes")); data->CM_lock_reconciled = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Approve additions before last reconciliation")); data->CM_safe_pend_recon = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Approve additions")); data->CM_safe_pend_past = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); widget = make_numeric(NULL, 0, 366); data->ST_safe_pend_past_days = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); //TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days as pending label = make_label_left(_("days before today's date")); gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); crow++; // group :: txn list group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Ledger window")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("_Range:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_daterange(label, DATE_RANGE_FLAG_CUSTOM_HIDDEN); data->CY_daterange_txn = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; label = make_label_left(_("_Show future:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_numeric(NULL, 0, 366); data->ST_datefuture_nbdays = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); //TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date label = make_label_left(_("days ahead")); gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Hide reconciled")); data->CM_hide_reconciled = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); return content_grid; } static GtkWidget *defpref_page_txn_dialog (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); // group :: txn dialog crow = 0; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Transaction dialog")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("_Keep the last date when multiple add or inherit")); data->CM_herit_date = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Enable _memo autocomplete with")); data->CM_memoacp = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); widget = make_numeric(NULL, 0, 1460); data->ST_memoacp_days = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); label = make_label_left(_("rolling days")); gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Show add confirmation text for 5s")); data->CM_show_confirm = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Show template list when edit")); data->CM_show_template = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); return content_grid; } static GtkWidget *defpref_page_txn_transfer (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); // group :: transfer crow = 0; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Behavior")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("When adding, always show selection _action for target dialog")); //widget = gtk_check_button_new_with_mnemonic (_("Always prompt")); data->CM_xfer_showdialog = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; label = make_label_left(_("Date _gap to find a target:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_numeric(NULL, 2, 7); data->ST_xfer_daygap = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); label = make_label_left(_("days")); gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); // group :: transfer crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Synchronize")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("_Date")); data->CM_xfer_syncdate = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("_Status")); data->CM_xfer_syncstat = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); return content_grid; } /* test */ static void defpref_icons_changed_cb(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; const gchar *active_id; gboolean symbolic; DB( g_print("\n[ui-pref] cb icon changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); active_id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_icontheme)); symbolic = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_iconsymbolic)); DB( g_print(" name: %s, sym:%d\n", active_id, symbolic ) ); //gtk_settings_set_string_property (gtk_settings_get_default (), "gtk-icon-theme-name", active_id, "gtkrc:0"); g_object_set(gtk_settings_get_default (), "gtk-icon-theme-name", active_id, NULL); homebank_pref_icon_symbolic(symbolic); } /* end test */ static GtkWidget *defpref_page_intf_theming (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow =0; // group :: Theming group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Theme")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row=1; #ifdef G_OS_UNIX label = make_label_left(_("Dark mode:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); gchar *txt = _("System has no preference"); if( GLOBALS->color_scheme == PREFER_DARK ) txt = _("System prefer dark"); else if( GLOBALS->color_scheme == PREFER_LIGHT ) txt = _("System prefer light"); label = make_label_left(txt); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(label)), GTK_STYLE_CLASS_DIM_LABEL); gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); row++; #endif widget = gtk_check_button_new_with_mnemonic (_("Use _dark mode if available")); data->CM_gtk_darktheme = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); // group :: Icons crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Icons")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row=1; label = make_label_left(_("_Icon theme:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new (label); //future gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widget), "Default", "Default"); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widget), "hicolor", "Legacy"); data->CY_icontheme = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Use _symbolic icons if available")); data->CM_iconsymbolic = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); // group :: GTK override crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Gtk settings")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Ov_erride")); data->CM_gtk_override = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; label = make_label_left(_("_Font size:")); data->LB_gtk_fontsize = label; gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_numeric(label, 8, 16); data->NB_gtk_fontsize = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); return content_grid; } static GtkWidget *defpref_page_intf_color (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: Theming group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); row = 1; label = make_label_group(_("Chart")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row++; label = make_label_left(_("_Palette:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_array(label, chart_colors); data->CY_color_scheme = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; widget = gtk_drawing_area_new (); data->DA_colors = widget; gtk_widget_set_size_request (widget, (1+cube_dim)*16, (1+cube_dim)*2); gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1); g_signal_connect (data->DA_colors, "draw", G_CALLBACK (draw_callback), data); // group :: Others crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Others")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("_Use colors from the chart palette")); data->CM_use_palette = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_color_button_new (); data->CP_exp_color = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); label = make_label_left(_("_Expense")); gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL(label), widget); row++; widget = gtk_color_button_new (); data->CP_inc_color = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); label = make_label_left(_("_Income")); gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL(label), widget); row++; widget = gtk_color_button_new (); data->CP_warn_color = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); label = make_label_left(_("_Warning")); gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL(label), widget); row++; widget = gtk_color_button_new (); data->CP_fut_bg_color = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); label = make_label_left(_("Background _future")); gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL(label), widget); return content_grid; } static GtkWidget *defpref_page_intf (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: General group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("General")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Color the _amounts")); data->CM_custom_colors = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Color the _background of future transactions")); data->CM_custom_bg_future = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; //widget = gtk_check_button_new_with_mnemonic (_("Enable rows in alternating colors")); //data->CM_ruleshint = widget; label = make_label_left(_("_Grid line:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_GRID_LINES); data->CY_gridlines = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group ::Charts options crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Charts options")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Smaller legend _font")); data->CM_rep_smallfont = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); // group :: Deprecated crow += 5; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group("Deprecated"); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("_Toolbar:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_TOOLBAR_STYLE); data->CY_toolbar = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); return content_grid; } static GtkWidget *defpref_page_filebackup (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *hbox, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: Backup group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Backup")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("_Enable automatic backups")); data->CM_bak_is_automatic = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; label = make_label_left(_("_Number of backups to keep:")); data->LB_bak_max_num_copies = label; gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_numeric (label, 1, 99); data->NB_bak_max_num_copies = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); row++; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); data->GR_bak_freq = hbox; //gtk_widget_set_hexpand (hbox, TRUE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 2, 1); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); gtk_box_prepend (GTK_BOX (hbox), widget); label = make_label_left(_("Backup frequency is once a day")); gtk_box_prepend (GTK_BOX (hbox), label); return content_grid; } static GtkWidget *defpref_page_folders (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *hbox, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: Files folder group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("HomeBank files")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("_Wallets:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_hexpand (hbox, TRUE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 1, 1); widget = make_string(label); data->ST_path_hbfile = widget; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(widget)), GTK_STYLE_CLASS_LINKED); hbtk_box_prepend (GTK_BOX (hbox), widget); //widget = gtk_button_new_with_label("..."); widget = gtk_button_new_from_icon_name(ICONNAME_FOLDER, GTK_ICON_SIZE_BUTTON); data->BT_path_hbfile = widget; gtk_box_prepend (GTK_BOX (hbox), widget); row++; label = make_label_left(_("_Backups:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_hexpand (hbox, TRUE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 1, 1); widget = make_string(label); data->ST_path_hbbak = widget; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(widget)), GTK_STYLE_CLASS_LINKED); hbtk_box_prepend (GTK_BOX (hbox), widget); //widget = gtk_button_new_with_label("..."); widget = gtk_button_new_from_icon_name(ICONNAME_FOLDER, GTK_ICON_SIZE_BUTTON); data->BT_path_hbbak = widget; gtk_box_prepend (GTK_BOX (hbox), widget); // group :: Files folder crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Exchange files")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_left(_("_Import:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_hexpand (hbox, TRUE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 1, 1); widget = make_string(label); data->ST_path_import = widget; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(widget)), GTK_STYLE_CLASS_LINKED); hbtk_box_prepend (GTK_BOX (hbox), widget); //widget = gtk_button_new_with_label("..."); widget = gtk_button_new_from_icon_name(ICONNAME_FOLDER, GTK_ICON_SIZE_BUTTON); data->BT_path_import = widget; gtk_box_prepend (GTK_BOX (hbox), widget); row++; label = make_label_left(_("_Export:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_hexpand (hbox, TRUE); gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 1, 1); widget = make_string(label); data->ST_path_export = widget; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(widget)), GTK_STYLE_CLASS_LINKED); hbtk_box_prepend (GTK_BOX (hbox), widget); //widget = gtk_button_new_with_label("..."); widget = gtk_button_new_from_icon_name(ICONNAME_FOLDER, GTK_ICON_SIZE_BUTTON); data->BT_path_export = widget; gtk_box_prepend (GTK_BOX (hbox), widget); return content_grid; } static GtkWidget *defpref_page_general (struct defpref_data *data) { GtkWidget *content_grid, *group_grid, *label, *widget; gint crow, row; content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); crow = 0; // group :: Program start group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); label = make_label_group(_("Program start")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("Show splash screen")); data->CM_show_splash = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Load last opened file")); data->CM_load_last = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Post pending scheduled transactions")); data->CM_append_scheduled = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Update currencies online")); data->CM_do_update_currency = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 2, 1); return content_grid; } static void defpref_selection(GtkTreeSelection *treeselection, gpointer user_data) { struct defpref_data *data; GtkWidget *notebook; GtkTreeView *treeview; GtkTreeModel *model; GtkTreeIter iter; GValue val = { 0, }; gint page_num; DB( g_print("\n[ui-pref] selection\n") ); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { notebook = GTK_WIDGET(user_data); treeview = gtk_tree_selection_get_tree_view(treeselection); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); gtk_tree_model_get_value(model, &iter, LST_PREF_PAGENUM, &val); page_num = g_value_get_int (&val); DB( g_print(" pagenum: %d\n", page_num) ); g_value_unset (&val); gtk_tree_model_get_value(model, &iter, LST_PREF_LABEL, &val); gtk_label_set_text (GTK_LABEL (data->label), g_value_get_string (&val)); g_value_unset (&val); gtk_tree_model_get_value(model, &iter, LST_PREF_ICONNAME, &val); //gtk_image_set_from_pixbuf (GTK_IMAGE (data->image), g_value_get_object (&val)); gtk_image_set_from_icon_name(GTK_IMAGE (data->image), g_value_get_string (&val), GTK_ICON_SIZE_DIALOG); g_value_unset (&val); gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), page_num); //defpref_change_page(GTK_WIDGET(gtk_tree_selection_get_tree_view(treeselection)), GINT_TO_POINTER(page)); } } /* ** add an empty new account to our temp GList and treeview */ static void defpref_reset(GtkWidget *widget, gpointer user_data) { struct defpref_data *data; gint result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n(defpref_reset) (data=%p)\n", data) ); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), _("Reset All Preferences"), _("Do you really want to reset\nall preferences to default\nvalues?"), _("_Reset"), TRUE ); if( result == GTK_RESPONSE_OK ) { homebank_pref_setdefault(); defpref_set(data); } } // the dialog creation GtkWidget *defpref_dialog_new (void) { struct defpref_data *data; GtkWidget *window, *content, *mainvbox; GtkWidget *hbox, *vbox, *scrollwin, *widget, *notebook, *page, *image, *label; data = g_malloc0(sizeof(struct defpref_data)); window = gtk_dialog_new_with_buttons (_("Preferences"), GTK_WINDOW(GLOBALS->mainwindow), 0, //no flags NULL, //no buttons NULL); widget = gtk_dialog_add_button(GTK_DIALOG(window), _("_Reset"), 55); gtk_widget_set_margin_end(widget, SPACING_LARGE); gtk_dialog_add_button(GTK_DIALOG(window), _("_Cancel"), GTK_RESPONSE_REJECT); gtk_dialog_add_button(GTK_DIALOG(window), _("_OK"), GTK_RESPONSE_ACCEPT); data->dialog = window; //store our window private data g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)data); content = gtk_dialog_get_content_area(GTK_DIALOG (window)); // return a vbox mainvbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (content), mainvbox); hb_widget_set_margin(GTK_WIDGET(mainvbox), SPACING_MEDIUM); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (mainvbox), hbox); //left part vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL); gtk_box_prepend (GTK_BOX (hbox), vbox); //list scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); widget = pref_list_create(); data->LV_page = widget; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), widget); //right part : notebook vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (hbox), vbox); gtk_widget_show (vbox); //header hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_name(hbox, "hbprfhead"); gtk_box_prepend (GTK_BOX (vbox), hbox); gtk_widget_show (hbox); GtkStyleContext *context = gtk_widget_get_style_context (hbox); #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION <= 18) ) gtk_style_context_add_class (context, GTK_STYLE_CLASS_LIST_ROW); gtk_widget_set_state_flags(hbox, GTK_STATE_FLAG_SELECTED, TRUE); #else GtkCssProvider *provider; provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, "#hbprfhead { color: @theme_selected_fg_color; background-color: @theme_selected_bg_color; }" , -1, NULL); gtk_style_context_add_provider (context, GTK_STYLE_PROVIDER(provider), G_MAXUINT); // gtk_style_context_set_state(context, GTK_STATE_FLAG_SELECTED); #endif label = gtk_label_new (NULL); hb_widget_set_margins(GTK_WIDGET(label), SPACING_SMALL, 0, SPACING_SMALL, SPACING_SMALL); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_XX_LARGE, PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); gtk_box_prepend (GTK_BOX (hbox), label); gtk_widget_show (label); data->label = label; image = gtk_image_new (); hb_widget_set_margins(GTK_WIDGET(image), SPACING_SMALL, SPACING_SMALL, SPACING_SMALL, 0); gtk_box_append (GTK_BOX (hbox), image); gtk_widget_show (image); data->image = image; //notebook notebook = gtk_notebook_new(); data->GR_page = notebook; gtk_widget_show(notebook); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); hbtk_box_prepend (GTK_BOX (vbox), notebook); //general page = defpref_page_general(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //interface page = defpref_page_intf(data); scrollwin = make_scrolled_window_ns(GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), page); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrollwin, NULL); //theming page = defpref_page_intf_theming(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //color page = defpref_page_intf_color(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //locale page = defpref_page_locale(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //transaction page = defpref_page_txn(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //dialog page = defpref_page_txn_dialog(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //transfer page = defpref_page_txn_transfer(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //5.8 temporary page = defpref_page_txn_payment(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //import page = defpref_page_import(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //report page = defpref_page_reports(data); scrollwin = make_scrolled_window_ns(GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), page); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrollwin, NULL); //forecast page = defpref_page_forecast(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //backup page = defpref_page_filebackup(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //folders page = defpref_page_folders(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //euro page = defpref_page_euro(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //advanced page = defpref_page_advanced(data); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, NULL); //todo:should move this gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_euro_enable), PREFS->euro_active); //connect all our signals g_signal_connect (data->CY_icontheme, "changed", G_CALLBACK (defpref_icons_changed_cb), NULL); g_signal_connect (data->CM_iconsymbolic, "toggled", G_CALLBACK (defpref_icons_changed_cb), NULL); g_signal_connect (data->CM_gtk_override, "toggled", G_CALLBACK (defpref_gtkoverridetoggle), NULL); g_signal_connect (data->CM_bak_is_automatic, "toggled", G_CALLBACK (defpref_backuptoggle), NULL); g_signal_connect (data->CM_memoacp, "toggled", G_CALLBACK (defpref_memotoggle), NULL); //path selector g_signal_connect (data->BT_path_hbfile, "pressed", G_CALLBACK (defpref_pathselect), GINT_TO_POINTER(PRF_PATH_WALLET)); g_signal_connect (data->BT_path_hbbak , "pressed", G_CALLBACK (defpref_pathselect), GINT_TO_POINTER(PRF_PATH_BACKUP)); g_signal_connect (data->BT_path_import, "pressed", G_CALLBACK (defpref_pathselect), GINT_TO_POINTER(PRF_PATH_IMPORT)); g_signal_connect (data->BT_path_export, "pressed", G_CALLBACK (defpref_pathselect), GINT_TO_POINTER(PRF_PATH_EXPORT)); g_signal_connect (data->CM_use_palette, "toggled", G_CALLBACK (defpref_colorschemetoggle), NULL); //g_signal_connect (data->CM_custom_colors, "toggled", G_CALLBACK (defpref_colortoggle), NULL); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_page)), "changed", G_CALLBACK (defpref_selection), notebook); g_signal_connect (data->CM_euro_enable, "toggled", G_CALLBACK (defpref_eurotoggle), NULL); g_signal_connect (data->CY_euro_preset, "changed", G_CALLBACK (defpref_europreset), NULL); //forecast g_signal_connect (data->CM_forecast, "toggled", G_CALLBACK (defpref_cb_forecast_activate), NULL); //date g_signal_connect (data->ST_datefmt, "changed", G_CALLBACK (defpref_date_sample), NULL); //report g_signal_connect (data->CY_color_scheme, "changed", G_CALLBACK (defpref_color_scheme_changed), NULL); //euro number g_signal_connect (data->ST_euro_symbol , "changed", G_CALLBACK (defpref_numbereuro_sample), NULL); g_signal_connect (data->CM_euro_isprefix, "toggled", G_CALLBACK (defpref_numbereuro_sample), NULL); g_signal_connect (data->ST_euro_decimalchar , "changed", G_CALLBACK (defpref_numbereuro_sample), NULL); g_signal_connect (data->ST_euro_groupingchar, "changed", G_CALLBACK (defpref_numbereuro_sample), NULL); g_signal_connect (data->NB_euro_fracdigits, "value-changed", G_CALLBACK (defpref_numbereuro_sample), NULL); //g_signal_connect (data->BT_default, "pressed", G_CALLBACK (defpref_currency_change), NULL); //setup, init and show window //defhbfile_setup(data); //defhbfile_update(data->LV_arc, NULL); defpref_set(data); defpref_gtkoverridetoggle(window, NULL); defpref_memotoggle(window, NULL); defpref_backuptoggle (window, NULL); //defpref_colortoggle(window, NULL); defpref_eurotoggle(window, NULL); defpref_cb_forecast_activate(window, NULL); gtk_window_resize(GTK_WINDOW(window), 640, 256); gtk_widget_show_all (window); //gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_page))); //select last page DB( g_print(" select %d:%d\n", PREFS->lastlvl1, PREFS->lastlvl2) ); if( PREFS->lastlvl1 > 0 ) { GtkTreePath *path = gtk_tree_path_new_from_indices(PREFS->lastlvl1, PREFS->lastlvl2, -1); gtk_tree_selection_select_path (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_page)), path); gtk_tree_path_free(path); } else { //select first row DB( g_print(" select first\n") ); GtkTreePath *path = gtk_tree_path_new_first (); gtk_tree_selection_select_path (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_page)), path); gtk_tree_path_free(path); } //defpref_selection(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_page)), NULL); gint result; gchar *old_lang, *old_path_hbbak; //wait for the user result = gtk_dialog_run (GTK_DIALOG (window)); switch( result ) { case GTK_RESPONSE_ACCEPT: //user attention needed if change is //language/backup path old_lang = g_strdup(PREFS->language); old_path_hbbak = g_strdup(PREFS->path_hbbak); defpref_get(data); homebank_pref_save(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_VISUAL)); DB( g_print("old='%s' new='%s'\n", old_lang, PREFS->language) ); //if(g_ascii_strncasecmp(old_lang == NULL ? "" : old_lang, PREFS->language == NULL ? "" : PREFS->language, -1) != 0) if( hb_string_ascii_compare(old_lang, PREFS->language) != 0 ) { ui_dialog_msg_infoerror(GTK_WINDOW(window), GTK_MESSAGE_INFO, _("Info"), _("You will have to restart HomeBank\nfor the language change to take effect.") ); } if( hb_string_ascii_compare(old_path_hbbak, PREFS->path_hbbak) != 0 ) { ui_dialog_msg_infoerror(GTK_WINDOW(window), GTK_MESSAGE_INFO, _("Info"), _("The backup directory has changed,\nyou may need to copy the '.bak' file to this new location.") ); } g_free(old_lang); g_free(old_path_hbbak); break; case 55: defpref_reset (window, NULL); break; } //store last page selection { GtkTreeModel *model; GtkTreeIter iter; gint depth; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_page)), &model, &iter)) { //store last page GtkTreePath *path = gtk_tree_model_get_path(model, &iter); gint *indices = gtk_tree_path_get_indices_with_depth(path, &depth); if( indices != NULL ) { PREFS->lastlvl1 = indices[0]; if(depth > 1) PREFS->lastlvl2 = indices[1]; else PREFS->lastlvl2 = 0; } DB( g_print(" stored: %d:%d\n", PREFS->lastlvl1, PREFS->lastlvl2) ); gtk_tree_path_free(path); } } // cleanup and destroy //defhbfile_cleanup(data, result); gtk_window_destroy (GTK_WINDOW(window)); g_free(data); return window; } // ------------------------------- static GtkWidget *pref_list_create(void) { GtkTreeStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeIter iter; struct pref_list_datas *tmp; gint i; /* create list store */ store = gtk_tree_store_new( LST_PREF_MAX, G_TYPE_INT, //unique id G_TYPE_STRING, //icon G_TYPE_STRING, //label G_TYPE_INT //pagenum ); //treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW (treeview), FALSE); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_SINGLE); /* column 1: icon */ column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); g_object_set(renderer, "stock-size", GTK_ICON_SIZE_DND, NULL); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_attributes(column, renderer, "icon-name", LST_PREF_ICONNAME, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_attributes(column, renderer, "text", LST_PREF_LABEL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //populate our combobox model for(i=0;ilabel == NULL ) break; if( tmp->level == 1 ) { gtk_tree_store_insert_with_values(store, &iter, NULL, -1, LST_PREF_UID , tmp->key, LST_PREF_ICONNAME , tmp->iconname, LST_PREF_LABEL , _(tmp->label), LST_PREF_PAGENUM , i, -1); } else { gtk_tree_store_insert_with_values(store, NULL, &iter, -1, LST_PREF_UID , tmp->key, LST_PREF_ICONNAME , tmp->iconname, LST_PREF_LABEL , _(tmp->label), LST_PREF_PAGENUM , i, -1); } } gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); gtk_tree_view_expand_all(GTK_TREE_VIEW(treeview)); return(treeview); } homebank-5.9.1/src/dsp-account.c0000644000175000017500000034367515006360063012167 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "dsp-account.h" #include "dsp-mainwindow.h" #include "list-operation.h" #include "hub-account.h" #include "gtk-dateentry.h" #include "ui-filter.h" #include "ui-transaction.h" #include "ui-txn-multi.h" #include "ui-flt-widget.h" #include "ui-dialogs.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern HbKvData CYA_FLT_TYPE[]; extern HbKvData CYA_FLT_STATUS[]; /* = = = = = = = = = = = = = = = = */ static void _list_txn_selection_count_type(GtkTreeView *treeview, gint *nbrecon, gint *nbpending) { GtkTreeModel *model; GList *lselection, *list; gint tmprecon = 0; gint tmppending = 0; DB( g_print("\n[hub-ledger] selection count type\n") ); model = gtk_tree_view_get_model(treeview); lselection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(treeview), &model); list = g_list_last(lselection); while(list != NULL) { GtkTreeIter iter; Transaction *txn; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &txn, -1); if(txn->status == TXN_STATUS_RECONCILED) tmprecon++; if(txn->flags & (OF_ISIMPORT|OF_ISPAST)) tmppending++; list = g_list_previous(list); } g_list_foreach(lselection, (GFunc)gtk_tree_path_free, NULL); g_list_free(lselection); if(nbrecon) *nbrecon = tmprecon; if(nbpending) *nbpending = tmppending; } static void hub_ledger_balance_refresh(GtkWidget *view) { struct hub_ledger_data *data; Transaction *minbalope; GList *list; gdouble balance; GtkTreeModel *model; gdouble lbalance = 0; guint32 ldate = 0; gushort lpos = 1; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(view, GTK_TYPE_WINDOW)), "inst_data"); // noaction if show all account if(data->showall) return; DB( g_print("\n[hub-ledger] balance refresh kacc=%d\n", data->acc != NULL ? (gint)data->acc->key : -1) ); balance = data->acc->initial; //#1270687: sort if date changed if(data->do_sort) { DB( g_print(" complete txn sort\n") ); da_transaction_queue_sort(data->acc->txn_queue); data->do_sort = FALSE; } minbalope = NULL; list = g_queue_peek_head_link(data->acc->txn_queue); while (list != NULL) { Transaction *ope = list->data; gdouble value; //#1267344 maybe no remind in running balance if( transaction_is_balanceable(ope) ) balance += ope->amount; ope->balance = balance; // clear mark flags ope->dspflags &= ~(FLAG_TMP_OVER|FLAG_TMP_LOWBAL); //#1661806 add show overdraft //#1672209 added round like for #400483 value = hb_amount_round(balance, 2); if( (value != 0.0) && (value < data->acc->minimum) ) { ope->dspflags |= FLAG_TMP_OVER; } //# mark lowest balance for future if ((ope->date > GLOBALS->today)) { if( balance < lbalance ) minbalope = ope; } if(ope->date == ldate) { ope->pos = ++lpos; } else { ope->pos = lpos = 1; } ldate = ope->date; lbalance = balance; list = g_list_next(list); } if( minbalope != NULL ) minbalope->dspflags |= FLAG_TMP_LOWBAL; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); list_txn_sort_force(GTK_TREE_SORTABLE(model), NULL); } static void hub_ledger_update(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; GtkTreeSelection *selection; gint flags = GPOINTER_TO_INT(user_data); gboolean lockrecon, visible; gint count = 0; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //data = INST_DATA(widget); DB( g_print("\n[hub-ledger] update kacc=%d\n", data->acc != NULL ? (gint)data->acc->key : -1) ); GLOBALS->minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); /* set window title */ if(flags & FLG_REG_TITLE) { DB( g_print("\n FLG_REG_TITLE\n") ); } /* update toolbar & list */ if(flags & FLG_REG_VISUAL) { //gboolean visible; DB( g_print("\n FLG_REG_VISUAL\n") ); //minor ? hb_widget_visible (data->CM_minor, PREFS->euro_active); //TODO: balance to show/hide /* visible = (homebank_pref_list_column_get(PREFS->lst_acc_columns, COL_DSPACC_RECON, NUM_LST_COL_DSPACC) < 0) ? FALSE : TRUE; hb_widget_visible (data->LB_recon, visible); hb_widget_visible (data->TX_balance[0], visible); visible = (homebank_pref_list_column_get(PREFS->lst_acc_columns, COL_DSPACC_CLEAR, NUM_LST_COL_DSPACC) < 0) ? FALSE : TRUE; hb_widget_visible (data->LB_clear, visible); hb_widget_visible (data->TX_balance[1], visible); visible = (homebank_pref_list_column_get(PREFS->lst_acc_columns, COL_DSPACC_TODAY, NUM_LST_COL_DSPACC) < 0) ? FALSE : TRUE; hb_widget_visible (data->LB_today, visible); hb_widget_visible (data->TX_balance[2], visible); visible = (homebank_pref_list_column_get(PREFS->lst_acc_columns, COL_DSPACC_FUTURE, NUM_LST_COL_DSPACC) < 0) ? FALSE : TRUE; hb_widget_visible (data->LB_futur, visible); hb_widget_visible (data->TX_balance[3], visible); */ } /* update balances */ if(flags & FLG_REG_BALANCE) { DB( g_print("\n FLG_REG_BALANCE\n") ); if(data->showall == FALSE) { Account *acc = data->acc; hub_ledger_balance_refresh(widget); DB( g_print(" update 4 balances widget\n") ); hb_label_set_colvalue(GTK_LABEL(data->TX_balance[0]), acc->bal_recon, acc->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_balance[1]), acc->bal_clear, acc->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_balance[2]), acc->bal_today, acc->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_balance[3]), acc->bal_future, acc->kcur, GLOBALS->minor); } else { GList *lst_acc, *lnk_acc; gdouble recon, clear, today, future; recon = clear = today = future = 0.0; lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; recon += hb_amount_base(acc->bal_recon, acc->kcur); clear += hb_amount_base(acc->bal_clear, acc->kcur); today += hb_amount_base(acc->bal_today, acc->kcur); future += hb_amount_base(acc->bal_future, acc->kcur); lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); DB( g_print(" update 4 balances widget\n") ); hb_label_set_colvalue(GTK_LABEL(data->TX_balance[0]), recon, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_balance[1]), clear, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_balance[2]), today, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_balance[3]), future, GLOBALS->kcur, GLOBALS->minor); } ui_hub_account_compute(GLOBALS->mainwindow, NULL); } /* update disabled things */ if(flags & FLG_REG_SENSITIVE) { gboolean sensitive, psensitive, nsensitive; GtkTreeModel *model; gint sort_column_id; GtkSortType order; Transaction *ope; DB( g_print(" FLG_REG_SENSITIVE\n") ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)); count = gtk_tree_selection_count_selected_rows(selection); DB( g_print(" count = %d\n", count) ); ope = list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_ope)); //showall part sensitive = !data->showall; //hb_widget_visible(data->MI_exportqif, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "expqif")), sensitive); //hb_widget_visible(data->MI_browse, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "browse")), sensitive); //tools //hb_widget_visible(data->MI_markdup, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "mrksign")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "mrkdup")), sensitive); //hb_widget_visible(data->MI_chkintxfer, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "chkxfer")), sensitive); //#1873248 Auto. assignments faulty sensitive on 'All transactions' window //hb_widget_visible(data->MI_autoassign, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "runasg")), sensitive); //1909749 lock/unlock reconciled lockrecon = gtk_switch_get_active (GTK_SWITCH(data->SW_lockreconciled)); if( ope != NULL ) { if( (ope->status != TXN_STATUS_RECONCILED) ) lockrecon = FALSE; DB( g_print(" lockrecon = %d (%d %d)\n", lockrecon, ope->status != TXN_STATUS_RECONCILED, gtk_switch_get_state (GTK_SWITCH(data->SW_lockreconciled)) ) ); } //5.3.1 if closed account : disable any change sensitive = TRUE; if( data->closed == TRUE ) sensitive = FALSE; gtk_widget_set_sensitive(data->TB_bar, sensitive); //todo: subsititute ? or check carrefully //gtk_widget_set_sensitive(data->ME_menuedit, sensitive); //gtk_widget_set_sensitive(data->ME_menutxn, sensitive); //gtk_widget_set_sensitive(data->ME_menutools, sensitive); //gtk_widget_set_sensitive(data->ME_popmenu, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txncopy")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnpaste")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnpastet")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "mrksign")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "mrkdup")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "chkxfer")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "runasg")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "convert")), sensitive); //5.7 browse menu sensitive = account_has_website(data->acc); //gtk_widget_set_sensitive(data->MI_browse, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "browse")), sensitive); // multiple: disable inherit, edit sensitive = (count != 1 ) ? FALSE : TRUE; //gtk_widget_set_sensitive(data->MI_herit, sensitive); //gtk_widget_set_sensitive(data->MI_popherit, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnherit")), sensitive); //gtk_widget_set_sensitive(data->MI_edit, lockrecon ? FALSE : sensitive); //gtk_widget_set_sensitive(data->MI_popedit, lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnedit")), lockrecon ? FALSE : sensitive); gtk_widget_set_sensitive(data->BT_herit, sensitive); gtk_widget_set_sensitive(data->BT_edit, lockrecon ? FALSE : sensitive); //gtk_widget_set_sensitive(data->MI_popcopyamount, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "copyamt")), sensitive); //txn have split sensitive = (count == 1) && (ope != NULL) && (ope->flags & OF_SPLIT) ? TRUE : FALSE; //gtk_widget_set_sensitive(data->MI_popviewsplit, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "viewsplit")), sensitive); // single: disable multiedit sensitive = (count <= 1 ) ? FALSE : TRUE; //1909749 lock/unlock reconciled gint nbrecon, nbpending; _list_txn_selection_count_type(GTK_TREE_VIEW(data->LV_ope), &nbrecon, &nbpending); if( (nbrecon > 0) && (gtk_switch_get_active (GTK_SWITCH(data->SW_lockreconciled)) == TRUE) ) sensitive = FALSE; //gtk_widget_set_sensitive(data->MI_multiedit , sensitive); //gtk_widget_set_sensitive(data->MI_popmultiedit, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnmedit")), sensitive); gtk_widget_set_sensitive(data->BT_multiedit , sensitive); //pending action sensitive = (count >=1 && nbpending > 0) ? TRUE : FALSE; g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnapprove")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnreject")), sensitive); // no selection: disable reconcile, delete sensitive = (count > 0 ) ? TRUE : FALSE; //gtk_widget_set_sensitive(data->MI_copy, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txncopy")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnclip")), sensitive); //gtk_widget_set_sensitive(data->ME_menustatus, lockrecon ? FALSE : sensitive); //gtk_widget_set_sensitive(data->ME_popmenustatus, lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "stanon")), lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "staclr")), lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "starec")), lockrecon ? FALSE : sensitive); //#1600356 g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "flgn")), lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "flg1")), lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "flg2")), lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "flg3")), lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "flg4")), lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "flg5")), lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "flg6")), lockrecon ? FALSE : sensitive); //gtk_widget_set_sensitive(data->MI_delete, lockrecon ? FALSE : sensitive); //gtk_widget_set_sensitive(data->MI_popdelete, lockrecon ? FALSE : sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txndel")), lockrecon ? FALSE : sensitive); //gtk_widget_set_sensitive(data->MI_assign, sensitive); //gtk_widget_set_sensitive(data->MI_popassign, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "newasg")), sensitive); //gtk_widget_set_sensitive(data->MI_template, sensitive); //gtk_widget_set_sensitive(data->MI_poptemplate, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "newtpl")), sensitive); gtk_widget_set_sensitive(data->BT_delete, lockrecon ? FALSE : sensitive); gtk_widget_set_sensitive(data->BT_clear, lockrecon ? FALSE : sensitive); gtk_widget_set_sensitive(data->BT_reconcile, lockrecon ? FALSE : sensitive); //edit menu sensitive = g_queue_get_length(data->q_txn_clip) > 0 ? TRUE : FALSE; //gtk_widget_set_sensitive(data->MI_pasten, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnpaste")), sensitive); //gtk_widget_set_sensitive(data->MI_pastet, sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnpastet")), sensitive); // euro convert visible = (data->showall == TRUE) ? FALSE : PREFS->euro_active; if( (data->acc != NULL) && currency_is_euro(data->acc->kcur) ) visible = FALSE; //hb_widget_visible(data->MI_conveuro, visible); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "convert")), visible); //move up/down button : not when showall and when sort is not date visible = FALSE; psensitive = FALSE; nsensitive = FALSE; if( count == 1 && data->showall == FALSE ) { Transaction *prevtxn, *nexttxn; visible = TRUE; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE(GTK_TREE_STORE(model)), &sort_column_id, &order); if( (data->showall == TRUE) || (sort_column_id != LST_DSPOPE_DATE) ) visible = FALSE; prevtxn = NULL; nexttxn = NULL; Transaction *txn = list_txn_get_surround_transaction(GTK_TREE_VIEW(data->LV_ope), &prevtxn, &nexttxn); if( prevtxn && txn ) { psensitive = (prevtxn->date == txn->date) ? TRUE : FALSE; } if( nexttxn && txn ) { nsensitive = (nexttxn->date == txn->date) ? TRUE : FALSE; } } //hb_widget_visible(data->SP_updown, visible); //hb_widget_visible(data->BT_up, visible); //hb_widget_visible(data->BT_down, visible); //todo: why assign sesnitivity twice ?? //hb_widget_visible(data->MI_poptxnup, visible); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnup")), sensitive); //hb_widget_visible(data->MI_poptxndown, visible); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txndw")), sensitive); //gtk_widget_set_sensitive(data->MI_poptxnup, psensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnup")), psensitive); gtk_widget_set_sensitive(data->BT_up, psensitive); //gtk_widget_set_sensitive(data->MI_poptxndown, nsensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txndw")), nsensitive); gtk_widget_set_sensitive(data->BT_down, nsensitive); } //#1875100 show infobar for pending visible = data->nb_pending > 0 ? TRUE : FALSE; hb_widget_visible(data->IB_accnotif, visible); if( visible == TRUE ) { gchar *accmsg = g_strdup_printf(_("%d requires approval"), data->nb_pending); gtk_label_set_markup(GTK_LABEL(data->LB_accnotif), accmsg); g_free (accmsg); } //#1835588 visible = PREFS->date_future_nbdays > 0 ? TRUE : FALSE; if( !(filter_preset_daterange_future_enable( data->filter, hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)) )) ) visible = FALSE; hb_widget_visible(data->CM_future, visible); DB( g_print(" show future=%d\n", visible) ); /* update fltinfo */ DB( g_print(" FLG_REG_INFOBAR\n") ); DB( g_print(" statusbar\n") ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)); count = gtk_tree_selection_count_selected_rows(selection); DB( g_print(" nb selected = %d\n", count) ); /* if more than one ope selected, we make a sum to display to the user */ gdouble opeexp = 0.0; gdouble opeinc = 0.0; gchar buf1[64]; gchar buf2[64]; gchar buf3[64]; gchar fbufavg[64]; guint32 kcur; kcur = (data->showall == TRUE) ? GLOBALS->kcur : data->acc->kcur; if( count >= 1 ) { GList *list, *tmplist; GtkTreeModel *model; GtkTreeIter iter; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); list = gtk_tree_selection_get_selected_rows(selection, &model); tmplist = g_list_first(list); while (tmplist != NULL) { Transaction *item; gtk_tree_model_get_iter(model, &iter, tmplist->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &item, -1); if( data->showall == FALSE ) { if( item->flags & OF_INCOME ) opeinc += item->amount; else opeexp += item->amount; } else { if( item->flags & OF_INCOME ) opeinc += hb_amount_base(item->amount, item->kcur); else opeexp += hb_amount_base(item->amount, item->kcur); } DB( g_print(" memo='%s', %.2f\n", item->memo, item->amount ) ); tmplist = g_list_next(tmplist); } g_list_free(list); DB( g_print(" %f - %f = %f\n", opeinc, opeexp, opeinc + opeexp) ); hb_strfmon(buf1, 64-1, opeinc, kcur, GLOBALS->minor); hb_strfmon(buf2, 64-1, -opeexp, kcur, GLOBALS->minor); hb_strfmon(buf3, 64-1, opeinc + opeexp, kcur, GLOBALS->minor); hb_strfmon(fbufavg, 64-1, (opeinc + opeexp) / count, kcur, GLOBALS->minor); } DB( g_print(" update selection message\n") ); gchar *msg; if( count <= 1 ) { msg = g_strdup_printf(_("%d transactions"), data->total); } else msg = g_strdup_printf(_("%d transactions, %d selected, avg: %s, sum: %s (%s - %s)"), data->total, count, fbufavg, buf3, buf1, buf2); gtk_label_set_markup(GTK_LABEL(data->TX_selection), msg); g_free (msg); //5.6 update lock/unlock DB( g_print(" update lock/unlock\n") ); lockrecon = gtk_switch_get_active (GTK_SWITCH(data->SW_lockreconciled)); DB( g_print(" lockrecon=%d\n", lockrecon) ); list_txn_set_lockreconciled(GTK_TREE_VIEW(data->LV_ope), lockrecon); gchar *iconname = lockrecon == TRUE ? ICONNAME_CHANGES_PREVENT : ICONNAME_CHANGES_ALLOW; g_object_set(data->IM_lockreconciled, "icon-name", iconname, NULL); gtk_widget_set_tooltip_text (data->SW_lockreconciled, lockrecon == TRUE ? _("Locked. Click to unlock") : _("Unlocked. Click to lock")); DB( g_print(" redraw LV_ope\n") ); gtk_widget_queue_draw (data->LV_ope); } /* these 5 functions are independant from account window */ /* account functions -------------------- */ static void hub_ledger_edit_multiple(GtkWidget *widget, Transaction *txn, gint column_id, gpointer user_data) { struct hub_ledger_data *data; GtkWidget *dialog; DB( g_print("\n[hub-ledger] edit multiple\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print(" txn:%p, column: %d\n", txn, column_id) ); dialog = ui_multipleedit_dialog_new(GTK_WINDOW(data->window), GTK_TREE_VIEW(data->LV_ope)); if(txn != NULL && column_id != 0) { ui_multipleedit_dialog_prefill(dialog, txn, column_id); } //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if( result == GTK_RESPONSE_ACCEPT ) { gboolean do_sort; gint changes; //#1792808: sort if date changed changes = ui_multipleedit_dialog_apply (dialog, &do_sort); data->do_sort = do_sort; if( changes > 0 ) { //#1782749 update account status if( data->acc != NULL ) data->acc->dspflags |= FLAG_ACC_TMP_EDITED; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } } gtk_window_destroy (GTK_WINDOW(dialog)); hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_SENSITIVE|FLG_REG_BALANCE)); } /* ---end ---- */ static void hub_ledger_action_move_up(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; Transaction *txn = NULL; Transaction *prevtxn = NULL; gint count = 0; DB( g_print("\n[hub-ledger] move up\n\n") ); txn = list_txn_get_surround_transaction(GTK_TREE_VIEW(data->LV_ope), &prevtxn, NULL); if( txn && prevtxn ) { if( txn->date == prevtxn->date ) { DB( g_print(" swapping, as txn are same date\n") ); //swap position gint savedpos = txn->pos; txn->pos = prevtxn->pos; prevtxn->pos = savedpos; GLOBALS->changes_count++; count++; } } if( count > 0 ) { data->do_sort = TRUE; hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_SENSITIVE|FLG_REG_BALANCE)); } } static void hub_ledger_action_move_down(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; Transaction *txn = NULL; Transaction *nexttxn = NULL; gint count = 0; DB( g_print("\n[hub-ledger] move down\n\n") ); txn = list_txn_get_surround_transaction(GTK_TREE_VIEW(data->LV_ope), NULL, &nexttxn); if( txn && nexttxn ) { if( txn->date == nexttxn->date ) { DB( g_print(" swapping, as txn are same date\n") ); //swap position gint savedpos = txn->pos; txn->pos = nexttxn->pos; nexttxn->pos = savedpos; GLOBALS->changes_count++; count++; } } if( count > 0 ) { data->do_sort = TRUE; hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_SENSITIVE|FLG_REG_BALANCE)); } } static gboolean hub_ledger_cb_recon_change (GtkWidget *widget, gboolean state, gpointer user_data) { struct hub_ledger_data *data; DB( g_print("\n[hub-ledger] cb recon change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->lockreconciled = gtk_switch_get_active (GTK_SWITCH(data->SW_lockreconciled)); DB( g_print(" state=%d switch=%d\n", state, data->lockreconciled ) ); hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_SENSITIVE)); return FALSE; } static void hub_ledger_collect_filtered_txn(GtkWidget *view, gboolean emptysearch) { struct hub_ledger_data *data; GList *lst_acc, *lnk_acc; GList *lnk_txn; gint flag, status; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(view, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[hub-ledger] collect_filtered_txn - kacc=%d\n", data->acc != NULL ? (gint)data->acc->key : -1) ); if(data->gpatxn != NULL) g_ptr_array_free (data->gpatxn, TRUE); //TODO: why this ? data->gpatxn = g_ptr_array_sized_new(64); flag = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_flag)); status = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_status)); DB( g_print(" flag=%d\n", flag) ); data->nb_pending = 0; lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; // skip closed in showall mode //#1861337 users want them //if( data->showall == TRUE && (acc->flags & AF_CLOSED) ) // goto next_acc; // skip other than current in normal mode if( (data->showall == FALSE) && (data->acc != NULL) && (acc->key != data->acc->key) ) goto next_acc; data->nb_pending += acc->nb_pending; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *ope = lnk_txn->data; gboolean insert = FALSE; //#1875100 skip any filter but pending //#2109854 really show all txn (void were hidden) if( status==FLT_STATUS_UNAPPROVED ) { if( ope->flags & (OF_ISIMPORT|OF_ISPAST) ) insert = TRUE; } else { if( filter_txn_match(data->filter, ope) == 1 ) { //#1600356 filter flag if( (flag == GRPFLAG_ANY) || (ope->grpflg == flag) ) { insert = TRUE; } } } //add to the list if( insert == TRUE ) { g_ptr_array_add(data->gpatxn, (gpointer)ope); } lnk_txn = g_list_next(lnk_txn); } next_acc: lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); //#1789698 not always empty if( emptysearch == TRUE ) { g_signal_handler_block(data->ST_search, data->handler_id[HID_SEARCH]); gtk_entry_set_text (GTK_ENTRY(data->ST_search), ""); g_signal_handler_unblock(data->ST_search, data->handler_id[HID_SEARCH]); } } static void hub_ledger_selection(GtkTreeSelection *treeselection, gpointer user_data) { DB( g_print("\n[hub-ledger] selection changed cb\n") ); hub_ledger_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(FLG_REG_SENSITIVE)); } static void hub_ledger_listview_populate(GtkWidget *widget) { struct hub_ledger_data *data; GtkTreeModel *model; GtkTreeIter iter; gboolean hastext; gchar *needle; gint sort_column_id; GtkSortType order; guint i, qs_flag; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[hub-ledger] listview_populate - kacc=%d\n", data->acc != NULL ? (gint)data->acc->key : -1) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); //block handler here g_signal_handlers_block_by_func (G_OBJECT (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope))), G_CALLBACK (hub_ledger_selection), NULL); gtk_tree_store_clear (GTK_TREE_STORE(model)); // ref model to keep it DB( g_print(" unplug model\n") ); g_object_ref(model); gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_ope), NULL); // perf: if you leave the sort, insert is damned slow gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE(GTK_TREE_STORE(model)), &sort_column_id, &order); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(GTK_TREE_STORE(model)), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, PREFS->lst_ope_sort_order); hastext = (gtk_entry_get_text_length (GTK_ENTRY(data->ST_search)) >= 2) ? TRUE : FALSE; needle = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_search)); //build the mask flag for quick search qs_flag = 0; if(hastext) { qs_flag = list_txn_get_quicksearch_column_mask(GTK_TREE_VIEW(data->LV_ope)); } data->total = 0; data->totalsum = 0.0; for(i=0;igpatxn->len;i++) { Transaction *txn = g_ptr_array_index(data->gpatxn, i); gboolean insert = TRUE; if(hastext) { insert = filter_txn_search_match(needle, txn, qs_flag); } if(insert) { //gtk_list_store_append (GTK_LIST_STORE(model), &iter); //gtk_list_store_set (GTK_LIST_STORE(model), &iter, //5.7 optim: prepend and not append //gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &iter, NULL, -1, gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &iter, NULL, 0, MODEL_TXN_POINTER, txn, -1); if( data->showall == FALSE ) data->totalsum += txn->amount; else data->totalsum += hb_amount_base (txn->amount, txn->kcur); data->total++; } } // push back the sort id DB( g_print(" sort model\n") ); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(GTK_TREE_STORE(model)), sort_column_id, order); DB( g_print(" plug model\n") ); gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_ope), model); /* Re-attach model to view */ g_object_unref(model); g_signal_handlers_unblock_by_func (G_OBJECT (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope))), G_CALLBACK (hub_ledger_selection), NULL); /* update info range text */ { gchar *daterange; daterange = filter_daterange_text_get(data->filter); gtk_widget_set_tooltip_markup(GTK_WIDGET(data->CY_range), daterange); //gtk_label_set_markup(GTK_LABEL(data->TX_daterange), daterange); g_free(daterange); } DB( g_print(" call update\n") ); hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_SENSITIVE+FLG_REG_BALANCE)); } static void hub_ledger_cb_button_lifenergy(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; gboolean lifnrgval; DB( g_print("\n[hub-ledger] toggle life energy\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); lifnrgval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_lifnrg)); if( lifnrgval == TRUE && GLOBALS->lifen_earnbyh <= 0.0 ) { ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_INFO, _("Life Energy"), _("'Earn by hour' is not set into the current Wallet.") ); } list_txn_set_life_energy(GTK_TREE_VIEW(data->LV_ope), lifnrgval); } static void hub_ledger_info_cb_show_pending(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[hub-ledger] infobar show pending\n") ); //TODO: change date to all date ? hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_status), FLT_STATUS_UNAPPROVED); } static void hub_ledger_cb_filter_daterange(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; gboolean future; gint range; DB( g_print("\n[hub-ledger] filter_daterange\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); future = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_future)); data->filter->nbdaysfuture = 0; //in 5.6 no longer custom open the filter //if(range != FLT_RANGE_OTHER) //{ filter_preset_daterange_set(data->filter, range, (data->showall == FALSE) ? data->acc->key : 0); // add eventual x days into future display if( future && (PREFS->date_future_nbdays > 0) ) filter_preset_daterange_add_futuregap(data->filter, PREFS->date_future_nbdays); hub_ledger_collect_filtered_txn(data->LV_ope, FALSE); hub_ledger_listview_populate(data->LV_ope); /*} else { if(ui_flt_manage_dialog_new(GTK_WINDOW(data->window), data->filter, data->showall, TRUE) != GTK_RESPONSE_REJECT) { hub_ledger_collect_filtered_txn(data->LV_ope, FALSE); hub_ledger_listview_populate(data->LV_ope); hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_SENSITIVE+FLG_REG_BALANCE)); } }*/ } static void hub_ledger_cb_filterbar_change(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; gint type, status; DB( g_print("\n[hub-ledger] filterbar change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); type = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); status = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_status)); filter_preset_type_set(data->filter, type, FLT_INCLUDE); filter_preset_status_set(data->filter, status); hub_ledger_collect_filtered_txn(data->LV_ope, FALSE); hub_ledger_listview_populate(data->LV_ope); } static void beta_hub_ledger_cb_preset_change(GtkWidget *widget, gpointer user_data); static void hub_ledger_cb_filter_reset(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; gint dspstatus; GtkWidget *combobox; DB( g_print("\n[hub-ledger] filter_reset\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); filter_reset(data->filter); //#1600356 grpflg g_signal_handlers_block_by_func(data->CY_flag, G_CALLBACK (beta_hub_ledger_cb_preset_change), NULL); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_flag), GRPFLAG_ANY); g_signal_handlers_unblock_by_func(data->CY_flag, G_CALLBACK (beta_hub_ledger_cb_preset_change), NULL); filter_preset_daterange_set (data->filter, PREFS->date_range_txn, (data->showall == FALSE) ? data->acc->key : 0); if(PREFS->hidereconciled) filter_preset_status_set (data->filter, FLT_STATUS_UNRECONCILED); // add eventual x days into future display if( PREFS->date_future_nbdays > 0 ) filter_preset_daterange_add_futuregap(data->filter, PREFS->date_future_nbdays); g_signal_handler_block(data->CY_range, data->handler_id[HID_RANGE]); g_signal_handler_block(data->CY_type, data->handler_id[HID_TYPE]); g_signal_handler_block(data->CY_status, data->handler_id[HID_STATUS]); DB( g_print(" set range : %d\n", data->filter->range) ); DB( g_print(" set type : %d\n", data->filter->type) ); DB( g_print(" set status: %d\n", data->filter->status) ); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), data->filter->range); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_type), data->filter->type); //#1873324 ledger status quick filter do not reset //hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_status), data->filter->rawstatus); //#1878483 status with hidereconciled shows reconciled (due to filter !reconciled internal dspstatus = data->filter->status; if( (dspstatus == FLT_STATUS_RECONCILED) && (data->filter->option[FLT_GRP_STATUS] == 2) ) dspstatus = FLT_STATUS_UNRECONCILED; hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_status), dspstatus); g_signal_handler_unblock(data->CY_status, data->handler_id[HID_STATUS]); g_signal_handler_unblock(data->CY_type, data->handler_id[HID_TYPE]); g_signal_handler_unblock(data->CY_range, data->handler_id[HID_RANGE]); if( data->showall ) { combobox = ui_flt_popover_hub_get_combobox(GTK_BOX(data->PO_hubfilter), NULL); g_signal_handlers_block_by_func (G_OBJECT (combobox), G_CALLBACK (beta_hub_ledger_cb_preset_change), NULL); gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); g_signal_handlers_unblock_by_func (G_OBJECT (combobox), G_CALLBACK (beta_hub_ledger_cb_preset_change), NULL); } hub_ledger_collect_filtered_txn(data->LV_ope, TRUE); hub_ledger_listview_populate(data->LV_ope); } static void beta_hub_ledger_cb_preset_change(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; Filter *newflt; DB( g_print("\n[repdist] filter preset change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( !data->showall ) return; newflt = ui_flt_popover_hub_get(GTK_BOX(data->PO_hubfilter), NULL); if( newflt ) { DB( g_print(" key:%d, copy filter\n", newflt->key) ); da_flt_copy(newflt, data->filter); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), data->filter->range); } else hub_ledger_cb_filter_reset(widget, user_data); ui_flt_manage_header_sensitive(data->PO_hubfilter, NULL); } static void _list_txn_add_by_value(GtkTreeView *treeview, Transaction *ope) { GtkTreeModel *model; GtkTreeIter iter; //GtkTreePath *path; //GtkTreeSelection *sel; if( ope == NULL ) return; DB( g_print("\n[transaction] add_treeview\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); gtk_tree_store_append (GTK_TREE_STORE(model), &iter, NULL); gtk_tree_store_set (GTK_TREE_STORE(model), &iter, MODEL_TXN_POINTER, ope, -1); //activate that new line //path = gtk_tree_model_get_path(model, &iter); //gtk_tree_view_expand_to_path(GTK_TREE_VIEW(treeview), path); //sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); //gtk_tree_selection_select_iter(sel, &iter); //gtk_tree_path_free(path); } /* used to remove a intxfer child from a treeview */ static void _list_txn_remove_by_value(GtkTreeView *treeview, Transaction *txn) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; if( txn == NULL ) return; DB( g_print(" remove by value %p\n\n", txn) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Transaction *tmp; gtk_tree_model_get (model, &iter, MODEL_TXN_POINTER, &tmp, -1); if( txn == tmp ) { gtk_tree_store_remove(GTK_TREE_STORE(model), &iter); break; } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } // this func to some toggle static void _list_txn_status_selected_foreach_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { gint targetstatus = GPOINTER_TO_INT(userdata); Transaction *txn; gboolean saverecondate = FALSE; gtk_tree_model_get(model, iter, MODEL_TXN_POINTER, &txn, -1); account_balances_sub(txn); switch(targetstatus) { case TXN_STATUS_NONE: switch(txn->status) { case TXN_STATUS_CLEARED: case TXN_STATUS_RECONCILED: txn->status = TXN_STATUS_NONE; txn->dspflags |= FLAG_TMP_EDITED; break; } break; case TXN_STATUS_CLEARED: switch(txn->status) { case TXN_STATUS_NONE: case TXN_STATUS_RECONCILED: txn->status = TXN_STATUS_CLEARED; txn->dspflags |= FLAG_TMP_EDITED; break; case TXN_STATUS_CLEARED: txn->status = TXN_STATUS_NONE; txn->dspflags |= FLAG_TMP_EDITED; break; } break; case TXN_STATUS_RECONCILED: switch(txn->status) { case TXN_STATUS_NONE: case TXN_STATUS_CLEARED: txn->status = TXN_STATUS_RECONCILED; txn->dspflags |= FLAG_TMP_EDITED; saverecondate = TRUE; break; case TXN_STATUS_RECONCILED: txn->status = TXN_STATUS_CLEARED; txn->dspflags |= FLAG_TMP_EDITED; break; } break; } transaction_changed(txn, saverecondate); account_balances_add(txn); //#492755 removed 4.3 let the child transfer unchanged //#2019193 option the sync xfer status if( txn->flags & OF_INTXFER ) { if( PREFS->xfer_syncstat == TRUE ) { Transaction *child = transaction_xfer_child_strong_get(txn); if(child != NULL) { GtkWindow *accwin = homebank_app_find_window(txn->kxferacc); //#2080756 recompute bal account_balances_sub(child); child->status = txn->status; child->dspflags |= FLAG_TMP_EDITED; account_balances_add(child); //#2080756 if open refresh target account balances if(accwin != NULL) { DB( g_print(" xfer call refresh %d\n", txn->kxferacc)); hub_ledger_update(GTK_WIDGET(accwin), GINT_TO_POINTER(FLG_REG_BALANCE)); } } } } } static void hub_ledger_remove_single_transaction(GtkWindow *window, Transaction *txn) { struct hub_ledger_data *data; if(txn == NULL) return; DB( g_print("\n[hub-ledger] remove single txn\n") ); data = g_object_get_data(G_OBJECT(window), "inst_data"); _list_txn_remove_by_value(GTK_TREE_VIEW(data->LV_ope), txn); } static void hub_ledger_add_single_transaction(GtkWindow *window, Transaction *txn) { struct hub_ledger_data *data; if(txn == NULL) return; DB( g_print("\n[hub-ledger] add single txn\n") ); data = g_object_get_data(G_OBJECT(window), "inst_data"); _list_txn_add_by_value(GTK_TREE_VIEW(data->LV_ope), txn); } static void hub_ledger_add_after_propagate(struct hub_ledger_data *data, Transaction *add_txn) { DB( g_print("\n[hub-ledger] add after propagate\n") ); if((data->showall == TRUE) || ( (data->acc != NULL) && (add_txn->kacc == data->acc->key) ) ) { _list_txn_add_by_value(GTK_TREE_VIEW(data->LV_ope), add_txn); //#1716181 also add to the ptr_array (quickfilter) g_ptr_array_add(data->gpatxn, (gpointer)add_txn); //#1840100 updates when use multiple account window if( (add_txn->flags & OF_INTXFER) ) { GtkWindow *accwin = homebank_app_find_window(add_txn->kxferacc); if(accwin) { Transaction *child = transaction_xfer_child_strong_get(add_txn); if( child ) { hub_ledger_add_single_transaction(accwin, child); hub_ledger_update(GTK_WIDGET(accwin), GINT_TO_POINTER(FLG_REG_BALANCE)); } } } } } static void _list_txn_remove_active_transaction(GtkTreeView *treeview) { GtkTreeModel *model; GList *list; model = gtk_tree_view_get_model(treeview); list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(treeview), &model); if(list != NULL) { GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_store_remove(GTK_TREE_STORE(model), &iter); } g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); g_list_free(list); } static void hub_ledger_cb_editfilter(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if(ui_flt_manage_dialog_new(GTK_WINDOW(data->window), data->filter, data->showall, TRUE) != GTK_RESPONSE_REJECT) { hub_ledger_collect_filtered_txn(data->LV_ope, TRUE); hub_ledger_listview_populate(data->LV_ope); hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_SENSITIVE+FLG_REG_BALANCE)); g_signal_handler_block(data->CY_range, data->handler_id[HID_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_CUSTOM); g_signal_handler_unblock(data->CY_range, data->handler_id[HID_RANGE]); //ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); if(data->showall) ui_flt_manage_header_sensitive(data->PO_hubfilter, NULL); } } static void hub_ledger_toggle_minor(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; DB( g_print("\n[hub-ledger] toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_BALANCE)); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_ope)); } static gboolean hub_ledger_cb_on_key_press(GtkWidget *source, GdkEvent *event, gpointer user_data) { struct hub_ledger_data *data = user_data; GdkModifierType state; guint keyval; gdk_event_get_state (event, &state); gdk_event_get_keyval(event, &keyval); // On Control-f enable search entry //already bind to menu Txn > Find ctrl+F /*if (state & GDK_CONTROL_MASK && keyval == GDK_KEY_f) { gtk_widget_grab_focus(data->ST_search); } else*/ if (keyval == GDK_KEY_Escape && gtk_widget_has_focus(data->ST_search)) { hbtk_entry_set_text(GTK_ENTRY(data->ST_search), NULL); gtk_widget_grab_focus(data->LV_ope); return TRUE; } return GDK_EVENT_PROPAGATE; } static void hub_ledger_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct hub_ledger_data *data; GtkTreeModel *model; GtkTreeIter iter; gint col_id, count; Transaction *ope; gboolean lockrecon; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); //5.3.1 if closed account : disable any change if( data->closed == TRUE ) return; col_id = gtk_tree_view_column_get_sort_column_id (col); count = gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(treeview)); model = gtk_tree_view_get_model(treeview); //get transaction double clicked to initiate the widget gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &ope, -1); DB( g_print (" %d rows been double-clicked on column=%d! ope=%s\n", count, col_id, ope->memo) ); if( count == 1) { //1909749 lock/unlock reconciled lockrecon = FALSE; if( (ope->status == TXN_STATUS_RECONCILED) && (gtk_switch_get_active (GTK_SWITCH(data->SW_lockreconciled)) == TRUE) ) lockrecon = TRUE; if( lockrecon == FALSE ) { GAction *action = g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnedit"); //hub_ledger_action(GTK_WIDGET(treeview), GINT_TO_POINTER(ACTION_ACCOUNT_EDIT)); g_action_activate(action, NULL); } } else { if( data->showall == FALSE ) { if(col_id >= LST_DSPOPE_DATE && col_id != LST_DSPOPE_BALANCE) { hub_ledger_edit_multiple (data->window, ope, col_id, data); } } } } /* ** populate the account window */ void hub_ledger_window_init(GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[hub-ledger] init window\n") ); if( data->showall == TRUE ) { //gtk_label_set_text (GTK_LABEL(data->LB_name), _("All transactions")); //hb_widget_visible (data->IM_closed, FALSE); } else { //gtk_label_set_text (GTK_LABEL(data->LB_name), data->acc->name); //hb_widget_visible (data->IM_closed, (data->acc->flags & AF_CLOSED) ? TRUE : FALSE); DB( g_print(" sort transactions\n") ); da_transaction_queue_sort(data->acc->txn_queue); } list_txn_set_column_acc_visible(GTK_TREE_VIEW(data->LV_ope), data->showall); if( (data->showall == FALSE) && !(data->acc->flags & AF_NOBUDGET) ) list_txn_set_warn_nocategory(GTK_TREE_VIEW(data->LV_ope), TRUE); //DB( g_print(" mindate=%d, maxdate=%d %x\n", data->filter->mindate,data->filter->maxdate) ); DB( g_print(" set range or populate+update sensitive+balance\n") ); hub_ledger_cb_filter_reset(widget, user_data); DB( g_print(" call update visual\n") ); hub_ledger_update(widget, GINT_TO_POINTER(FLG_REG_VISUAL|FLG_REG_SENSITIVE)); } static gboolean hub_ledger_cb_search_focus_in_event(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct hub_ledger_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[hub-ledger] search focus-in event\n") ); gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope))); return FALSE; } static void quick_search_text_changed_cb (GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data = user_data; hub_ledger_listview_populate (data->window); } static gint listview_context_cb (GtkWidget *widget, GdkEvent *event, GtkWidget *menu) { struct hub_ledger_data *data; GdkEventType type; guint button = 0; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //#1993088 ledger closed account popmenu should be disabled if( data->closed == TRUE ) goto end; type = gdk_event_get_event_type(event); gdk_event_get_button(event, &button); if (type == GDK_BUTTON_PRESS && button == 3) { // check we are not in the header but in bin window if (gdk_event_get_window(event) == gtk_tree_view_get_bin_window (GTK_TREE_VIEW (widget))) { //test to enable //GAction *action; //action = g_action_map_lookup_action (G_ACTION_MAP (data->actions), "txnadd"); //g_simple_action_set_enabled(G_SIMPLE_ACTION(action), TRUE); //g_action_activate(action, NULL); #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) gtk_menu_popup_at_pointer(GTK_MENU(menu), (GdkEvent *)event); #else gtk_menu_popup (GTK_MENU(menu), NULL, NULL, NULL, NULL, button, gdk_event_get_time(event)); #endif // On indique à l'appelant que l'on a géré cet événement. return TRUE; } // On indique à l'appelant que l'on n'a pas géré cet événement. } end: return FALSE; } /* account action functions -------------------- */ static void hub_ledger_action_txnaddherit(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkWidget *dialog; gint result, kacc, type = 0; guint changes = GLOBALS->changes_count; homebank_app_date_get_julian(); if( !strcmp(g_action_get_name (G_ACTION (action)), "txnadd") ) { DB( g_print(" (transaction) add multiple\n") ); data->cur_ope = da_transaction_malloc(); // miss from 5.2.8 ?? //da_transaction_set_default_template(src_txn); type = TXN_DLG_ACTION_ADD; result = HB_RESPONSE_ADD; } else { DB( g_print(" (transaction) inherit multiple\n") ); data->cur_ope = da_transaction_clone(list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_ope))); //#1873311 inherit+kepplastdate=OFF = today if( PREFS->heritdate == FALSE ) data->cur_ope->date = GLOBALS->today; //#2083127 don't keep grpflags data->cur_ope->grpflg = 0; //#1432204 inherit => status none data->cur_ope->status = TXN_STATUS_NONE; type = TXN_DLG_ACTION_INHERIT; result = HB_RESPONSE_ADDKEEP; } kacc = (data->acc != NULL) ? data->acc->key : 0; dialog = create_deftransaction_window(GTK_WINDOW(data->window), type, TXN_DLG_TYPE_TXN, kacc ); while(result == HB_RESPONSE_ADD || result == HB_RESPONSE_ADDKEEP) { if( result == HB_RESPONSE_ADD ) { da_transaction_init(data->cur_ope, kacc); } deftransaction_set_transaction(dialog, data->cur_ope); result = gtk_dialog_run (GTK_DIALOG (dialog)); DB( g_print(" dialog result is %d\n", result) ); if(result == HB_RESPONSE_ADD || result == HB_RESPONSE_ADDKEEP || result == GTK_RESPONSE_ACCEPT) { Transaction *add_txn; deftransaction_get(dialog, NULL); add_txn = transaction_add(GTK_WINDOW(dialog), TRUE, data->cur_ope); //2044601 if NULL xfer may have beed aborted if( add_txn != NULL ) { //#1831975 if(PREFS->txn_showconfirm) deftransaction_external_confirm(dialog, add_txn); DB( g_print(" added 1 transaction to %d\n", add_txn->kacc) ); hub_ledger_add_after_propagate(data, add_txn); hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_BALANCE)); //#1667201 already done into add //data->acc->dspflags |= FLAG_ACC_TMP_ADDED; GLOBALS->changes_count++; } else { //2044601 keep actual txn result = HB_RESPONSE_ADDKEEP; } } } da_transaction_free (data->cur_ope); deftransaction_dispose(dialog, NULL); gtk_window_destroy (GTK_WINDOW(dialog)); //refresh main if( GLOBALS->changes_count > changes ) ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void hub_ledger_action_txnedit(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; Transaction *active_txn; guint changes = GLOBALS->changes_count; gint result; DB( g_print(" edit\n") ); active_txn = list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_ope)); if(active_txn) { Transaction *old_txn, *new_txn; guint32 oldkxferacc; old_txn = da_transaction_clone (active_txn); new_txn = active_txn; //5.8 if xfer break, this will be lost oldkxferacc = old_txn->kxferacc; result = deftransaction_external_edit(GTK_WINDOW(data->window), old_txn, new_txn); if(result == GTK_RESPONSE_ACCEPT) { GtkWindow *accwin; //manage current window display stuff //#1270687: sort if date changed //if(old_txn->date != new_txn->date) // data->do_sort = TRUE; //#1931816: sort is already done in deftransaction_external_edit // but still to be done if showall if(data->showall == FALSE) { GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); list_txn_sort_force(GTK_TREE_SORTABLE(model), NULL); } // txn changed of account //TODO: maybe this should move to deftransaction_external_edit if( data->acc != NULL && (new_txn->kacc != data->acc->key) ) { DB( g_print(" >account change\n") ); DB( g_print(" rem current ledger \n") ); _list_txn_remove_active_transaction(GTK_TREE_VIEW(data->LV_ope)); //#1667501 update target account window if open accwin = homebank_app_find_window(new_txn->kacc); if(accwin) { DB( g_print(" add new ledger \n") ); hub_ledger_add_single_transaction(accwin, new_txn); hub_ledger_update(GTK_WIDGET(accwin), GINT_TO_POINTER(FLG_REG_BALANCE)); GLOBALS->changes_count++; } } //#1812470 txn is xfer update target account window if open if( (old_txn->flags & OF_INTXFER) && (old_txn->amount != new_txn->amount) ) { DB( g_print(" >xfer amt change\n") ); accwin = homebank_app_find_window(new_txn->kxferacc); if(accwin) { DB( g_print(" update xfer dst win\n") ); hub_ledger_update(GTK_WIDGET(accwin), GINT_TO_POINTER(FLG_REG_BALANCE)); } } //5.7 txn was xfer but is not : refresh list if( ((old_txn->flags & OF_INTXFER) > 0) && ((new_txn->flags & OF_INTXFER)==0) ) { DB( g_print("\n >break xfer - %d > %d\n", old_txn->kacc, oldkxferacc) ); hub_ledger_collect_filtered_txn(GTK_WIDGET(data->window), FALSE); hub_ledger_listview_populate(GTK_WIDGET(data->window)); accwin = homebank_app_find_window(oldkxferacc); if(accwin) { DB( g_print(" update xfer dst win %d\n", old_txn->kxferacc) ); hub_ledger_collect_filtered_txn(GTK_WIDGET(accwin), FALSE); hub_ledger_listview_populate(GTK_WIDGET(accwin)); } } //da_transaction_copy(new_txn, old_txn); hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_SENSITIVE|FLG_REG_BALANCE)); //TODO: saverecondate is handled in external edit already transaction_changed(new_txn, FALSE); //#2065625 GLOBALS->changes_count++; } da_transaction_free (old_txn); } //refresh main if( GLOBALS->changes_count > changes ) ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void hub_ledger_action_txnmedit(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; hub_ledger_edit_multiple(data->window, NULL, 0, user_data); } static void _helper_pending_sub(struct hub_ledger_data *data, Transaction *txn) { Account *acc = da_acc_get(txn->kacc); txn->flags &= ~(OF_ISIMPORT|OF_ISPAST); g_return_if_fail(acc != NULL); if( acc->nb_pending > 0 ) acc->nb_pending--; if( data->nb_pending > 0 ) data->nb_pending--; account_flags_eval(acc); } static void hub_ledger_action_txnapprove(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeModel *model; GList *selection, *list; guint changes = GLOBALS->changes_count; //gint count; DB( g_print(" approve\n") ); //#2042692 model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)), &model); //count = g_list_length(selection); list = g_list_last(selection); while(list != NULL) { Transaction *txn; GtkTreeIter iter; if( gtk_tree_model_get_iter(model, &iter, list->data) == TRUE ) { gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &txn, -1); if( txn->flags & (OF_ISIMPORT|OF_ISPAST)) { DB( g_print(" approving txn '%s' %.2f\n", txn->memo, txn->amount) ); account_balances_sub(txn); //#1875100 _helper_pending_sub(data, txn); account_balances_add(txn); txn->dspflags |= FLAG_TMP_EDITED; GLOBALS->changes_count++; } } list = g_list_previous(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_BALANCE)); //refresh main if( GLOBALS->changes_count > changes ) ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void hub_ledger_action_txndelete(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeModel *model; GList *selection, *list; gchar *title; guint changes = GLOBALS->changes_count; gint count, result; DB( g_print(" delete\n") ); //#2042692 model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)), &model); count = g_list_length(selection); title = g_strdup_printf (_("Are you sure you want to delete the %d selected transaction?"), count); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->window), title, _("If you delete a transaction, it will be permanently lost."), _("_Delete"), TRUE ); g_free(title); if(result == GTK_RESPONSE_OK) { //block selection change to avoid refresh and call to update g_signal_handlers_block_by_func (G_OBJECT (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope))), G_CALLBACK (hub_ledger_selection), NULL); list = g_list_last(selection); while(list != NULL) { Transaction *rem_txn; GtkTreeIter iter; //#1860232 crash here if no test when reach a txn already removed if( gtk_tree_model_get_iter(model, &iter, list->data) == TRUE ) { gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &rem_txn, -1); if( !data->lockreconciled || (rem_txn->status != TXN_STATUS_RECONCILED) ) { DB( g_print(" delete %s %.2f\n", rem_txn->memo, rem_txn->amount) ); //#1716181 also remove from the ptr_array (quickfilter) g_ptr_array_remove(data->gpatxn, (gpointer)rem_txn); // 1) remove visible current and potential xfer gtk_tree_store_remove(GTK_TREE_STORE(model), &iter); //manage target open window as well if((rem_txn->flags & OF_INTXFER)) { Transaction *child = transaction_xfer_child_strong_get(rem_txn); if( child ) { if( data->showall ) { _list_txn_remove_by_value(GTK_TREE_VIEW(data->LV_ope), child); //#1716181 also remove from the ptr_array (quickfilter) g_ptr_array_remove(data->gpatxn, (gpointer)child); data->total--; GLOBALS->changes_count++; } //5.8.4 if open remove target GtkWindow *accwin = homebank_app_find_window(rem_txn->kxferacc); if(accwin != NULL) { hub_ledger_remove_single_transaction(accwin, child); DB( g_print(" xfer call refresh %d\n", rem_txn->kxferacc)); hub_ledger_update(GTK_WIDGET(accwin), GINT_TO_POINTER(FLG_REG_BALANCE)); } } } // 2) manage pending if( rem_txn->flags & (OF_ISIMPORT|OF_ISPAST) ) { _helper_pending_sub(data, rem_txn); } // 3) remove datamodel transaction_remove(rem_txn); data->total--; GLOBALS->changes_count++; } } list = g_list_previous(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); g_signal_handlers_unblock_by_func (G_OBJECT (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope))), G_CALLBACK (hub_ledger_selection), NULL); hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_BALANCE)); } //refresh main if( GLOBALS->changes_count > changes ) ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void hub_ledger_action_grpflag(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; const gchar *name; gint count, newflag = 0; guint changes = GLOBALS->changes_count; GtkTreeModel *model; GList *selection, *list; count = gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope))); if(count > 0 ) { name = g_action_get_name (G_ACTION (action)); if( strlen(name) < 3) return; switch(name[3]) { case 'n': newflag=GRPFLAG_NONE; break; case '1': newflag=GRPFLAG_RED; break; case '2': newflag=GRPFLAG_ORANGE; break; case '3': newflag=GRPFLAG_YELLOW; break; case '4': newflag=GRPFLAG_GREEN; break; case '5': newflag=GRPFLAG_BLUE; break; case '6': newflag=GRPFLAG_PURPLE; break; } model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)), &model); list = g_list_first(selection); while(list != NULL) { Transaction *ope; GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &ope, -1); if( !data->lockreconciled || (ope->status != TXN_STATUS_RECONCILED) ) { DB( g_print(" change flag %d > %d\n", ope->grpflg, newflag) ); if( ope->grpflg != newflag ) GLOBALS->changes_count++; ope->grpflg = newflag; } list = g_list_next(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); //refresh main if( GLOBALS->changes_count > changes ) gtk_widget_queue_draw (data->LV_ope); } } static void hub_ledger_action_status_none(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeSelection *selection; gint count, result; guint changes = GLOBALS->changes_count; _list_txn_selection_count_type(GTK_TREE_VIEW(data->LV_ope), &count, NULL); if(count > 0 ) { result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->window), _("Are you sure you want to change the status to None?"), _("Some transaction in your selection are already Reconciled."), _("_Change"), FALSE ); } else result = GTK_RESPONSE_OK; if( result == GTK_RESPONSE_OK ) { selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)); gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)_list_txn_status_selected_foreach_func, GINT_TO_POINTER(TXN_STATUS_NONE)); DB( g_print(" none\n") ); DB( g_print(" redraw LV_ope\n") ); gtk_widget_queue_draw (data->LV_ope); //gtk_widget_queue_resize (data->LV_acc); hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_BALANCE)); GLOBALS->changes_count++; } //refresh main if( GLOBALS->changes_count > changes ) ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void hub_ledger_action_status_clear (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeSelection *selection; gint count, result; guint changes = GLOBALS->changes_count; _list_txn_selection_count_type(GTK_TREE_VIEW(data->LV_ope), &count, NULL); if(count > 0 ) { result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->window), _("Are you sure you want to change the status to Cleared?"), _("Some transaction in your selection are already Reconciled."), _("_Change"), FALSE ); } else result = GTK_RESPONSE_OK; if( result == GTK_RESPONSE_OK ) { selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)); gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)_list_txn_status_selected_foreach_func, GINT_TO_POINTER(TXN_STATUS_CLEARED)); DB( g_print(" clear\n") ); DB( g_print(" redraw LV_ope\n") ); gtk_widget_queue_draw (data->LV_ope); //gtk_widget_queue_resize (data->LV_acc); hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_BALANCE)); GLOBALS->changes_count++; } //refresh main if( GLOBALS->changes_count > changes ) ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void hub_ledger_action_status_reconcile (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeSelection *selection; gint count, result; guint changes = GLOBALS->changes_count; _list_txn_selection_count_type(GTK_TREE_VIEW(data->LV_ope), &count, NULL); if(count > 0 ) { result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->window), _("Are you sure you want to toggle the status Reconciled?"), _("Some transaction in your selection are already Reconciled."), _("_Toggle"), FALSE ); } else result = GTK_RESPONSE_OK; if( result == GTK_RESPONSE_OK ) { selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)); gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)_list_txn_status_selected_foreach_func, GINT_TO_POINTER(TXN_STATUS_RECONCILED)); DB( g_print(" reconcile\n") ); DB( g_print(" redraw LV_ope\n") ); gtk_widget_queue_draw (data->LV_ope); //gtk_widget_queue_resize (data->LV_acc); hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_BALANCE)); GLOBALS->changes_count++; } //refresh main if( GLOBALS->changes_count > changes ) ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void hub_ledger_action_find (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; gtk_widget_grab_focus(data->ST_search); } static void hub_ledger_action_createtemplate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeModel *model; GList *selection, *list; gchar *title; gint result, count; DB( g_print("\n[hub-ledger] make archive\n") ); count = gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope))); if( count > 0 ) { title = g_strdup_printf (_("Are you sure you want to create template from the %d selected transaction?"), count); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->window), title, NULL, _("_Create"), FALSE ); g_free(title); /* gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("%d archives will be created"), GLOBALS->changes_count ); */ if(result == GTK_RESPONSE_OK) { model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)), &model); list = g_list_first(selection); while(list != NULL) { Archive *item; Transaction *ope; GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &ope, -1); DB( g_print(" create archive %s %.2f\n", ope->memo, ope->amount) ); item = da_archive_malloc(); da_archive_init_from_transaction(item, ope, TRUE); //GLOBALS->arc_list = g_list_append(GLOBALS->arc_list, item); da_archive_append_new(item); GLOBALS->changes_count++; list = g_list_next(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); //#2000809 add confirmation ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_INFO, _("Create Template"), _("%d created with a prefilled icon"), count ); } } } static void hub_ledger_action_createassignment (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeModel *model; GList *selection, *list; gchar *title; gint result, count; DB( g_print("\n[hub-ledger] make assignment\n") ); count = gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope))); if( count > 0 ) { title = g_strdup_printf (_("Are you sure you want to create assignment from the %d selected transaction?"), count); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->window), title, NULL, _("_Create"), FALSE ); g_free(title); if(result == GTK_RESPONSE_OK) { model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)), &model); list = g_list_first(selection); while(list != NULL) { Assign *item; Transaction *ope; GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &ope, -1); DB( g_print(" create assignment %s %.2f\n", ope->memo, ope->amount) ); item = da_asg_malloc(); da_asg_init_from_transaction(item, ope); //5.7.1 free if fail if( da_asg_append(item) == TRUE ) { GLOBALS->changes_count++; } else { da_asg_free(item); count--; } list = g_list_next(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); //#2000809 add confirmation ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_INFO, _("Create Assignment"), _("%d created with a prefilled icon"), count ); } } } static void hub_ledger_action_exportcsv (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; gchar *name, *filepath; GString *node; GIOChannel *io; gboolean hassplit, hasstatus; guint flags; DB( g_print("\n[hub-ledger] export csv\n") ); name = g_strdup_printf("%s.csv", (data->showall == TRUE) ? GLOBALS->owner :data->acc->name); filepath = g_build_filename(PREFS->path_export, name, NULL); if( ui_dialog_export_csv(GTK_WINDOW(data->window), &filepath, &hassplit, &hasstatus, data->showall) == GTK_RESPONSE_ACCEPT ) { DB( g_printf(" filename is '%s'\n", filepath) ); io = g_io_channel_new_file(filepath, "w", NULL); if(io != NULL) { flags = LST_TXN_EXP_PMT | LST_TXN_EXP_CAT | LST_TXN_EXP_TAG; //#2037468 if( data->showall ) flags |= LST_TXN_EXP_ACC; if( hasstatus ) flags |= LST_TXN_EXP_CLR; node = list_txn_to_string(GTK_TREE_VIEW(data->LV_ope), FALSE, hassplit, FALSE, flags); g_io_channel_write_chars(io, node->str, -1, NULL, NULL); g_io_channel_unref (io); g_string_free(node, TRUE); } } g_free(filepath); g_free(name); } static void hub_ledger_action_print (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; gchar *title, *name, *filepath; GString *node; guint flags; gboolean statement = FALSE; title = (data->showall == FALSE) ? data->acc->name : _("All transactions"); name = g_strdup_printf("hb-%s.pdf", title); filepath = g_build_filename(PREFS->path_export, name, NULL); g_free(name); gint8 leftcols[8] = { 0, 1, 2, 3, -1 }; flags = LST_TXN_EXP_CLR; if( data->showall ) { flags |= LST_TXN_EXP_ACC; //{ 0, 1, 2, 3, 4, -1 }; leftcols[4] = 4; leftcols[5] = -1; } else { flags |= LST_TXN_EXP_BAL; //{ 0, 1, 2, 3, -1 }; //2044850 revert fitwidth for statement statement = TRUE; } node = list_txn_to_string(GTK_TREE_VIEW(data->LV_ope), TRUE, FALSE, FALSE, flags); hb_print_listview(GTK_WINDOW(data->window), node->str, leftcols, title, filepath, statement); g_string_free(node, TRUE); g_free(filepath); /* old < 5.7 if( ui_dialog_export_pdf(GTK_WINDOW(data->window), &filepath) == GTK_RESPONSE_ACCEPT ) { DB( g_printf(" filename is'%s'\n", filepath) ); hb_export_pdf_listview(GTK_TREE_VIEW(data->LV_ope), filepath, data->acc->name); } */ } static void hub_ledger_action_check_catsign_mark (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; // noaction if show all/closed account if(data->showall || data->closed) return; DB( g_print("\n[hub-ledger] check category sign\n\n") ); data->chkcatsign = transaction_check_chkcatsign_mark (data->acc); if( data->chkcatsign > 0 ) { gchar *text = g_strdup_printf(_("%d category sign don't match"), data->chkcatsign); gtk_label_set_text(GTK_LABEL(data->LB_chkcatsign), text); g_free(text); } else gtk_label_set_text(GTK_LABEL(data->LB_chkcatsign), _("No category sign don't match were found !")); gtk_widget_show(data->IB_chkcatsign); //#GTK+710888: hack waiting a fix gtk_widget_queue_resize (data->IB_chkcatsign); DB( g_print(" redraw LV_ope\n") ); gtk_widget_queue_draw (data->LV_ope); } static void hub_ledger_action_check_catsign_unmark(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; // noaction if show all/closed account if(data->showall || data->closed) return; DB( g_print("\n[hub-ledger] uncheck category sign\n\n") ); if(data->showall == FALSE) { data->chkcatsign = 0; gtk_widget_hide(data->IB_chkcatsign); transaction_check_chkcatsign_unmark(data->acc); DB( g_print(" redraw LV_ope\n") ); gtk_widget_queue_draw (data->LV_ope); } } static void hub_ledger_cb_bar_chkcatsign_response(GtkWidget *info_bar, gint response_id, gpointer user_data) { struct hub_ledger_data *data; DB( g_print("\n[hub-ledger] bar_chlcatsign_response\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(info_bar, GTK_TYPE_WINDOW)), "inst_data"); switch( response_id ) { case GTK_RESPONSE_CLOSE: hub_ledger_action_check_catsign_unmark(NULL, NULL, data); gtk_widget_hide (GTK_WIDGET (info_bar)); break; } } static void hub_ledger_action_duplicate_mark (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; // noaction if show all/closed account if(data->showall || data->closed) return; DB( g_print("\n[hub-ledger] check duplicate\n\n") ); // open dialog to select date tolerance in days // with info message // with check/fix button and progress bar // parse listview txn, clear/mark duplicate // apply filter if(data->showall == FALSE) { gint daygap; daygap = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NB_txn_daygap)); data->similar = transaction_similar_mark (data->acc, daygap); if( data->similar > 0 ) { gchar *text = g_strdup_printf(_("There is %d group of similar transactions"), data->similar); gtk_label_set_text(GTK_LABEL(data->LB_duplicate), text); g_free(text); } else gtk_label_set_text(GTK_LABEL(data->LB_duplicate), _("No similar transaction were found !")); gtk_widget_show(data->IB_duplicate); //#GTK+710888: hack waiting a fix gtk_widget_queue_resize (data->IB_duplicate); DB( g_print(" redraw LV_ope\n") ); gtk_widget_queue_draw (data->LV_ope); } } static void hub_ledger_action_duplicate_unmark(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; // noaction if show all/closed account if(data->showall || data->closed) return; DB( g_print("\n[hub-ledger] uncheck duplicate\n\n") ); if(data->showall == FALSE) { data->similar = 0; gtk_widget_hide(data->IB_duplicate); transaction_similar_unmark(data->acc); DB( g_print(" redraw LV_ope\n") ); gtk_widget_queue_draw (data->LV_ope); } } static void hub_ledger_cb_bar_duplicate_response(GtkWidget *info_bar, gint response_id, gpointer user_data) { struct hub_ledger_data *data; DB( g_print("\n[hub-ledger] bar_duplicate_response\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(info_bar, GTK_TYPE_WINDOW)), "inst_data"); switch( response_id ) { case HB_RESPONSE_REFRESH: hub_ledger_action_duplicate_mark(NULL, NULL, data); break; case GTK_RESPONSE_CLOSE: hub_ledger_action_duplicate_unmark(NULL, NULL, data); gtk_widget_hide (GTK_WIDGET (info_bar)); break; } } static void hub_ledger_action_check_internal_xfer(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeModel *model; GtkTreeIter iter; GList *badxferlist; gboolean valid, lockrecon; gint count; // noaction if closed account if(data->closed) return; DB( g_print("\n[hub-ledger] check intenal xfer\n") ); lockrecon = gtk_switch_get_active (GTK_SWITCH(data->SW_lockreconciled)); badxferlist = NULL; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Transaction *txn; gtk_tree_model_get (model, &iter, MODEL_TXN_POINTER, &txn, -1); //#1909749 skip reconciled if lock is ON if( lockrecon && txn->status == TXN_STATUS_RECONCILED ) goto next; if( txn->flags & OF_INTXFER ) { if( transaction_xfer_child_strong_get(txn) == NULL ) { DB( g_print(" invalid xfer: '%s'\n", txn->memo) ); //test unrecoverable (kxferacc = 0) if( txn->kxferacc <= 0 ) { DB( g_print(" unrecoverable, revert to normal xfer\n") ); txn->dspflags |= FLAG_TMP_EDITED; txn->paymode = PAYMODE_XFER; txn->kxfer = 0; txn->kxferacc = 0; } else { //perf must use preprend, see glib doc badxferlist = g_list_prepend(badxferlist, txn); } } } next: valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } count = g_list_length (badxferlist); DB( g_print(" found %d invalid int xfer\n", count) ); if(count <= 0) { ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_INFO, _("Check internal transfer result"), _("No inconsistency found !") ); } else { gboolean do_fix; do_fix = ui_dialog_msg_question( GTK_WINDOW(data->window), _("Check internal transfer result"), _("Inconsistency were found: %d\n" "do you want to review and fix?"), count ); if(do_fix == GTK_RESPONSE_YES) { GList *tmplist = g_list_first(badxferlist); while (tmplist != NULL) { Transaction *stxn = tmplist->data; //future (open dialog to select date tolerance in days) transaction_xfer_search_or_add_child(GTK_WINDOW(data->window), FALSE, stxn, 0); tmplist = g_list_next(tmplist); } } } g_list_free (badxferlist); } //#1983995 copy raw amount static void hub_ledger_action_copyrawamount(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; Transaction *ope; ope = list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_ope)); if(ope != NULL) { Currency *cur = da_cur_get(ope->kcur); if( cur != NULL ) { GtkClipboard *clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gdouble monval = hb_amount_round(ABS(ope->amount), cur->frac_digits); gchar *text; text = g_strdup_printf ("%.*f", cur->frac_digits, monval); DB( g_print(" raw amount is '%s'\n", text) ); gtk_clipboard_set_text(clipboard, text, strlen(text)); g_free(text); } } } static void hub_ledger_action_viewsplit(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; Transaction *ope; ope = list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_ope)); if(ope != NULL) ui_split_view_dialog(data->window, ope); } static void hub_ledger_action_exportqif(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; gchar *filename; // noaction if show all account if(data->showall) return; DB( g_print("\n[hub-ledger] export QIF\n") ); if( ui_file_chooser_qif(GTK_WINDOW(data->window), &filename) == TRUE ) { hb_export_qif_account_single(filename, data->acc); g_free( filename ); } } static void hub_ledger_action_converttoeuro(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; gchar *msg; gint result; // noaction if show all/closed account if(data->showall || data->closed) return; DB( g_print("\n[hub-ledger] convert euro\n") ); msg = g_strdup_printf(_("Every transaction amount will be divided by %.6f."), PREFS->euro_value); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->window), _("Are you sure you want to convert this account to Euro as Major currency?"), msg, _("_Convert"), FALSE ); g_free(msg); if(result == GTK_RESPONSE_OK) { account_convert_euro(data->acc); hub_ledger_update(data->LV_ope, GINT_TO_POINTER(FLG_REG_BALANCE)); } } static void hub_ledger_action_edit_copy_clipboard(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkClipboard *clipboard; GString *node; guint flags; DB( g_print("\n[hub-ledger] copy clipboard\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); flags = LST_TXN_EXP_CLR | LST_TXN_EXP_PMT | LST_TXN_EXP_CAT | LST_TXN_EXP_TAG; if(data->showall == TRUE) flags |= LST_TXN_EXP_ACC; node = list_txn_to_string(GTK_TREE_VIEW(data->LV_ope), TRUE, FALSE, TRUE, flags); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); } //#1818052 wish: copy/paste one/multiple transaction(s) static void hub_ledger_action_edit_copy(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GtkTreeModel *model; GList *selection, *list; gint count; // noaction if closed account if(data->closed) return; DB( g_print("\n[hub-ledger] copy\n") ); //struct hub_ledger_data *data2; //data2 = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(menuitem), GTK_TYPE_WINDOW)), "inst_data"); //DB( g_print("%p = %p\n", data, data2) ); g_queue_free_full(data->q_txn_clip, (GDestroyNotify)da_transaction_free); data->q_txn_clip = g_queue_new(); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_ope)), &model); count = 0; list = g_list_first(selection); while(list != NULL) { Transaction *ope, *newope; GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &ope, -1); newope = da_transaction_clone(ope); DB( g_print(" copy txn %p - '%.2f' '%s'\n", newope, newope->amount, newope->memo) ); g_queue_push_tail(data->q_txn_clip, newope); count++; list = g_list_next(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); if(count > 0 ) hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_SENSITIVE)); } static void hub_ledger_action_edit_paste(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; GList *list; gboolean istoday = FALSE; // noaction if closed account if(data->closed) return; DB( g_print("\n[hub-ledger] paste normal\n") ); istoday = ( !strcmp(g_action_get_name (G_ACTION (action)), "txnpastet")) ? TRUE : FALSE; DB( g_print(" paste %d - as today=%d\n", (gint)g_queue_get_length(data->q_txn_clip), istoday) ); list = g_queue_peek_head_link(data->q_txn_clip); while (list != NULL) { Transaction *item = list->data; Transaction *add_txn; DB( g_print(" paste txn %p - '%.2f' '%s'\n", item, item->amount, item->memo) ); if( istoday == TRUE ) item->date = GLOBALS->today; add_txn = transaction_add(GTK_WINDOW(data->window), FALSE, item); add_txn->dspflags |= FLAG_TMP_ADDED; hub_ledger_add_after_propagate(data, add_txn); //#2068634 GLOBALS->changes_count++; list = g_list_next(list); } hub_ledger_update(data->window, GINT_TO_POINTER(FLG_REG_SENSITIVE+FLG_REG_BALANCE)); } static void hub_ledger_action_assign(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; gint count; gboolean usermode = TRUE; gboolean lockrecon; // noaction if show all/closed account if(data->showall || data->closed) return; DB( g_print("\n[hub-ledger] assign\n") ); lockrecon = gtk_switch_get_active (GTK_SWITCH(data->SW_lockreconciled)); count = transaction_auto_assign(g_queue_peek_head_link(data->acc->txn_queue), data->acc->key, lockrecon); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_ope)); GLOBALS->changes_count += count; //inform the user if(usermode == TRUE) { gchar *txt; if(count == 0) txt = _("No transaction changed"); else txt = _("transaction changed: %d"); ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_INFO, _("Automatic assignment result"), txt, count); } //refresh main if( count > 0 ) ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void hub_ledger_action_browse(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; // noaction if show all account if(data->showall) return; DB( g_print("\n[hub-ledger] browse\n") ); if( account_has_website(data->acc) ) { homebank_util_url_show(data->acc->website); } } static void hub_ledger_action_close(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hub_ledger_data *data = user_data; DB( g_print("\n[hub-ledger] close\n") ); DB( g_print(" window %p\n", data->window) ); gtk_window_close(GTK_WINDOW(data->window)); } /*static void not_implemented (GSimpleAction *action, GVariant *parameter, gpointer user_data) { char *text = g_strdup_printf ("Action “%s” not implemented", g_action_get_name (G_ACTION (action))); g_print("%s\n", text); g_free (text); }*/ static GActionEntry win_entries[] = { { "txnadd" , hub_ledger_action_txnaddherit, NULL, NULL, NULL, {0,0,0} }, { "txnherit" , hub_ledger_action_txnaddherit, NULL, NULL, NULL, {0,0,0} }, { "txnedit" , hub_ledger_action_txnedit, NULL, NULL, NULL, {0,0,0} }, { "txnmedit" , hub_ledger_action_txnmedit, NULL, NULL, NULL, {0,0,0} }, { "txnapprove" , hub_ledger_action_txnapprove, NULL, NULL, NULL, {0,0,0} }, { "txnreject" , hub_ledger_action_txndelete, NULL, NULL, NULL, {0,0,0} }, { "stanon" , hub_ledger_action_status_none, NULL, NULL, NULL, {0,0,0} }, { "staclr" , hub_ledger_action_status_clear, NULL, NULL, NULL, {0,0,0} }, { "starec" , hub_ledger_action_status_reconcile, NULL, NULL, NULL, {0,0,0} }, //func use direct name[3] { "flgn" , hub_ledger_action_grpflag, NULL, NULL, NULL, {0,0,0} }, { "flg1" , hub_ledger_action_grpflag, NULL, NULL, NULL, {0,0,0} }, { "flg2" , hub_ledger_action_grpflag, NULL, NULL, NULL, {0,0,0} }, { "flg3" , hub_ledger_action_grpflag, NULL, NULL, NULL, {0,0,0} }, { "flg4" , hub_ledger_action_grpflag, NULL, NULL, NULL, {0,0,0} }, { "flg5" , hub_ledger_action_grpflag, NULL, NULL, NULL, {0,0,0} }, { "flg6" , hub_ledger_action_grpflag, NULL, NULL, NULL, {0,0,0} }, { "viewsplit" , hub_ledger_action_viewsplit, NULL, NULL, NULL, {0,0,0} }, { "copyamt" , hub_ledger_action_copyrawamount, NULL, NULL, NULL, {0,0,0} }, { "newtpl" , hub_ledger_action_createtemplate, NULL, NULL, NULL, {0,0,0} }, { "newasg" , hub_ledger_action_createassignment, NULL, NULL, NULL, {0,0,0} }, { "txndel" , hub_ledger_action_txndelete, NULL, NULL, NULL, {0,0,0} }, { "txnup" , hub_ledger_action_move_up, NULL, NULL, NULL, {0,0,0} }, { "txndw" , hub_ledger_action_move_down, NULL, NULL, NULL, {0,0,0} }, { "expqif" , hub_ledger_action_exportqif, NULL, NULL, NULL, {0,0,0} }, { "expcsv" , hub_ledger_action_exportcsv, NULL, NULL, NULL, {0,0,0} }, { "print" , hub_ledger_action_print, NULL, NULL, NULL, {0,0,0} }, { "browse" , hub_ledger_action_browse, NULL, NULL, NULL, {0,0,0} }, { "close" , hub_ledger_action_close, NULL, NULL, NULL, {0,0,0} }, { "txncopy" , hub_ledger_action_edit_copy, NULL, NULL, NULL, {0,0,0} }, { "txnpaste" , hub_ledger_action_edit_paste, NULL, NULL, NULL, {0,0,0} }, { "txnpastet" , hub_ledger_action_edit_paste, NULL, NULL, NULL, {0,0,0} }, { "txnclip" , hub_ledger_action_edit_copy_clipboard, NULL, NULL, NULL, {0,0,0} }, { "txnfind" , hub_ledger_action_find, NULL, NULL, NULL, {0,0,0} }, { "mrkdup" , hub_ledger_action_duplicate_mark, NULL, NULL, NULL, {0,0,0} }, { "mrksign" , hub_ledger_action_check_catsign_mark, NULL, NULL, NULL, {0,0,0} }, { "chkxfer" , hub_ledger_action_check_internal_xfer, NULL, NULL, NULL, {0,0,0} }, { "runasg" , hub_ledger_action_assign, NULL, NULL, NULL, {0,0,0} }, { "convert" , hub_ledger_action_converttoeuro, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; static void _add_accel(gchar *action_name, gchar *accel) { const gchar *vaccels[] = { accel, NULL }; gtk_application_set_accels_for_action(GLOBALS->application, action_name, vaccels); //g_menu_item_set_attribute(menuitem, "accel", "s", accel); } static void _add_menuitem(GMenu *menu, gchar *label, gchar *action_name, gchar *accel) { GMenuItem *menuitem = g_menu_item_new(label, action_name); if( accel != NULL ) _add_accel(action_name, accel); g_menu_append_item (menu, menuitem); g_object_unref (menuitem); } static GMenu * hub_ledger_popmenu_create2(struct hub_ledger_data *data) { GMenu *menu, *submenu, *section; //g_menu_append (submenu, , "ldgr."); menu = g_menu_new(); section = g_menu_new (); _add_menuitem (section, _("_Add...") , "ldgr.txnadd" , "N"); _add_menuitem (section, _("_Inherit...") , "ldgr.txnherit", "U"); _add_menuitem (section, _("_Edit...") , "ldgr.txnedit", "E"); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_object_unref (section); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_object_unref (section); submenu = g_menu_new (); _add_menuitem (submenu, _("_None") , "ldgr.stanon", "C"); _add_menuitem (submenu, _("_Cleared") , "ldgr.staclr", "R"); _add_menuitem (submenu, _("_Reconciled") , "ldgr.starec", "R"); g_menu_append_submenu (section, _("_Status"), G_MENU_MODEL(submenu)); g_object_unref (submenu); submenu = g_menu_new (); _add_menuitem (submenu, _("None") , "ldgr.flgn", "0"); _add_menuitem (submenu, _("Red") , "ldgr.flg1", "1"); _add_menuitem (submenu, _("Orange") , "ldgr.flg2", "2"); _add_menuitem (submenu, _("Yellow") , "ldgr.flg3", "3"); _add_menuitem (submenu, _("Green") , "ldgr.flg4", "4"); _add_menuitem (submenu, _("Blue") , "ldgr.flg5", "5"); _add_menuitem (submenu, _("Purple") , "ldgr.flg6", "6"); g_menu_append_submenu (section, _("_Flag"), G_MENU_MODEL(submenu)); g_object_unref (submenu); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_object_unref (section); _add_menuitem (section, _("Approve") , "ldgr.txnapprove", NULL); _add_menuitem (section, _("Reject (Delete)...") , "ldgr.txnreject", NULL); section = g_menu_new (); _add_menuitem (section, _("_Multiple Edit...") , "ldgr.txnmedit", NULL); _add_menuitem (section, _("View _Split") , "ldgr.viewsplit", NULL); _add_menuitem (section, _("Copy raw amount") , "ldgr.copyamt", NULL); _add_menuitem (section, _("Create template...") , "ldgr.newtpl", NULL); _add_menuitem (section, _("Create assignment...") , "ldgr.newasg", NULL); _add_menuitem (section, _("_Delete...") , "ldgr.txndel", "Delete"); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_object_unref (section); section = g_menu_new (); _add_menuitem (section, _("_Up") , "ldgr.txnup", NULL); _add_menuitem (section, _("_Down") , "ldgr.txndw", NULL); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_object_unref (section); return menu; } static GMenu * hub_ledger_menubar_create2(struct hub_ledger_data *data) { GMenu *menubar, *menu; GMenuItem *menuitem; gboolean showall, closed; showall = data->showall; closed = data->closed; //g_menu_append (submenu, , "ldgr."); menubar = g_menu_new(); //menu Account menu = g_menu_new(); if( showall == FALSE ) _add_menuitem(menu, _("Export QIF...") , "ldgr.expqif" , NULL); _add_menuitem(menu, _("Export CSV...") , "ldgr.expcsv" , NULL); _add_menuitem(menu, _("Print...") , "ldgr.print" , "P"); if( showall == FALSE ) _add_menuitem(menu, _("Browse Website") , "ldgr.browse" , NULL); _add_menuitem(menu, _("Close") , "ldgr.close" , "W"); //... menuitem = g_menu_item_new (_("A_ccount"), NULL); g_menu_item_set_submenu (menuitem, G_MENU_MODEL (menu)); g_object_unref (menu); g_menu_append_item (menubar, menuitem); g_object_unref (menuitem); //menu Edit menu = g_menu_new(); if( closed == FALSE ) { _add_menuitem(menu, _("Copy") , "ldgr.txncopy" , "C"); _add_menuitem(menu, _("Paste") , "ldgr.txnpaste" , "V"); _add_menuitem(menu, _("Paste (today)") , "ldgr.txnpastet" , "V"); } _add_menuitem(menu, _("Copy clipboard") , "ldgr.txnclip" , "C"); _add_menuitem(menu, _("Find") , "ldgr.txnfind" , "F"); //... menuitem = g_menu_item_new (_("_Edit"), NULL); g_menu_item_set_submenu (menuitem, G_MENU_MODEL (menu)); g_object_unref (menu); g_menu_append_item (menubar, menuitem); g_object_unref (menuitem); //menu Tools if( closed == FALSE && showall == FALSE ) { menu = g_menu_new(); _add_menuitem(menu, _("Mark duplicate...") , "ldgr.mrkdup" , NULL); _add_menuitem(menu, _("Mark category sign...") , "ldgr.mrksign" , NULL); _add_menuitem(menu, _("Check internal transfer"), "ldgr.chkxfer" , NULL); _add_menuitem(menu, _("Auto. assignments") , "ldgr.runasg" , NULL); _add_menuitem(menu, _("Convert to Euro...") , "ldgr.convert" , NULL); //... menuitem = g_menu_item_new (_("_Tools"), NULL); g_menu_item_set_submenu (menuitem, G_MENU_MODEL (menu)); g_object_unref (menu); g_menu_append_item (menubar, menuitem); g_object_unref (menuitem); } return menubar; } static GtkWidget * hub_ledger_toolbar_create(struct hub_ledger_data *data) { GtkWidget *toolbar, *button, *bbox, *hbox, *widget, *label; toolbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (toolbar), bbox); data->BT_up = button = make_image_button2(ICONNAME_HB_OPE_MOVUP, _("Move transaction up")); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.txnup"); gtk_box_prepend (GTK_BOX (bbox), button); data->BT_down = button = make_image_button2(ICONNAME_HB_OPE_MOVDW, _("Move transaction down")); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.txndw"); gtk_box_prepend (GTK_BOX (bbox), button); bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (toolbar), bbox); data->BT_add = button = make_image_button2(ICONNAME_HB_OPE_ADD, _("Add a new transaction")); g_object_set(button, "label", _("Add"), "always-show-image", TRUE, NULL); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.txnadd"); gtk_box_prepend (GTK_BOX (bbox), button); data->BT_herit = button = make_image_button2(ICONNAME_HB_OPE_HERIT, _("Inherit from the active transaction")); g_object_set(button, "label", _("Inherit"), "always-show-image", TRUE, NULL); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.txnherit"); gtk_box_prepend (GTK_BOX (bbox), button); data->BT_edit = button = make_image_button2(ICONNAME_HB_OPE_EDIT, _("Edit the active transaction")); g_object_set(button, "label", _("Edit"), "always-show-image", TRUE, NULL); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.txnedit"); gtk_box_prepend (GTK_BOX (bbox), button); bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (toolbar), bbox); data->BT_clear = button = make_image_button2(ICONNAME_HB_OPE_CLEARED, _("Toggle cleared for selected transaction(s)")); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.staclr"); gtk_box_prepend (GTK_BOX (bbox), button); data->BT_reconcile = button = make_image_button2(ICONNAME_HB_OPE_RECONCILED, _("Toggle reconciled for selected transaction(s)")); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.starec"); gtk_box_prepend (GTK_BOX (bbox), button); data->BT_multiedit = button = make_image_button2(ICONNAME_HB_OPE_MULTIEDIT, _("Edit multiple transaction")); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.txnmedit"); gtk_box_prepend (GTK_BOX (bbox), button); data->BT_delete = button = make_image_button2(ICONNAME_HB_OPE_DELETE, _("Delete selected transaction(s)")); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "ldgr.txndel"); gtk_box_prepend (GTK_BOX (bbox), button); //#1909749 lock/unlock reconciled hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_widget_set_margin_start (hbox, SPACING_LARGE); gtk_box_prepend (GTK_BOX (toolbar), hbox); label = gtk_label_new (_("Reconciled changes is")); gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END); data->LB_lockreconciled = label; gtk_box_prepend (GTK_BOX (hbox), label); //widget = hbtk_image_new_from_icon_name_16 (ICONNAME_CHANGES_PREVENT); widget = gtk_image_new(); g_object_set(widget, "icon-name", ICONNAME_CHANGES_PREVENT, NULL); data->IM_lockreconciled = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = gtk_switch_new(); data->SW_lockreconciled = widget; gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); gtk_box_prepend (GTK_BOX (hbox), widget); return toolbar; } static gboolean hub_ledger_window_getgeometry(GtkWidget *widget, GdkEvent *event, gpointer user_data) { //struct hub_ledger_data *data = user_data; struct WinGeometry *wg; DB( g_print("\n[hub-ledger] get geometry\n") ); //store position and size wg = &PREFS->acc_wg; wg->s = gtk_window_is_maximized(GTK_WINDOW(widget)); if(!wg->s) { gtk_window_get_position(GTK_WINDOW(widget), &wg->l, &wg->t); gtk_window_get_size(GTK_WINDOW(widget), &wg->w, &wg->h); } //DB( g_print(" window: l=%d, t=%d, w=%d, h=%d s=%d\n", wg->l, wg->t, wg->w, wg->h, wg->s) ); return FALSE; } static gboolean hub_ledger_window_dispose(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct hub_ledger_data *data = user_data; struct WinGeometry *wg; data = g_object_get_data(G_OBJECT(widget), "inst_data"); DB( g_print("\n[hub-ledger] -- delete-event\n") ); wg = &PREFS->acc_wg; wg->s = gtk_window_is_maximized(GTK_WINDOW(widget)); //store columns list_txn_get_columns(GTK_TREE_VIEW(data->LV_ope)); return FALSE; } static gboolean hub_ledger_window_destroy (GtkWidget *widget, gpointer user_data) { struct hub_ledger_data *data; data = g_object_get_data(G_OBJECT(widget), "inst_data"); DB( g_print ("\n[hub-ledger] -- destroy event\n") ); //enable define windows GLOBALS->define_off--; //5.8.6 unmark if( data->similar > 0 ) { DB( g_print(" unmark similar\n") ); hub_ledger_action_duplicate_unmark(NULL, NULL, data); } /* free title and filter */ DB( g_print(" user_data=%p to be free\n", user_data) ); g_free(data->wintitle); if(data->gpatxn != NULL) g_ptr_array_free (data->gpatxn, TRUE); g_queue_free_full(data->q_txn_clip, (GDestroyNotify)da_transaction_free); da_flt_free(data->filter); g_free(data); //our global list has changed, so update the treeview //TODO: find another way to signal //do it on mainwindow focus?? ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_TXNLIST+UF_REFRESHALL)); return FALSE; } /* * if accnum = 0 or acc is null : show all account */ GtkWidget * hub_ledger_window_new(Account *acc) { struct hub_ledger_data *data; struct WinGeometry *wg; GtkWidget *window, *mainvbox, *intbox, *actionbox, *labelbox, *hbox; GtkWidget *menubar, *bar, *scrollwin, *treeview, *label, *widget; GActionGroup *actions; GMenu *gmenumodel; DB( g_print("\n[hub-ledger] create_hub_ledger_window\n") ); data = g_malloc0(sizeof(struct hub_ledger_data)); if(!data) return NULL; //disable define windows GLOBALS->define_off++; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); /* setup TODO: to moove */ data->filter = da_flt_malloc(); data->q_txn_clip = g_queue_new (); /* create window, etc */ window = gtk_application_window_new(GLOBALS->application); gtk_widget_set_name(GTK_WIDGET(window), "ledger"); data->window = window; //store our window private data g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)data); DB( g_print(" new window=%p, inst_data=%p\n", window, data) ); //init global vars data->acc = acc; data->showall = FALSE; data->closed = FALSE; if( acc != NULL ) { g_object_set_data(G_OBJECT(window), "key", GINT_TO_POINTER(acc->key)); if( (data->acc->flags & AF_CLOSED) == FALSE ) { //#2058696 add number & institutioname GString *node = g_string_sized_new(64); g_string_append(node, acc->name); //#2065758 if( (acc->number != NULL) && (strlen(acc->number) > 0) ) { g_string_append(node, " : "); g_string_append(node, acc->number); } //#2065758 if( (acc->bankname != NULL) && (strlen(acc->bankname) > 0) ) { g_string_append(node, ", "); g_string_append(node, acc->bankname); } g_string_append(node, " - HomeBank"); data->wintitle = g_string_free(node, FALSE); } else { data->wintitle = g_strdup_printf("%s %s - HomeBank", data->acc->name, _("(closed)")); data->closed = TRUE; } } else { g_object_set_data(G_OBJECT(window), "key", GINT_TO_POINTER(-1)); data->wintitle = g_strdup_printf(_("%s - HomeBank"), _("All transactions")); data->showall = TRUE; } gtk_window_set_title (GTK_WINDOW (window), data->wintitle); // action group actions = (GActionGroup*)g_simple_action_group_new (); data->actions = actions; g_action_map_add_action_entries (G_ACTION_MAP (actions), win_entries, G_N_ELEMENTS (win_entries), data); gtk_widget_insert_action_group (window, "ldgr", actions); /* connect signal */ g_signal_connect (window, "destroy", G_CALLBACK (hub_ledger_window_destroy), (gpointer)data); g_signal_connect (window, "delete-event", G_CALLBACK (hub_ledger_window_dispose), (gpointer)data); g_signal_connect (window, "configure-event", G_CALLBACK (hub_ledger_window_getgeometry), (gpointer)data); g_signal_connect (window, "key-press-event", G_CALLBACK (hub_ledger_cb_on_key_press), (gpointer)data); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_window_set_child(GTK_WINDOW(window), mainvbox); //1 - menubar gmenumodel = hub_ledger_menubar_create2(data); #if( (GTK_MAJOR_VERSION < 4) ) menubar = gtk_menu_bar_new_from_model(G_MENU_MODEL(gmenumodel)); #else menubar = gtk_popover_menu_bar_new_from_model(G_MENU_MODEL(gmenumodel)); #endif gtk_box_prepend (GTK_BOX (mainvbox), menubar); //2 - account txn notification bar = gtk_info_bar_new (); data->IB_accnotif = bar; gtk_box_prepend (GTK_BOX (mainvbox), bar); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); //gtk_info_bar_set_show_close_button (GTK_INFO_BAR (bar), TRUE); label = gtk_label_new (NULL); data->LB_accnotif = label; //gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); //gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_prepend (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label); widget = gtk_button_new_with_label(_("Show")); data->BT_info_showpending = widget; gtk_box_prepend (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), widget); //3 - info bar for duplicate bar = gtk_info_bar_new_with_buttons (_("_Refresh"), HB_RESPONSE_REFRESH, NULL); data->IB_duplicate = bar; gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); gtk_info_bar_set_show_close_button (GTK_INFO_BAR (bar), TRUE); gtk_box_prepend (GTK_BOX (mainvbox), bar); hbox = gtk_info_bar_get_content_area (GTK_INFO_BAR (bar)); label = gtk_label_new (NULL); data->LB_duplicate = label; gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_prepend (GTK_BOX (hbox), label); //5.8.6 label = make_label(_("Date _gap:"), 0, 0.5); gtk_box_prepend (GTK_BOX (hbox), label); widget = make_numeric(label, 0, HB_DATE_MAX_GAP); data->NB_txn_daygap = widget; gtk_box_prepend (GTK_BOX (hbox), widget); //3c - bar for category sign check bar = gtk_info_bar_new (); data->IB_chkcatsign = bar; gtk_box_prepend (GTK_BOX (mainvbox), bar); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); gtk_info_bar_set_show_close_button (GTK_INFO_BAR (bar), TRUE); label = gtk_label_new (NULL); data->LB_chkcatsign = label; //gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); //gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_prepend (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label); //4 - windows interior intbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hb_widget_set_margin(GTK_WIDGET(intbox), SPACING_SMALL); hbtk_box_prepend (GTK_BOX (mainvbox), intbox); //4a - actionbox actionbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (intbox), actionbox); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_widget_set_halign(hbox, GTK_ALIGN_START); scrollwin = make_scrolled_window_ns(GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); hbtk_box_prepend (GTK_BOX (actionbox), scrollwin); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), hbox); widget = make_daterange(NULL, DATE_RANGE_FLAG_CUSTOM_DISABLE); data->CY_range = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = make_image_toggle_button2(ICONNAME_HB_OPE_FUTURE, NULL); data->CM_future = widget; //#2008521 set more accurate tooltip gchar *tt = g_strdup_printf(_("Toggle show %d days ahead"), PREFS->date_future_nbdays); gtk_widget_set_tooltip_text (widget, tt); g_free(tt); gtk_box_prepend (GTK_BOX (hbox), widget); //5.8 flag widget = make_fltgrpflag(NULL); data->CY_flag = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = hbtk_combo_box_new_with_data(label, CYA_FLT_TYPE); data->CY_type = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = hbtk_combo_box_new_with_data(label, CYA_FLT_STATUS); data->CY_status = widget; gtk_box_prepend (GTK_BOX (hbox), widget); //5.8 beta test if( data->showall ) { widget = create_popover_widget(GTK_WINDOW(data->window), data->filter); data->PO_hubfilter = widget; gtk_box_prepend (GTK_BOX (hbox), widget); } widget = make_image_button2(ICONNAME_HB_FILTER, _("Edit filter")); data->BT_filter = widget; gtk_box_prepend (GTK_BOX (actionbox), widget); //widget = gtk_button_new_with_mnemonic (_("Reset _filters")); //widget = gtk_button_new_with_mnemonic (_("_Reset")); widget = make_image_button2(ICONNAME_HB_CLEAR, _("Clear filter")); data->BT_reset = widget; gtk_box_prepend (GTK_BOX (actionbox), widget); widget = make_image_button2(ICONNAME_HB_REFRESH, _("Refresh results")); data->BT_refresh = widget; gtk_box_prepend (GTK_BOX (actionbox), widget); widget = make_image_toggle_button2(ICONNAME_HB_LIFEENERGY, _("Toggle Life Energy")); data->BT_lifnrg = widget; gtk_box_prepend (GTK_BOX (actionbox), widget); //TRANSLATORS: this is for Euro specific users, a toggle to display in 'Minor' currency widget = gtk_check_button_new_with_mnemonic (_("Euro _minor")); data->CM_minor = widget; gtk_box_prepend (GTK_BOX (actionbox), widget); //quick search widget = make_search (); data->ST_search = widget; gtk_widget_set_size_request(widget, HB_MINWIDTH_SEARCH, -1); gtk_widget_set_halign(widget, GTK_ALIGN_END); gtk_box_prepend (GTK_BOX (actionbox), widget); /* grid line 2 */ labelbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_margin_start(labelbox, SPACING_TINY); gtk_widget_set_margin_end(labelbox, SPACING_TINY); //gtk_widget_set_hexpand(actionbox, TRUE); gtk_box_prepend (GTK_BOX (intbox), labelbox); // text total/selection label = make_label(NULL, 0.0, 0.5); gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END); //#1930395 text selectable for copy/paste gtk_label_set_selectable(GTK_LABEL(label), TRUE); //gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_halign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); data->TX_selection = label; gtk_box_prepend (GTK_BOX (labelbox), label); label = gtk_label_new(_("Reconciled:")); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (labelbox), label); widget = gtk_label_new(NULL); gtk_widget_set_margin_start(widget, SPACING_TINY); data->TX_balance[0] = widget; gtk_box_prepend (GTK_BOX (labelbox), widget); label = gtk_label_new(_("Cleared:")); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (labelbox), label); widget = gtk_label_new(NULL); gtk_widget_set_margin_start(widget, SPACING_TINY); data->TX_balance[1] = widget; gtk_box_prepend (GTK_BOX (labelbox), widget); label = gtk_label_new(_("Today:")); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (labelbox), label); widget = gtk_label_new(NULL); gtk_widget_set_margin_start(widget, SPACING_TINY); data->TX_balance[2] = widget; gtk_box_prepend (GTK_BOX (labelbox), widget); label = gtk_label_new(_("Future:")); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (labelbox), label); widget = gtk_label_new(NULL); gtk_widget_set_margin_start(widget, SPACING_TINY); data->TX_balance[3] = widget; gtk_box_prepend (GTK_BOX (labelbox), widget); //list GtkWidget *lbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hbtk_box_prepend (GTK_BOX (intbox), lbox); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); treeview = (GtkWidget *)create_list_transaction(LIST_TXN_TYPE_BOOK, PREFS->lst_ope_columns); data->LV_ope = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); hbtk_box_prepend (GTK_BOX (lbox), scrollwin); list_txn_set_save_column_width(GTK_TREE_VIEW(treeview), TRUE); /* toolbars */ bar = hub_ledger_toolbar_create(data); data->TB_bar = bar; gtk_style_context_add_class (gtk_widget_get_style_context (bar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (lbox), bar); //TODO should move this //setup //TODO minor data seems no more used data->lockreconciled = PREFS->safe_lock_recon; gtk_switch_set_active(GTK_SWITCH(data->SW_lockreconciled), PREFS->safe_lock_recon); list_txn_set_lockreconciled(GTK_TREE_VIEW(data->LV_ope), PREFS->safe_lock_recon); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_ope))), "minor", data->CM_minor); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_future), (PREFS->date_future_nbdays > 0) ? TRUE : FALSE ); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_minor), GLOBALS->minor); gtk_widget_grab_focus(GTK_WIDGET(data->LV_ope)); // connect signals g_signal_connect (data->BT_info_showpending, "clicked", G_CALLBACK (hub_ledger_info_cb_show_pending), NULL); g_signal_connect (data->IB_duplicate , "response", G_CALLBACK (hub_ledger_cb_bar_duplicate_response), NULL); g_signal_connect (data->IB_chkcatsign , "response", G_CALLBACK (hub_ledger_cb_bar_chkcatsign_response), NULL); g_signal_connect (data->SW_lockreconciled, "state-set", G_CALLBACK (hub_ledger_cb_recon_change), NULL); data->handler_id[HID_RANGE] = g_signal_connect (data->CY_range , "changed", G_CALLBACK (hub_ledger_cb_filter_daterange), NULL); g_signal_connect (data->CY_flag, "changed", G_CALLBACK (hub_ledger_cb_filterbar_change), NULL); data->handler_id[HID_TYPE] = g_signal_connect (data->CY_type , "changed", G_CALLBACK (hub_ledger_cb_filterbar_change), NULL); data->handler_id[HID_STATUS] = g_signal_connect (data->CY_status, "changed", G_CALLBACK (hub_ledger_cb_filterbar_change), NULL); g_signal_connect (data->CM_future, "toggled", G_CALLBACK (hub_ledger_cb_filter_daterange), NULL); if( data->showall ) g_signal_connect( ui_flt_popover_hub_get_combobox(GTK_BOX(data->PO_hubfilter), NULL), "changed", G_CALLBACK (beta_hub_ledger_cb_preset_change), NULL); g_signal_connect (data->BT_reset , "clicked", G_CALLBACK (hub_ledger_cb_filter_reset), NULL); g_signal_connect (data->BT_refresh, "clicked", G_CALLBACK (hub_ledger_cb_filterbar_change), NULL); g_signal_connect (data->BT_filter , "clicked", G_CALLBACK (hub_ledger_cb_editfilter), NULL); g_signal_connect (data->BT_lifnrg , "clicked", G_CALLBACK (hub_ledger_cb_button_lifenergy), NULL); g_signal_connect (data->CM_minor , "toggled", G_CALLBACK (hub_ledger_toggle_minor), NULL); data->handler_id[HID_SEARCH] = g_signal_connect (data->ST_search, "search-changed", G_CALLBACK (quick_search_text_changed_cb), data); //#1879451 deselect all when quicksearch has the focus (to prevent delete) g_signal_connect (data->ST_search, "focus-in-event", G_CALLBACK (hub_ledger_cb_search_focus_in_event), NULL); //g_signal_connect (GTK_TREE_VIEW(treeview), "cursor-changed", G_CALLBACK (hub_ledger_update), (gpointer)2); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed", G_CALLBACK (hub_ledger_selection), NULL); g_signal_connect (GTK_TREE_VIEW(treeview), "row-activated", G_CALLBACK (hub_ledger_onRowActivated), GINT_TO_POINTER(2)); //new GMenu gmenumodel = hub_ledger_popmenu_create2(data); GtkWidget *gtkmenu = gtk_menu_new_from_model(G_MENU_MODEL(gmenumodel)); //always attach to get sensitive gaction gtk_menu_attach_to_widget(GTK_MENU(gtkmenu), treeview, NULL); g_signal_connect (treeview, "button-press-event", G_CALLBACK (listview_context_cb), gtkmenu); //setup, init and show window wg = &PREFS->acc_wg; DB( g_print(" set default size w:%d h:%d m:%d\n", wg->w, wg->h, wg->s) ); gtk_window_set_default_size(GTK_WINDOW(window), wg->w, wg->h); //gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h); if(wg->s == 0) { if( wg->l && wg->t ) gtk_window_move(GTK_WINDOW(window), wg->l, wg->t); DB( g_print(" move to %d %d\n", wg->l, wg->t) ); } else gtk_window_maximize(GTK_WINDOW(window)); DB( g_print(" show\n") ); gtk_widget_show_all (window); gtk_widget_hide(data->IB_accnotif); gtk_widget_hide(data->IB_duplicate); gtk_widget_hide(data->IB_chkcatsign); return window; } homebank-5.9.1/src/rep-stats.h0000644000175000017500000000466214736461415011700 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HOMEBANK_REPDIST_H__ #define __HOMEBANK_REPDIST_H__ enum { HID_REPDIST_MINDATE, HID_REPDIST_MAXDATE, HID_REPDIST_RANGE, HID_REPDIST_FORECAST, HID_REPDIST_VIEW, MAX_REPDIST_HID }; struct repstats_data { DataTable *trend; gint trendrows; gint trendcols; gint sel_colid; GQueue *txn_queue; Filter *filter; gboolean detail; gboolean legend; gboolean rate; gdouble total_expense; gdouble total_income; gint charttype; GtkWidget *window; GActionGroup *actions; gboolean mapped_done; GtkWidget *TB_bar; GtkWidget *BT_list; GtkWidget *BT_column; GtkWidget *BT_donut; GtkWidget *BT_stack; GtkWidget *BT_stack100; GtkWidget *BT_detail; GtkWidget *BT_legend; GtkWidget *BT_rate; GtkWidget *BT_filter; GtkWidget *BT_refresh; GtkWidget *BT_print; GtkWidget *BT_export; GtkWidget *TX_info; GtkWidget *CM_minor; GtkWidget *RA_mode; GtkWidget *CY_src; GtkWidget *CY_type, *LB_type; GtkWidget *CY_intvl, *LB_intvl; GtkWidget *CM_forecast; GtkWidget *GR_listbar; GtkWidget *BT_expand; GtkWidget *BT_collapse; //beta start GtkWidget *PO_hubfilter; GtkWidget *BT_reset; GtkWidget *TX_fltactive, *TT_fltactive; //beat end GtkWidget *RG_zoomx, *LB_zoomx; GtkWidget *SW_total, *SW_trend; GtkWidget *LV_report; GtkWidget *LV_report2; GtkWidget *CM_balance; GtkWidget *CM_byamount; GtkWidget *CM_compare; GtkWidget *PO_mindate, *PO_maxdate; GtkWidget *CY_range; GtkWidget *GR_result; GtkWidget *TX_daterange; GtkWidget *TX_total[3]; GtkWidget *RE_chart; GtkWidget *RE_chart2; GtkWidget *GR_detail; GtkWidget *LV_detail; gulong hid[MAX_REPDIST_HID]; }; GtkWidget *repstats_window_new(void); #endif homebank-5.9.1/src/rep-budget.h0000644000175000017500000000441514736461415012010 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HOMEBANK_REPBUDGET_H__ #define __HOMEBANK_REPBUDGET_H__ enum { HID_REPBUDGET_MINDATE, HID_REPBUDGET_MAXDATE, HID_REPBUDGET_MINMONTHYEAR, HID_REPBUDGET_MAXMONTHYEAR, HID_REPBUDGET_RANGE, MAX_REPBUDGET_HID }; /* list stat */ enum { LST_BUDGET_POS, LST_BUDGET_KEY, LST_BUDGET_NAME, LST_BUDGET_SPENT, LST_BUDGET_BUDGET, LST_BUDGET_FULFILLED, LST_BUDGET_RESULT, LST_BUDGET_STATUS, NUM_LST_BUDGET }; #define LST_BUDGET_POS_UNBUDGETED G_MAXINT-2 typedef enum { REP_BUD_MODE_TOTAL, REP_BUD_MODE_TIME } HbRepBudMode; struct repbudget_data { GQueue *txn_queue; Filter *filter; gdouble total_spent; gdouble total_budget; gboolean detail; gboolean legend; GtkWidget *window; GActionGroup *actions; gboolean mapped_done; GtkWidget *TB_bar; GtkWidget *BT_list; GtkWidget *BT_progress; GtkWidget *BT_detail; GtkWidget *BT_refresh; GtkWidget *BT_print; GtkWidget *BT_export; GtkWidget *TX_info; GtkWidget *TX_daterange; GtkWidget *CM_untiltoday; GtkWidget *CM_onlyout; GtkWidget *CM_minor; GtkWidget *RA_mode; GtkWidget *CY_type; GtkWidget *GR_listbar; GtkWidget *BT_expand; GtkWidget *BT_collapse; GtkWidget *LV_report; //GtkWidget *PO_mindate, *PO_maxdate; GtkWidget *LB_maxdate; GtkWidget *SB_mindate, *SB_maxdate; GtkWidget *CY_range; GtkWidget *GR_result; GtkWidget *TX_total[3]; GtkWidget *RE_progress; GtkWidget *GR_detail; GtkWidget *LV_detail; gulong handler_id[MAX_REPBUDGET_HID]; }; GtkWidget *repbudget_window_new(void); #endif homebank-5.9.1/src/ui-budget.h0000644000175000017500000000303314736461415011632 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_BUDGET_GTK_H__ #define __HB_BUDGET_GTK_H__ enum { COL_NAME = 0, COL_OLDINDEX, NUM_COLS }; #define FIELD_TYPE 15 struct ui_bud_manage_data { GList *tmp_list; gint change; Category *lastcatitem; GtkWidget *dialog; GActionGroup * actions; gboolean mapped_done; GtkWidget *LV_cat; GtkWidget *BT_expand; GtkWidget *BT_collapse; GtkWidget *RA_type; GtkWidget *label_budget; GtkWidget *CM_type[2]; GtkWidget *label[13]; //0 index is for All (not displayed) GtkWidget *spinner[13]; //0 index is for All GtkWidget *label_options; GtkWidget *CM_force; GtkWidget *TX_totexp, *TX_totinc, *TX_totbal; GtkWidget *BT_clear; Category *cat; gdouble totexp, totinc; }; GtkWidget *ui_bud_manage_dialog (void); #endif homebank-5.9.1/src/hbtk-decimalentry.c0000664000175000017500000003354615005625122013347 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2023 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //#include #include /* atoi, atof, atol */ #include /* gettext */ #include #include #include "hb-types.h" #include "enums.h" #include "hbtk-decimalentry.h" //#include "hb-currency.h" #include "hb-misc.h" //TODO: move this after GTK4 //#include "ui-widgets.h" /* = = = = = = = = = = = = = = = = */ #define DB(x) //(x); #define DBI(x) //(x); enum { VALUE_CHANGED, LAST_SIGNAL }; static guint decimalentry_signals[LAST_SIGNAL] = {0,}; //G_DEFINE_TYPE(HbtkDecimalEntry, hbtk_decimal_entry, GTK_TYPE_BOX) G_DEFINE_TYPE_WITH_CODE(HbtkDecimalEntry, hbtk_decimal_entry, GTK_TYPE_ENTRY, G_ADD_PRIVATE (HbtkDecimalEntry)) /* = = = = = = = = = = = = = = = = */ static const gdouble fac[9] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000 }; static double my_round(const gdouble d, guint digits) { gdouble out; digits = MIN(digits, 8); out = ((gint64) (d < 0 ? (d * fac[digits]) - 0.5 : (d * fac[digits]) + 0.5)) / fac[digits]; return out; } static gint _str_count_operator(gchar *text) { gint count = 0; gchar *s = text; //sign only at 1st pos, then count others if( *s=='+' || *s=='-' ) s++; while( *s++ ) { if( *s=='+' || *s=='-' || *s=='*' || *s=='/') count++; } return count; } static gboolean _str_is_decimal(const gchar* txt, guint digits) { const gchar *s; guint idx = 0, dccnt=0, npcnt=0, dpcnt=0; gboolean retval = TRUE; s = txt; while( *s ) { if( (idx > 0 && (*s=='-' || *s=='+')) || ( dccnt > 1) || ( dpcnt > (digits-1)) ) { retval = FALSE; break; } if( *s=='.' ) dccnt++; //decimal char //count number parts if( *s >= 0x30 && *s <= 0x39 ) { if( dccnt == 0 ) npcnt++; //numeric part else dpcnt++; //decimal part } s++; idx++; } return retval; } static gdouble _amount_operation(gchar operator, gdouble prvval, gdouble curval) { gdouble outval = 0.0; switch( operator ) { case '-': outval = prvval - curval; break; case '+': outval = prvval + curval; break; case '*': outval = prvval * curval; break; case '/': if( curval != 0.0 ) outval = prvval / curval; break; } DB( g_print("compute: %g %c %g = %g\n", prvval, operator, curval, outval) ); return outval; } static gdouble _parse_amount_test (const gchar *string, guint digits, gboolean *isvalid, gboolean *iscalc) { gdouble newval, nxtval; const gchar *s, *remainder; gchar pc, operator; gboolean tmpvalid = TRUE; gboolean tmpcalc = FALSE; g_return_val_if_fail (string != NULL, 0.0); DB( g_print("\n[decimalentry] _parse_amount_test\n") ); DB( g_print("rawtxt: '%s'\n", string) ); newval = 0.0; pc = 0x20; operator = '?'; s = remainder = string; while( *s ) { // *=x2A +=x2B -=x2D /=x2F :: .=x2E ,=x2C if( (*s=='.' && pc=='.' ) //forbid .. || ((*s=='/' || *s=='*') && (pc=='/' || pc=='*')) //forbid // ** /* */ || ((*s=='/' || *s=='*') && (pc=='+' || pc=='-')) //forbid -/ -* +/ +* ) { tmpvalid = FALSE; goto abort; } if( pc >= 0x30 && pc <= 0x39 ) { // reach an operator ? if(*s=='-' || *s=='+' || *s=='/' || *s=='*') { gchar *tmpbuf = g_strndup(remainder, (gsize)(s - remainder)); tmpcalc = TRUE; tmpvalid = _str_is_decimal(tmpbuf, digits); DB( g_print(" chknum: '%s' :: %d\n", tmpbuf, tmpvalid) ); nxtval = g_strtod(tmpbuf, NULL); g_free(tmpbuf); if(!tmpvalid) goto abort; DB( g_print("nxtval: %g operator: '%c'\n", nxtval, operator) ); if( operator == '?' ) newval = nxtval; else newval = _amount_operation(operator, newval, nxtval); remainder = s + 1; operator = *s; } } pc = *s++; } if (*remainder) { //store rawnumber tmpvalid = _str_is_decimal(remainder, digits); DB( g_print(" chknum: '%s' :: %d\n", remainder, tmpvalid) ); if(!tmpvalid) goto abort; nxtval = g_strtod(remainder, NULL); DB( g_print("nxtval: %g operator: '%c'\n", nxtval, operator) ); if( operator == '?' ) newval = nxtval; else newval = _amount_operation(operator, newval, nxtval); } abort: if( iscalc != NULL ) *iscalc = tmpcalc; if( isvalid != NULL ) *isvalid = tmpvalid; DB( g_print(" out > %g\n", newval) ); return newval; } /* = = = = = = = = = = = = = = = = */ static void hbtk_decimal_entry_default_output (HbtkDecimalEntry *decimalentry) { HbtkDecimalEntryPrivate *priv = decimalentry->priv; gchar *buf; DB( g_print("--------\n[decimalentry] output (%d digits)\n", priv->digits) ); g_signal_handler_block(G_OBJECT (priv->entry), priv->hid_insert); g_signal_handler_block(G_OBJECT (priv->entry), priv->hid_changed); buf = g_strdup_printf ("%0.*f", priv->digits, priv->value); DB( g_print(" replace with '%s'\n", buf) ); gtk_entry_set_text (GTK_ENTRY (priv->entry), buf); g_free (buf); g_signal_handler_unblock(G_OBJECT (priv->entry), priv->hid_changed); g_signal_handler_unblock(G_OBJECT (priv->entry), priv->hid_insert); } static void hbtk_decimal_value_change (HbtkDecimalEntry *decimalentry, gdouble newval) { HbtkDecimalEntryPrivate *priv = decimalentry->priv; gboolean doemit = FALSE; newval = my_round(newval, priv->digits); if(priv->value != newval) doemit = TRUE; priv->value = newval; hbtk_decimal_entry_default_output(decimalentry); if(doemit == TRUE) { DB( g_print("\n **emit 'value-changed' signal**\n") ); g_signal_emit_by_name (decimalentry, "value-changed", NULL, NULL); } } static void hbtk_decimal_validate (HbtkDecimalEntry *decimalentry) { HbtkDecimalEntryPrivate *priv = decimalentry->priv; gdouble newval; gboolean iscalc = FALSE; DB( g_print("\n[decimalentry] validate\n") ); if( priv->valid == FALSE ) { DB( g_print(" txt is invalid\n") ); priv->value = 0; return; } gchar *curtxt = (gchar *)gtk_entry_get_text(GTK_ENTRY(priv->entry)); newval = _parse_amount_test(curtxt, priv->digits, NULL, &iscalc); //simple amount priv->forcedsign = FALSE; if(!iscalc) { DB( g_print(" simple amount\n") ); //force sign if( (*curtxt == '-') || (*curtxt == '+') ) { DB( g_print(" force with sign\n") ); priv->forcedsign = TRUE; if( (*curtxt == '-' && newval > 0) || (*curtxt == '+' && newval < 0) ) newval = newval * -1; } //default sign /*else { DB( g_print(" force with privdata\n") ); if( (priv->income == TRUE && newval < 0) || (priv->income == FALSE && newval > 0) ) newval = newval * -1; }*/ } hbtk_decimal_value_change(decimalentry, newval); } static void hbtk_decimal_entry_insert_text_handler (GtkEntry *entry, gchar *nt, gint length, gint *position, gpointer data) { HbtkDecimalEntry *decimalentry = HBTK_DECIMAL_ENTRY(entry); HbtkDecimalEntryPrivate *priv = decimalentry->priv; DBI( g_print("\n[decimalentry] text-handler\n") ); DBI( g_print(" len:%d pos:%d nt:'%s' 0x%x\n", length, *position, nt, *nt) ); g_signal_handler_block(G_OBJECT (priv->entry), priv->hid_insert); //most common: 1 char if( (length == 1) ) { //replace , by . if(*nt == 0x2C) { *nt = 0x2E; } //allow only: *+,-./0123456789 if( (*nt < 0x2A) || (*nt > 0x39) ) goto stop; //DBI( g_print(" insert char '%s'\n", nt) ); gtk_editable_insert_text (GTK_EDITABLE(priv->entry), nt, length, position); } //less common: pasted text else { //TODO: maybe manage pasted computing later if( _str_count_operator(nt) > 0 ) { DBI( g_print(" insert bad computing '%s'\n", nt) ); gtk_editable_insert_text (GTK_EDITABLE(priv->entry), nt, length, position); } else { if( _str_is_decimal(nt, priv->digits) == FALSE ) { DBI( g_print(" insert bad number '%s'\n", nt) ); gtk_editable_insert_text (GTK_EDITABLE(priv->entry), nt, length, position); } else { gchar *cleantxt = hb_string_dup_raw_amount_clean(nt, priv->digits); gsize cleanlength = strlen(cleantxt); DBI( g_print(" insert clean '%s'\n", cleantxt) ); gtk_editable_insert_text (GTK_EDITABLE(priv->entry), cleantxt, cleanlength, position); g_free(cleantxt); } } } stop: g_signal_handler_unblock(G_OBJECT (priv->entry), priv->hid_insert); g_signal_stop_emission_by_name (G_OBJECT (priv->entry), "insert-text"); } static void hbtk_decimal_entry_cb_changed(GtkWidget *widget, gpointer user_data) { HbtkDecimalEntry *decimalentry = HBTK_DECIMAL_ENTRY(widget); HbtkDecimalEntryPrivate *priv = decimalentry->priv; const gchar *curtxt; gboolean isvalid; DB( g_print("\n[decimalentry] changed\n") ); //check validity curtxt = gtk_entry_get_text(GTK_ENTRY(priv->entry)); _parse_amount_test(curtxt, priv->digits, &isvalid, NULL); DBI( g_print(" check '%s' %d\n", curtxt, isvalid) ); priv->valid = isvalid; //test error class if( !isvalid ) gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(priv->entry)), GTK_STYLE_CLASS_ERROR); else gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET(priv->entry)), GTK_STYLE_CLASS_ERROR); } static void hbtk_decimal_entry_cb_activate(GtkWidget *widget, gpointer user_data) { HbtkDecimalEntry *decimalentry = HBTK_DECIMAL_ENTRY(widget); DB( g_print("\n[decimalentry] entry_activate\n") ); hbtk_decimal_validate(decimalentry); } static gboolean hbtk_decimal_entry_cb_focus_out(GtkWidget *widget, GdkEvent *event, gpointer user_data) { HbtkDecimalEntry *decimalentry = HBTK_DECIMAL_ENTRY(widget); DB( g_print("\n[decimalentry] focus-out-event %d\n", gtk_widget_is_focus(GTK_WIDGET(decimalentry))) ); hbtk_decimal_validate(decimalentry); return FALSE; } static gboolean hbtk_decimal_entry_cb_focus_in(GtkWidget *widget, GdkEvent *event, gpointer user_data) { HbtkDecimalEntry *decimalentry = HBTK_DECIMAL_ENTRY(widget); HbtkDecimalEntryPrivate *priv = decimalentry->priv; DB( g_print("\n[decimalentry] focus-in-event %d\n", gtk_widget_is_focus(GTK_WIDGET(decimalentry))) ); if( priv->valid == TRUE && priv->value == 0.0 ) { g_signal_handler_block(G_OBJECT (priv->entry), priv->hid_insert); g_signal_handler_block(G_OBJECT (priv->entry), priv->hid_changed); gtk_editable_select_region(GTK_EDITABLE(priv->entry), 0, -1); gtk_entry_set_text (GTK_ENTRY (priv->entry), ""); g_signal_handler_unblock(G_OBJECT (priv->entry), priv->hid_changed); g_signal_handler_unblock(G_OBJECT (priv->entry), priv->hid_insert); return FALSE; } return TRUE; } static void hbtk_decimal_entry_class_init (HbtkDecimalEntryClass *class) { DB( g_print("\n[decimalentry] class_init\n") ); decimalentry_signals[VALUE_CHANGED] = g_signal_new ("value-changed", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (HbtkDecimalEntryClass, changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void hbtk_decimal_entry_init (HbtkDecimalEntry *decimalentry) { HbtkDecimalEntryPrivate *priv; DB( g_print("\n[decimalentry] init\n") ); decimalentry->priv = hbtk_decimal_entry_get_instance_private(decimalentry); priv = decimalentry->priv; priv->valid = TRUE; priv->digits = 2; //priv->income = FALSE; priv->entry = GTK_WIDGET(decimalentry); //todo: see if really useful gtk_entry_set_width_chars(GTK_ENTRY(priv->entry), 16); gtk_entry_set_alignment(GTK_ENTRY(priv->entry), 1.0); gtk_entry_set_max_width_chars(GTK_ENTRY(priv->entry), 16); //gtk_box_pack_start (GTK_BOX (decimalentry), priv->entry, TRUE, TRUE, 0); priv->hid_insert = g_signal_connect(G_OBJECT(priv->entry), "insert-text", G_CALLBACK(hbtk_decimal_entry_insert_text_handler), NULL); priv->hid_changed = g_signal_connect(G_OBJECT(priv->entry), "changed", G_CALLBACK(hbtk_decimal_entry_cb_changed), NULL); g_signal_connect (priv->entry, "activate", G_CALLBACK (hbtk_decimal_entry_cb_activate), NULL); g_signal_connect_after (priv->entry, "focus-in-event", G_CALLBACK (hbtk_decimal_entry_cb_focus_in), NULL); g_signal_connect_after (priv->entry, "focus-out-event", G_CALLBACK (hbtk_decimal_entry_cb_focus_out), NULL); } /* = = = = = = = = public function = = = = = = = = */ //probably need get/set digit //probably need _update method here gdouble hbtk_decimal_entry_get_value (HbtkDecimalEntry *decimalentry) { g_return_val_if_fail (HBTK_IS_DECIMAL_ENTRY (decimalentry), 0.0); return decimalentry->priv->value; } gboolean hbtk_decimal_entry_get_forcedsign (HbtkDecimalEntry *decimalentry) { g_return_val_if_fail (HBTK_IS_DECIMAL_ENTRY (decimalentry), FALSE); return decimalentry->priv->forcedsign; } void hbtk_decimal_entry_set_value (HbtkDecimalEntry *decimalentry, gdouble value) { g_return_if_fail (HBTK_IS_DECIMAL_ENTRY (decimalentry)); hbtk_decimal_value_change(decimalentry, value); } void hbtk_decimal_entry_set_digits (HbtkDecimalEntry *decimalentry, guint value) { g_return_if_fail (HBTK_IS_DECIMAL_ENTRY (decimalentry)); decimalentry->priv->digits = value; hbtk_decimal_value_change(decimalentry, decimalentry->priv->value); } GtkWidget * hbtk_decimal_entry_new (GtkWidget *label) { DB( g_print("\n[decimalentry] new\n") ); HbtkDecimalEntry *decimalentry = g_object_new (HBTK_TYPE_DECIMAL_ENTRY, NULL); if(decimalentry) { HbtkDecimalEntryPrivate *priv = decimalentry->priv; if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), priv->entry); hbtk_decimal_entry_default_output(decimalentry); } return GTK_WIDGET(decimalentry); } homebank-5.9.1/src/hb-archive.h0000644000175000017500000001007714766237776012001 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_ARCHIVE_H__ #define __HB_ARCHIVE_H__ #include "hb-types.h" struct _archive { guint32 key; gdouble amount; guint32 kacc; guchar paymode; guchar grpflg; gushort flags; guint32 kpay; guint32 kcat; gchar *memo; //guint32 date; //gushort pos; gushort status; gchar *number; //info < 5.8 guint32 *tags; //guint32 kxfer; //strong link xfer key guint32 kxferacc; gdouble xferamount; //xfer target alount GPtrArray *splits; //recurrence :: https://learn.microsoft.com/en-us/graph/outlook-schedule-recurring-events gushort rec_flags; //flags guchar rec_freq; //0-3 guchar rec_every; //100 guchar rec_ordinal; //0-5 guchar rec_weekday; //1-10 guint32 nextdate; guchar daygap; guchar weekend; //0 - 3 gushort limit; //366 /* unsaved datas */ gushort dspflags; }; // saved flags -- data //gushort is 2 bytes / 16 bits #define TF_RECUR (1<< 0) #define TF_LIMIT (1<< 1) #define TF_RELATIVE (1<< 2) enum { ARC_POSTMODE_DUEDATE, ARC_POSTMODE_PAYOUT, ARC_POSTMODE_ADVANCE }; /* ** scheduled unit */ enum { AUTO_FREQ_DAY, AUTO_FREQ_WEEK, AUTO_FREQ_MONTH, //AUTO_UNIT_QUARTER, AUTO_FREQ_YEAR }; //5.9 enum { AUTO_ORDINAL_FIRST = 1, AUTO_ORDINAL_SECOND, AUTO_ORDINAL_THIRD, AUTO_ORDINAL_FOURTH, AUTO_ORDINAL_LAST, }; //5.9 enum { AUTO_WEEKDAY_MONDAY = 1, AUTO_WEEKDAY_TUESDAY, AUTO_WEEKDAY_WEDNESDAY, AUTO_WEEKDAY_THURSDAY, AUTO_WEEKDAY_FRIDAY, AUTO_WEEKDAY_SATURDAY, AUTO_WEEKDAY_SUNDAY, //---- AUTO_WEEKDAY_DAY, AUTO_WEEKDAY_WEEKDAY, AUTO_WEEKDAY_WEEKENDDAY, }; enum { ARC_WEEKEND_POSSIBLE, ARC_WEEKEND_BEFORE, ARC_WEEKEND_AFTER, ARC_WEEKEND_SKIP }; enum { FLT_SCHEDULED_THISMONTH = 1, FLT_SCHEDULED_NEXTMONTH, FLT_SCHEDULED_NEXT30DAYS, FLT_SCHEDULED_NEXT60DAYS, FLT_SCHEDULED_NEXT90DAYS, FLT_SCHEDULED_ALLDATE, //added 5.7 FLT_SCHEDULED_MAXPOSTDATE }; Archive *da_archive_malloc(void); Archive *da_archive_clone(Archive *src_item); guint archive_add_get_nbdays(void); void da_archive_free(Archive *item); void da_archive_destroy(GList *list); guint da_archive_length(void); void da_archive_stats(gint *nbtpl, gint *nbsch); gboolean da_archive_append(Archive *item); gboolean da_archive_append_new(Archive *item); guint32 da_archive_get_max_key(void); Archive *da_archive_get(guint32 key); void da_archive_get_display_label(GString *tpltitle, Archive *item); void da_archive_consistency(Archive *item); Archive *da_archive_init_from_transaction(Archive *arc, Transaction *txn, gboolean fromledger); GList *da_archive_glist_sorted(gint column); gboolean template_is_account_used(Archive *arc); void scheduled_nextdate_weekend_adjust(Archive *arc); guint32 scheduled_date_get_next_post(GDate *date, Archive *arc, guint32 nextdate); guint32 scheduled_date_get_next_relative(GDate *date, guint ordinal, guint weekday, guint every); gboolean scheduled_is_postable(Archive *arc); guint32 scheduled_get_txn_real_postdate(guint32 postdate, gint weekend); guint32 scheduled_get_latepost_count(GDate *date, Archive *arc, guint32 jrefdate); guint32 scheduled_date_advance(Archive *arc); void scheduled_date_get_show_minmax(gint select, guint32 *mindate, guint32 *maxdate); guint32 scheduled_date_get_post_max(guint32 start, gint auto_smode, gint auto_nbdays, gint auto_weekday, gint nbmonth); gint scheduled_post_all_pending(void); #endif homebank-5.9.1/src/hb-import-csv.c0000664000175000017500000002063014736461407012437 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-import.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; static gint csvtype[7] = { CSV_DATE, CSV_INT, CSV_STRING, CSV_STRING, CSV_STRING, CSV_DOUBLE, CSV_STRING, }; static gchar *hb_csv_strndup (gchar *str, gsize n) { gchar *new_str; gchar *twoquote; if (str) { new_str = g_new (gchar, n + 1); if(*str=='\"') { str++; n--; } if(str[n-1]=='\"') n--; strncpy (new_str, str, n); new_str[n] = '\0'; // replace "" twoquote = strstr(new_str, "\"\""); if(twoquote) strcpy (twoquote, twoquote+1); //todo: replace & < > ' " ?? } else new_str = NULL; return new_str; } static gchar *hb_csv_find_delimiter(gchar *string, gchar delimiter) { gchar *s = string; gboolean enclosed = FALSE; while( *s != '\0' ) { if( (*s == delimiter) && (enclosed == FALSE) ) break; if( *s == '\"' ) { enclosed = !enclosed; } s++; } return s; } static gboolean hb_csv_row_valid(gchar **str_array, guint nbcolumns, gint *csvtype) { gboolean valid = TRUE; guint i; extern int errno; #if MYDEBUG == 1 gchar *type[5] = { "string", "date", "int", "double" }; gint lasttype; #endif DB( g_print("\n[import-csv] row valid\n") ); DB( g_print(" -> strarr_len=%d, expected=%d\n", g_strv_length( str_array ), nbcolumns) ); if( g_strv_length( str_array ) != nbcolumns ) { valid = FALSE; goto csvend; } for(i=0;i fail on column %d, type: %s\n", i, type[lasttype]) ); break; } DB( g_print(" -> control column %d, type: %d, valid: %d '%s'\n", i, lasttype, valid, str_array[i]) ); switch( csvtype[i] ) { case CSV_DATE: valid = hb_string_isdate(str_array[i]); break; case CSV_STRING: valid = hb_string_isprint(str_array[i]); break; case CSV_INT: valid = hb_string_isdigit(str_array[i]); break; case CSV_DOUBLE : //todo: use strtod (to take care or . or ,) g_ascii_strtod(str_array[i], NULL); //todo : see this errno if( errno ) { DB( g_print("errno: %d\n", errno) ); valid = FALSE; } break; } } csvend: DB( g_print(" --> return %d\n", valid) ); return valid; } static gchar **hb_csv_row_get(gchar *string, gchar delimiter, gint max_tokens) { GSList *string_list = NULL, *slist; gchar **str_array, *s; guint n = 0; gchar *remainder; g_return_val_if_fail (string != NULL, NULL); g_return_val_if_fail (delimiter != '\0', NULL); DB( g_print("\n[import-csv] row get\n") ); if (max_tokens < 1) max_tokens = G_MAXINT; remainder = string; s = hb_csv_find_delimiter (remainder, delimiter); if (s) { while (--max_tokens && s && *s != '\0') { gsize len; len = s - remainder; string_list = g_slist_prepend (string_list, hb_csv_strndup (remainder, len)); DB( g_print(" stored=[%s]\n", (gchar *)string_list->data) ); n++; remainder = s + 1; s = hb_csv_find_delimiter (remainder, delimiter); } } if (*string) { gsize len; len = s - remainder; n++; string_list = g_slist_prepend (string_list, hb_csv_strndup (remainder, len)); DB( g_print(" stored=[%s]\n", (gchar *)string_list->data) ); } str_array = g_new (gchar*, n + 1); str_array[n--] = NULL; for (slist = string_list; slist; slist = slist->next) str_array[n--] = slist->data; g_slist_free (string_list); return str_array; } static gchar hb_csv_get_separator(void) { static const gchar sep[] = PRF_DTEX_CSVSEP_BUFFER; return sep[PREFS->dtex_csvsep]; } gboolean hb_csv_test_line(gchar *rawline) { gchar **str_array; gchar sep; gboolean isvalid = FALSE; DB( g_print("\n[import-csv] test line\n") ); hb_string_strip_crlf(rawline); sep = hb_csv_get_separator(); //#1930924 get all csv column to invalidate csv with more than 8 columns str_array = hb_csv_row_get(rawline, sep, -1); //str_array = hb_csv_row_get(rawline, sep, 8); isvalid = hb_csv_row_valid(str_array, 8, csvtype); g_strfreev (str_array); return isvalid; } GList *homebank_csv_import(ImportContext *ictx, GenFile *genfile) { GIOChannel *io; //GList *list = NULL; DB( g_print("\n[import-csv] homebank csv\n") ); io = g_io_channel_new_file(genfile->filepath, "r", NULL); if(io != NULL) { gchar *tmpstr; gchar sep; gsize length; gint io_stat; gboolean isvalid; gint count = 0; gint error = 0; GenAcc *newacc; GError *err = NULL; newacc = hb_import_gen_acc_get_next(ictx, FILETYPE_CSV_HB, NULL, NULL); if( genfile->encoding != NULL ) { g_io_channel_set_encoding(io, genfile->encoding, NULL); } for(;;) { io_stat = g_io_channel_read_line(io, &tmpstr, &length, NULL, &err); if( io_stat == G_IO_STATUS_EOF) break; if( io_stat == G_IO_STATUS_ERROR ) { DB (g_print(" + ERROR %s\n",err->message)); break; } if( io_stat == G_IO_STATUS_NORMAL) { if( *tmpstr != '\0' ) { gchar **str_array; count++; //#1844892 wish: detect/skip UTF-8 BOM (Excel CSV files) if(count == 1) hb_string_strip_utf8_bom(tmpstr); sep = hb_csv_get_separator(); hb_string_strip_crlf(tmpstr); str_array = hb_csv_row_get(tmpstr, sep, 8); // 0:date; 1:paymode; 2:info; 3:payee, 4:wording; 5:amount; 6:category; 7:tags isvalid = hb_csv_row_valid(str_array, 8, csvtype); DB( g_print("\n (row-%04d) ->|%s|<-\n", count, tmpstr) ); DB( g_print(" valid %d, '%s'\n", isvalid, tmpstr) ); if( !isvalid ) { g_warning ("csv parse: line %d, invalid column count or data", count); error++; //todo log line in error to report user } else { GenTxn *newope = da_gen_txn_malloc();; DB( g_print(" adding txn\n" ) ); //5.8 #2063416 same date txn newope->row = count; /* convert to generic transaction */ newope->date = g_strdup(str_array[0]); newope->paymode = atoi(str_array[1]); //todo: reinforce controls here // csv file are standalone, so no way to link a target txn //added 5.1.8 forbid to import 5=internal xfer if(newope->paymode == OLDPAYMODE_INTXFER) newope->paymode = PAYMODE_XFER; newope->rawnumber = g_strdup(str_array[2]); newope->rawpayee = g_strdup(g_strstrip(str_array[3])); newope->rawmemo = g_strdup(str_array[4]); newope->amount = hb_qif_parser_get_amount(str_array[5]); newope->category = g_strdup(g_strstrip(str_array[6])); newope->tags = g_strdup(str_array[7]); newope->account = g_strdup(newacc->name); /* todo: move this eval date valid */ //guint32 juliantmp = hb_date_get_julian(str_array[0], ictx->datefmt); ///if( juliantmp == 0 ) // ictx->cnt_err_date++; /* DB( g_print(" storing %s : %s : %s :%s : %s : %s : %s : %s\n", str_array[0], str_array[1], str_array[2], str_array[3], str_array[4], str_array[5], str_array[6], str_array[7] ) ); */ da_gen_txn_append(ictx, newope); g_strfreev (str_array); } } g_free(tmpstr); } } g_io_channel_unref (io); /* ui_dialog_msg_infoerror(data->window, error > 0 ? GTK_MESSAGE_ERROR : GTK_MESSAGE_INFO, _("Transaction CSV import result"), _("%d transactions inserted\n%d errors in the file"), count, error); */ } return ictx->gen_lst_txn; } homebank-5.9.1/src/hb-misc.h0000644000175000017500000001026015003464721011256 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_MISC__H__ #define __HB_MISC__H__ //amount sign enum { HB_AMT_SIGN_OFF, HB_AMT_SIGN_EXP, HB_AMT_SIGN_INC }; //date min/max bound typedef enum { HB_DATE_BOUND_FIRST, HB_DATE_BOUND_LAST, } HbDateBound; double hb_amount_round(const double x, unsigned int n); gdouble hb_amount_base(gdouble value, guint32 kcur); gdouble hb_amount_convert(gdouble value, guint32 skcur, guint32 dkcur); gdouble hb_amount_to_euro(gdouble amount); gboolean hb_amount_type_match(gdouble amount, gint type); gint hb_amount_cmp(gdouble val1, gdouble val2); gboolean hb_amount_between(gdouble val, gdouble min, gdouble max); gint hb_amount_forced_sign(const gchar *text); gdouble hb_rate(gdouble value, gdouble total); gchar *hb_str_rate(gchar *outstr, gint outlen, gdouble rate); gchar *hb_str_formatd(gchar *outstr, gint outlen, gchar *buf1, Currency *cur, gboolean showsymbol); void hb_strfmon(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor); void hb_strfmon_int(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor); void hb_strfnum(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor); void hb_strfmongc(gchar *outstr, gint outlen, gdouble value); void _format_decimal(GString *node, ToStringMode mode, gdouble value); void hb_strlifeenergy(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor); gint hb_filename_type_get_by_extension(gchar *filepath); gchar *hb_filename_new_for_backup(gchar *filename); GPtrArray *hb_filename_backup_list(gchar *filename); gchar *hb_filename_backup_get_filtername(gchar *filename); gchar *hb_filename_new_with_extension(gchar *filename, const gchar *extension); gchar *get_normal_color_amount(gdouble value); gchar *get_minimum_color_amount(gdouble value, gdouble minvalue); void hb_label_set_amount(GtkLabel *label, gdouble value, guint32 kcur, gboolean minor); void hb_label_set_colvalue(GtkLabel *label, gdouble value, guint32 kcur, gboolean minor); //void get_period_minmax(guint month, guint year, guint32 *mindate, guint32 *maxdate); //void get_range_minmax(guint32 refdate, gint range, guint32 *mindate, guint32 *maxdate); gint hb_string_ascii_compare(gchar *s1, gchar *s2); gint hb_string_compare(gchar *s1, gchar *s2); gint hb_string_utf8_strstr(gchar *haystack, gchar *needle, gboolean exact); gint hb_string_utf8_compare(gchar *s1, gchar *s2); gchar *hb_string_dup_raw_amount_clean(const gchar *string, gint digits); void hb_string_strip_utf8_bom(gchar *str); void hb_string_strip_crlf(gchar *str); gboolean hb_string_has_leading_trailing(gchar *str); void hb_string_replace_char(gchar oc, gchar nc, gchar *str); void hb_string_remove_char(gchar c, gchar *str); gchar *hb_string_copy_jsonpair(gchar *dst, gchar *str); void hb_string_inline(gchar *str); gchar *hb_strdup_nobrackets (const gchar *str); gchar *hb_sprint_date(gchar *outstr, guint32 julian); guint32 hb_date_get_jbound(guint32 jdate, HbDateBound bound); guint32 hb_date_get_julian(gchar *string, gint datefmt); gboolean hb_string_isdate(gchar *str); gboolean hb_string_isdigit(gchar *str); gboolean hb_string_isprint(gchar *str); void hb_print_date(guint32 jdate, gchar *label); void hex_dump(guchar *ptr, guint length); #if( (GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 68) ) guint g_string_replace (GString *string, const gchar *find, const gchar *replace, guint limit); #endif #endif homebank-5.9.1/src/Makefile.am0000644000175000017500000000506014774301713011626 common_defines = \ -DSHARE_DIR=\""$(pkgdatadir)"\" \ -DDATA_DIR=\""$(datadir)"\" bin_PROGRAMS = homebank HOMEBANK_CORE = USER_INTERFACE = homebank_SOURCES = \ dsp-account.c \ dsp-account.h \ dsp-mainwindow.c \ dsp-mainwindow.h \ enums.h \ hb-types.h \ gtk-chart.c \ gtk-chart.h \ gtk-chart-colors.c \ gtk-chart-colors.h \ gtk-chart-progress.c \ gtk-chart-progress.h \ gtk-dateentry.c \ gtk-dateentry.h \ hb-account.c \ hb-account.h \ hb-archive.c \ hb-archive.h \ hb-assign.c \ hb-assign.h \ hb-category.c \ hb-category.h \ hb-currency.c \ hb-currency.h \ hb-encoding.c \ hb-encoding.h \ hb-export.c \ hb-export.h \ hb-filter.c \ hb-filter.h \ hb-hbfile.c \ hb-hbfile.h \ hb-import.c \ hb-import.h \ hb-import-ofx.c \ hb-import-qif.c \ hb-import-csv.c \ hb-misc.c \ hb-misc.h \ hb-payee.c \ hb-payee.h \ hb-group.c \ hb-group.h \ hb-preferences.c \ hb-preferences.h \ hb-pref-data.c \ hb-pref-data.h \ hb-report.c \ hb-report.h \ hb-tag.c \ hb-tag.h \ hb-split.c \ hb-split.h \ hbtk-decimalentry.c \ hbtk-decimalentry.h \ hb-transaction.c \ hb-transaction.h \ hb-xml.c \ hb-xml.h \ hbtk-switcher.c \ hbtk-switcher.h \ homebank.c \ homebank.h \ icon-names.h \ hub-account.c \ hub-account.h \ hub-reptime.c \ hub-reptime.h \ hub-reptotal.c \ hub-reptotal.h \ hub-scheduled.c \ hub-scheduled.h \ hub-transaction.c \ hub-transaction.h \ language.c \ language.h \ list-account.c \ list-account.h \ list-operation.c \ list-operation.h \ list-report.c \ list-report.h \ list-scheduled.c \ list-scheduled.h \ rep-balance.c \ rep-balance.h \ rep-budget.c \ rep-budget.h \ rep-stats.c \ rep-stats.h \ rep-time.c \ rep-time.h \ rep-vehicle.c \ rep-vehicle.h \ ui-account.c \ ui-account.h \ ui-archive.c \ ui-archive.h \ ui-assign.c \ ui-assign.h \ ui-assist-import.c \ ui-assist-import.h \ ui-assist-start.c \ ui-assist-start.h \ ui-budget.c \ ui-budget.h \ ui-budget-tabview.c \ ui-budget-tabview.h \ ui-category.c \ ui-category.h \ ui-currency.c \ ui-currency.h \ ui-dialogs.c \ ui-dialogs.h \ ui-filter.c \ ui-filter.h \ ui-flt-widget.c \ ui-flt-widget.h \ ui-hbfile.c \ ui-hbfile.h \ ui-group.c \ ui-group.h \ ui-payee.c \ ui-payee.h \ ui-pref.c \ ui-pref.h \ ui-tag.c \ ui-tag.h \ ui-transaction.c \ ui-transaction.h \ ui-txn-multi.c \ ui-txn-multi.h \ ui-txn-split.c \ ui-txn-split.h \ ui-widgets-data.c \ ui-widgets.c \ ui-widgets.h homebank_LDADD = $(DEPS_LIBS) \ $(LIBSOUP_LIBS) AM_CPPFLAGS = \ $(DEPS_CFLAGS) \ $(LIBSOUP_CFLAGS) \ $(common_defines) homebank-5.9.1/src/rep-vehicle.c0000644000175000017500000012104615005634150012134 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "rep-vehicle.h" #include "list-operation.h" #include "gtk-chart.h" #include "gtk-dateentry.h" #include "dsp-mainwindow.h" #include "ui-category.h" #include "ui-dialogs.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* prototypes */ static void repvehicle_export_csv(GtkWidget *widget, gpointer user_data); static void repvehicle_compute(GtkWidget *widget, gpointer user_data); static void repvehicle_update(GtkWidget *widget, gpointer user_data); static void repvehicle_setup_categories(struct repvehicle_data *data, GArray *array); static GtkWidget *list_vehicle_create(void); static void repvehicle_date_change(GtkWidget *widget, gpointer user_data) { struct repvehicle_data *data; DB( g_print("\n[vehiclecost] date change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->filter->mindate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_mindate)); data->filter->maxdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_maxdate)); // set min/max date for both widget //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), ( data->filter->mindate > data->filter->maxdate ) ? TRUE : FALSE); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), ( data->filter->maxdate < data->filter->mindate ) ? TRUE : FALSE); g_signal_handler_block(data->CY_range, data->handler_id[HID_REPVEHICLE_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_CUSTOM); g_signal_handler_unblock(data->CY_range, data->handler_id[HID_REPVEHICLE_RANGE]); repvehicle_compute(widget, NULL); } static void repvehicle_action_refresh(GtkWidget *toolbutton, gpointer user_data) { struct repvehicle_data *data = user_data; repvehicle_compute(data->window, NULL); } static void repvehicle_action_export(GtkWidget *toolbutton, gpointer user_data) { struct repvehicle_data *data = user_data; repvehicle_export_csv(data->window, NULL); } static void repvehicle_range_change(GtkWidget *widget, gpointer user_data) { struct repvehicle_data *data; gint range; DB( g_print("\n[vehiclecost] range change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); if(range != FLT_RANGE_MISC_CUSTOM) { filter_preset_daterange_set(data->filter, range, 0); //#2046032 set min/max date for both widget //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), ( data->filter->mindate > data->filter->maxdate ) ? TRUE : FALSE); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), ( data->filter->maxdate < data->filter->mindate ) ? TRUE : FALSE); g_signal_handler_block(data->PO_mindate, data->handler_id[HID_REPVEHICLE_MINDATE]); g_signal_handler_block(data->PO_maxdate, data->handler_id[HID_REPVEHICLE_MAXDATE]); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_mindate), data->filter->mindate); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_maxdate), data->filter->maxdate); g_signal_handler_unblock(data->PO_mindate, data->handler_id[HID_REPVEHICLE_MINDATE]); g_signal_handler_unblock(data->PO_maxdate, data->handler_id[HID_REPVEHICLE_MAXDATE]); repvehicle_compute(widget, NULL); } } static gint repvehicle_transaction_compare_func(CarCost *a, CarCost *b) { gint retval; //retval = (gint)(a->ope->date - b->ope->date); //if( retval == 0 ) retval = a->meter - b->meter; return retval; } static void repvehicle_export_csv(GtkWidget *widget, gpointer user_data) { struct repvehicle_data *data; GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gchar *filename = NULL; GIOChannel *io; gchar *outstr, *name; DB( g_print("\n[repvehicle] export csv\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); name = "hb-vehicle.csv"; if( ui_file_chooser_csv(GTK_WINDOW(data->window), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, name) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { // header outstr = g_strdup_printf("%s;%s;%s;%s;%s;%s;%s;%s\n", _("Date"), _("Meter"), _("Fuel"), _("Price"), _("Amount"), _("Dist."), PREFS->vehicle_unit_100, PREFS->vehicle_unit_distbyvol ); g_io_channel_write_chars(io, outstr, -1, NULL, NULL); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { guint32 julian; gint meter, dist; //#1947931 distbyvol in double not int gdouble fuel, price, amount, centkm, distbyvol; gboolean partial; gchar datebuf[16]; gtk_tree_model_get (model, &iter, LST_CAR_DATE , &julian, LST_CAR_METER , &meter, LST_CAR_FUEL , &fuel, LST_CAR_PRICE , &price, LST_CAR_AMOUNT , &amount, LST_CAR_DIST , &dist, LST_CAR_100KM , ¢km, LST_CAR_DISTBYVOL, &distbyvol, LST_CAR_PARTIAL, &partial, -1); hb_sprint_date(datebuf, julian); outstr = g_strdup_printf("%s;%d;%.2f;%.2f;%.2f;%d;%.2f;%.2f;%d\n", datebuf, meter, fuel, price, amount, dist, centkm, distbyvol, partial); g_io_channel_write_chars(io, outstr, -1, NULL, NULL); DB( g_print("%s", outstr) ); g_free(outstr); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } g_io_channel_unref (io); } g_free( filename ); } } //#1277622 static gboolean repvehicle_eval_memofield(CarCost *item, gchar *text) { gboolean retval = FALSE; gchar *d, *v1, *v2; gint len; if(item != NULL) { item->meter = 0; item->fuel = 0.0; item->partial = FALSE; } if( text != NULL) { //TODO: optim here len = strlen(text); d = g_strstr_len(text, len, "d="); v1 = g_strstr_len(text, len, "v="); v2 = g_strstr_len(text, len, "v~"); if(d && (v1 || v2)) { retval = TRUE; if(item != NULL) { item->meter = atol(d+2); if(v1) { item->fuel = g_strtod(v1+2, NULL); } else { item->fuel = g_strtod(v2+2, NULL); item->partial = TRUE; } } } } return retval; } static gboolean my_g_array_exists(GArray *array, guint32 kcat) { gboolean retval = FALSE; Category *cat; guint32 *key, i; //#2000452 removed binary_search for(i=0;ilen;i++) { key = &g_array_index(array, guint32, i); cat = da_cat_get(*key); if( (cat != NULL) && (cat->key == kcat) ) { retval = TRUE; break; } } DB( g_print(" normal search %d ? %d\n", kcat, retval) ); return retval; } static void my_garray_add(GArray *array, guint32 key) { Category *cat; DB( g_print("\n[vehiclecost] garray_add\n") ); cat = da_cat_get(key); if(!cat) return; //#1873660 add parent as well if( cat->parent > 0 ) { if( my_g_array_exists(array, cat->parent) == FALSE ) { DB( g_print(" store kcat=%d '%s' (parent)\n", cat->parent, cat->fullname) ); g_array_append_vals(array, &cat->parent, 1); } } //add category if( my_g_array_exists(array, cat->key) == FALSE ) { DB( g_print(" store kcat=%d '%s'\n", cat->key, cat->name) ); g_array_append_vals(array, &cat->key, 1); } } static void repvehicle_compute(GtkWidget *widget, gpointer user_data) { struct repvehicle_data *data; GArray *ga_cat; GList *list; DB( g_print("\n[vehiclecost] compute\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); // clear the glist da_vehiclecost_destroy(data->vehicle_list); data->vehicle_list = NULL; g_queue_free (data->txn_queue); data->txn_queue = hbfile_transaction_get_partial(data->filter->mindate, data->filter->maxdate); // pass1 to collect categories ga_cat = g_array_new(FALSE, FALSE, sizeof(guint32)); list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; // eval normal transaction if(!(ope->flags & OF_SPLIT)) { if( repvehicle_eval_memofield(NULL, ope->memo) == TRUE ) { my_garray_add(ga_cat, ope->kcat); } } else { guint i, nbsplit = da_splits_length(ope->splits); Split *split; for(i=0;isplits, i); if( repvehicle_eval_memofield(NULL, split->memo) == TRUE ) { my_garray_add(ga_cat, split->kcat); } } } list = g_list_next(list); } //here ga_cat contains cat+subcat of txn where there is vehicle cost data d= v= // pass2: collect transactions + fill carcost items list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; Category *cat; CarCost tmp, *item; //TODO: rely on a persistent flag // attribution ? // eval normal transaction if(!(ope->flags & OF_SPLIT)) { cat = da_cat_get(ope->kcat); if( (cat != NULL) ) { if( (my_g_array_exists(ga_cat, cat->key) || my_g_array_exists(ga_cat, cat->parent) ) ) { if( repvehicle_eval_memofield(&tmp, ope->memo) == TRUE ) { item = da_vehiclecost_malloc(); item->kcat = ope->kcat; item->date = ope->date; item->memo = ope->memo; item->amount = hb_amount_base(ope->amount, ope->kcur); item->meter = tmp.meter; item->fuel = tmp.fuel; item->partial = tmp.partial; data->vehicle_list = g_list_prepend(data->vehicle_list, item); DB( g_print(" store txn kcat=%d acc=%d %4.2f '%s' \n", ope->kcat, ope->kacc, ope->amount, ope->memo) ); } else { item = da_vehiclecost_malloc(); item->kcat = ope->kcat; item->date = ope->date; item->amount = hb_amount_base(ope->amount, ope->kcur); item->meter = 0; data->vehicle_list = g_list_prepend(data->vehicle_list, item); DB( g_print(" store txn kcat=%d acc=%d %4.2f '%s' (other)\n", ope->kcat, ope->kacc, ope->amount, ope->memo) ); } } } } // eval split transaction else { guint i, nbsplit = da_splits_length(ope->splits); Split *split; for(i=0;isplits, i); cat = da_cat_get(split->kcat); if( (cat != NULL) ) { if( (my_g_array_exists(ga_cat, cat->key) || my_g_array_exists(ga_cat, cat->parent) ) ) { if( repvehicle_eval_memofield(&tmp, split->memo) == TRUE ) { item = da_vehiclecost_malloc(); item->kcat = split->kcat; item->date = ope->date; item->memo = split->memo; item->amount = hb_amount_base(split->amount, ope->kcur); item->meter = tmp.meter; item->fuel = tmp.fuel; item->partial = tmp.partial; data->vehicle_list = g_list_prepend(data->vehicle_list, item); DB( g_print(" store txn kcat=%d acc=%d %4.2f '%s' (split)\n", split->kcat, ope->kacc, split->amount, split->memo) ); } else { item = da_vehiclecost_malloc(); item->kcat = split->kcat; item->date = ope->date; item->amount = hb_amount_base(split->amount, ope->kcur); item->meter = tmp.meter; data->vehicle_list = g_list_prepend(data->vehicle_list, item); DB( g_print("- store txn kcat=%d acc=%d %4.2f '%s' (other plit)\n", ope->kcat, ope->kacc, ope->amount, ope->memo) ); } } } } } list = g_list_next(list); } repvehicle_setup_categories(data, ga_cat); g_array_free(ga_cat, TRUE); // sort by meter #399170 data->vehicle_list = g_list_sort(data->vehicle_list, (GCompareFunc)repvehicle_transaction_compare_func); repvehicle_update(widget, NULL); } static void repvehicle_update(GtkWidget *widget, gpointer user_data) { struct repvehicle_data *data; GtkTreeModel *model; GtkTreeIter iter; GList *list; gchar *buf; guint32 selkey; gint nb_refuel = 0; int nb_fullrefuel = 0; guint lastmeter = 0; DB( g_print("\n[vehiclecost] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); // get the category key //selkey = ui_cat_comboboxentry_get_key(GTK_COMBO_BOX(data->PO_cat)); selkey = ui_cat_entry_popover_get_key(GTK_BOX(data->PO_cat)); DB( g_print(" selkey=%d\n\n", selkey) ); // clear and detach our model model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); gtk_list_store_clear (GTK_LIST_STORE(model)); g_object_ref(model); gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), NULL); data->total_misccost = 0; data->total_fuelcost = 0; data->total_fuel = 0; data->total_dist = 0; gdouble partial_fuel = 0; guint partial_dist = 0; if( selkey == 0 ) goto noselkey; list = g_list_first(data->vehicle_list); while (list != NULL) { CarCost *item = list->data; Category *itemcat; gint dist; gdouble centkm; gdouble distbyvol; gdouble amount; itemcat = da_cat_get(item->kcat); if(! itemcat ) continue; if( (itemcat->key == selkey || itemcat->parent == selkey) ) { DB( g_print(" add treeview kcat=%d %s\n", item->kcat, item->memo) ); amount = item->amount; if( item->meter == 0 ) { data->total_misccost += amount; } else { if(nb_refuel > 0 ) { //previtem = g_list_nth_data(data->vehicle_list, nb_refuel-1); //if(previtem != NULL) previtem->dist = item->meter - previtem->meter; //DB( g_print(" + previous item dist = %d\n", item->meter - previtem->meter) ); item->dist = item->meter - lastmeter; //DB( g_print(" + last meter = %d\n", lastmeter) ); } lastmeter = item->meter; nb_refuel++; //DB( g_print("\n eval %02d :: d=%d v=%.2f $%.2f dist=%d\n", nb_refuel, item->meter, item->fuel, amount, item->dist) ); //DB( g_print(" + %s :: pf=%.2f pd=%d\n", item->partial ? "partial" : "full", partial_fuel, partial_dist) ); centkm = 0; dist = 0; //bugfix #159066 partial/full if(item->partial == FALSE) { //#1836380 if we don't have a full already, the computing will be wrong if( nb_fullrefuel > 0 ) { // full refuel after partial if(partial_fuel && partial_dist) { partial_fuel += item->fuel; partial_dist += item->dist; dist = item->dist; centkm = partial_dist != 0 ? partial_fuel * 100 / partial_dist : 0; //DB( g_print(" + centkm=%.2f %.2f * 100 / %d (full after partial)\n", centkm, partial_fuel, partial_dist) ); } else { dist = item->dist; centkm = item->dist != 0 ? item->fuel * 100 / item->dist : 0; //DB( g_print(" + centkm=%.2f :: %.2f * 100 / %d (full after full)\n", centkm, item->fuel, item->dist) ); } } partial_fuel = 0; partial_dist = 0; nb_fullrefuel++; } // partial refuel else { partial_fuel += item->fuel; partial_dist += item->dist; dist = item->dist; //DB( g_print(" + centkm= not computable\n") ); } distbyvol = 0; if(centkm != 0) //#2073233 round to 1 digit distbyvol = hb_amount_round((1/centkm)*100, 1); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_CAR_DATE, item->date, LST_CAR_MEMO, item->memo, LST_CAR_METER, item->meter, LST_CAR_FUEL, item->fuel, LST_CAR_PRICE, ABS(amount) / item->fuel, LST_CAR_AMOUNT, amount, LST_CAR_DIST, dist, LST_CAR_100KM, centkm, LST_CAR_DISTBYVOL, distbyvol, LST_CAR_PARTIAL, item->partial, -1); //DB( g_print("\n insert d=%d v=%4.2f $%8.2f %d %5.2f\n", item->meter, item->fuel, amount, dist, centkm) ); if(item->dist) { data->total_fuelcost += amount; data->total_fuel += item->fuel; data->total_dist += item->dist; } } } list = g_list_next(list); } noselkey: gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), model); g_object_unref(model); gdouble coef = data->total_dist ? 100 / (gdouble)data->total_dist : 0; GLOBALS->minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); DB( g_print(" coef = 100 / %.2f = %.2f\n", (gdouble)data->total_dist, coef) ); // row 1 is for 100km /* gtk_label_set_text(GTK_LABEL(data->LA_total[1][1]), "1:1"); //Consumption gtk_label_set_text(GTK_LABEL(data->LA_total[2][1]), "2:1"); //Fuel cost gtk_label_set_text(GTK_LABEL(data->LA_total[3][1]), "3:1"); //Other cost gtk_label_set_text(GTK_LABEL(data->LA_total[4][1]), "4:1"); //Total cost */ // 100km fuel buf = g_strdup_printf(PREFS->vehicle_unit_vol, data->total_fuel * coef); gtk_label_set_text(GTK_LABEL(data->LA_avera[CAR_RES_FUEL]), buf); g_free(buf); // 100km fuelcost //hb_label_set_colvaluecurr(GTK_LABEL(data->LA_avera[CAR_RES_FUELCOST]), data->total_fuelcost * coef, GLOBALS->kcur); hb_label_set_colvalue(GTK_LABEL(data->LA_avera[CAR_RES_FUELCOST]), data->total_fuelcost * coef, GLOBALS->kcur, GLOBALS->minor); // 100km other cost //hb_label_set_colvaluecurr(GTK_LABEL(data->LA_avera[CAR_RES_OTHERCOST]), data->total_misccost * coef, GLOBALS->kcur); hb_label_set_colvalue(GTK_LABEL(data->LA_avera[CAR_RES_OTHERCOST]), data->total_misccost * coef, GLOBALS->kcur, GLOBALS->minor); // 100km cost //hb_label_set_colvaluecurr(GTK_LABEL(data->LA_avera[CAR_RES_TOTALCOST]), (data->total_fuelcost + data->total_misccost) * coef, GLOBALS->kcur); hb_label_set_colvalue(GTK_LABEL(data->LA_avera[CAR_RES_TOTALCOST]), (data->total_fuelcost + data->total_misccost) * coef, GLOBALS->kcur, GLOBALS->minor); // row 2 is for total /* gtk_label_set_text(GTK_LABEL(data->LA_total[1][2]), "1:2"); //Consumption gtk_label_set_text(GTK_LABEL(data->LA_total[2][2]), "2:2"); //Fuel cost gtk_label_set_text(GTK_LABEL(data->LA_total[3][2]), "3:2"); //Other cost gtk_label_set_text(GTK_LABEL(data->LA_total[4][2]), "4:2"); //Total */ // total distance buf = g_strdup_printf(PREFS->vehicle_unit_dist0, data->total_dist); gtk_label_set_text(GTK_LABEL(data->LA_total[CAR_RES_METER]), buf); g_free(buf); // total fuel buf = g_strdup_printf(PREFS->vehicle_unit_vol, data->total_fuel); gtk_label_set_text(GTK_LABEL(data->LA_total[CAR_RES_FUEL]), buf); g_free(buf); // total fuelcost //hb_label_set_colvaluecurr(GTK_LABEL(data->LA_total[CAR_RES_FUELCOST]), data->total_fuelcost, GLOBALS->kcur); hb_label_set_colvalue(GTK_LABEL(data->LA_total[CAR_RES_FUELCOST]), data->total_fuelcost, GLOBALS->kcur, GLOBALS->minor); // total other cost //hb_label_set_colvaluecurr(GTK_LABEL(data->LA_total[CAR_RES_OTHERCOST]), data->total_misccost, GLOBALS->kcur); hb_label_set_colvalue(GTK_LABEL(data->LA_total[CAR_RES_OTHERCOST]), data->total_misccost, GLOBALS->kcur, GLOBALS->minor); // total cost //hb_label_set_colvaluecurr(GTK_LABEL(data->LA_total[CAR_RES_TOTALCOST]), data->total_fuelcost + data->total_misccost, GLOBALS->kcur); hb_label_set_colvalue(GTK_LABEL(data->LA_total[CAR_RES_TOTALCOST]), data->total_fuelcost + data->total_misccost, GLOBALS->kcur, GLOBALS->minor); } static void repvehicle_toggle_minor(GtkWidget *widget, gpointer user_data) { struct repvehicle_data *data; DB( g_print("\n[vehiclecost] toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); repvehicle_update(widget, NULL); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); /* statistic_update_total(widget,NULL); //hbfile_update(data->LV_acc, (gpointer)4); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); gtk_chart_show_minor(GTK_CHART(data->RE_bar), minor); gtk_chart_show_minor(GTK_CHART(data->RE_pie), minor); */ } static void repvehicle_setup_categories(struct repvehicle_data *data, GArray *array) { Category *cat; guint32 kcat, *key, i; DB( g_print("\n[vehiclecost] setup categories\n") ); kcat = GLOBALS->vehicle_category; //g_signal_handler_block(data->PO_cat, data->handler_id[HID_REPVEHICLE_VEHICLE]); if( array != NULL ) { //get previous category //kcat = ui_cat_comboboxentry_get_key(GTK_COMBO_BOX(data->PO_cat)); kcat = ui_cat_entry_popover_get_key(GTK_BOX(data->PO_cat)); //populate with the array //ui_cat_combobox_entry_clear(GTK_COMBO_BOX(data->PO_cat)); ui_cat_entry_popover_clear(GTK_BOX(data->PO_cat)); cat = da_cat_get(0); if(cat) { DB( g_print(" add %d '%s'\n", cat->key, cat->fullname) ); //ui_cat_comboboxentry_add(GTK_COMBO_BOX(data->PO_cat), cat); ui_cat_entry_popover_add(GTK_BOX(data->PO_cat), cat); } for(i=0;ilen;i++) { key = &g_array_index(array, guint32, i); cat = da_cat_get(*key); if(cat) { DB( g_print(" add %d %s\n", cat->key, cat->fullname) ); //ui_cat_comboboxentry_add(GTK_COMBO_BOX(data->PO_cat), cat); ui_cat_entry_popover_add(GTK_BOX(data->PO_cat), cat); } } } //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), kcat); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_cat), kcat); //g_signal_handler_unblock(data->PO_cat, data->handler_id[HID_REPVEHICLE_VEHICLE]); } static GtkWidget * repvehicle_toolbar_create(struct repvehicle_data *data) { GtkWidget *toolbar, *button; toolbar = gtk_toolbar_new(); button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REFRESH, _("Refresh"), _("Refresh results")); data->BT_refresh = button; button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILE_EXPORT, _("Export"), _("Export as CSV")); data->BT_export = button; return toolbar; } //reset the filter static void repvehicle_filter_setup(struct repvehicle_data *data) { DB( g_print("\n[vehiclecost] reset filter\n") ); filter_reset(data->filter); /* 3.4 : make int transfer out of stats */ filter_preset_daterange_set(data->filter, PREFS->date_range_rep, 0); filter_preset_type_set(data->filter, FLT_TYPE_INTXFER, FLT_EXCLUDE); //g_signal_handler_block(data->PO_mindate, data->handler_id[HID_REPVEHICLE_MINDATE]); //g_signal_handler_block(data->PO_maxdate, data->handler_id[HID_REPVEHICLE_MAXDATE]); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_mindate), data->filter->mindate); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_maxdate), data->filter->maxdate); //g_signal_handler_unblock(data->PO_mindate, data->handler_id[HID_REPVEHICLE_MINDATE]); //g_signal_handler_unblock(data->PO_maxdate, data->handler_id[HID_REPVEHICLE_MAXDATE]); } static void repvehicle_window_setup(struct repvehicle_data *data) { DB( g_print("\n[vehiclecost] setup\n") ); DB( g_print(" init data\n") ); repvehicle_filter_setup(data); DB( g_print(" populate\n") ); repvehicle_setup_categories(data, NULL); DB( g_print(" set widgets default\n") ); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), PREFS->date_range_rep); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_minor),GLOBALS->minor); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report))), "minor", (gpointer)data->CM_minor); DB( g_print(" connect widgets signals\n") ); g_signal_connect (data->CM_minor, "toggled", G_CALLBACK (repvehicle_toggle_minor), NULL); data->handler_id[HID_REPVEHICLE_MINDATE] = g_signal_connect (data->PO_mindate, "changed", G_CALLBACK (repvehicle_date_change), (gpointer)data); data->handler_id[HID_REPVEHICLE_MAXDATE] = g_signal_connect (data->PO_maxdate, "changed", G_CALLBACK (repvehicle_date_change), (gpointer)data); data->handler_id[HID_REPVEHICLE_RANGE] = g_signal_connect (data->CY_range, "changed", G_CALLBACK (repvehicle_range_change), NULL); //data->handler_id[HID_REPVEHICLE_VEHICLE] = g_signal_connect (data->PO_cat, "changed", G_CALLBACK (repvehicle_update), NULL); data->handler_id[HID_REPVEHICLE_VEHICLE] = g_signal_connect (ui_cat_entry_popover_get_entry(GTK_BOX(data->PO_cat)), "changed", G_CALLBACK (repvehicle_update), NULL); g_signal_connect (G_OBJECT (data->BT_refresh), "clicked", G_CALLBACK (repvehicle_action_refresh), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_export) , "clicked", G_CALLBACK (repvehicle_action_export), (gpointer)data); } static gboolean repvehicle_window_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct repvehicle_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[vehiclecost] window mapped\n") ); //setup, init and show window repvehicle_window_setup(data); repvehicle_compute(data->window, NULL); data->mapped_done = TRUE; return FALSE; } static gboolean repvehicle_window_dispose(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct repvehicle_data *data = user_data; struct WinGeometry *wg; DB( g_print("\n[vehiclecost] dispose\n") ); g_queue_free (data->txn_queue); da_vehiclecost_destroy(data->vehicle_list); da_flt_free(data->filter); g_free(data); //store position and size wg = &PREFS->cst_wg; gtk_window_get_position(GTK_WINDOW(widget), &wg->l, &wg->t); gtk_window_get_size(GTK_WINDOW(widget), &wg->w, &wg->h); DB( g_print(" window: l=%d, t=%d, w=%d, h=%d\n", wg->l, wg->t, wg->w, wg->h) ); //enable define windows GLOBALS->define_off--; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); //unref window to our open window list GLOBALS->openwindows = g_slist_remove(GLOBALS->openwindows, widget); return FALSE; } //allocate our object/memory static void repvehicle_window_acquire(struct repvehicle_data *data) { DB( g_print("\n[vehiclecost] acquire\n") ); data->txn_queue = g_queue_new (); data->filter = da_flt_malloc(); data->vehicle_list = NULL; } // the window creation GtkWidget *repvehicle_window_new(void) { struct repvehicle_data *data; struct WinGeometry *wg; GtkWidget *window, *mainbox, *vbox, *scrollwin, *treeview; GtkWidget *label, *widget, *table; gint row, col; DB( g_print("\n[vehiclecost] new\n") ); data = g_malloc0(sizeof(struct repvehicle_data)); if(!data) return NULL; repvehicle_window_acquire(data); //disable define windows GLOBALS->define_off++; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); data->window = window; //ref window to our open window list GLOBALS->openwindows = g_slist_prepend(GLOBALS->openwindows, window); //store our window private data g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)data); DB( g_print(" - new window=%p, inst_data=%p\n", window, data) ); gtk_window_set_title (GTK_WINDOW (window), _("Vehicle cost report")); //window contents mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hb_widget_set_margin(GTK_WIDGET(mainbox), SPACING_SMALL); gtk_window_set_child(GTK_WINDOW(window), mainbox); //control part table = gtk_grid_new (); gtk_widget_set_hexpand (GTK_WIDGET(table), FALSE); gtk_box_prepend (GTK_BOX (mainbox), table); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); row = 0; label = make_label_group(_("Display")); gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); row++; //label = make_label_widget(_("Vehi_cle:")); //#2001566 make label consistent with properties dialog label = make_label_widget(_("_Category:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); //widget = ui_cat_comboboxentry_new(label); widget = ui_cat_entry_popover_new(label); data->PO_cat = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Euro _minor")); data->CM_minor = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); //-- filter row++; widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_margin_top(widget, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (table), widget, 0, row, 3, 1); row++; label = make_label_group(_("Filter")); gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); row++; //label = make_label_group(_("Date filter")); label = make_label_group(_("Date")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 2, 1); row++; label = make_label_widget(_("_Range:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->CY_range = make_daterange(label, DATE_RANGE_FLAG_CUSTOM_DISABLE); gtk_grid_attach (GTK_GRID (table), data->CY_range, 2, row, 1, 1); row++; label = make_label_widget(_("_From:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->PO_mindate = gtk_date_entry_new(label); gtk_grid_attach (GTK_GRID (table), data->PO_mindate, 2, row, 1, 1); row++; label = make_label_widget(_("_To:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->PO_maxdate = gtk_date_entry_new(label); gtk_grid_attach (GTK_GRID (table), data->PO_maxdate, 2, row, 1, 1); //part: info + report vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_margin_start (vbox, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (mainbox), vbox); widget = repvehicle_toolbar_create(data); data->TB_bar = widget; gtk_box_prepend (GTK_BOX (vbox), widget); // total table = gtk_grid_new (); gtk_widget_set_hexpand (GTK_WIDGET(table), FALSE); gtk_box_prepend (GTK_BOX (vbox), table); hb_widget_set_margin(GTK_WIDGET(table), SPACING_SMALL); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); row = 0; col = 1; label = make_label_widget(_("Meter:")); gtk_grid_attach (GTK_GRID (table), label, col, row, 1, 1); col++; label = make_label_widget(_("Consumption:")); gtk_grid_attach (GTK_GRID (table), label, col, row, 1, 1); col++; label = make_label_widget(_("Fuel cost:")); gtk_grid_attach (GTK_GRID (table), label, col, row, 1, 1); col++; label = make_label_widget(_("Other cost:")); gtk_grid_attach (GTK_GRID (table), label, col, row, 1, 1); col++; label = make_label_widget(_("Total cost:")); gtk_grid_attach (GTK_GRID (table), label, col, row, 1, 1); row++; col = 0; label = make_label_widget(PREFS->vehicle_unit_100); gtk_grid_attach (GTK_GRID (table), label, col, row, 1, 1); for(col = 1;colLA_avera[col] = label; } row++; col = 0; label = make_label_widget(_("Total")); gtk_grid_attach (GTK_GRID (table), label, col, row, 1, 1); for(col = 1;colLA_total[col] = label; } //detail scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); treeview = list_vehicle_create(); data->LV_report = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); // connect dialog signals g_signal_connect (window, "delete-event", G_CALLBACK (repvehicle_window_dispose), (gpointer)data); g_signal_connect (window, "map-event" , G_CALLBACK (repvehicle_window_mapped), NULL); // setup, init and show window wg = &PREFS->cst_wg; if( wg->l && wg->t ) gtk_window_move(GTK_WINDOW(window), wg->l, wg->t); gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h); /* toolbar */ if(PREFS->toolbar_style == 0) gtk_toolbar_unset_style(GTK_TOOLBAR(data->TB_bar)); else gtk_toolbar_set_style(GTK_TOOLBAR(data->TB_bar), PREFS->toolbar_style-1); gtk_widget_show_all (window); //minor ? hb_widget_visible(data->CM_minor, PREFS->euro_active); return(window); } /* ** ============================================================================ */ static void list_vehicle_cell_data_func_date (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GDate *date; guint32 julian; gchar buf[256]; gtk_tree_model_get(model, iter, LST_CAR_DATE, &julian, -1); date = g_date_new_julian (julian); g_date_strftime (buf, 256-1, PREFS->date_format, date); g_date_free(date); g_object_set(renderer, "text", buf, NULL); } static void list_vehicle_cell_data_func_distbyvol (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble distance; gchar *text; gtk_tree_model_get(model, iter, user_data, &distance, -1); if(distance != 0) { text = g_strdup_printf(PREFS->vehicle_unit_dist1, distance); g_object_set(renderer, "text", text, NULL); g_free(text); } else g_object_set(renderer, "text", "-", NULL); } static void list_vehicle_cell_data_func_distance (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { guint distance; gchar *text; gtk_tree_model_get(model, iter, user_data, &distance, -1); if(distance != 0) { text = g_strdup_printf(PREFS->vehicle_unit_dist0, distance); g_object_set(renderer, "text", text, NULL); g_free(text); } else g_object_set(renderer, "text", "-", NULL); } static void list_vehicle_cell_data_func_volume (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble volume; gboolean partial; gchar *text; gtk_tree_model_get(model, iter, user_data, &volume, LST_CAR_PARTIAL, &partial, -1); if(volume != 0) { text = g_strdup_printf(PREFS->vehicle_unit_vol, volume); g_object_set(renderer, "text", text, "style-set", TRUE, "style", partial ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL, NULL); g_free(text); } else g_object_set(renderer, "text", "-", NULL); } static void list_vehicle_cell_data_func_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble value; gchar *color; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gtk_tree_model_get(model, iter, user_data, &value, -1); if( value ) { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, value, GLOBALS->kcur, GLOBALS->minor); color = get_normal_color_amount(value); g_object_set(renderer, "foreground", color, "text", buf, NULL); } else { g_object_set(renderer, "text", "", NULL); } } static GtkTreeViewColumn *list_vehicle_column_volume(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_vehicle_cell_data_func_volume, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_sort_column_id (column, id); return column; } static GtkTreeViewColumn *list_vehicle_column_distbyvol(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_vehicle_cell_data_func_distbyvol, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_sort_column_id (column, id); return column; } static GtkTreeViewColumn *list_vehicle_column_distance(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_vehicle_cell_data_func_distance, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_sort_column_id (column, id); return column; } static GtkTreeViewColumn *list_vehicle_column_amount(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_vehicle_cell_data_func_amount, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_sort_column_id (column, id); return column; } /* ** create our statistic list */ static GtkWidget *list_vehicle_create(void) { GtkListStore *store; GtkWidget *view; GtkCellRenderer *renderer; GtkTreeViewColumn *column; /* create list store */ store = gtk_list_store_new( NUM_LST_CAR, G_TYPE_UINT, //date G_TYPE_STRING, //memo G_TYPE_UINT, //meter G_TYPE_DOUBLE, //fuel G_TYPE_DOUBLE, //price G_TYPE_DOUBLE, //amount G_TYPE_UINT, //dist G_TYPE_DOUBLE, //100km G_TYPE_DOUBLE, //distbyvol G_TYPE_BOOLEAN //ispartial ); //treeview view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), PREFS->grid_lines); /* column date */ column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Date")); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); renderer = gtk_cell_renderer_text_new(); //#2004631 date and column title alignement //g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); //gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_DATE); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_cell_data_func(column, renderer, list_vehicle_cell_data_func_date, NULL, NULL); /* LST_CAR_DATE, LST_CAR_MEMO, LST_CAR_METER, LST_CAR_FUEL, LST_CAR_PRICE, LST_CAR_AMOUNT, LST_CAR_DIST, LST_CAR_100KM */ /* column: Memo */ /* column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Memo")); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_add_attribute(column, renderer, "text", LST_CAR_MEMO); //gtk_tree_view_column_set_cell_data_func(column, renderer, repvehicle_text_cell_data_function, NULL, NULL); */ /* column: Meter */ column = list_vehicle_column_distance(_("Meter"), LST_CAR_METER); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Fuel load */ column = list_vehicle_column_volume(_("Fuel"), LST_CAR_FUEL); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Price by unit */ column = list_vehicle_column_amount(_("Price"), LST_CAR_PRICE); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Amount */ column = list_vehicle_column_amount(_("Amount"), LST_CAR_AMOUNT); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Distance done */ column = list_vehicle_column_distance(_("Dist."), LST_CAR_DIST); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: consumption for 100Km */ column = list_vehicle_column_volume(PREFS->vehicle_unit_100, LST_CAR_100KM); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: km by liter (distance by volume */ column = list_vehicle_column_distbyvol(PREFS->vehicle_unit_distbyvol, LST_CAR_DISTBYVOL); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column last: empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(view), FALSE); return(view); } homebank-5.9.1/src/gtk-chart-colors.h0000664000175000017500000000675514736461415013150 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __GTK_COLORS_H__ #define __GTK_COLORS_H__ #include #define MASKCOL 255 //#define MASKCOL 000 #define COLTO16(col8) ( (col8 | col8<<8 ) ) #define COLTOOVER(col8) ( (col8 + MASKCOL) / 2 ) #define AREA_ALPHA .33 #define OVER_ALPHA .15 #define OVER_COLOR (MASKCOL * OVER_ALPHA) #define COLTOCAIRO(col8) ( (col8 / 255.0) ) #define COLTOCAIROOVER(col8) ( ((col8 * (1 - OVER_ALPHA)) + OVER_COLOR ) / 255.0 ) //typedef struct _rgbcol RgbCol; typedef struct _ColorScheme GtkColorScheme; struct rgbcol { guint8 r, g, b; }; #define SHADE_FACTOR 0.15 #define LIGHT_FACTOR 0.15 #define HOVER_FACTOR 0.15 struct _ColorScheme { struct rgbcol *colors; gint nb_cols; gint cs_red; gint cs_green; gint cs_blue; gint cs_orange; }; #define HBTK_CHART_FLAGS_NONE 0 #define HBTK_CHART_FLAGS_HOVER 1 << 1 #define HBTK_CHART_FLAGS_SHADED 1 << 2 //TODO: get rid of unused here enum { BLACK, WHITE, GREY1, TEXT, XYLINES, THBASE, THTEXT }; enum colmap { CHART_COLMAP_HOMEBANK, CHART_COLMAP_MSMONEY, CHART_COLMAP_SAP, CHART_COLMAP_QUICKEN, CHART_COLMAP_OFFICE2010, CHART_COLMAP_OFFICE2013, CHART_COLMAP_ANALYTICS, CHART_COLMAP_YNAB, CHART_COLMAP_QUICKEN2017, CHART_COLMAP_MINT, CHART_COLMAP_MATERIAL, CHART_COLMAP_NORD, }; enum { CHART_FONT_SIZE_TITLE, CHART_FONT_SIZE_SUBTITLE, CHART_FONT_SIZE_NORMAL, CHART_FONT_SIZE_SMALL }; extern char *chart_colors[]; extern struct rgbcol global_colors[]; extern struct rgbcol money_colors[]; extern struct rgbcol quicken_colors[]; extern struct rgbcol analytics_colors[]; extern struct rgbcol office2010_colors[]; extern struct rgbcol office2013_colors[]; extern struct rgbcol sap_colors[]; extern struct rgbcol homebank_colors[]; extern struct rgbcol ynab_colors[]; extern struct rgbcol quicken2017_colors[]; extern struct rgbcol mint_colors[]; extern struct rgbcol material_colors[]; extern struct rgbcol nord_colors[]; extern int money_nbcolors; extern int quicken_nbcolors; extern int analytics_nbcolors; extern int office2010_nbcolors; extern int office2013_nbcolors; extern int sap_nbcolors; extern int homebank_nbcolors; extern int ynab_nbcolors; extern int quicken2017_nbcolors; extern int mint_nbcolors; extern int material_nbcolors; extern int nord_nbcolors; void chart_color_global_default(void); void cairo_user_set_rgbcol(cairo_t *cr, struct rgbcol *col); void cairo_user_set_rgbacol(cairo_t *cr, struct rgbcol *col, double alpha); void cairo_user_set_rgbacol_over(cairo_t *cr, struct rgbcol *col, gboolean over, double alpha); void cairo_user_set_rgbcol_over(cairo_t *cr, struct rgbcol *col, gboolean over); void colorsheme_col8_to_rgba(struct rgbcol *col8, GdkRGBA *rgba); void colorscheme_init(GtkColorScheme *scheme, gint index); #endif /* __GTK_COLORS_H__ */ homebank-5.9.1/src/hb-transaction.h0000644000175000017500000001236715005625143012661 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_TRANSACTION_H__ #define __HB_TRANSACTION_H__ #include "hb-types.h" struct _transaction { gdouble amount; guint32 kacc; guchar paymode; guchar grpflg; gushort flags; guint32 kpay; guint32 kcat; gchar *memo; guint32 date; gushort pos; gushort status; gchar *number; //info < 5.8 guint32 *tags; guint32 kxfer; //strong link xfer key guint32 kxferacc; gdouble xferamount; //xfer target amount GPtrArray *splits; /* unsaved datas */ guint32 kcur; //init at loadxml (preprend) + add gushort dspflags; // guchar dupgid; //duplicate group id guchar matchrate; //used only when find xfer target gdouble balance; //init at dsp balance refresh //GList *same; //used for import todo: change this }; // saved flags -- data //gushort is 2 bytes / 16 bits //FREE (1<<0) #define OF_INCOME (1<< 1) //FREE (1<< 2) #define OF_INTXFER (1<< 3) #define OF_ADVXFER (1<< 4) //xfer with != kcur #define OF_REMIND (1<< 5) //added 5.9 #define OF_CHEQ2 (1<< 6) //FREE (1<< 7) #define OF_SPLIT (1<< 8) #define OF_ISIMPORT (1<< 9) //added 5.9 #define OF_ISPAST (1<<10) //added 5.9 //deprecated > 5.x #define OLDF_VALID (1<< 0) #define OLDF_REMIND (1<< 5) //deprecated > 5.9 #define OLDF_AUTO (1<< 2) //scheduled #define OLDF_LIMIT (1<< 7) //scheduled #define OLDF_ADDED (1<< 9) //was 1<<3 < 5.3 #define OLDF_CHANGED (1<<10) //was 1<<4 < 5.3 #define OLDF_PREFILLED (1<<11) // unsaved flags -- display/session #define FLAG_TMP_ADDED (1<< 1) #define FLAG_TMP_EDITED (1<< 2) #define FLAG_TMP_PREFILLED (1<< 3) //scheduled #define FLAG_TMP_OVER (1<< 4) #define FLAG_TMP_LOWBAL (1<< 5) #define FLAG_TMP_DUPSRC (1<< 9) #define FLAG_TMP_DUPDST (1<<10) #define FLAG_TMP_CHKSIGN (1<< 11) typedef enum { TXN_STATUS_NONE, //0 TXN_STATUS_CLEARED, //1 TXN_STATUS_RECONCILED, //2 TXN_STATUS_VOID //3 (OLD 4) } HbTxnStatus; #define TXN_OLDSTATUS_REMIND 3 #define TXN_OLDSTATUS_VOID 4 enum { TXN_MARK_NONE, TXN_MARK_DUPSRC, TXN_MARK_DUPDST }; enum { TXN_TYPE_EXPENSE, TXN_TYPE_INCOME, TXN_TYPE_INTXFER }; Transaction *da_transaction_malloc(void); //Transaction *da_transaction_copy(Transaction *src_txn, Transaction *dst_txn); Transaction *da_transaction_init(Transaction *txn, guint32 kacc); Transaction *da_transaction_init_from_template(Transaction *txn, Archive *arc); Transaction *da_transaction_set_default_template(Transaction *txn); Transaction *da_transaction_clone(Transaction *src_item); void da_transaction_free(Transaction *item); GList *da_transaction_new(void); void da_transaction_destroy(void); void da_transaction_queue_sort(GQueue *queue); GList *da_transaction_sort(GList *list); gboolean da_transaction_prepend(Transaction *item); gboolean da_transaction_insert_sorted(Transaction *item); void da_transaction_set_flag(Transaction *item); void da_transaction_consistency(Transaction *item); typedef enum { TXN_DLG_ACTION_NONE, TXN_DLG_ACTION_ADD, TXN_DLG_ACTION_INHERIT, TXN_DLG_ACTION_EDIT } HbTxnDlgAction; typedef enum { TXN_DLG_TYPE_NONE, TXN_DLG_TYPE_TXN, TXN_DLG_TYPE_TPL, TXN_DLG_TYPE_SCH } HbTxnDlgType; guint da_transaction_length(void); void transaction_remove(Transaction *ope); void transaction_changed(Transaction *txn, gboolean saverecondate); gboolean da_transaction_insert_memo(gchar *memo, guint32 date); gboolean da_transaction_insert_memos(Transaction *txn); Transaction *transaction_add(GtkWindow *parent, gboolean addmode, Transaction *ope); gchar *transaction_get_status_string(Transaction *txn); gboolean transaction_is_balanceable(Transaction *ope); gint transaction_get_type(Transaction *txn); gboolean transaction_acc_move(Transaction *txn, guint32 okacc, guint32 nkacc); Transaction *transaction_xfer_child_new_from_txn(Transaction *txn); Transaction *transaction_xfer_child_strong_get(Transaction *src); gint transaction_xfer_search_or_add_child(GtkWindow *parent, gboolean addmode, Transaction *ope, guint32 kdstacc); void transaction_xfer_change_to_normal(Transaction *ope); void transaction_xfer_change_to_child(Transaction *ope, Transaction *child); void transaction_xfer_child_sync(Transaction *s_txn, Transaction *child); void transaction_xfer_remove_child(Transaction *src); Transaction *transaction_old_get_child_transfer(Transaction *src); guint transaction_auto_all_from_payee(GList *txnlist); gint transaction_similar_mark(Account *acc, guint32 daygap); void transaction_similar_unmark(Account *acc); gint transaction_check_chkcatsign_mark(Account *acc); void transaction_check_chkcatsign_unmark(Account *acc); #endif homebank-5.9.1/src/hb-category.c0000644000175000017500000006431114765331116012146 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-category.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ Category * da_cat_clone(Category *src_item) { Category *new_item = g_memdup(src_item, sizeof(Category)); DB( g_print("da_cat_clone\n") ); if(new_item) { //duplicate the string new_item->name = g_strdup(src_item->name); new_item->fullname = g_strdup(src_item->fullname); new_item->typename = g_strdup(src_item->typename); } return new_item; } void da_cat_free(Category *item) { DB( g_print("da_cat_free\n") ); if(item != NULL) { DB( g_print(" => %d, %s\n", item->key, item->name) ); g_free(item->name); g_free(item->fullname); g_free(item->typename); g_free(item); } } Category * da_cat_malloc(void) { DB( g_print("da_cat_malloc\n") ); return g_malloc0(sizeof(Category)); } void da_cat_destroy(void) { DB( g_print("da_cat_destroy\n") ); g_hash_table_destroy(GLOBALS->h_cat); } void da_cat_new(void) { Category *item; DB( g_print("da_cat_new\n") ); GLOBALS->h_cat = g_hash_table_new_full(g_int_hash, g_int_equal, (GDestroyNotify)g_free, (GDestroyNotify)da_cat_free); // insert our 'no category' item = da_cat_malloc(); item->key = 0; item->name = g_strdup(""); item->fullname = g_strdup(""); item->typename = g_strdup(""); da_cat_insert(item); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /** * da_cat_length: * * Return value: the number of elements */ guint da_cat_length(void) { return g_hash_table_size(GLOBALS->h_cat); } static void da_cat_max_key_ghfunc(gpointer key, Category *cat, guint32 *max_key) { *max_key = MAX(*max_key, cat->key); } /** * da_cat_get_max_key: * * Get the biggest key from the GHashTable * * Return value: the biggest key value * */ guint32 da_cat_get_max_key(void) { guint32 max_key = 0; g_hash_table_foreach(GLOBALS->h_cat, (GHFunc)da_cat_max_key_ghfunc, &max_key); return max_key; } static gboolean da_cat_remove_grfunc(gpointer key, Category *cat, guint32 *remkey) { if(cat->key == *remkey || cat->parent == *remkey) return TRUE; return FALSE; } /** * da_cat_delete: * * delete a category from the GHashTable * * Return value: TRUE if the key was found and deleted * */ guint da_cat_delete(guint32 key) { DB( g_print("\nda_cat_delete %d\n", key) ); return g_hash_table_foreach_remove(GLOBALS->h_cat, (GHRFunc)da_cat_remove_grfunc, &key); } static void da_cat_build_typename(Category *item) { gchar *newname = NULL; gchar type; type = category_get_type_char(item); if(item->key == 0) newname = g_strdup(item->name); else { if( item->parent == 0 ) newname = g_markup_printf_escaped("%s [%c]", item->name, type); //string = g_strdup_printf("%s [%c]", name, type); else newname = g_markup_printf_escaped(" %c %s", type, item->name); //string = g_strdup_printf("%c %s", type, name); } if( newname ) { g_free(item->typename); item->typename = newname; DB( g_print("- updated %d:'%s' typename='%s'\n", item->key, item->name, item->typename) ); } } static void da_cat_build_fullname(Category *item) { Category *parent; g_free(item->fullname); if( item->parent == 0 ) item->fullname = g_strdup(item->name); else { parent = da_cat_get(item->parent); if( parent != NULL ) item->fullname = g_strconcat(parent->name, ":", item->name, NULL); } DB( g_print("- updated %d:'%s' fullname='%s'\n", item->key, item->name, item->fullname) ); } //#1889659: ensure name != null/empty static gboolean da_cat_ensure_name(Category *item) { // (no category) have name="" if( item->key > 0 ) { if( item->name == NULL || strlen(item->name) == 0 ) { g_free(item->name); item->name = g_strdup_printf("no name %d", item->key); return TRUE; } } return FALSE; } static void da_cat_rename(Category *item, gchar *newname) { DB( g_print("- renaming '%s' => '%s'\n", item->name, newname) ); g_free(item->name); item->name = g_strdup(newname); //#1889659: ensure name != null/empty da_cat_ensure_name(item); da_cat_build_fullname(item); da_cat_build_typename(item); if( item->parent == 0 ) { GHashTableIter iter; gpointer value; DB( g_print("- updating subcat fullname\n") ); g_hash_table_iter_init (&iter, GLOBALS->h_cat); while (g_hash_table_iter_next (&iter, NULL, &value)) { Category *subcat = value; if( subcat->parent == item->key ) da_cat_build_fullname(subcat); } } } /** * da_cat_insert: * * insert a category into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_cat_insert(Category *item) { guint32 *new_key; DB( g_print("\nda_cat_insert\n") ); DB( g_print("- '%s'\n", item->name) ); new_key = g_new0(guint32, 1); *new_key = item->key; //#1889659: ensure name != null/empty da_cat_ensure_name(item); da_cat_build_fullname(item); da_cat_build_typename(item); g_hash_table_insert(GLOBALS->h_cat, new_key, item); return TRUE; } /** * da_cat_append: * * append a category into the GHashTable * * Return value: TRUE if inserted * */ // used only to add cat/subcat from ui_category with the 2 inputs gboolean da_cat_append(Category *cat) { Category *existitem; DB( g_print("\nda_cat_append\n") ); if( !cat->fullname ) da_cat_build_fullname(cat); if( !cat->typename ) da_cat_build_typename(cat); existitem = da_cat_get_by_fullname( cat->fullname ); if( existitem == NULL ) { cat->key = da_cat_get_max_key() + 1; da_cat_insert(cat); return TRUE; } DB( g_print(" -> %s already exist\n", cat->name) ); return FALSE; } /* fullname i.e. car:refuel */ struct fullcatcontext { guint32 parent; gchar *name; }; static gboolean da_cat_fullname_grfunc(gpointer key, Category *item, struct fullcatcontext *ctx) { //DB( g_print("'%s' == '%s'\n", ctx->name, item->name) ); if( item->parent == ctx->parent ) { if( ctx->name && item->name ) if(!strcasecmp(ctx->name, item->name)) return TRUE; } return FALSE; } static Category *da_cat_get_by_name_find_internal(guint32 parent, gchar *name) { struct fullcatcontext ctx; ctx.parent = parent; ctx.name = name; DB( g_print("- searching %s %d '%s'\n", (parent == 0) ? "lv1cat" : "lv2cat", parent, name) ); return g_hash_table_find(GLOBALS->h_cat, (GHRFunc)da_cat_fullname_grfunc, &ctx); } static gchar **da_cat_get_by_fullname_split_clean(gchar *rawfullname, guint *outlen) { gchar **partstr = g_strsplit(rawfullname, ":", 2); guint len = g_strv_length(partstr); gboolean valid = TRUE; DB( g_print("- spliclean '%s' - %d parts\n", rawfullname, g_strv_length(partstr)) ); if( outlen != NULL ) *outlen = len; if(len >= 1) { g_strstrip(partstr[0]); if( strlen(partstr[0]) == 0 ) valid = FALSE; if(len == 2) { g_strstrip(partstr[1]); if( strlen(partstr[1]) == 0 ) valid = FALSE; } } if(valid == TRUE) return partstr; DB( g_print("- is invalid\n") ); g_strfreev(partstr); return NULL; } Category * da_cat_get_by_fullname(gchar *rawfullname) { gchar **partstr; Category *parent = NULL; Category *retval = NULL; guint len; DB( g_print("\nda_cat_get_by_fullname\n") ); if( rawfullname ) { if( (partstr = da_cat_get_by_fullname_split_clean(rawfullname, &len)) != NULL ) { if( len >= 1 ) { parent = da_cat_get_by_name_find_internal(0, partstr[0]); retval = parent; } if( len == 2 && parent != NULL ) { retval = da_cat_get_by_name_find_internal(parent->key, partstr[1]); } g_strfreev(partstr); } } return retval; } /** * da_cat_append_ifnew_by_fullname: * * append a category if it is new by fullname * * Return value: * */ Category * da_cat_append_ifnew_by_fullname(gchar *rawfullname) { gchar **partstr; Category *parent = NULL; Category *newcat = NULL; Category *retval = NULL; guint len; DB( g_print("\nda_cat_append_ifnew_by_fullname\n") ); if( rawfullname ) { if( (partstr = da_cat_get_by_fullname_split_clean(rawfullname, &len)) != NULL ) { if( len >= 1 ) { parent = da_cat_get_by_name_find_internal(0, partstr[0]); if( parent == NULL ) { parent = da_cat_malloc(); parent->key = da_cat_get_max_key() + 1; parent->name = g_strdup(partstr[0]); da_cat_insert(parent); } retval = parent; } /* if we have a subcategory - xxx:xxx */ if( len == 2 && parent != NULL ) { newcat = da_cat_get_by_name_find_internal(parent->key, partstr[1]); if( newcat == NULL ) { newcat = da_cat_malloc(); newcat->key = da_cat_get_max_key() + 1; newcat->parent = parent->key; newcat->name = g_strdup(partstr[1]); newcat->flags |= GF_SUB; //#1713413 take parent type into account if(parent->flags & GF_INCOME) newcat->flags |= GF_INCOME; da_cat_insert(newcat); } retval = newcat; } g_strfreev(partstr); } } return retval; } /** * da_cat_get: * * Get a category structure by key * * Return value: Category * or NULL if not found * */ Category * da_cat_get(guint32 key) { //DB( g_print("da_cat_get\n") ); return g_hash_table_lookup(GLOBALS->h_cat, &key); } gchar *da_cat_get_name(Category *item) { gchar *name = NULL; if(item != NULL) { name = item->key == 0 ? _("(no category)") : item->fullname; } return name; } void da_cat_consistency(Category *item) { //gboolean isIncome; if((item->flags & GF_SUB) && item->key > 0) { //check for existing parent if( da_cat_get(item->parent) == NULL ) { Category *parent = da_cat_append_ifnew_by_fullname ("orphaned"); item->parent = parent->key; da_cat_build_fullname(item); g_warning("category consistency: fixed missing parent %d", item->parent); } } // ensure type equal for categories and its children /* no since #1740368 if(!(item->flags & GF_SUB) && item->key > 0) { isIncome = (item->flags & GF_INCOME) ? TRUE : FALSE; if( category_change_type(item, isIncome) > 0 ) { g_warning("category consistency: fixed type for child"); GLOBALS->changes_count++; } }*/ if( item->name != NULL ) g_strstrip(item->name); else { if( da_cat_ensure_name(item) ) { da_cat_build_fullname(item); g_warning("category consistency: fixed null name"); GLOBALS->changes_count++; } } } //#2026641 void da_cat_anonymize(Category *item) { g_free(item->name); item->name = g_strdup_printf("category %d", item->key); da_cat_build_fullname(item); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if MYDEBUG static void da_cat_debug_list_ghfunc(gpointer key, gpointer value, gpointer user_data) { guint32 *id = key; Category *cat = value; DB( g_print(" %d :: %s (parent=%d\n", *id, cat->name, cat->parent) ); } static void da_cat_debug_list(void) { DB( g_print("\n** debug **\n") ); g_hash_table_foreach(GLOBALS->h_cat, da_cat_debug_list_ghfunc, NULL); DB( g_print("\n** end debug **\n") ); } #endif /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ gboolean category_key_budget_active(guint32 key) { Category *catitem = da_cat_get(key); gboolean retval = FALSE; if( catitem != NULL && catitem->flags & (GF_BUDGET|GF_FORCED) ) retval = TRUE; return retval; } gboolean category_key_unbudgeted(guint32 key) { Category *catitem = da_cat_get(key); if( catitem == NULL ) return FALSE; //#2101100 exclude subcat from unbudgeted if( PREFS->budg_unexclsub == TRUE ) { if( catitem->parent > 0 ) { catitem = da_cat_get(catitem->parent); if( catitem == NULL ) return FALSE; } } return (catitem->flags & (GF_BUDGET|GF_FORCED)) ? FALSE : TRUE; } guint32 category_report_id(guint32 key, gboolean subcat) { guint32 retval = 0; if(subcat == FALSE) { Category *catentry = da_cat_get(key); if(catentry) retval = (catentry->flags & GF_SUB) ? catentry->parent : catentry->key; } else { retval = key; } //DB( g_print("- cat '%s' reportid = %d\n", catentry->name, retval) ); return retval; } gint category_delete_unused(void) { GList *lcat, *list; gint count = 0; lcat = list = g_hash_table_get_values(GLOBALS->h_cat); while (list != NULL) { Category *entry = list->data; if(entry->nb_use_all <= 0 && entry->key > 0) { //da_cat_delete (entry->key); g_hash_table_remove(GLOBALS->h_cat, &entry->key); count++; } list = g_list_next(list); } g_list_free(lcat); return count; } static void category_fill_usage_count(guint32 kcat, gboolean txn) { Category *parent, *cat = da_cat_get (kcat); if(cat) { if(txn == TRUE) { cat->nb_use_txn++; cat->nb_use_txncat++; } cat->nb_use_all++; cat->nb_use_allcat++; if( cat->parent > 0 ) { parent = da_cat_get(cat->parent); if( parent ) { if(txn == TRUE) parent->nb_use_txn++; parent->nb_use_all++; } } } } void category_fill_usage(void) { GList *lcat; GList *lst_acc, *lnk_acc; GList *lnk_txn; GList *lpay, *lrul, *list; guint i, nbsplit; lcat = list = g_hash_table_get_values(GLOBALS->h_cat); while (list != NULL) { Category *entry = list->data; entry->nb_use_all = 0; entry->nb_use_allcat = 0; entry->nb_use_txn = 0; entry->nb_use_txncat = 0; list = g_list_next(list); } g_list_free(lcat); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; //#1689308 count split as well if( txn->flags & OF_SPLIT ) { nbsplit = da_splits_length(txn->splits); for(i=0;isplits, i); category_fill_usage_count(split->kcat, TRUE); } } else category_fill_usage_count(txn->kcat, TRUE); lnk_txn = g_list_next(lnk_txn); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); lpay = list = g_hash_table_get_values(GLOBALS->h_pay); while (list != NULL) { Payee *entry = list->data; category_fill_usage_count(entry->kcat, FALSE); list = g_list_next(list); } g_list_free(lpay); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; //#1689308 count split as well if( entry->flags & OF_SPLIT ) { nbsplit = da_splits_length(entry->splits); for(i=0;isplits, i); category_fill_usage_count(split->kcat, FALSE); } } else category_fill_usage_count(entry->kcat, FALSE); list = g_list_next(list); } lrul = list = g_hash_table_get_values(GLOBALS->h_rul); while (list != NULL) { Assign *entry = list->data; category_fill_usage_count(entry->kcat, FALSE); list = g_list_next(list); } g_list_free(lrul); } //#1875070 if srckey is a cat: any subcat should match as well static gboolean category_move_match(guint32 eltkey, guint32 srckey, gboolean dosubcat) { Category *cat = da_cat_get(eltkey); if(cat) { if(!dosubcat) { if(cat->key == srckey) return TRUE; } else { if(cat->key == srckey || cat->parent == srckey) return TRUE; } } return FALSE; } void category_move(guint32 srckey, guint32 newkey, gboolean dosubcat) { GList *lst_acc, *lnk_acc; GList *lnk_txn, *lpay; GList *lrul, *list; guint i, nbsplit; lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txnitem = lnk_txn->data; //#1875070 //if(txn->kcat == srckey) if( category_move_match(txnitem->kcat, srckey, dosubcat) ) { txnitem->kcat = newkey; txnitem->dspflags |= FLAG_TMP_EDITED; } // move split category #1340142 nbsplit = da_splits_length(txnitem->splits); for(i=0;isplits, i); //#1875070 //if( split->kcat == srckey ) if( category_move_match(split->kcat, srckey, dosubcat) ) { split->kcat = newkey; txnitem->dspflags |= FLAG_TMP_EDITED; } } lnk_txn = g_list_next(lnk_txn); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *arcitem = list->data; //#1875070 //if(entry->kcat == srckey) if( category_move_match(arcitem->kcat, srckey, dosubcat) ) { arcitem->kcat = newkey; } //#2081379 handle split as well nbsplit = da_splits_length(arcitem->splits); for(i=0;isplits, i); //#1875070 //if( split->kcat == srckey ) if( category_move_match(split->kcat, srckey, dosubcat) ) { split->kcat = newkey; arcitem->dspflags |= FLAG_TMP_EDITED; } } list = g_list_next(list); } //fix 5.4.2 missed payee here lpay = list = g_hash_table_get_values(GLOBALS->h_pay); while (list != NULL) { Payee *payitem = list->data; if( category_move_match(payitem->kcat, srckey, dosubcat) ) { payitem->kcat = newkey; } list = g_list_next(list); } g_list_free(lpay); lrul = list = g_hash_table_get_values(GLOBALS->h_rul); while (list != NULL) { Assign *asgitem = list->data; //#1875070 //if(entry->kcat == srckey) if( category_move_match(asgitem->kcat, srckey, dosubcat) ) { asgitem->kcat = newkey; } list = g_list_next(list); } g_list_free(lrul); } gboolean category_rename(Category *item, const gchar *newname) { Category *parent, *existitem; gchar *fullname = NULL; gchar *stripname; gboolean retval = FALSE; DB( g_print("\n(category) rename\n") ); stripname = g_strdup(newname); g_strstrip(stripname); if( item->parent == 0) fullname = g_strdup(stripname); else { parent = da_cat_get(item->parent); if( parent ) { fullname = g_strdup_printf("%s:%s", parent->name, stripname); } } DB( g_print(" - search: %s\n", fullname) ); existitem = da_cat_get_by_fullname( fullname ); if( existitem != NULL && existitem->key != item->key) { DB( g_print("- error, same name already exist with other key %d <> %d\n", existitem->key, item->key) ); } else { DB( g_print("- renaming\n") ); da_cat_rename (item, stripname); retval = TRUE; } g_free(fullname); g_free(stripname); return retval; } static gint category_glist_name_compare_func(Category *c1, Category *c2) { gint retval = 0; if( c1 != NULL && c2 != NULL ) { retval = hb_string_utf8_compare(c1->fullname, c2->fullname); } return retval; } static gint category_glist_key_compare_func(Category *a, Category *b) { gint ka, kb, retval = 0; if(a->parent == 0 && b->parent == a->key) retval = -1; else if(b->parent == 0 && a->parent == b->key) retval = 1; else { ka = a->parent != 0 ? a->parent : a->key; kb = b->parent != 0 ? b->parent : b->key; retval = ka - kb; } #if MYDEBUG == 1 gchar *str; if(retval < 0) str = "a < b"; else if(retval ==0) str = "a = b"; else if(retval > 0) str = "a > b"; DB( g_print("compare a=%2d:%2d to b=%2d:%2d :: %d [%s]\n", a->key, a->parent, b->key, b->parent, retval, str ) ); #endif return retval; } GList * category_glist_sorted(gint column) { GList *list = g_hash_table_get_values(GLOBALS->h_cat); switch(column) { case HB_GLIST_SORT_NAME: return g_list_sort(list, (GCompareFunc)category_glist_name_compare_func); break; //case HB_GLIST_SORT_KEY: default: return g_list_sort(list, (GCompareFunc)category_glist_key_compare_func); break; } } gboolean category_load_csv(gchar *filename, gchar **error) { gboolean retval; GIOChannel *io; gchar *tmpstr; gint io_stat; gchar **str_array; gchar *lastcatname = NULL; gchar *fullcatname; GError *err = NULL; Category *item; gboolean isIncome; const gchar *encoding; encoding = homebank_file_getencoding(filename); DB( g_print(" -> encoding should be %s\n", encoding) ); retval = TRUE; *error = NULL; io = g_io_channel_new_file(filename, "r", NULL); if(io != NULL) { if( encoding != NULL ) { g_io_channel_set_encoding(io, encoding, NULL); } for(;;) { if( *error != NULL ) break; io_stat = g_io_channel_read_line(io, &tmpstr, NULL, NULL, &err); DB( g_print(" + iostat %d\n", io_stat) ); if( io_stat == G_IO_STATUS_ERROR ) { DB (g_print(" + ERROR %s\n",err->message)); break; } if( io_stat == G_IO_STATUS_EOF) break; if( io_stat == G_IO_STATUS_NORMAL) { if( tmpstr != NULL ) { DB( g_print(" + strip %s\n", tmpstr) ); hb_string_strip_crlf(tmpstr); DB( g_print(" + split\n") ); str_array = g_strsplit (tmpstr, ";", 3); // type; sign; name if( g_strv_length (str_array) != 3 ) { *error = _("invalid CSV format"); retval = FALSE; DB( g_print(" + error %s\n", *error) ); } else { DB( g_print(" + read %s : %s : %s\n", str_array[0], str_array[1], str_array[2]) ); fullcatname = NULL; if( g_str_has_prefix(str_array[0], "1") ) { fullcatname = g_strdup(str_array[2]); g_free(lastcatname); lastcatname = g_strdup(str_array[2]); } else if( g_str_has_prefix(str_array[0], "2") ) { fullcatname = g_strdup_printf("%s:%s", lastcatname, str_array[2]); } item = da_cat_append_ifnew_by_fullname(fullcatname); DB( g_print(" + item %p\n", item) ); if( item != NULL) { isIncome = g_str_has_prefix(str_array[1], "+") ? TRUE : FALSE; category_change_type(item, isIncome, FALSE); } g_free(fullcatname); g_strfreev (str_array); } } } g_free(tmpstr); } g_io_channel_unref (io); } g_free(lastcatname); return retval; } gboolean category_save_csv(gchar *filename, gchar **error) { gboolean retval = FALSE; GIOChannel *io; gchar *outstr; GList *lcat, *list; io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { lcat = list = category_glist_sorted(HB_GLIST_SORT_NAME); while (list != NULL) { Category *item = list->data; if(item->key != 0) { gchar lvel, type; //#1740368 changes here type = category_get_type_char(item); lvel = ( item->parent == 0 ) ? '1' : '2'; outstr = g_strdup_printf("%c;%c;%s\n", lvel, type, item->name); DB( g_print(" + export %s\n", outstr) ); g_io_channel_write_chars(io, outstr, -1, NULL, NULL); g_free(outstr); } list = g_list_next(list); } retval = TRUE; g_list_free(lcat); g_io_channel_unref (io); } return retval; } // only used to warn in txn dialog gint category_type_get(Category *item) { if( (item->flags & (GF_INCOME)) ) return 1; return -1; } gint category_root_type_get(guint32 key) { Category *item; if(key == 0) return 0; item = da_cat_get(key); if(item == NULL) return 0; if(item->parent > 0) item = da_cat_get(item->parent); return category_type_get(item); } gchar category_get_type_char(Category *item) { return (item->flags & GF_INCOME) ? '+' : '-'; } static gint category_change_type_eval(Category *item, gboolean isIncome) { gboolean flaginc; gint retval = 0; flaginc = (item->flags & (GF_INCOME)) ? TRUE : FALSE; if( flaginc != isIncome ) retval = 1; DB( g_print(" change:%d\n", retval) ); return retval; } gint category_change_type(Category *item, gboolean isIncome, gboolean doChild) { GList *lcat, *list; gint changes = 0; DB( g_print("\n[category] category_change_type\n") ); DB( g_print(" set '%s' inc=%d dochild=%d\n", item->fullname, isIncome, doChild) ); //flag reset & set income changes += category_change_type_eval(item, isIncome); item->flags &= ~(GF_INCOME); if(isIncome == TRUE) item->flags |= GF_INCOME; //if item is a subcat we override by its parent for below child processing if( item->parent != 0 ) item = da_cat_get(item->parent); if( item && !(item->flags & GF_SUB) ) { item->flags &= ~(GF_MIXED); lcat = list = g_hash_table_get_values(GLOBALS->h_cat); while (list != NULL) { Category *child = list->data; if(child->parent == item->key) { // propagate to child if( doChild ) { changes += category_change_type_eval(child, isIncome); DB( g_print(" set child '%s' %d\n", child->fullname, isIncome) ); child->flags &= ~(GF_INCOME); //delete flag if(isIncome == TRUE) child->flags |= GF_INCOME; } da_cat_build_typename(child); // set mixed if child has != sign if((item->flags & GF_INCOME) != (child->flags & GF_INCOME) ) item->flags |= GF_MIXED; } list = g_list_next(list); } g_list_free(lcat); } da_cat_build_typename(item); return changes; } /** * category_find_preset: * * find a user language compatible file for category preset * * Return value: a pathname to the file or NULL * */ gchar * category_find_preset(gchar **lang) { gchar **langs; gchar *filename; gboolean exists; guint i; DB( g_print("** category_find_preset **\n") ); langs = (gchar **)g_get_language_names (); DB( g_print(" -> %d languages detected\n", g_strv_length(langs)) ); for(i=0;i %d '%s'\n", i, langs[i]) ); filename = g_strdup_printf("hb-categories-%s.csv", langs[i]); gchar *pathfilename = g_build_filename(homebank_app_get_datas_dir(), filename, NULL); exists = g_file_test(pathfilename, G_FILE_TEST_EXISTS); DB( g_print(" -> '%s' exists=%d\n", pathfilename, exists) ); if(exists) { g_free(filename); *lang = langs[i]; return pathfilename; } g_free(filename); g_free(pathfilename); } DB( g_print("return NULL\n") ); *lang = NULL; return NULL; } homebank-5.9.1/src/hb-transaction.c0000644000175000017500000011536515006222726012657 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-transaction.h" #include "hb-tag.h" #include "hb-split.h" //TODO: move this #include "ui-dialogs.h" /****************************************************************************/ /* Debug macro */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void da_transaction_clean(Transaction *item) { if(item != NULL) { if(item->memo != NULL) { g_free(item->memo); item->memo = NULL; } if(item->number != NULL) { g_free(item->number); item->number = NULL; } if(item->tags != NULL) { g_free(item->tags); item->tags = NULL; } if(item->splits != NULL) { da_split_destroy(item->splits); item->splits = NULL; item->flags &= ~(OF_SPLIT); //Flag that Splits are cleared } } } void da_transaction_free(Transaction *item) { if(item != NULL) { da_transaction_clean(item); g_free(item); } } Transaction * da_transaction_malloc(void) { return g_malloc0(sizeof(Transaction)); } Transaction *da_transaction_init(Transaction *txn, guint32 kacc) { guint32 date; DB( g_print("da_transaction_init\n") ); //#1860309 keep the date when init for add/inherit date = txn->date; da_transaction_clean(txn); memset(txn, 0, sizeof(Transaction)); txn->date = date; //fix: 318733 / 1335285 if( PREFS->heritdate == FALSE ) txn->date = GLOBALS->today; txn->kacc = kacc; da_transaction_set_default_template(txn); return txn; } Transaction *da_transaction_init_from_template(Transaction *txn, Archive *arc) { guint32 date; DB( g_print("da_transaction_init_from_template\n") ); //#5.4.2 date must remains when we set a template, as template has no date date = txn->date; da_transaction_clean(txn); txn->date = date; txn->amount = arc->amount; //#1258344 keep the current account if tpl is empty if(arc->kacc) txn->kacc = arc->kacc; txn->paymode = arc->paymode; txn->flags = arc->flags; txn->status = arc->status; txn->kpay = arc->kpay; txn->kcat = arc->kcat; txn->kxferacc = arc->kxferacc; //#1673260 txn->xferamount = arc->xferamount; if(arc->memo != NULL) txn->memo = g_strdup(arc->memo); if(arc->number != NULL) txn->number = g_strdup(arc->number); txn->tags = tags_clone(arc->tags); txn->splits = da_splits_clone(arc->splits); if( da_splits_length (txn->splits) > 0 ) txn->flags |= OF_SPLIT; //Flag that Splits are active return txn; } Transaction *da_transaction_set_default_template(Transaction *txn) { Account *acc; Archive *arc; DB( g_print("da_transaction_set_default_template\n") ); acc = da_acc_get(txn->kacc); if(acc != NULL && acc->karc > 0) { arc = da_archive_get(acc->karc); if( arc ) { DB( g_print(" - init with default template\n") ); da_transaction_init_from_template(txn, arc); } } return txn; } Transaction *da_transaction_clone(Transaction *src_item) { Transaction *new_item = g_memdup(src_item, sizeof(Transaction)); DB( g_print("da_transaction_clone\n") ); if(new_item) { //duplicate the string new_item->memo = g_strdup(src_item->memo); new_item->number = g_strdup(src_item->number); //duplicate tags/splits //no g_free here to avoid free the src tags (memdup copied the ptr) new_item->tags = tags_clone(src_item->tags); new_item->splits = da_splits_clone(src_item->splits); if( da_splits_length (new_item->splits) > 0 ) new_item->flags |= OF_SPLIT; //Flag that Splits are active } return new_item; } GList * da_transaction_new(void) { return NULL; } guint da_transaction_length(void) { GList *lst_acc, *lnk_acc; guint count = 0; lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; count += g_queue_get_length (acc->txn_queue); lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); return count; } static void da_transaction_queue_free_ghfunc(Transaction *item, gpointer data) { da_transaction_free (item); } void da_transaction_destroy(void) { GList *lacc, *list; lacc = g_hash_table_get_values(GLOBALS->h_acc); list = g_list_first(lacc); while (list != NULL) { Account *acc = list->data; g_queue_foreach(acc->txn_queue, (GFunc)da_transaction_queue_free_ghfunc, NULL); //txn queue is freed into account list = g_list_next(list); } g_list_free(lacc); } // used from ledger only static gint da_transaction_compare_datafunc(Transaction *a, Transaction *b, gpointer data) { gint retval = (gint)a->date - b->date; if(!retval) //#1749457 retval = a->pos - b->pos; return retval; } void da_transaction_queue_sort(GQueue *queue) { g_queue_sort(queue, (GCompareDataFunc)da_transaction_compare_datafunc, NULL); } static gint da_transaction_compare_func(Transaction *a, Transaction *b) { return ((gint)a->date - b->date); } GList *da_transaction_sort(GList *list) { return( g_list_sort(list, (GCompareFunc)da_transaction_compare_func)); } gboolean da_transaction_insert_memo(gchar *memo, guint32 date) { if( date < (GLOBALS->today - PREFS->txn_memoacp_days) ) return FALSE; if( memo != NULL ) { if( g_hash_table_lookup(GLOBALS->h_memo, memo) == NULL ) { g_hash_table_insert(GLOBALS->h_memo, g_strdup(memo), NULL); return TRUE; } } return FALSE; } gboolean da_transaction_insert_memos(Transaction *txn) { gboolean retval = FALSE; if( txn->date < (GLOBALS->today - PREFS->txn_memoacp_days) ) return FALSE; da_transaction_insert_memo(txn->memo, txn->date); if( txn->splits != NULL ) { for(guint i=0;isplits->len;i++) { Split *split = g_ptr_array_index(txn->splits, i); if( split != NULL ) { da_transaction_insert_memo(split->memo, txn->date); } } } return retval; } gboolean da_transaction_insert_sorted(Transaction *newitem) { Account *acc; GList *lnk_txn; acc = da_acc_get(newitem->kacc); if(!acc) return FALSE; lnk_txn = g_queue_peek_tail_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *item = lnk_txn->data; if(item->date <= newitem->date) break; lnk_txn = g_list_previous(lnk_txn); } // we're at insert point, insert after txn g_queue_insert_after(acc->txn_queue, lnk_txn, newitem); if(PREFS->txn_memoacp == TRUE) { DB( g_print(" add memo to completion\n") ); da_transaction_insert_memos(newitem); } return TRUE; } // nota: this is called only when loading xml file gboolean da_transaction_prepend(Transaction *item) { Account *acc; acc = da_acc_get(item->kacc); //#1661279 if(!acc) return FALSE; item->kcur = acc->kcur; g_queue_push_tail(acc->txn_queue, item); return TRUE; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static guint32 da_transaction_get_max_kxfer(void) { GList *lst_acc, *lnk_acc; GList *list; guint32 max_key = 0; DB( g_print("da_transaction_get_max_kxfer\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *item = list->data; if( item->flags & OF_INTXFER ) { max_key = MAX(max_key, item->kxfer); } list = g_list_next(list); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); DB( g_print(" max_key : %d \n", max_key) ); return max_key; } static void da_transaction_goto_orphan(Transaction *txn) { const gchar *oatn = "orphaned transactions"; Account *ori_acc, *acc; gboolean found; DB( g_print("\n[transaction] goto orphan\n") ); g_warning("txn consistency: moving to orphan %d '%s' %.2f", txn->date, txn->memo, txn->amount); acc = da_acc_get_by_name((gchar *)oatn); if(acc == NULL) { acc = da_acc_malloc(); acc->name = g_strdup(oatn); da_acc_append(acc); DB( g_print(" - created orphan acc %d\n", acc->key) ); } ori_acc = da_acc_get(txn->kacc); if( ori_acc ) { found = g_queue_remove(ori_acc->txn_queue, txn); DB( g_print(" - found in origin ? %d\n", found) ); if(found) { txn->kacc = acc->key; da_transaction_insert_sorted (txn); DB( g_print("moved txn to %d\n", txn->kacc) ); } } } void da_transaction_set_flag(Transaction *item) { DB( g_print("\n[transaction] set flag\n") ); DB( g_print(" amnt=%f => %f\n", item->amount, item->xferamount) ); DB( g_print(" kxfer=%d\n", item->kxfer) ); DB( g_print(" in :: of_inc is %s\n", item->flags & OF_INCOME ? "set" : "unset" ) ) ; //#2002348 no change if zero if( item->amount != 0.0 ) { item->flags &= ~(OF_INCOME); if( item->amount > 0) item->flags |= (OF_INCOME); } DB( g_print(" out :: of_inc is %s\n", item->flags & OF_INCOME ? "set" : "unset" ) ); } void da_transaction_consistency(Transaction *item) { Account *acc; Category *cat; Payee *pay; guint nbsplit; DB( g_print("\n[transaction] consistency\n") ); DB( g_print(" %d %.2f %s\n", item->date, item->amount, item->memo) ); // ensure date is between range item->date = CLAMP(item->date, HB_MINDATE, HB_MAXDATE); // check account exists acc = da_acc_get(item->kacc); if(acc == NULL) { g_warning("txn consistency: fixed invalid acc %d", item->kacc); da_transaction_goto_orphan(item); GLOBALS->changes_count++; } // check category exists cat = da_cat_get(item->kcat); if(cat == NULL) { g_warning("txn consistency: fixed invalid cat %d", item->kcat); item->kcat = 0; GLOBALS->changes_count++; } //#1340142 check split category if( item->splits != NULL ) { nbsplit = da_splits_consistency(item->splits); //# 1416624 empty category when split if(nbsplit > 0 && item->kcat > 0) { g_warning("txn consistency: fixed invalid cat %d for split txn", item->kcat); item->kcat = 0; GLOBALS->changes_count++; } } // check payee exists pay = da_pay_get(item->kpay); if(pay == NULL) { g_warning("txn consistency: fixed invalid pay %d", item->kpay); item->kpay = 0; GLOBALS->changes_count++; } // 5.3: fix split on intxfer if( ((item->flags & OF_INTXFER) || (item->paymode == OLDPAYMODE_INTXFER)) && (item->splits != NULL) ) { g_warning("txn consistency: fixed invalid split on xfer"); item->flags &= ~(OF_INTXFER); item->paymode = PAYMODE_XFER; item->kxfer = 0; item->kxferacc = 0; } // reset dst acc for non xfer transaction if( !((item->flags & OF_INTXFER) || (item->paymode == OLDPAYMODE_INTXFER)) ) { if( (item->kxfer != 0) || (item->kxferacc != 0) ) { g_warning("txn consistency: fixed invalid xfer"); item->kxfer = 0; item->kxferacc = 0; } } // intxfer: check dst account exists if( (item->flags & OF_INTXFER) || (item->paymode == OLDPAYMODE_INTXFER) ) { gint tak = item->kxferacc; item->kxferacc = ABS(tak); //I crossed negative here one day acc = da_acc_get(item->kxferacc); if(acc == NULL) { g_warning("txn consistency: fixed invalid dst_acc %d", item->kxferacc); da_transaction_goto_orphan(item); item->kxfer = 0; item->paymode = PAYMODE_XFER; GLOBALS->changes_count++; } } //#1628678 tags for internal xfer should be checked as well //#1787826 intxfer should not have split //#1295877 ensure income flag is correctly set da_transaction_set_flag(item); //#1308745 ensure remind flag unset if reconciled //useless since 5.0 //if( item->flags & OF_VALID ) // item->flags &= ~(OF_REMIND); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* new transfer functions */ Transaction *transaction_xfer_child_new_from_txn(Transaction *stxn) { Transaction *child; Account *acc; child = da_transaction_clone(stxn); //#1673260 deal with multi currency amount if( !(stxn->flags & OF_ADVXFER) ) { child->amount = -stxn->amount; //TODO:maybe //child->xferamount = 0; } else { child->amount = stxn->xferamount; child->xferamount = stxn->amount; } da_transaction_set_flag(child); // set income/xpense //#1268026 #1690555 #2067855 if( PREFS->xfer_syncstat == FALSE ) { if( (child->status == TXN_STATUS_CLEARED) || (child->status == TXN_STATUS_RECONCILED) ) child->status = TXN_STATUS_NONE; //child->flags &= ~(OF_VALID); // delete reconcile state } child->kacc = child->kxferacc; child->kxferacc = stxn->kacc; acc = da_acc_get( child->kacc ); if( acc != NULL ) child->kcur = acc->kcur; return child; } static void transaction_xfer_create_child(Transaction *stxn) { Transaction *child; Account *acc; DB( g_print("\n[transaction] xfer_create_child\n") ); if( stxn->kxferacc > 0 ) { child = transaction_xfer_child_new_from_txn(stxn); stxn->flags |= (OF_INTXFER); child->flags |= (OF_INTXFER); stxn->dspflags |= (FLAG_TMP_EDITED); child->dspflags |= (FLAG_TMP_ADDED); /* update acc flags */ acc = da_acc_get( child->kacc ); if(acc != NULL) { acc->dspflags |= FLAG_ACC_TMP_ADDED; //strong link guint maxkey = da_transaction_get_max_kxfer(); DB( g_print(" + maxkey is %d\n", maxkey) ); stxn->kxfer = maxkey+1; child->kxfer = maxkey+1; DB( g_print(" + strong link to %d\n", stxn->kxfer) ); DB( g_print(" + add transfer, %p to acc %d\n", child, acc->key) ); da_transaction_insert_sorted(child); account_balances_add (child); } } } //#1708974 enable different date //#1987975 only suggest opposite sign amount txn static gboolean transaction_xfer_child_might(Transaction *stxn, Transaction *dtxn, guchar *matchrate) { gboolean retval = FALSE; gint32 daygap = PREFS->xfer_daygap; gint rate = 100; DB( g_print("\n[transaction] xfer_child_might\n") ); //paranoia check if ( (stxn == dtxn) || (stxn->kacc == dtxn->kacc) ) return FALSE; DB( g_print(" src: %d %d %d %f %d\n", stxn->kcur, stxn->date, stxn->kacc, stxn->amount, stxn->kxfer ) ); DB( g_print(" dst: %d %d %d %f %d\n", dtxn->kcur, dtxn->date, dtxn->kacc, dtxn->amount, dtxn->kxfer ) ); //keep only normal dtxn if( dtxn->kxfer != 0 ) return FALSE; //#1708974 date allow +/- daygap if( (dtxn->date > (stxn->date + daygap)) && (dtxn->date > (stxn->date - daygap)) ) return FALSE; daygap = (stxn->date - dtxn->date); rate -= ABS(daygap); if( stxn->kcur == dtxn->kcur ) { //#1987975 only suggest opposite sign amount txn if( stxn->amount == -dtxn->amount ) { DB( g_print(" >found same curr + same amt\n") ); retval = TRUE; } } //#2047647 cross currency target txn proposal, with 10% gap else { gdouble minamt = stxn->xferamount * 0.9; gdouble maxamt = stxn->xferamount * 1.1; DB( g_print(" >check %.2f [%.2f...%.2f]\n", dtxn->amount, minamt, maxamt) ); if( hb_amount_between(dtxn->amount, minamt, maxamt) == TRUE) { rate -= ABS(dtxn->amount - stxn->xferamount); DB( g_print(" >found !=curr\n") ); retval = TRUE; } } //other rate if( stxn->kpay != dtxn->kpay) rate -= 1; if( stxn->kcat != dtxn->kcat) rate -= 1; if( hb_string_compare(stxn->memo, dtxn->memo) != 0 ) rate -= 1; //TODO: maybe add info & tag here rate = CLAMP(rate, 0, 100); *matchrate = rate; DB( g_print(" >return %d\n\n", retval) ); return retval; } static GList *transaction_xfer_child_might_list_get(Transaction *ope, guint32 kdstacc) { GList *lst_acc, *lnk_acc; GList *list, *matchlist = NULL; DB( g_print("\n[transaction] xfer_child_might_list_get\n") ); DB( g_print(" - kdstacc:%d\n", kdstacc) ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; if( !(acc->flags & AF_CLOSED) && (acc->key != ope->kacc) && ( (acc->key == kdstacc) || kdstacc == 0 ) ) { list = g_queue_peek_tail_link(acc->txn_queue); while (list != NULL) { Transaction *item = list->data; // no need to go higher than src txn date - daygap if(item->date < (ope->date - PREFS->xfer_daygap)) { DB( g_print(" break date: %d < %d\n", item->date , (ope->date - PREFS->xfer_daygap)) ); break; } if( transaction_xfer_child_might(ope, item, &item->matchrate) == TRUE ) { DB( g_print(" - match %3d: %d %s %f %d=>%d\n", item->matchrate, item->date, item->memo, item->amount, item->kacc, item->kxferacc) ); matchlist = g_list_append(matchlist, item); } list = g_list_previous(list); } } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); return matchlist; } gint transaction_xfer_search_or_add_child(GtkWindow *parent, gboolean addmode, Transaction *ope, guint32 kdstacc) { GList *matchlist; gint count; gint result = GTK_RESPONSE_NONE; Transaction *child = NULL; DB( g_print("\n[transaction] xfer_search_or_add_child\n") ); matchlist = transaction_xfer_child_might_list_get(ope, kdstacc); count = g_list_length(matchlist); DB( g_print(" matchlist : %d match found\n", count) ); //#2044601 user pref always popup in addmode //prior if count=0 we were inserting without asking user if( count == 0 ) { //we should create the child DB( g_print(" force create new\n") ); result = HB_RESPONSE_CREATE_NEW; } //#2044601 addmode=1 means we add from main/ledger window DB( g_print(" addmode : %d\n", addmode) ); DB( g_print(" showdialog: %d\n", PREFS->xfer_showdialog) ); if( (result == GTK_RESPONSE_NONE) || (addmode == TRUE && PREFS->xfer_showdialog == TRUE ) ) { DB( g_print(" popup action txn target\n") ); result = ui_dialog_transaction_xfer_select_child(parent, ope, matchlist, &child); } switch( result ) { case HB_RESPONSE_SELECTION: //#1827193 in case child is null... DB( g_print(" link to child %p\n", child) ); if( child != NULL ) transaction_xfer_change_to_child(ope, child); break; case HB_RESPONSE_CREATE_NEW: DB( g_print(" create child\n") ); transaction_xfer_create_child(ope); break; //GTK_RESPONSE_CANCEL default: //#2044601 addmode no action if user cancel if( addmode == FALSE ) { DB( g_print(" change normal txn\n") ); transaction_xfer_change_to_normal(ope); da_transaction_set_flag(ope); } ope->dspflags &= ~(FLAG_TMP_EDITED); break; } g_list_free(matchlist); DB( g_print(" > return %d\n", result) ); return result; } Transaction *transaction_xfer_child_strong_get(Transaction *src) { Account *dstacc; GList *list; DB( g_print("\n[transaction] xfer_child_strong_get\n") ); dstacc = da_acc_get(src->kxferacc); if( !dstacc || src->kxfer <= 0 ) return NULL; DB( g_print(" - search: %d %s %f %d=>%d - %d\n", src->date, src->memo, src->amount, src->kacc, src->kxferacc, src->kxfer) ); list = g_queue_peek_tail_link(dstacc->txn_queue); while (list != NULL) { Transaction *item = list->data; //#1252230 //if( item->paymode == PAYMODE_INTXFER // && item->kacc == src->kxferacc if( (item->flags & OF_INTXFER) && (item->kxfer == src->kxfer) && (item != src) ) { DB( g_print(" - found : %d %s %f %d=>%d - %d\n", item->date, item->memo, item->amount, item->kacc, item->kxferacc, src->kxfer) ); return item; } list = g_list_previous(list); } DB( g_print(" - not found...\n") ); return NULL; } void transaction_xfer_change_to_normal(Transaction *ope) { DB( g_print("\n[transaction] xfer_change_to_normal\n") ); //remove xfer flags ope->flags &= ~(OF_INTXFER|OF_ADVXFER); ope->kxfer = 0; ope->kxferacc = 0; ope->xferamount = 0; } //TODO: should be static but used in hb_import void transaction_xfer_change_to_child(Transaction *stxn, Transaction *child) { Account *dstacc; DB( g_print("\n[transaction] xfer_change_to_child\n") ); stxn->flags |= (OF_INTXFER); child->flags |= (OF_INTXFER); stxn->dspflags |= (FLAG_TMP_EDITED); child->dspflags |= (FLAG_TMP_EDITED); /* update acc flags */ dstacc = da_acc_get( child->kacc); if(dstacc != NULL) dstacc->dspflags |= FLAG_ACC_TMP_EDITED; //strong link guint maxkey = da_transaction_get_max_kxfer(); stxn->kxfer = maxkey+1; child->kxfer = maxkey+1; stxn->kxferacc = child->kacc; child->kxferacc = stxn->kacc; //#1673260 enable different currency if(stxn->kcur == child->kcur) { DB( g_print(" sync amount (==kcur)\n") ); child->amount = -stxn->amount; } else { DB( g_print(" sync amount (!=kcur)\n") ); //we keep the original child amount //child->amount = stxn->xferamount; child->xferamount = stxn->amount; child->flags |= (OF_ADVXFER); } } void transaction_xfer_child_sync(Transaction *s_txn, Transaction *child) { Account *acc; DB( g_print("\n[transaction] xfer_child_sync\n") ); if( child == NULL ) { DB( g_print(" - no child found\n") ); return; } DB( g_print(" - found do sync\n") ); /* update acc flags */ acc = da_acc_get( child->kacc); if(acc != NULL) acc->dspflags |= FLAG_ACC_TMP_EDITED; account_balances_sub (child); //# 1708974 enable different date //# 2065633 with option if( PREFS->xfer_syncdate == TRUE ) child->date = s_txn->date; //#2019193 option the sync xfer status if( PREFS->xfer_syncstat == TRUE ) { child->status = s_txn->status; child->dspflags |= FLAG_TMP_EDITED; } //#1673260 enable different currency if( !(child->flags & OF_ADVXFER) ) { DB( g_print(" sync amount (==kcur)\n") ); child->amount = -s_txn->amount; } else { DB( g_print(" sync amount (!=kcur)\n") ); child->amount = s_txn->xferamount; child->xferamount = s_txn->amount; } child->dspflags |= FLAG_TMP_EDITED; //#1295877 flag update to avoid bad column display child->flags &= ~(OF_INCOME); if( child->amount > 0 ) child->flags |= (OF_INCOME); // ensure to have INC to good display payee direction else if( child->amount == 0 ) { if( s_txn->amount < 0 ) child->flags |= (OF_INCOME); } child->kpay = s_txn->kpay; child->kcat = s_txn->kcat; if(child->memo) g_free(child->memo); child->memo = g_strdup(s_txn->memo); if(child->number) g_free(child->number); child->number = g_strdup(s_txn->number); account_balances_add (child); //#1252230 sync account also //#1663789 idem after 5.1 //source changed: update child key (move of s_txn is done in external_edit) if( s_txn->kacc != child->kxferacc ) { child->kxferacc = s_txn->kacc; } //dest changed: move child & update child key if( s_txn->kxferacc != child->kacc ) { transaction_acc_move(child, child->kacc, s_txn->kxferacc); } //synchronise tags since 5.1 g_free(child->tags); child->tags = tags_clone (s_txn->tags); } void transaction_xfer_remove_child(Transaction *src) { Transaction *dst; DB( g_print("\n[transaction] xfer_remove_child\n") ); dst = transaction_xfer_child_strong_get( src ); if( dst != NULL ) { Account *acc = da_acc_get(dst->kacc); if( acc != NULL ) { DB( g_print("deleting...") ); account_balances_sub(dst); g_queue_remove(acc->txn_queue, dst); //#1419304 we keep the deleted txn to a trash stack //da_transaction_free (dst); //g_trash_stack_push(&GLOBALS->txn_stk, dst); GLOBALS->deltxn_list = g_slist_prepend(GLOBALS->deltxn_list, dst); //#1691992 acc->dspflags |= FLAG_ACC_TMP_EDITED; } } src->kxfer = 0; src->kxferacc = 0; } // still useful for upgrade from < file v0.6 (hb v4.4 kxfer) Transaction *transaction_old_get_child_transfer(Transaction *src) { Account *acc; GList *list; DB( g_print("\n[transaction] get_child_transfer\n") ); //DB( g_print(" search: %d %s %f %d=>%d\n", src->date, src->memo, src->amount, src->account, src->kxferacc) ); acc = da_acc_get(src->kxferacc); if( acc != NULL ) { list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *item = list->data; // no need to go higher than src txn date if(item->date > src->date) break; // keep this one for backward compatibility if( item->paymode == OLDPAYMODE_INTXFER) { if( src->date == item->date && src->kacc == item->kxferacc && src->kxferacc == item->kacc && ABS(src->amount) == ABS(item->amount) ) { //DB( g_print(" found : %d %s %f %d=>%d\n", item->date, item->memo, item->amount, item->account, item->kxferacc) ); return item; } } list = g_list_next(list); } } DB( g_print(" not found...\n") ); return NULL; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ gchar *transaction_get_status_string(Transaction *txn) { gchar *retval = ""; if(txn->status == TXN_STATUS_CLEARED) retval = "c"; else if(txn->status == TXN_STATUS_RECONCILED) retval = "R"; else //#2051307 5.7.4 allow remind //if(txn->status == TXN_STATUS_REMIND) if(txn->flags & OF_REMIND) retval = "?"; else if(txn->status == TXN_STATUS_VOID) retval = "v"; return retval; } gint transaction_get_type(Transaction *txn) { //TRANSFER has priority on INCOME if(txn->flags & OF_INTXFER) return TXN_TYPE_INTXFER; else if(txn->flags & OF_INCOME) return TXN_TYPE_INCOME; return TXN_TYPE_EXPENSE; } gboolean transaction_is_balanceable(Transaction *ope) { //#1875100/#2061227 if( ope->flags & (OF_ISIMPORT|OF_ISPAST) ) return FALSE; //#1812598 //if( (ope->status == TXN_STATUS_REMIND) && (PREFS->includeremind == FALSE) ) if( (ope->flags & OF_REMIND) && (PREFS->includeremind == FALSE) ) return FALSE; if( (ope->status == TXN_STATUS_VOID) ) return FALSE; return TRUE; } void transaction_remove(Transaction *ope) { Account *acc; //controls accounts valid (archive scheduled maybe bad) acc = da_acc_get(ope->kacc); if(acc == NULL) return; account_balances_sub(ope); if( ope->flags & OF_INTXFER ) { transaction_xfer_remove_child( ope ); } g_queue_remove(acc->txn_queue, ope); acc->dspflags |= FLAG_ACC_TMP_EDITED; //#1419304 we keep the deleted txn to a trash stack //da_transaction_free(entry); //g_trash_stack_push(&GLOBALS->txn_stk, ope); GLOBALS->deltxn_list = g_slist_prepend(GLOBALS->deltxn_list, ope); } void transaction_changed(Transaction *txn, gboolean saverecondate) { Account *acc; if( txn == NULL ) return; acc = da_acc_get(txn->kacc); if(acc == NULL) return; acc->dspflags |= FLAG_ACC_TMP_EDITED; //#1581863 store reconciled date if( saverecondate == TRUE ) acc->rdate = GLOBALS->today; } Transaction *transaction_add(GtkWindow *parent, gboolean addmode, Transaction *ope) { Transaction *newope; Account *acc, *dacc; gboolean do_add; DB( g_print("\n[transaction] transaction_add\n") ); do_add = TRUE; //controls accounts valid (archive scheduled maybe bad) acc = da_acc_get(ope->kacc); //#1972078 forbid on a closed account if( (acc == NULL) || (acc->flags & AF_CLOSED) ) return NULL; DB( g_print(" acc is '%s' %d\n", acc->name, acc->key) ); if(ope->flags & OF_INTXFER) { //controls accounts valid (archive scheduled maybe bad) dacc = da_acc_get(ope->kxferacc); //#1972078 forbid on a closed account if( (dacc == NULL) || (dacc->flags & AF_CLOSED) ) return NULL; } //affect currency, mandatory to get a valid display in xfer selection dialog ope->kcur = acc->kcur; //allocate a new entry and copy from our edited structure newope = da_transaction_clone(ope); //let the user select a xfer action if necessary if(ope->flags & OF_INTXFER) { gint response_id; //#2044601 can return GTK_RESPONSE_CANCEL response_id = transaction_xfer_search_or_add_child(parent, addmode, newope, newope->kxferacc); if( response_id == GTK_RESPONSE_CANCEL ) do_add = FALSE; } DB( g_print(" do_add = %d\n", do_add) ); //real addition here if( do_add == TRUE ) { //todo: a deplacer dans account /* store a new cheque number into account */ if( (newope->paymode == PAYMODE_CHECK) && (newope->number) && !(newope->flags & OF_INCOME) ) { guint cheque; /* get the active account and the corresponding cheque number */ acc = da_acc_get( newope->kacc); if( acc != NULL ) { cheque = atol(newope->number); //DB( g_print(" -> should store cheque number %d to %d", cheque, newope->account) ); if( newope->flags & OF_CHEQ2 ) { acc->cheque2 = MAX(acc->cheque2, cheque); } else { acc->cheque1 = MAX(acc->cheque1, cheque); } } } acc->dspflags |= FLAG_ACC_TMP_ADDED; DB( g_print(" + add normal %p to acc %d\n", newope, acc->key) ); //da_transaction_append(newope); da_transaction_insert_sorted(newope); newope->dspflags |= FLAG_TMP_ADDED; //#2061227 flag txn to be reviewed if too old //#2107649 do it before eval balance if( ( PREFS->safe_pend_recon == TRUE && (acc->rdate > 0 && newope->date < acc->rdate) ) || ( PREFS->safe_pend_past == TRUE && (newope->date < (GLOBALS->today - PREFS->safe_pend_past_days)) ) ) { DB( g_print(" flag as in past to approve\n") ); newope->flags |= OF_ISPAST; acc->nb_pending++; account_flags_eval(acc); } account_balances_add(newope); if(newope->flags & OF_INTXFER) { // delete any splits da_split_destroy(ope->splits); ope->splits = NULL; ope->flags &= ~(OF_SPLIT); //Flag that Splits are cleared } //#1581863 store reconciled date if( newope->status == TXN_STATUS_RECONCILED ) acc->rdate = GLOBALS->today; } else { DB( g_print(" clean newope and return NULL\n") ); da_transaction_clean(newope); newope = NULL; } return newope; } gboolean transaction_acc_move(Transaction *txn, guint32 okacc, guint32 nkacc) { Account *oacc, *nacc; DB( g_print("\n[transaction] acc_move\n") ); if( okacc == nkacc ) return TRUE; oacc = da_acc_get(okacc); nacc = da_acc_get(nkacc); if( oacc && nacc ) { //#2109854 manage pending if( txn->flags & (OF_ISPAST | OF_ISIMPORT) ) { if( oacc->nb_pending > 0 ) oacc->nb_pending--; account_flags_eval(oacc); nacc->nb_pending--; account_flags_eval(nacc); } account_balances_sub(txn); //remove from old if( g_queue_remove(oacc->txn_queue, txn) ) { //add to new g_queue_push_tail(nacc->txn_queue, txn); txn->kacc = nacc->key; txn->kcur = nacc->kcur; nacc->dspflags |= FLAG_ACC_TMP_EDITED; account_balances_add(txn); //#1865083 src acc also changed (balance) oacc->dspflags |= FLAG_ACC_TMP_EDITED; return TRUE; } else { //ensure to keep txn into current account txn->kacc = okacc; account_balances_add(txn); } } return FALSE; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static gboolean transaction_similar_match(Transaction *stxn, Transaction *dtxn, guint32 daygap) { gboolean retval = FALSE; if(stxn == dtxn) return FALSE; DB( g_print(" date: %d - %d = %d\n", stxn->date, dtxn->date, stxn->date - dtxn->date) ); if( ( stxn->kcur == dtxn->kcur ) && ( dtxn->date <= (stxn->date + daygap) ) && ( dtxn->date >= (stxn->date - daygap) ) && ( hb_amount_cmp(stxn->amount, dtxn->amount) == 0 ) //5.8 removed memo, later propose option //&& (hb_string_compare(stxn->memo, dtxn->memo) == 0) //todo: later propose option category/payee ) { retval = TRUE; } return retval; } void transaction_check_chkcatsign_unmark(Account *acc) { GList *lnk_txn; lnk_txn = g_queue_peek_tail_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *stxn = lnk_txn->data; stxn->dspflags &= ~(FLAG_TMP_CHKSIGN); lnk_txn = g_list_previous(lnk_txn); } } gint transaction_check_chkcatsign_mark(Account *acc) { GList *lnk_txn; gint count = 0; //mark category sign lnk_txn = g_queue_peek_tail_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; DB( g_print("------\n eval src: %d, '%s', '%s', %.2f\n", txn->date, txn->number, txn->memo, txn->amount) ); if( (txn->flags & OF_INTXFER) == FALSE ) { txn->dspflags &= ~(FLAG_TMP_CHKSIGN); if(txn->amount != 0.0) { gint type = (txn-> amount > 0) ? 1 : -1; Category *cat = da_cat_get(txn->kcat); if( cat != NULL && (category_type_get(cat) != type) ) { txn->dspflags |= FLAG_TMP_CHKSIGN; count++; } } } lnk_txn = g_list_previous(lnk_txn); } DB( g_print(" - found: %d\n", count ) ); return count; } void transaction_similar_unmark(Account *acc) { GList *lnk_txn; lnk_txn = g_queue_peek_tail_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *stxn = lnk_txn->data; stxn->dspflags &= ~(FLAG_TMP_DUPSRC|FLAG_TMP_DUPDST); stxn->dupgid = 0; //stxn->marker = TXN_MARK_NONE; lnk_txn = g_list_previous(lnk_txn); } } gint transaction_similar_mark(Account *acc, guint32 daygap) { GList *lnk_txn, *list2; gint nball = 0; gint nbdup = 0; gchar tmpgid = 1; //warning the list must be sorted by date then amount //ideally (easier to parse) we shoudl get a list sorted by amount, then date DB( g_print("\n[transaction] check duplicate\n") ); DB( g_print("\n - account:'%s' gap:%d\n", acc->name, daygap) ); #if MYDEBUG == 1 GTimer *t = g_timer_new(); g_print(" - start parse\n"); #endif /* llast = g_list_last(old ope list); DB( g_print("- end last : %f sec\n", g_timer_elapsed(t, NULL)) ); g_timer_reset(t); ltxn = llast->data; g_date_clear(&gd, 1); g_date_set_julian(&gd, ltxn->date); g_print(" - last julian=%u %02d-%02d-%04d\n", ltxn->date, g_date_get_day (&gd), g_date_get_month (&gd), g_date_get_year(&gd)); minjulian = ltxn->date - (366*2); g_date_clear(&gd, 1); g_date_set_julian(&gd, minjulian); g_print(" - min julian=%u %02d-%02d-%04d\n", minjulian, g_date_get_day (&gd), g_date_get_month (&gd), g_date_get_year(&gd)); */ transaction_similar_unmark(acc); //mark duplicate lnk_txn = g_queue_peek_tail_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *stxn = lnk_txn->data; //if(stxn->date < minjulian) // break; DB( g_print("------\n eval src: %d, '%s', '%s', %.2f\n", stxn->date, stxn->number, stxn->memo, stxn->amount) ); list2 = g_list_previous(lnk_txn); while (list2 != NULL) { Transaction *dtxn = list2->data; DB( g_print(" + with dst: %d, '%s', '%s', %.2f\n", dtxn->date, dtxn->number, dtxn->memo, dtxn->amount) ); if( (stxn->date - dtxn->date) > daygap ) { DB( g_print(" break %d %d\n", (dtxn->date - daygap) , (stxn->date - daygap)) ); break; } //if( dtxn->marker == TXN_MARK_NONE ) if( (dtxn->dspflags & (FLAG_TMP_DUPSRC|FLAG_TMP_DUPDST)) == 0 ) { if( transaction_similar_match(stxn, dtxn, daygap) ) { //stxn->marker = TXN_MARK_DUPSRC; //dtxn->marker = TXN_MARK_DUPDST; stxn->dspflags |= FLAG_TMP_DUPSRC; dtxn->dspflags |= FLAG_TMP_DUPDST; stxn->dupgid = tmpgid; dtxn->dupgid = tmpgid; DB( g_print(" = dtxn marker=%d\n", dtxn->dspflags) ); nball++; } } else { DB( g_print(" already marked %d\n", dtxn->dspflags) ); } list2 = g_list_previous(list2); } DB( g_print(" = stxn marker=%d\n", stxn->dspflags) ); //if( stxn->marker == TXN_MARK_DUPSRC ) if( stxn->dspflags & FLAG_TMP_DUPSRC ) { tmpgid++; nbdup++; } lnk_txn = g_list_previous(lnk_txn); } DB( g_print(" - end parse : %f sec\n", g_timer_elapsed(t, NULL)) ); DB( g_timer_destroy (t) ); DB( g_print(" - found: %d/%d dup\n", nbdup, nball ) ); return nbdup; } guint transaction_auto_all_from_payee(GList *txnlist) { GList *list; Payee *pay; guint changes = 0; DB( g_print("\n[transaction] auto from payee\n") ); DB( g_print(" n_txn=%d\n", g_list_length(txnlist)) ); list = g_list_first(txnlist); while(list != NULL) { Transaction *txn = list->data; if( txn != NULL ) { pay = da_pay_get(txn->kpay); if( pay != NULL ) { if( txn->kcat == 0 ) { txn->kcat = pay->kcat; changes++; } if( txn->paymode == PAYMODE_NONE ) { txn->paymode = pay->paymode; changes++; } } } list = g_list_next(list); } return changes; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* = = experimental = = */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* probably add a structure hosted into a glist here with kind of problem: duplicate, child xfer, orphan xfer and collect all that with target txn */ /*void future_transaction_test_account(Account *acc) { GList *lnk_txn, *list2; gint nball = 0; gint nbdup = 0; gint nbxfer = 0; GPtrArray *array; //future gint gapday = 0, i; //warning the list must be sorted by date then amount //ideally (easier to parse) we shoudl get a list sorted by amount, then date DB( g_print("\n[transaction] check duplicate\n") ); DB( g_print("\n - account:'%s'\n", acc->name) ); GTimer *t = g_timer_new(); g_print(" - start parse\n"); llast = g_list_last(old ope list); DB( g_print("- end last : %f sec\n", g_timer_elapsed(t, NULL)) ); g_timer_reset(t); ltxn = llast->data; g_date_clear(&gd, 1); g_date_set_julian(&gd, ltxn->date); g_print(" - last julian=%u %02d-%02d-%04d\n", ltxn->date, g_date_get_day (&gd), g_date_get_month (&gd), g_date_get_year(&gd)); minjulian = ltxn->date - (366*2); g_date_clear(&gd, 1); g_date_set_julian(&gd, minjulian); g_print(" - min julian=%u %02d-%02d-%04d\n", minjulian, g_date_get_day (&gd), g_date_get_month (&gd), g_date_get_year(&gd)); array = g_ptr_array_sized_new (25); lnk_txn = g_queue_peek_tail_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *stxn = lnk_txn->data; //if(stxn->date < minjulian) // break; DB( g_print("------\n eval src: %d, '%s', '%s', %2.f\n", stxn->date, stxn->number, stxn->memo, stxn->amount) ); stxn->marker = 0; list2 = g_list_previous(lnk_txn); while (list2 != NULL) { Transaction *dtxn = list2->data; stxn->marker = 0; if( (dtxn->date + gapday) < (stxn->date + gapday) ) break; DB( g_print(" + with dst: %d, '%s', '%s', %2.f\n", dtxn->date, dtxn->number, dtxn->memo, dtxn->amount) ); if( transaction_similar_match(stxn, dtxn, gapday) ) { g_ptr_array_add (array, stxn); g_ptr_array_add (array, dtxn); nbdup++; DB( g_print(" + dst=1 src=1\n") ); } nball++; list2 = g_list_previous(list2); } lnk_txn = g_list_previous(lnk_txn); } DB( g_print(" - end parse : %f sec\n", g_timer_elapsed(t, NULL)) ); DB( g_timer_destroy (t) ); for(i=0;ilen;i++) { Transaction *txn = g_ptr_array_index(array, i); txn->marker = 1; } g_ptr_array_free(array, TRUE); DB( g_print(" - found: %d/%d dup, %d xfer\n", nbdup, nball, nbxfer ) ); } //todo: add a limitation, no need to go through all txn // 1 year in th past, or abolute number ? gint future_transaction_test_notification(void) { GList *lst_acc, *lnk_acc; DB( g_print("\ntransaction_test_notification\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; transaction_similar_mark(acc); lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); return 0; } */ homebank-5.9.1/src/hb-import.c0000644000175000017500000010440514761067362011647 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-import.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ static gint homebank_alienfile_recognize(gchar *filename) { GIOChannel *io; gint i, retval = FILETYPE_UNKNOWN; gchar *tmpstr; gint io_stat; GError *err = NULL; DB( g_print("\n[homebank] alienfile_recognize\n") ); io = g_io_channel_new_file(filename, "r", NULL); if(io != NULL) { g_io_channel_set_encoding(io, NULL, NULL); /* set to binary mode */ //#1895478 5.4.4 25 => 48 for(i=0;i<48;i++) { if( retval != FILETYPE_UNKNOWN ) break; io_stat = g_io_channel_read_line(io, &tmpstr, NULL, NULL, &err); if( io_stat == G_IO_STATUS_EOF) break; if( io_stat == G_IO_STATUS_ERROR ) { DB (g_print(" + ERROR %s\n",err->message)); break; } if( io_stat == G_IO_STATUS_NORMAL) { if( *tmpstr != '\0' ) { DB( g_print(" line %d: '%s' retval=%d\n", i, tmpstr, retval) ); // OFX/QFX file ? if( g_strstr_len(tmpstr, -1, "") != NULL || g_strstr_len(tmpstr, -1, "") != NULL /*|| strcasestr(tmpstr, "") != NULL*/ ) { DB( g_print(" type is OFX\n") ); retval = FILETYPE_OFX; } else // QIF file ? if( g_str_has_prefix(tmpstr, "!Type") || g_str_has_prefix(tmpstr, "!type") || g_str_has_prefix(tmpstr, "!Option") || g_str_has_prefix(tmpstr, "!option") || g_str_has_prefix(tmpstr, "!Account") || g_str_has_prefix(tmpstr, "!account") ) { DB( g_print(" type is QIF\n") ); retval = FILETYPE_QIF; } else // CSV homebank format ? if( hb_csv_test_line(tmpstr) ) { DB( g_print(" type is CSV homebank\n") ); retval = FILETYPE_CSV_HB; } else // native homebank file ? if( g_str_has_prefix(tmpstr, "gen_lst_txn); while (list != NULL) { GenTxn *gentxn = list->data; da_gen_txn_free(gentxn); list = g_list_next(list); } g_list_free(context->gen_lst_txn); context->gen_lst_txn = NULL; } static void da_import_context_gen_acc_destroy(ImportContext *context) { GList *list; DB( g_print("\n[import] free gen acc list\n") ); list = g_list_first(context->gen_lst_acc); while (list != NULL) { GenAcc *genacc = list->data; da_gen_acc_free(genacc); list = g_list_next(list); } g_list_free(context->gen_lst_acc); context->gen_lst_acc = NULL; } static void da_import_context_clear(ImportContext *context) { DB( g_print("\n[import] context clear\n") ); da_import_context_gen_txn_destroy(context); da_import_context_gen_acc_destroy(context); context->gen_next_acckey = 1; } void da_import_context_destroy(ImportContext *context) { GList *list; DB( g_print("\n[import] context destroy\n") ); da_import_context_gen_txn_destroy(context); da_import_context_gen_acc_destroy(context); DB( g_print(" free gen file list\n") ); list = g_list_first(context->gen_lst_file); while (list != NULL) { GenFile *genfile = list->data; da_gen_file_free(genfile); list = g_list_next(list); } g_list_free(context->gen_lst_file); context->gen_lst_file = NULL; } void da_import_context_new(ImportContext *context) { context->gen_lst_file = NULL; context->gen_lst_acc = NULL; context->gen_lst_txn = NULL; context->gen_next_acckey = 1; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ GenFile * da_gen_file_malloc(void) { return g_malloc0(sizeof(GenFile)); } void da_gen_file_free(GenFile *genfile) { if(genfile != NULL) { if(genfile->filepath != NULL) g_free(genfile->filepath); g_free(genfile); } } GenFile * da_gen_file_get(GList *lst_file, guint32 key) { GenFile *existfile = NULL; GList *list; list = g_list_first(lst_file); while (list != NULL) { GenFile *genfile = list->data; if( key == genfile->key ) { existfile = genfile; break; } list = g_list_next(list); } return existfile; } static GenFile * da_gen_file_get_by_name(GList *lst_file, gchar *filepath) { GenFile *existfile = NULL; GList *list; DB( g_print("da_gen_file_get_by_name\n") ); list = g_list_first(lst_file); while (list != NULL) { GenFile *genfile = list->data; DB( g_print(" strcasecmp '%s' '%s'\n", filepath, genfile->filepath) ); if(!strcasecmp(filepath, genfile->filepath)) { existfile = genfile; DB( g_print(" found\n") ); break; } list = g_list_next(list); } return existfile; } GenFile * da_gen_file_append_from_filename(ImportContext *ictx, gchar *filename) { GenFile *genfile = NULL; gint filetype; //todo: should check if its a file !! filetype = homebank_alienfile_recognize(filename); DB( g_print(" - filename '%s', type is %d\n", filename, filetype ) ); // we keep everything here //if( (filetype == FILETYPE_OFX) || (filetype == FILETYPE_QIF) || (filetype == FILETYPE_CSV_HB) ) if( filetype != FILETYPE_HOMEBANK ) { GenFile *existgenfile; existgenfile = da_gen_file_get_by_name(ictx->gen_lst_file, filename); if(existgenfile == NULL) { genfile = da_gen_file_malloc(); genfile->filepath = g_strdup(filename); genfile->filetype = filetype; //append to list genfile->key = g_list_length (ictx->gen_lst_file) + 1; ictx->gen_lst_file = g_list_append(ictx->gen_lst_file, genfile); } } return genfile; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ GenAcc * da_gen_acc_malloc(void) { return g_malloc0(sizeof(GenAcc)); } void da_gen_acc_free(GenAcc *genacc) { if(genacc != NULL) { if(genacc->name != NULL) g_free(genacc->name); if(genacc->number != NULL) g_free(genacc->number); g_free(genacc); } } GenAcc * da_gen_acc_get_by_key(GList *lst_acc, guint32 key) { GenAcc *existacc = NULL; GList *list; DB( g_print("da_gen_acc_get_by_key\n") ); list = g_list_first(lst_acc); while (list != NULL) { GenAcc *genacc = list->data; if( key == genacc->key ) { existacc = genacc; break; } list = g_list_next(list); } return existacc; } static GenAcc * da_gen_acc_get_by_name(GList *lst_acc, gchar *name) { GenAcc *existacc = NULL; GList *list; DB( g_print("da_gen_acc_get_by_name\n") ); list = g_list_first(lst_acc); while (list != NULL) { GenAcc *genacc = list->data; //DB( g_print(" strcasecmp '%s' '%s'\n", name, genacc->name) ); if(!strcasecmp(name, genacc->name)) { existacc = genacc; //DB( g_print(" found\n") ); break; } list = g_list_next(list); } return existacc; } Account * hb_import_acc_find_existing(gchar *name, gchar *number) { Account *retacc = NULL; GList *lacc, *list; DB( g_print("\n[import] acc_find_existing\n") ); DB( g_print(" - search number '%s'\n", number) ); lacc = list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { Account *acc = list->data; //DB( g_print(" - eval acc '%s' or '%s'\n", acc->name, acc->number) ); if(number != NULL && acc->number && strlen(acc->number) ) { //prefer identifying with number & search number into acc->number if(g_strstr_len(number, -1, acc->number) != NULL) { DB( g_print(" - match number '%s'\n", acc->number) ); retacc = acc; break; } } list = g_list_next(list); } //# 1815964 only test name if all number test failed //if not found try with name if(retacc == NULL) { DB( g_print(" - search name '%s'\n", name) ); list = g_list_first(lacc); while (list != NULL) { Account *acc = list->data; //DB( g_print(" - eval acc '%s' or '%s'\n", acc->name, acc->number) ); if(retacc == NULL && name != NULL) { if(g_strstr_len(name, -1, acc->name) != NULL) { DB( g_print(" - match name '%s'\n", acc->name) ); retacc = acc; break; } } list = g_list_next(list); } } g_list_free(lacc); return retacc; } GenAcc * hb_import_gen_acc_get_next(ImportContext *ictx, gint filetype, gchar *name, gchar *number) { GenAcc *newacc; DB( g_print("\n[import] acc_get_next\n") ); DB( g_print(" - type='%d', name='%s', number='%s'\n", filetype, name, number) ); // try to find a same name account if( name != NULL ) { newacc = da_gen_acc_get_by_name(ictx->gen_lst_acc, name); if(newacc != NULL) { DB( g_print(" - found existing '%s'\n", name) ); goto end; } } newacc = da_gen_acc_malloc(); if(newacc) { newacc->kfile = ictx->curr_kfile; newacc->key = ictx->gen_next_acckey++; newacc->kacc = DST_ACC_GLOBAL; if(name != NULL) { newacc->is_unamed = FALSE; newacc->name = g_strdup(name); } else { GenFile *genfile; gchar *basename; newacc->is_unamed = TRUE; genfile = da_gen_file_get (ictx->gen_lst_file, newacc->kfile); basename = g_path_get_basename(genfile->filepath); newacc->name = g_strdup_printf("%s %d", basename, newacc->key); g_free(basename); } if(number != NULL) newacc->number = g_strdup(number); ictx->gen_lst_acc = g_list_append(ictx->gen_lst_acc, newacc); } DB( g_print(" - create new '%s'\n", newacc->name) ); end: newacc->filetype = filetype; ictx->curr_kacc = newacc->key; return newacc; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ GenTxn * da_gen_txn_malloc(void) { return g_malloc0(sizeof(GenTxn)); } void da_gen_txn_free(GenTxn *gentxn) { gint i; if(gentxn != NULL) { if(gentxn->account != NULL) g_free(gentxn->account); if(gentxn->rawnumber != NULL) g_free(gentxn->rawnumber); if(gentxn->rawpayee != NULL) g_free(gentxn->rawpayee); if(gentxn->rawmemo != NULL) g_free(gentxn->rawmemo); // 5.5.1 add OFX fitid if(gentxn->fitid != NULL) g_free(gentxn->fitid); if(gentxn->date != NULL) g_free(gentxn->date); if(gentxn->number != NULL) g_free(gentxn->number); if(gentxn->payee != NULL) g_free(gentxn->payee); if(gentxn->memo != NULL) g_free(gentxn->memo); if(gentxn->category != NULL) g_free(gentxn->category); if(gentxn->tags != NULL) g_free(gentxn->tags); for(i=0;isplits[i]; if(s->memo != NULL) g_free(s->memo); if(s->category != NULL) g_free(s->category); } if(gentxn->lst_existing != NULL) { g_list_free(gentxn->lst_existing); gentxn->lst_existing = NULL; } g_free(gentxn); } } static gint da_gen_txn_compare_func(GenTxn *a, GenTxn *b) { gint retval = (gint)(a->julian - b->julian); //5.8 #2063416 same date txn if(!retval) retval = a->row - b->row; if(!retval) retval = (ABS(a->amount) - ABS(b->amount)) > 0 ? 1 : -1; return (retval); } GList * da_gen_txn_sort(GList *list) { return( g_list_sort(list, (GCompareFunc)da_gen_txn_compare_func)); } void da_gen_txn_move(GenTxn *sgentxn, GenTxn *dgentxn) { if(sgentxn != NULL && dgentxn != NULL) { memcpy(dgentxn, sgentxn, sizeof(GenTxn)); memset(sgentxn, 0, sizeof(GenTxn)); } } void da_gen_txn_append(ImportContext *ctx, GenTxn *gentxn) { gentxn->kfile = ctx->curr_kfile; gentxn->kacc = ctx->curr_kacc; gentxn->to_import = TRUE; //perf must use preprend, see glib doc //sort will be done later, so we don't care here ctx->gen_lst_txn = g_list_prepend(ctx->gen_lst_txn, gentxn); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void _string_utf8_ucfirst(gchar **str) { gint str_len; gchar *first, *lc; if( *str == NULL ) return; str_len = strlen(*str); if( str_len <= 1 ) return; first = g_utf8_strup(*str, 1); lc = g_utf8_strdown( g_utf8_next_char(*str), -1 ); g_free(*str); *str = g_strjoin(NULL, first, lc, NULL); g_free(first); g_free(lc); } static gchar * _string_concat(gchar *str, gchar *addon) { gchar *retval; DB( g_print(" - concat '%s' + '%s'\n", str, addon) ); if(str == NULL) retval = g_strdup(addon); else { retval = g_strjoin(" ", str, addon, NULL); g_free(str); } DB( g_print(" - retval='%s'\n", retval) ); return retval; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ gchar *hb_import_filetype_char_get(GenAcc *genacc) { gchar *retval = ""; switch(genacc->filetype) { #ifndef NOOFX case FILETYPE_OFX: retval = "OFX/QFX"; break; #endif case FILETYPE_QIF: retval = "QIF"; break; case FILETYPE_CSV_HB: retval = "CSV"; break; } return retval; } void hb_import_load_all(ImportContext *ictx) { GList *list; DB( g_print("\n[import] load all\n") ); da_import_context_clear (ictx); list = g_list_first(ictx->gen_lst_file); while (list != NULL) { GenFile *genfile = list->data; if(genfile->filetype != FILETYPE_UNKNOWN) { //todo: move this to alien analysis genfile->encoding = homebank_file_getencoding(genfile->filepath); ictx->curr_kfile = genfile->key; DB( g_print(" -> key = '%d'\n", genfile->key) ); DB( g_print(" -> filepath = '%s'\n", genfile->filepath) ); DB( g_print(" -> encoding = '%s'\n", genfile->encoding) ); genfile->loaded = FALSE; genfile->invaliddatefmt = FALSE; switch(genfile->filetype) { #ifndef NOOFX case FILETYPE_OFX: homebank_ofx_import(ictx, genfile); break; #endif case FILETYPE_QIF: homebank_qif_import(ictx, genfile); break; case FILETYPE_CSV_HB: homebank_csv_import(ictx, genfile); break; } genfile->loaded = TRUE; } list = g_list_next(list); } // sort by date ictx->gen_lst_txn = da_gen_txn_sort(ictx->gen_lst_txn); } gint hb_import_gen_acc_count_txn(ImportContext *ictx, GenAcc *genacc) { GList *list; gint count = 0; DB( g_print("\n[import] gen_acc_count_txn\n") ); genacc->n_txnall = 0; genacc->n_txnimp = 0; list = g_list_first(ictx->gen_lst_txn); while (list != NULL) { GenTxn *gentxn = list->data; if(gentxn->kacc == genacc->key) { genacc->n_txnall++; count++; DB( g_print(" count %03d: gentxn in=%d dup=%d '%s'\n", count, gentxn->to_import, gentxn->is_dst_similar, gentxn->memo) ); if(gentxn->to_import) genacc->n_txnimp++; } list = g_list_next(list); } return count; } /** * uncheck duplicate within the import context files */ gint hb_import_gen_txn_check_duplicate(ImportContext *ictx, GenAcc *genacc) { GList *list1, *list2; gboolean isimpsimilar = FALSE; gint count = 0; DB( g_print("\n[import] gen_txn_check_duplicate\n") ); list1 = g_list_first(ictx->gen_lst_txn); while (list1 != NULL) { GenTxn *gentxn1 = list1->data; isimpsimilar = FALSE; DB( g_print(" 1eval %d %dd %.2f '%s'\n", gentxn1->kacc, gentxn1->julian, gentxn1->amount, gentxn1->fitid) ); if( (genacc->key == gentxn1->kacc) && (gentxn1->julian != 0) ) //same account, valid date { list2 = g_list_next(list1); while (list2 != NULL) { GenTxn *gentxn2 = list2->data; if( (gentxn2->julian > gentxn1->julian) || (isimpsimilar == TRUE) ) break; DB( g_print(" 2eval %d %d %.2f '%s'in=%d dup=%d\n", gentxn2->kacc, gentxn2->julian, gentxn2->amount, gentxn2->fitid, gentxn1->to_import, gentxn1->is_imp_similar) ); // 5.5.1 add OFX fitid if( (genacc->filetype == FILETYPE_OFX) ) { GenAcc *gacc1, *gacc2; //#1919080 check also account gacc1 = da_gen_acc_get_by_key(ictx->gen_lst_acc, gentxn1->kacc); gacc2 = da_gen_acc_get_by_key(ictx->gen_lst_acc, gentxn2->kacc); if( gacc1 != NULL && gacc2 != NULL ) { gint resacc, resfitid; DB( g_print(" acc1='%s' <> acc2='%s'\n", gacc1->number, gacc2->number) ); resacc = hb_string_ascii_compare(gacc1->number, gacc2->number); resfitid = hb_string_ascii_compare(gentxn2->fitid, gentxn1->fitid); DB( g_print(" eval with fitid\n") ); if( !resacc && !resfitid ) { isimpsimilar = TRUE; DB( g_print(" found dup fitid\n") ); } } } else { //DB( g_print(" eval with data\n") ); //todo: maybe reinforce controls here if( (gentxn2->kacc == gentxn1->kacc) && (gentxn2->julian == gentxn1->julian) && (gentxn2->amount == gentxn1->amount) && (hb_string_compare(gentxn2->memo, gentxn1->memo) == 0) && (hb_string_compare(gentxn2->payee, gentxn1->payee) == 0) //#1954017 add comparison on category && (hb_string_compare(gentxn2->category, gentxn1->category) == 0) ) { isimpsimilar = TRUE; DB( g_print(" found dup data\n") ); } } list2 = g_list_next(list2); } if( isimpsimilar == TRUE ) { gentxn1->to_import = FALSE; gentxn1->is_imp_similar = TRUE; count++; } } list1 = g_list_next(list1); } genacc->n_txnsimimp = count; return count; } /** * uncheck existing txn into target account * */ gint hb_import_gen_txn_check_target_similar(ImportContext *ictx, GenAcc *genacc) { GList *list1, *list2; gdouble amount; gint count = 0; DB( g_print("\n[import] gen_txn_check_target_similar\n") ); list1 = g_list_first(ictx->gen_lst_txn); while (list1 != NULL) { GenTxn *gentxn = list1->data; DB( g_print("\n--------\n src: a:%d d:%d %.17g '%s'\n", gentxn->kacc, gentxn->julian, gentxn->amount, gentxn->memo) ); if(genacc->key == gentxn->kacc) { //#5.5.1, commented and reported below //as it override the state made with a call to hb_import_gen_txn_check_duplicate //gentxn->to_import = TRUE; gentxn->is_dst_similar = FALSE; if(genacc->kacc == DST_ACC_SKIP) { gentxn->to_import = FALSE; } else { Account *acc = da_acc_get(genacc->kacc); if(acc != NULL) { //clear previous existing if(gentxn->lst_existing != NULL) { g_list_free(gentxn->lst_existing); gentxn->lst_existing = NULL; } //#1866456 amount = (gentxn->togamount == TRUE) ? -gentxn->amount : gentxn->amount; // try to find existing transaction list2 = g_queue_peek_tail_link(acc->txn_queue); while (list2 != NULL) { Transaction *txn = list2->data; DB( g_print(" evl: a:%d d:%d %.17g '%s'\n", txn->kacc, txn->date, txn->amount, txn->memo) ); //break if the date goes below the gentxn date + gap if( txn->date < (gentxn->julian - ictx->opt_daygap) ) break; //#1586211 add of date tolerance //todo: maybe reinforce controls here if( ( genacc->kacc == txn->kacc ) && ( gentxn->julian <= (txn->date + ictx->opt_daygap) ) && ( gentxn->julian >= (txn->date - ictx->opt_daygap) ) //#2012999 && ( hb_amount_cmp(amount, txn->amount) == 0 ) ) { gentxn->lst_existing = g_list_append(gentxn->lst_existing, txn); gentxn->to_import = FALSE; gentxn->is_dst_similar = TRUE; count++; DB( g_print(" => found dst acc dup %d %.17g '%s' in=%d, dup=%d\n", gentxn->julian, amount, gentxn->memo, gentxn->to_import, gentxn->is_dst_similar) ); } list2 = g_list_previous(list2); } } } //#5.5.1 added check here if( (gentxn->is_dst_similar == TRUE) || (gentxn->is_imp_similar == TRUE) ) { gentxn->to_import = FALSE; } } list1 = g_list_next(list1); } genacc->n_txnsimdst = count; return count; } /** * try to identify xfer for OFX * */ static gint hb_import_gen_xfer_eval(ImportContext *ictx, GList *list) { GList *root, *list1, *list2; GList *match = NULL; gint count = 0; DB( g_print("\n[import] gen xfer eval\n") ); DB( g_print(" n_txn=%d\n", g_list_length(list)) ); root = da_transaction_sort(list); root = list1 = g_list_first(list); while (list1 != NULL) { Transaction *txn1 = list1->data; GenAcc *acc; DB( g_print(" list:%p txn:%p\n", ictx->gen_lst_acc, txn1) ); if( txn1 != NULL ) { acc = da_gen_acc_get_by_key(ictx->gen_lst_acc, txn1->kacc); DB( g_print(" src: kacc:%d dat:%d amt:%.2f %s kfxacc:%d\n", txn1->kacc, txn1->date, txn1->amount, txn1->memo, txn1->kxferacc) ); if( (acc != NULL) && (acc->filetype == FILETYPE_OFX) ) { match = NULL; count = 0; list2 = g_list_next(root); while (list2 != NULL) { Transaction *txn2 = list2->data; if(!txn2) goto next; //DB( g_print(" -- chk: kacc:%d dat:%d amt:%.2f %s\n", txn2->kacc, txn2->date, txn2->amount, txn2->memo) ); if( (txn2->date > txn1->date) ) break; if( (txn2 == txn1) || (txn2->flags & OF_INTXFER) ) goto next; //todo: maybe reinforce controls here if( (txn2->kacc != txn1->kacc) && (txn2->date == txn1->date) && (txn2->amount == -txn1->amount) && (hb_string_compare(txn2->memo, txn1->memo) == 0) ) { DB( g_print(" match: kacc:%d dat:%d amt:%.2f %s kfxacc:%d\n", txn2->kacc, txn2->date, txn2->amount, txn2->memo, txn2->kxferacc) ); match = g_list_append(match, txn2); count++; } next: list2 = g_list_next(list2); } if(count == 1) //we found a single potential xfer, transform it { Transaction *txn2 ; DB( g_print(" single found => convert both\n") ); list2 = g_list_first(match); txn2 = list2->data; if( txn1 && txn2 ) { txn1->flags |= OF_INTXFER; transaction_xfer_change_to_child(txn1, txn2); } } // if more than one, we cannot be sure g_list_free(match); } } list1 = g_list_next(list1); } return count; } /** * apply the user option: date format, payee/memo/info mapping * */ gboolean hb_import_option_apply(ImportContext *ictx, GenAcc *genacc) { GList *list; gint i; DB( g_print("\n[import] option apply\n") ); DB( g_print(" - type=%d\n", genacc->filetype) ); genacc->n_txnbaddate = 0; i=0; list = g_list_first(ictx->gen_lst_txn); while (list != NULL) { GenTxn *gentxn = list->data; if(gentxn->kacc == genacc->key) { if(genacc->filetype != FILETYPE_OFX) { gentxn->julian = hb_date_get_julian(gentxn->date, ictx->opt_dateorder); if( gentxn->julian == 0 ) { genacc->n_txnbaddate++; } } if(genacc->filetype == FILETYPE_OFX) { DB( g_print(" - ofx option apply\n") ); g_free(gentxn->payee); g_free(gentxn->memo); g_free(gentxn->number); gentxn->payee = NULL; gentxn->memo = NULL; gentxn->number = NULL; // OFX:check_number gentxn->number = g_strdup(gentxn->rawnumber); //#1791482 map name to info (concat only) switch(ictx->opt_ofxname) { //ofxname is stored into rawpayee //case 0: PRF_OFXNAME_IGNORE case PRF_OFXNAME_MEMO: gentxn->memo = g_strdup(gentxn->rawpayee); break; case PRF_OFXNAME_PAYEE: gentxn->payee = g_strdup(gentxn->rawpayee); break; case PRF_OFXNAME_NUMBER: //#1909323 no need to free here //g_free(gentxn->number); gentxn->number = _string_concat(gentxn->number, gentxn->rawpayee); break; } if(gentxn->rawmemo != NULL) { switch(ictx->opt_ofxmemo) { //case 0: PRF_OFXMEMO_IGNORE case PRF_OFXMEMO_NUMBER: gentxn->number = _string_concat(gentxn->number, gentxn->rawmemo); break; case PRF_OFXMEMO_MEMO: gentxn->memo = _string_concat(gentxn->memo, gentxn->rawmemo); break; case PRF_OFXMEMO_PAYEE: gentxn->payee = _string_concat(gentxn->payee, gentxn->rawmemo); break; } } DB( g_print(" - payee is '%s'\n", gentxn->payee) ); DB( g_print(" - memo is '%s'\n", gentxn->memo) ); DB( g_print(" - info is '%s'\n", gentxn->number) ); DB( g_print("\n") ); } else if(genacc->filetype == FILETYPE_QIF) { DB( g_print(" - qif option apply\n") ); g_free(gentxn->payee); g_free(gentxn->memo); gentxn->payee = NULL; gentxn->memo = NULL; if(!ictx->opt_qifswap) { gentxn->payee = g_strdup(gentxn->rawpayee); if(ictx->opt_qifmemo) gentxn->memo = g_strdup(gentxn->rawmemo); } else { gentxn->payee = g_strdup(gentxn->rawmemo); if(ictx->opt_qifmemo) gentxn->memo = g_strdup(gentxn->rawpayee); } DB( g_print(" - payee is '%s'\n", gentxn->payee) ); DB( g_print(" - memo is '%s'\n", gentxn->memo) ); } else if(genacc->filetype == FILETYPE_CSV_HB) { DB( g_print(" - csv option apply\n") ); DB( g_print(" [%d] row=%d\n", i, gentxn->row) ); //#1791656 missing: info, payee and tags g_free(gentxn->payee); g_free(gentxn->memo); g_free(gentxn->number); gentxn->payee = g_strdup(gentxn->rawpayee); gentxn->memo = g_strdup(gentxn->rawmemo); gentxn->number = g_strdup(gentxn->rawnumber); } //at last do ucfirst if( (ictx->opt_ucfirst == TRUE) ) { _string_utf8_ucfirst(&gentxn->memo); _string_utf8_ucfirst(&gentxn->payee); //category ? } //1866456 and toggle amount gentxn->togamount = ictx->opt_togamount; } i++; list = g_list_next(list); } DB( g_print(" - nb_err=%d\n", genacc->n_txnbaddate) ); return genacc->n_txnbaddate == 0 ? TRUE : FALSE; } /** * convert a GenTxn to a Transaction * */ Transaction * hb_import_convert_txn(GenAcc *genacc, GenTxn *gentxn) { Transaction *newope; Account *accitem; Payee *payitem; Category *catitem; gint nsplit; DB( g_print("\n[import] convert txn\n") ); newope = NULL; DB( g_print(" - gentxt '%s' %s %s\n", gentxn->account, gentxn->date, gentxn->memo) ); DB( g_print(" - genacc '%s' '%p' k=%d\n", gentxn->account, genacc, genacc->kacc) ); if( genacc != NULL ) { newope = da_transaction_malloc(); newope->kacc = genacc->kacc; newope->date = gentxn->julian; newope->paymode = gentxn->paymode; newope->number = g_strdup(gentxn->number); newope->memo = g_strdup(gentxn->memo); newope->amount = gentxn->amount; //#773282 invert amount for ccard accounts //todo: manage this (qif), it is not set to true anywhere //= it is into the qif account see hb-import-qif.c //if(ictx->is_ccard) // gentxn->amount *= -1; //#1866456 manual toggle amount if( gentxn->togamount == TRUE ) { newope->amount = -gentxn->amount; } // payee + append if( gentxn->payee != NULL ) { payitem = da_pay_get_by_name(gentxn->payee); if(payitem == NULL) { //DB( g_print(" -> append pay: '%s'\n", item->payee ) ); payitem = da_pay_malloc(); payitem->name = g_strdup(gentxn->payee); //payitem->imported = TRUE; da_pay_append(payitem); //ictx->cnt_new_pay += 1; } newope->kpay = payitem->key; } // LCategory of transaction // L[Transfer account name] // LCategory of transaction/Class of transaction // L[Transfer account]/Class of transaction if( gentxn->category != NULL ) { if(g_str_has_prefix(gentxn->category, "[")) // this is a transfer account name { gchar *accname; //DB ( g_print(" -> transfer to: '%s'\n", item->category) ); //remove brackets accname = hb_strdup_nobrackets(gentxn->category); // search target account + append if not exixts accitem = da_acc_get_by_name(accname); if(accitem == NULL) { DB( g_print(" -> append int xfer dest acc: '%s'\n", accname ) ); accitem = da_acc_malloc(); accitem->name = g_strdup(accname); //accitem->imported = TRUE; //accitem->imp_name = g_strdup(accname); da_acc_append(accitem); } newope->kxferacc = accitem->key; newope->flags |= OF_INTXFER; g_free(accname); } else { //DB ( g_print(" -> append cat: '%s'\n", item->category) ); catitem = da_cat_append_ifnew_by_fullname(gentxn->category); if( catitem != NULL ) { //ictx->cnt_new_cat += 1; newope->kcat = catitem->key; } } } //#1791656 miss tags also... if( gentxn->tags != NULL ) { g_free(newope->tags); newope->tags = tags_parse(gentxn->tags); } // splits, if not a xfer //TODO: it seems this never happen if( gentxn->paymode != OLDPAYMODE_INTXFER ) //if( !(gentxn->flags & OF_INTXFER) ) { if( gentxn->nb_splits > 0 ) { newope->splits = da_split_new(); for(nsplit=0;nsplitnb_splits;nsplit++) { GenSplit *s = &gentxn->splits[nsplit]; Split *hbs; guint32 kcat = 0; DB( g_print(" -> append split %d: '%s' '%.2f' '%s'\n", nsplit, s->category, s->amount, s->memo) ); if( s->category != NULL ) { catitem = da_cat_append_ifnew_by_fullname(s->category); if( catitem != NULL ) { kcat = catitem->key; } } //todo: remove this when no more use || hb_string_remove_char('|', s->memo); hbs = da_split_malloc (); hbs->kcat = kcat; hbs->memo = g_strdup(s->memo); hbs->amount = s->amount; //#1866456 manual toggle amount if( gentxn->togamount == TRUE ) { hbs->amount = -s->amount; } da_splits_append(newope->splits, hbs); hbs = NULL; } } } newope->dspflags |= FLAG_TMP_ADDED; da_transaction_set_flag(newope); if( gentxn->reconciled ) { Account *acc = da_acc_get(newope->kacc); newope->status = TXN_STATUS_RECONCILED; //#1581863 store reconciled date if( acc != NULL ) acc->rdate = GLOBALS->today; } else if( gentxn->cleared ) newope->status = TXN_STATUS_CLEARED; } return newope; } void hb_import_apply(ImportContext *ictx) { GList *list, *lacc; GList *txnlist; guint changes = 0; guint nbofxtxn = 0; DB( g_print("\n[import] apply\n") ); DB( g_print("\n--1-- insert acc\n") ); //create accounts list = g_list_first(ictx->gen_lst_acc); while (list != NULL) { GenAcc *genacc = list->data; DB( g_print(" genacc: %d %s %s => %d\n", genacc->key, genacc->name, genacc->number, genacc->kacc) ); //we do create the common account once if( (genacc->kacc == DST_ACC_GLOBAL) ) { gchar *globalname = _("imported account"); Account *acc = da_acc_get_by_name(globalname); if( acc == NULL ) { acc = da_acc_malloc (); acc->name = g_strdup(globalname); if( da_acc_append(acc) ) { changes++; } } //store the target acc key genacc->kacc = acc->key; } else if( (genacc->kacc == DST_ACC_NEW) ) { Account *acc = da_acc_malloc (); acc->name = g_strdup(genacc->name); if( da_acc_append(acc) ) { acc->number = g_strdup(genacc->number); acc->initial = genacc->initial; //store the target acc key genacc->kacc = acc->key; changes++; } //#5.6.2 fix leak else { da_acc_free(acc); } } list = g_list_next(list); } // also keep every transactions into a temporary list // we do this to keep a finished real txn list for detect xfer below DB( g_print("\n--2-- insert txn\n") ); txnlist = NULL; lacc = g_list_first(ictx->gen_lst_acc); while (lacc != NULL) { GenAcc *genacc = lacc->data; DB( g_print(" => genacc='%s'\n", genacc->name) ); if(genacc->kacc != DST_ACC_SKIP) { list = g_list_first(ictx->gen_lst_txn); while (list != NULL) { GenTxn *gentxn = list->data; if(gentxn->kacc == genacc->key && gentxn->to_import == TRUE) { Transaction *txn, *dtxn; txn = hb_import_convert_txn(genacc, gentxn); if( txn ) { dtxn = transaction_add(NULL, FALSE, txn); //perf must use preprend, see glib doc DB( g_print(" prepend %p to txnlist\n", dtxn) ); //#2000480 avoid insert null txn if( dtxn != NULL ) { //#1875100 add pending if(ictx->set_pending == TRUE) dtxn->flags |= OF_ISIMPORT; txnlist = g_list_prepend(txnlist, dtxn); } da_transaction_free(txn); //#1820618 forgot to report changes count changes++; } } if( genacc->filetype == FILETYPE_OFX ) nbofxtxn++; list = g_list_next(list); } } else { DB( g_print(" marked as skipped\n") ); } lacc = g_list_next(lacc); } //auto from payee if( ictx->do_auto_payee == TRUE ) { DB( g_print("\n--3-- call auto payee\n") ); transaction_auto_all_from_payee(txnlist); } //auto assign if( ictx->do_auto_assign == TRUE ) { DB( g_print("\n--4-- call auto assign\n") ); transaction_auto_assign(txnlist, 0, FALSE); } //check for ofx internal xfer if( nbofxtxn > 0 ) { DB( g_print("\n--5-- call hb_import_gen_xfer_eval\n") ); hb_import_gen_xfer_eval(ictx, txnlist); } DB( g_print("\n--end-- adding %d changes\n", changes) ); GLOBALS->changes_count += changes; g_list_free(txnlist); } #if MYDEBUG void _import_context_debug_file_list(ImportContext *ctx) { GList *list; g_print("\n--debug-- file list %d\n", g_list_length(ctx->gen_lst_file) ); list = g_list_first(ctx->gen_lst_file); while (list != NULL) { GenFile *item = list->data; g_print(" genfile: %d '%s' '%s'\ndf=%d invalid=%d\n", item->key, item->filepath, item->encoding, item->datefmt, item->invaliddatefmt); list = g_list_next(list); } } void _import_context_debug_acc_list(ImportContext *ctx) { GList *list; g_print("\n--debug-- acc list %d\n", g_list_length(ctx->gen_lst_acc) ); list = g_list_first(ctx->gen_lst_acc); while (list != NULL) { GenAcc *item = list->data; g_print(" genacc: %d %s %s => %d\n", item->key, item->name, item->number, item->kacc); list = g_list_next(list); } } void _import_context_debug_txn_list(ImportContext *ctx) { GList *list; g_print("\n--debug-- txn list %d\n", g_list_length(ctx->gen_lst_txn) ); list = g_list_first(ctx->gen_lst_txn); while (list != NULL) { GenTxn *item = list->data; g_print(" gentxn: (%d) %s %s (%d) %s %.2f\n", item->kfile, item->account, item->date, item->julian, item->memo, item->amount); list = g_list_next(list); } } #endif homebank-5.9.1/src/hub-transaction.c0000664000175000017500000001137615005634227013045 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hub-transaction.h" #include "hub-account.h" #include "dsp-mainwindow.h" #include "list-operation.h" #include "ui-transaction.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; void ui_hub_transaction_populate(struct hbfile_data *data) { GList *lst_acc, *lnk_acc; GList *lnk_txn; GtkTreeModel *model1, *model2; GtkTreeIter iter; DB( g_print("\n[ui_hub_txn] populate\n") ); model1 = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_txn[HUB_TXN_TYPE_FUTURE])); model2 = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_txn[HUB_TXN_TYPE_REMIND])); gtk_tree_store_clear (GTK_TREE_STORE(model1)); gtk_tree_store_clear (GTK_TREE_STORE(model2)); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; // skip closed in showall mode if( (acc->flags & AF_CLOSED) ) goto next_acc; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; if(txn->date > GLOBALS->today) { gtk_tree_store_insert_with_values(GTK_TREE_STORE(model1), &iter, NULL, -1, MODEL_TXN_POINTER, txn, MODEL_TXN_SPLITAMT, txn->amount, -1); } //if(txn->status == TXN_STATUS_REMIND) if(txn->flags & OF_REMIND) { gtk_tree_store_insert_with_values(GTK_TREE_STORE(model2), &iter, NULL, -1, MODEL_TXN_POINTER, txn, MODEL_TXN_SPLITAMT, txn->amount, -1); } lnk_txn = g_list_next(lnk_txn); } next_acc: lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } static void ui_hub_transaction_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct hbfile_data *data = userdata; Transaction *active_txn; gboolean result; DB( g_print ("\n[ui_hub_txn] row double-clicked\n") ); active_txn = list_txn_get_active_transaction(treeview); if(active_txn) { Transaction *old_txn, *new_txn; old_txn = da_transaction_clone (active_txn); new_txn = active_txn; result = deftransaction_external_edit(GTK_WINDOW(data->window), old_txn, new_txn); if(result == GTK_RESPONSE_ACCEPT) { //#1640885 GLOBALS->changes_count++; ui_hub_transaction_populate(data); //#1824515 when amount change update acc panel //#1845839 every change should update //if( old_txn->amount != new_txn->amount ) ui_hub_account_compute(GLOBALS->mainwindow, NULL); //#1830880 update mainwindow ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } da_transaction_free (old_txn); } } GtkWidget *ui_hub_transaction_create(struct hbfile_data *data, HbHubTxnType type) { GtkWidget *hub, *vbox, *scrollwin, *treeview; DB( g_print("\n[ui_hub_txn] create %d\n", type) ); if( type > HUB_TXN_TYPE_REMIND ) return NULL; hub = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hb_widget_set_margin(GTK_WIDGET(hub), SPACING_SMALL); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hbtk_box_prepend (GTK_BOX (hub), vbox); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); treeview = (GtkWidget *)create_list_transaction(LIST_TXN_TYPE_OTHER, PREFS->lst_ope_columns); list_txn_set_column_acc_visible(GTK_TREE_VIEW(treeview), TRUE); data->LV_txn[type] = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); g_signal_connect (GTK_TREE_VIEW(data->LV_txn[type]), "row-activated", G_CALLBACK (ui_hub_transaction_onRowActivated), data); return hub; } homebank-5.9.1/src/hb-currency.h0000644000175000017500000000461014736461415012170 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_CURRENCY_H__ #define __HB_CURRENCY_H__ #include "hb-types.h" typedef struct _iso4217 Currency4217; struct _currency { guint32 key; gushort flags; gchar *name; gchar *iso_code; gboolean sym_prefix; gchar *symbol; /* max symbol is 3 digits in unicode but mostly is 1 digit */ gchar *decimal_char; gchar *grouping_char; gshort frac_digits; gshort _pad1; gdouble rate; guint32 mdate; /* unsaved datas */ gchar format[8]; /* hold decimal format: '%.xf' */ gchar monfmt[32]; /* hold monetary format: 'prefix %s suffix' */ }; // 0 is free #define CF_CUSTOM (1<<1) struct _iso4217 { gchar *curr_iso_code; guint curr_frac_digit; gchar *curr_dec_char; gchar *curr_grp_char; gboolean curr_is_prefix; gchar *curr_symbol; gchar *name; }; void da_cur_free(Currency *item); Currency *da_cur_malloc(void); void da_cur_destroy(void); void da_cur_new(void); guint da_cur_length(void); gboolean da_cur_delete(guint32 key); void da_cur_init_from4217(Currency *cur, Currency4217 *curfmt); void da_cur_initformat(Currency *item); gboolean da_cur_insert(Currency *item); gboolean da_cur_append(Currency *item); guint32 da_cur_get_max_key(void); Currency *da_cur_get_by_name(gchar *name); Currency *da_cur_get_by_iso_code(gchar *iso_code); Currency *da_cur_get(guint32 key); void currency_get_system_iso(void); gboolean currency_is_euro(guint32 key); gboolean currency_is_used(guint32 key); Currency *currency_add_from_user(Currency4217 *curfmt); gboolean currency_online_sync(GError **error, GString *node); Currency4217 *iso4217format_get(gchar *code); #endif homebank-5.9.1/src/hb-encoding.c0000644000175000017500000001757214736461407012133 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-encoding.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* * The original versions of the following tables are taken from profterm * * Copyright (C) 2002 Red Hat, Inc. */ static const GeditEncoding utf8_encoding = { GEDIT_ENCODING_UTF_8, "UTF-8", "Unicode" }; static const GeditEncoding encodings [] = { { GEDIT_ENCODING_ISO_8859_1, "ISO-8859-1", "Western" }, { GEDIT_ENCODING_ISO_8859_2, "ISO-8859-2", "Central European" }, { GEDIT_ENCODING_ISO_8859_3, "ISO-8859-3", "South European" }, { GEDIT_ENCODING_ISO_8859_4, "ISO-8859-4", "Baltic" }, { GEDIT_ENCODING_ISO_8859_5, "ISO-8859-5", "Cyrillic" }, { GEDIT_ENCODING_ISO_8859_6, "ISO-8859-6", "Arabic" }, { GEDIT_ENCODING_ISO_8859_7, "ISO-8859-7", "Greek" }, { GEDIT_ENCODING_ISO_8859_8, "ISO-8859-8", "Hebrew Visual" }, { GEDIT_ENCODING_ISO_8859_8_I, "ISO-8859-8-I", "Hebrew" }, { GEDIT_ENCODING_ISO_8859_9, "ISO-8859-9", "Turkish" }, { GEDIT_ENCODING_ISO_8859_10, "ISO-8859-10", "Nordic" }, { GEDIT_ENCODING_ISO_8859_13, "ISO-8859-13", "Baltic" }, { GEDIT_ENCODING_ISO_8859_14, "ISO-8859-14", "Celtic" }, { GEDIT_ENCODING_ISO_8859_15, "ISO-8859-15", "Western" }, { GEDIT_ENCODING_ISO_8859_16, "ISO-8859-16", "Romanian" }, { GEDIT_ENCODING_UTF_7, "UTF-7", "Unicode" }, { GEDIT_ENCODING_UTF_16, "UTF-16", "Unicode" }, { GEDIT_ENCODING_UTF_16_BE, "UTF-16BE", "Unicode" }, { GEDIT_ENCODING_UTF_16_LE, "UTF-16LE", "Unicode" }, { GEDIT_ENCODING_UTF_32, "UTF-32", "Unicode" }, { GEDIT_ENCODING_UCS_2, "UCS-2", "Unicode" }, { GEDIT_ENCODING_UCS_4, "UCS-4", "Unicode" }, { GEDIT_ENCODING_ARMSCII_8, "ARMSCII-8", "Armenian" }, { GEDIT_ENCODING_BIG5, "BIG5", "Chinese Traditional" }, { GEDIT_ENCODING_BIG5_HKSCS, "BIG5-HKSCS", "Chinese Traditional" }, { GEDIT_ENCODING_CP_866, "CP866", "Cyrillic/Russian" }, { GEDIT_ENCODING_EUC_JP, "EUC-JP", "Japanese" }, { GEDIT_ENCODING_EUC_JP_MS, "EUC-JP-MS", "Japanese" }, { GEDIT_ENCODING_CP932, "CP932", "Japanese" }, { GEDIT_ENCODING_EUC_KR, "EUC-KR", "Korean" }, { GEDIT_ENCODING_EUC_TW, "EUC-TW", "Chinese Traditional" }, { GEDIT_ENCODING_GB18030, "GB18030", "Chinese Simplified" }, { GEDIT_ENCODING_GB2312, "GB2312", "Chinese Simplified" }, { GEDIT_ENCODING_GBK, "GBK", "Chinese Simplified" }, { GEDIT_ENCODING_GEOSTD8, "GEORGIAN-ACADEMY", "Georgian" }, /* FIXME GEOSTD8 ? */ { GEDIT_ENCODING_HZ, "HZ", "Chinese Simplified" }, { GEDIT_ENCODING_IBM_850, "IBM850", "Western" }, { GEDIT_ENCODING_IBM_852, "IBM852", "Central European" }, { GEDIT_ENCODING_IBM_855, "IBM855", "Cyrillic" }, { GEDIT_ENCODING_IBM_857, "IBM857", "Turkish" }, { GEDIT_ENCODING_IBM_862, "IBM862", "Hebrew" }, { GEDIT_ENCODING_IBM_864, "IBM864", "Arabic" }, { GEDIT_ENCODING_ISO_2022_JP, "ISO-2022-JP", "Japanese" }, { GEDIT_ENCODING_ISO_2022_KR, "ISO-2022-KR", "Korean" }, { GEDIT_ENCODING_ISO_IR_111, "ISO-IR-111", "Cyrillic" }, { GEDIT_ENCODING_JOHAB, "JOHAB", "Korean" }, { GEDIT_ENCODING_KOI8_R, "KOI8R", "Cyrillic" }, { GEDIT_ENCODING_KOI8__R, "KOI8-R", "Cyrillic" }, { GEDIT_ENCODING_KOI8_U, "KOI8U", "Cyrillic/Ukrainian" }, { GEDIT_ENCODING_SHIFT_JIS, "SHIFT_JIS", "Japanese" }, { GEDIT_ENCODING_TCVN, "TCVN", "Vietnamese" }, { GEDIT_ENCODING_TIS_620, "TIS-620", "Thai" }, { GEDIT_ENCODING_UHC, "UHC", "Korean" }, { GEDIT_ENCODING_VISCII, "VISCII", "Vietnamese" }, { GEDIT_ENCODING_WINDOWS_1250, "WINDOWS-1250", "Central European" }, { GEDIT_ENCODING_WINDOWS_1251, "WINDOWS-1251", "Cyrillic" }, { GEDIT_ENCODING_WINDOWS_1252, "WINDOWS-1252", "Western" }, { GEDIT_ENCODING_WINDOWS_1253, "WINDOWS-1253", "Greek" }, { GEDIT_ENCODING_WINDOWS_1254, "WINDOWS-1254", "Turkish" }, { GEDIT_ENCODING_WINDOWS_1255, "WINDOWS-1255", "Hebrew" }, { GEDIT_ENCODING_WINDOWS_1256, "WINDOWS-1256", "Arabic" }, { GEDIT_ENCODING_WINDOWS_1257, "WINDOWS-1257", "Baltic" }, { GEDIT_ENCODING_WINDOWS_1258, "WINDOWS-1258", "Vietnamese" } }; const GeditEncoding * gedit_encoding_get_from_index (gint index) { //g_return_val_if_fail (index >= 0, NULL); if (index >= GEDIT_ENCODING_LAST) return NULL; //gedit_encoding_lazy_init (); return &encodings [index]; } const GeditEncoding * gedit_encoding_get_utf8 (void) { //gedit_encoding_lazy_init (); return &utf8_encoding; } static gchar *homebank_utf8_convert(gchar *buffer, const gchar **charset) { GError *conv_error; gchar* conv_buffer = NULL; gsize new_len; guint i; gboolean valid; const struct _GeditEncoding *enc; DB( g_print("(homebank) homebank_utf8_convert\n") ); for (i=0 ; i should try %s\n", enc->charset) ); conv_buffer = g_convert(buffer, -1, "UTF-8", enc->charset, NULL, &new_len, &conv_error); valid = g_utf8_validate (conv_buffer, -1, NULL); if ((conv_error != NULL) || !valid ) { DB( g_print (" -> Couldn't convert from %s to UTF-8.\n", enc->charset) ); } else { DB( g_print (" -> file compatible with '%s'\n", enc->charset) ); if(charset != NULL) *charset = enc->charset; return conv_buffer; } } if(charset != NULL) *charset = NULL; return NULL; } /* * Ensure a buffer to be utf-8, and convert if necessary * */ gchar *homebank_utf8_ensure(gchar *buffer) { gboolean isvalid; gchar *converted; DB( g_print("(homebank) homebank_utf8_ensure\n") ); if(buffer == NULL) return NULL; isvalid = g_utf8_validate(buffer, -1, NULL); DB( g_print(" -> is valid utf8: %d\n", isvalid) ); if(!isvalid) { converted = homebank_utf8_convert(buffer, NULL); if(converted != NULL) { //g_warn here ? g_free(buffer); return converted; } //g_warn here ? } return buffer; } const gchar *homebank_file_getencoding(gchar *filename) { const gchar *charset = NULL; gchar *buffer; gsize length; GError *error = NULL; gboolean isutf8; const gchar *locale_charset; const struct _GeditEncoding *enc; DB( g_print("(homebank) test encoding\n") ); if (g_get_charset (&locale_charset) == FALSE) { //unknown_encoding.charset = g_strdup (locale_charset); } DB( g_print(" -> locale charset is '%s'\n", locale_charset) ); if (g_file_get_contents (filename, &buffer, &length, &error)) { isutf8 = g_utf8_validate(buffer, -1, NULL); DB( g_print(" -> is valid utf8: %d\n", isutf8) ); if( isutf8 == FALSE ) { gchar *converted; converted = homebank_utf8_convert(buffer, &charset); DB( g_print(" -> converted charset match: '%s'\n", charset) ); DB( g_print(" -> converted: '%p' %s\n", converted, converted) ); if(converted != NULL) g_free(converted); } else { enc = gedit_encoding_get_utf8(); charset = enc->charset; } g_free(buffer); } DB( g_print (" -> charset is '%s'\n", charset) ); return charset; } homebank-5.9.1/src/ui-flt-widget.c0000664000175000017500000003254715005624220012420 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "ui-filter.h" #include "ui-flt-widget.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; gboolean ui_flt_popover_hub_set (GtkBox *box, gint active_key); /* = = = = = = = = = = = = = = = = */ /* ** ** The function should return: ** a negative integer if the first value comes before the second, ** 0 if they are equal, ** or a positive integer if the first value comes after the second. */ static gint lst_favfilter_model_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint retval = 0; guint32 key1, key2; gchar *name1, *name2; gtk_tree_model_get(model, a, LST_FAVFLT_KEY, &key1, -1); gtk_tree_model_get(model, b, LST_FAVFLT_KEY, &key2, -1); if( !key1 ) { retval = -1; } else if( !key2 ) { retval = 1; } else { gtk_tree_model_get(model, a, LST_FAVFLT_NAME, &name1, -1); gtk_tree_model_get(model, b, LST_FAVFLT_NAME, &name2, -1); retval = hb_string_utf8_compare(name1, name2); g_free(name2); g_free(name1); } return retval; } static gboolean lst_favfilter_get_iter(GtkTreeModel *model, gint key, GtkTreeIter *return_iter) { GtkTreeIter iter; gboolean match = FALSE; if (gtk_tree_model_get_iter_first (model, &iter)) do { gint tmpkey; gtk_tree_model_get (model, &iter, LST_FAVFLT_KEY, &tmpkey, -1); match = (tmpkey == key) ? TRUE : FALSE; if (match) { *return_iter = iter; break; } } while (gtk_tree_model_iter_next (model, &iter)); return match; } GtkListStore * lst_lst_favfilter_model_new(void) { GtkListStore *store; GtkTreeIter iter; store = gtk_list_store_new (2, G_TYPE_INT, G_TYPE_STRING); // insert none gtk_list_store_insert_with_values(store, &iter, 0, LST_FAVFLT_KEY, 0, LST_FAVFLT_NAME, _("(default)"), -1); gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), lst_favfilter_model_compare_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); return store; } /* = = = = = = = = = = = = = = = = */ void ui_flt_manage_header_sensitive(GtkWidget *widget, gpointer user_data) { struct ui_flt_popover_data *data; gboolean sensitive = FALSE; Filter *curflt; DB( g_print("\n[Fav Filters] sensitive\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_BOX)), "inst_data"); //curflt = ui_flt_popover_hub_get(GTK_BOX(data->box), NULL); curflt = data->filter; DB( g_print(" key: %d '%s', changes:%d\n", curflt->key, curflt->name, curflt->nbchanges) ); gtk_widget_set_tooltip_text(data->combobox, curflt->name); sensitive = (curflt->nbchanges > 0) ? TRUE : FALSE; //key 0 disable all sensitive = curflt->key == 0 ? FALSE : sensitive; g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "save")), sensitive); //gtk_widget_set_sensitive(data->MI_sav, sensitive); //gtk_widget_set_sensitive(data->BT_sav, sensitive); //we can always saveas sensitive = (curflt->key == 0) ? FALSE : TRUE; g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "rename")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "delete")), sensitive); //gtk_widget_set_sensitive(data->MI_ren, sensitive); //gtk_widget_set_sensitive(data->MI_del, sensitive); } static void ui_flt_manage_header_action_del(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_flt_popover_data *data = user_data; Filter *curflt; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("\n[Fav Filters] action del\n") ); curflt = ui_flt_popover_hub_get(GTK_BOX(data->box), NULL); if( curflt ) { DB( g_print(" flt:%d '%s'\n", curflt->key, curflt->name) ); //TODO: add refcount test + confirmation here //TODO: remove from model model = gtk_combo_box_get_model (GTK_COMBO_BOX(data->combobox)); lst_favfilter_get_iter(model, curflt->key, &iter); gtk_list_store_remove(GTK_LIST_STORE(model), &iter); da_flt_remove(curflt->key); //set to none gtk_combo_box_set_active(GTK_COMBO_BOX(data->combobox), 0); GLOBALS->changes_count++; } } static void ui_flt_manage_header_action_ren (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_flt_popover_data *data = user_data; GtkTreeIter iter; Filter *curflt; DB( g_print("\n[Fav Filters] action rename\n") ); if( gtk_combo_box_get_active_iter(GTK_COMBO_BOX(data->combobox), &iter) ) { gint key; gtk_tree_model_get(GTK_TREE_MODEL(GLOBALS->fltmodel), &iter, LST_FAVFLT_KEY, &key, -1); curflt = da_flt_get(key); if( curflt && curflt->key > 0 ) { DB( g_print(" flt:%d '%s'\n", curflt->key, curflt->name) ); gchar *rawname = dialog_get_name(_("Filter rename"), curflt->name, data->parent); if(rawname != NULL) { //TODO: maybe, no unique label for now if( g_strcmp0(curflt->name, rawname) ) { GValue gvalue = G_VALUE_INIT; g_free(curflt->name); curflt->name = rawname; g_value_init (&gvalue, G_TYPE_STRING); g_value_set_string (&gvalue, (const gchar*)rawname); gtk_list_store_set_value(GLOBALS->fltmodel, &iter, LST_FAVFLT_NAME, &gvalue); GLOBALS->changes_count++; } } } } } static void ui_flt_manage_header_action_new (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_flt_popover_data *data = user_data; Filter *curflt, *newflt; gchar *newname; DB( g_print("\n[Fav Filters] action save as\n") ); newname = g_strdup_printf(_("New filter %d"), da_flt_get_max_key()); gchar *rawname = dialog_get_name(_("Filter name"), newname, data->parent); g_free(newname); if( rawname != NULL ) { curflt = ui_flt_popover_hub_get(GTK_BOX(data->box), NULL); newflt = da_flt_malloc(); if(curflt == NULL) curflt = data->filter; if(curflt && newflt) { da_flt_copy(curflt, newflt); g_free(newflt->name); newflt->name = rawname; da_flt_append(newflt); GLOBALS->changes_count++; } //set combo to new filter ui_flt_popover_hub_set(GTK_BOX(data->box), newflt->key); } } static void ui_flt_manage_header_action_sav (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_flt_popover_data *data = user_data; Filter *curflt; DB( g_print("\n[Fav Filters] action save\n") ); curflt = ui_flt_popover_hub_get(GTK_BOX(data->box), NULL); if( curflt && data->filter ) { data->filter->nbchanges = 0; da_flt_copy(data->filter, curflt); ui_flt_manage_header_sensitive(data->box, NULL); GLOBALS->changes_count++; } } gboolean ui_flt_popover_hub_set (GtkBox *box, gint active_key) { struct ui_flt_popover_data *data; GtkTreeModel *model; GtkTreeIter iter; gboolean match = FALSE; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(box), GTK_TYPE_BOX)), "inst_data"); model = gtk_combo_box_get_model (GTK_COMBO_BOX(data->combobox)); if (gtk_tree_model_get_iter_first (model, &iter)) do { gint key; gtk_tree_model_get (model, &iter, LST_FAVFLT_KEY, &key, -1); match = (key == active_key) ? TRUE : FALSE; if (match) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX(data->combobox), &iter); break; } } while (gtk_tree_model_iter_next (model, &iter)); return match; } Filter * ui_flt_popover_hub_get (GtkBox *box, gpointer user_data) { struct ui_flt_popover_data *data; Filter *item = NULL; GtkTreeIter iter; //DB( g_print("\n[Fav Filters] get key\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(box), GTK_TYPE_BOX)), "inst_data"); if( gtk_combo_box_get_active_iter(GTK_COMBO_BOX(data->combobox), &iter) ) { gint key; gtk_tree_model_get(GTK_TREE_MODEL(GLOBALS->fltmodel), &iter, 0, &key, -1); item = da_flt_get(key); //DB( g_print(" found: %p for k:%d\n", item, key) ); } return item; } void ui_flt_popover_hub_save (GtkWidget *widget, gpointer user_data) { struct ui_flt_popover_data *data; GAction *action; DB( g_print("\n[Fav Filters] external save\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_BOX)), "inst_data"); //we need to call sensitive here to enable save ui_flt_manage_header_sensitive(data->box, NULL); action = g_action_map_lookup_action (G_ACTION_MAP (data->actions), "save"); g_action_activate(action, NULL); } GtkWidget * ui_flt_popover_hub_get_combobox (GtkBox *box, gpointer user_data) { struct ui_flt_popover_data *data; DB( g_print("\n[Fav Filters] get combobox\n") ); if(!GTK_IS_BOX(box)) return NULL; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(box), GTK_TYPE_BOX)), "inst_data"); return data->combobox; } static GtkWidget * hbtk_kvcombobox_new () { GtkWidget *p_combo; GtkCellRenderer *p_cell = NULL; p_combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(GLOBALS->fltmodel)); p_cell = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (p_combo), p_cell, FALSE); gtk_cell_layout_set_attributes ( GTK_CELL_LAYOUT (p_combo), p_cell, "text", 1, NULL ); /*g_object_set(p_cell, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 20, NULL); */ gtk_combo_box_set_active(GTK_COMBO_BOX(p_combo), 0); return p_combo; } static const GActionEntry favflt_actions[] = { // name, function(), type, state, { "save" , ui_flt_manage_header_action_sav , NULL, NULL , NULL, {0,0,0} }, { "new" , ui_flt_manage_header_action_new , NULL, NULL , NULL, {0,0,0} }, { "rename" , ui_flt_manage_header_action_ren , NULL, NULL , NULL, {0,0,0} }, { "delete" , ui_flt_manage_header_action_del , NULL, NULL , NULL, {0,0,0} }, }; static GtkWidget * ui_flt_dialog_create_menubutton (struct ui_flt_popover_data *data) { GtkWidget *button, *image; GMenu *menu, *section; menu = g_menu_new (); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Save") , "favfltactions.save"); g_menu_append (section, _("_Save as..."), "favfltactions.new"); g_menu_append (section, _("_Rename...") , "favfltactions.rename"); g_menu_append (section, _("_Delete...") , "favfltactions.delete"); g_object_unref (section); GSimpleActionGroup *group = g_simple_action_group_new (); data->actions = group; g_action_map_add_action_entries (G_ACTION_MAP (group), favflt_actions, G_N_ELEMENTS (favflt_actions), data); button = gtk_menu_button_new(); gtk_menu_button_set_direction (GTK_MENU_BUTTON(button), GTK_ARROW_DOWN); gtk_widget_set_halign (button, GTK_ALIGN_END); image = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_BUTTON_MENU); g_object_set (button, "image", image, NULL); gtk_widget_insert_action_group (button, "favfltactions", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu)); return button; } static void ui_flt_popover_hub_destroy ( GtkWidget *widget, gpointer user_data ) { struct ui_flt_popover_data *data; data = g_object_get_data(G_OBJECT(widget), "inst_data"); DB( g_print ("\n\n[Fav Filters] destroy event occurred\n") ); DB( g_print(" - box=%p, inst_data=%p\n", widget, data) ); g_free(data); } //only used in stats GtkWidget * create_popover_widget (GtkWindow *parent, Filter *filter) { struct ui_flt_popover_data *data; GtkWidget *hbox, *widget; GtkWidget *prtbox; DB( g_print ("\n\n[Fav Filters] new\n") ); data = g_malloc0(sizeof(struct ui_flt_popover_data)); if(!data) return NULL; data->filter = filter; data->parent = parent; prtbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); data->box = prtbox; //hb_widget_set_margin(prtbox, SPACING_SMALL); g_object_set_data(G_OBJECT(prtbox), "inst_data", (gpointer)data); DB( g_print(" - box=%p, inst_data=%p\n", prtbox, data) ); // connect our dispose function g_signal_connect (prtbox, "destroy", G_CALLBACK (ui_flt_popover_hub_destroy), (gpointer)data); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (prtbox), hbox); widget = hbtk_kvcombobox_new(); data->combobox = widget; hbtk_box_prepend (GTK_BOX (hbox), widget); widget = ui_flt_dialog_create_menubutton(data); data->menubutton = widget; gtk_box_prepend (GTK_BOX (hbox), widget); ui_flt_manage_header_sensitive(prtbox, data); return prtbox; } homebank-5.9.1/src/hb-category.h0000644000175000017500000000555714765331123012160 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_CATEGORY_H__ #define __HB_CATEGORY_H__ #include "hb-types.h" struct _category { guint32 key; guint32 parent; gushort flags; gushort _pad1; gchar *name; gdouble budget[13]; //0:is same value, 1 ..12 are months /* unsaved datas */ gchar *fullname; gchar *typename; //gboolean flt_select; guint16 nb_use_txn; guint16 nb_use_txncat; //cat usage only guint16 nb_use_all; guint16 nb_use_allcat; //cat usage only }; #define GF_SUB (1<<0) //? useful as we can check item->parent= 0 #define GF_INCOME (1<<1) #define GF_CUSTOM (1<<2) #define GF_BUDGET (1<<3) #define GF_FORCED (1<<4) #define GF_MIXED (1<<5) //#1740368 if cat has mixed exp/inc type #define GF_HIDDEN (1<<8) //hidden by user Category *da_cat_clone(Category *src_item); void da_cat_free(Category *item); Category *da_cat_malloc(void); void da_cat_destroy(void); void da_cat_new(void); guint da_cat_length(void); guint32 da_cat_get_max_key(void); guint32 da_cat_delete(guint32 key); gboolean da_cat_insert(Category *acc); gboolean da_cat_append(Category *cat); Category *da_cat_append_ifnew_by_fullname(gchar *rawfullname); Category *da_cat_get(guint32 key); gchar *da_cat_get_name(Category *item); Category *da_cat_get_by_fullname(gchar *rawfullname); void da_cat_consistency(Category *item); void da_cat_anonymize(Category *item); GList *category_glist_sorted(gint column); gboolean category_key_budget_active(guint32 key); gboolean category_key_unbudgeted(guint32 key); guint32 category_report_id(guint32 key, gboolean subcat); gint category_delete_unused(void); void category_fill_usage(void); void category_move(guint32 srckey, guint32 newkey, gboolean dosubcat); gboolean category_rename(Category *item, const gchar *newname); gchar *category_find_preset(gchar **lang); gint category_type_get(Category *item); gint category_root_type_get(guint32 key); gchar category_get_type_char(Category *item); gint category_change_type(Category *item, gboolean isIncome, gboolean doChild); gboolean category_load_csv(gchar *filename, gchar **error); gboolean category_save_csv(gchar *filename, gchar **error); #endif homebank-5.9.1/src/hb-group.c0000664000175000017500000001172114736461407011471 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-group.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void da_grp_free(Group *item) { DB( g_print("da_group_free\n") ); if(item != NULL) { DB( g_print(" => %d, %s\n", item->key, item->name) ); g_free(item->name); g_free(item); } } Group *da_grp_malloc(void) { DB( g_print("da_group_malloc\n") ); return g_malloc0(sizeof(Group)); } void da_grp_destroy(void) { DB( g_print("da_group_destroy\n") ); g_hash_table_destroy(GLOBALS->h_grp); } void da_grp_new(void) { Group *item; DB( g_print("da_group_new\n") ); GLOBALS->h_grp = g_hash_table_new_full(g_int_hash, g_int_equal, (GDestroyNotify)g_free, (GDestroyNotify)da_grp_free); // insert our 'no group' item = da_grp_malloc(); item->name = g_strdup(""); da_grp_insert(item); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ guint da_grp_length(void) { return g_hash_table_size(GLOBALS->h_grp); } static void da_grp_max_key_ghfunc(gpointer key, Group *item, guint32 *max_key) { *max_key = MAX(*max_key, item->key); } guint32 da_grp_get_max_key(void) { guint32 max_key = 0; g_hash_table_foreach(GLOBALS->h_grp, (GHFunc)da_grp_max_key_ghfunc, &max_key); return max_key; } gboolean da_grp_remove(guint32 key) { DB( g_print("da_grp_remove %d\n", key) ); return g_hash_table_remove(GLOBALS->h_grp, &key); } gboolean da_grp_insert(Group *item) { guint32 *new_key; DB( g_print("da_grp_insert\n") ); new_key = g_new0(guint32, 1); *new_key = item->key; g_hash_table_insert(GLOBALS->h_grp, new_key, item); return TRUE; } gboolean da_grp_append(Group *item) { Group *existitem; DB( g_print("da_grp_append\n") ); existitem = da_grp_get_by_name( item->name); if( existitem == NULL ) { item->key = da_grp_get_max_key() + 1; da_grp_insert(item); return TRUE; } DB( g_print(" -> %s already exist: %d\n", item->name, item->key) ); return FALSE; } Group * da_grp_get_by_name(gchar *rawname) { Group *retval = NULL; gchar *stripname; GHashTableIter iter; gpointer key, value; DB( g_print("da_grp_get_by_name\n") ); if( rawname ) { stripname = g_strdup(rawname); g_strstrip(stripname); if( strlen(stripname) > 0 ) { g_hash_table_iter_init (&iter, GLOBALS->h_grp); while (g_hash_table_iter_next (&iter, &key, &value)) { Group *item = value; //if( item->type != type ) // continue; if( stripname && item->name ) { if(!strcasecmp(stripname, item->name)) { retval = item; break; } } } } g_free(stripname); } return retval; } Group * da_grp_get(guint32 key) { //DB( g_print("da_grp_get\n") ); return g_hash_table_lookup(GLOBALS->h_grp, &key); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void group_delete_unused(void) { guint32 i, max_key; gboolean *used; GList *lst_acc, *lnk_acc; max_key = da_grp_get_max_key(); used = g_malloc0((max_key + 1) * sizeof(gboolean)); if( used ) { // collect usage lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; if(acc) used[acc->kgrp] = TRUE; lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); //clean unused for(i=1;iname) ); da_grp_remove(i); } } } g_free(used); } } static gint group_glist_name_compare_func(Group *a, Group *b) { return hb_string_utf8_compare(a->name, b->name); } static gint group_glist_key_compare_func(Group *a, Group *b) { return a->key - b->key; } GList *group_glist_sorted(gint column) { GList *list = g_hash_table_get_values(GLOBALS->h_grp); switch(column) { case HB_GLIST_SORT_NAME: return g_list_sort(list, (GCompareFunc)group_glist_name_compare_func); break; //case HB_GLIST_SORT_KEY: default: return g_list_sort(list, (GCompareFunc)group_glist_key_compare_func); break; } } homebank-5.9.1/src/hb-import-ofx.c0000664000175000017500000002672214736461407012450 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-import.h" #ifndef NOOFX #include #endif /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; #ifndef NOOFX /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /** * ofx_proc_account_cb: * * The ofx_proc_account_cb event is always generated first, to allow the application to create accounts * or ask the user to match an existing account before the ofx_proc_statement and ofx_proc_transaction * event are received. An OfxAccountData is passed to this event. * */ static LibofxProcStatementCallback ofx_proc_account_cb(const struct OfxAccountData data, ImportContext *ctx) { GenAcc *genacc; Account *dst_acc; DB( g_print("** ofx_proc_account_cb()\n") ); if(data.account_id_valid==true) { DB( g_print(" account_id: %s\n", data.account_id) ); DB( g_print(" account_name: %s\n", data.account_name) ); } //if(data.account_number_valid==true) //{ DB( g_print(" account_number: %s\n", data.account_number) ); //} if(data.account_type_valid==true) { DB( g_print(" account_type: %d\n", data.account_type) ); /* enum: OFX_CHECKING A standard checking account OFX_SAVINGS A standard savings account OFX_MONEYMRKT A money market account OFX_CREDITLINE A line of credit OFX_CMA Cash Management Account OFX_CREDITCARD A credit card account OFX_INVESTMENT An investment account */ } if(data.currency_valid==true) { DB( g_print(" currency: %s\n", data.currency) ); } //todo: normally should check for validity here // in every case we create an account here DB( g_print(" -> create generic account: '%s':'%s'\n", data.account_id, data.account_name) ); genacc = hb_import_gen_acc_get_next (ctx, FILETYPE_OFX, (gchar *)data.account_name, (gchar *)data.account_id); ctx->curr_acc_isnew = TRUE; dst_acc = hb_import_acc_find_existing((gchar *)data.account_name, (gchar *)data.account_id ); if( dst_acc != NULL ) { genacc->kacc = dst_acc->key; ctx->curr_acc_isnew = FALSE; if(dst_acc->type == ACC_TYPE_CREDITCARD) genacc->is_ccard = TRUE; } ctx->curr_acc = genacc; DB( fputs("\n",stdout) ); return 0; } /** * ofx_proc_statement_cb: * * The ofx_proc_statement_cb event is sent after all ofx_proc_transaction events have been sent. * An OfxStatementData is passed to this event. * */ static LibofxProcStatementCallback ofx_proc_statement_cb(const struct OfxStatementData data, ImportContext *ctx) { DB( g_print("** ofx_proc_statement_cb()\n") ); #if MYDEBUG == 1 if(data.ledger_balance_date_valid==true) { struct tm temp_tm; temp_tm = *localtime(&(data.ledger_balance_date)); g_print("ledger_balance_date : %d%s%d%s%d%s", temp_tm.tm_mday, "/", temp_tm.tm_mon+1, "/", temp_tm.tm_year+1900, "\n"); } #endif if(data.ledger_balance_valid==true) { if( ctx->curr_acc != NULL && ctx->curr_acc_isnew == TRUE ) { ctx->curr_acc->initial = data.ledger_balance; } DB( g_print("ledger_balance: $%.2f%s",data.ledger_balance,"\n") ); } return 0; } /** * ofx_proc_statement_cb: * * An ofx_proc_transaction_cb event is generated for every transaction in the ofx response, * after ofx_proc_statement (and possibly ofx_proc_security is generated. * An OfxTransactionData structure is passed to this event. * */ static LibofxProcStatementCallback ofx_proc_transaction_cb(const struct OfxTransactionData data, ImportContext *ctx) { struct tm *temp_tm; GDate date; GenTxn *gentxn; guint row = 0; DB( g_print("** ofx_proc_transaction_cb()\n") ); gentxn = da_gen_txn_malloc(); // date gentxn->julian = 0; if(data.date_posted_valid && (data.date_posted != 0)) { temp_tm = localtime(&data.date_posted); if( temp_tm != 0) { g_date_set_dmy(&date, temp_tm->tm_mday, temp_tm->tm_mon+1, temp_tm->tm_year+1900); gentxn->julian = g_date_get_julian(&date); } } else if (data.date_initiated_valid && (data.date_initiated != 0)) { temp_tm = localtime(&data.date_initiated); if( temp_tm != 0) { g_date_set_dmy(&date, temp_tm->tm_mday, temp_tm->tm_mon+1, temp_tm->tm_year+1900); gentxn->julian = g_date_get_julian(&date); } } // amount if(data.amount_valid==true) { gentxn->amount = data.amount; } // 5.5.1 add fitid if(data.fi_id_valid==true) { gentxn->fitid = g_strdup(data.fi_id); } // check number :: The check number is most likely an integer and can probably be converted properly with atoi(). //However the spec allows for up to 12 digits, so it is not garanteed to work if(data.check_number_valid==true) { gentxn->rawnumber = g_strdup(data.check_number); } //todo: reference_number ?Might present in addition to or instead of a check_number. Not necessarily a number // ofx:name = Can be the name of the payee or the description of the transaction if(data.name_valid==true) { gentxn->rawpayee = g_strdup(data.name); } //memo ( new for v4.2) #319202 Extra information not included in name DB( g_print(" -> memo is='%d'\n", data.memo_valid) ); if(data.memo_valid==true) { gentxn->rawmemo = g_strdup(data.memo); } // payment if(data.transactiontype_valid==true) { switch(data.transactiontype) { //#740373 case OFX_CREDIT: if(gentxn->amount < 0) gentxn->amount *= -1; break; case OFX_DEBIT: if(gentxn->amount > 0) gentxn->amount *= -1; break; case OFX_INT: gentxn->paymode = PAYMODE_XFER; break; case OFX_DIV: gentxn->paymode = PAYMODE_XFER; break; case OFX_FEE: gentxn->paymode = PAYMODE_FEE; break; case OFX_SRVCHG: gentxn->paymode = PAYMODE_XFER; break; case OFX_DEP: gentxn->paymode = PAYMODE_DEPOSIT; break; case OFX_ATM: gentxn->paymode = PAYMODE_CASH; break; case OFX_POS: if(ctx->curr_acc && ctx->curr_acc->is_ccard == TRUE) gentxn->paymode = PAYMODE_CCARD; else gentxn->paymode = PAYMODE_DCARD; break; case OFX_XFER: gentxn->paymode = PAYMODE_XFER; break; case OFX_CHECK: gentxn->paymode = PAYMODE_CHECK; break; case OFX_PAYMENT: gentxn->paymode = PAYMODE_EPAYMENT; break; case OFX_CASH: gentxn->paymode = PAYMODE_CASH; break; case OFX_DIRECTDEP: gentxn->paymode = PAYMODE_DEPOSIT; break; case OFX_DIRECTDEBIT: //1854953: directdebit not adding in 4.6 //gentxn->paymode = PAYMODE_XFER; gentxn->paymode = PAYMODE_DIRECTDEBIT; break; case OFX_REPEATPMT: gentxn->paymode = PAYMODE_REPEATPMT; break; case OFX_OTHER: break; default : break; } } if( ctx->curr_acc ) { //5.8 #2063416 same date txn gentxn->row = row++; gentxn->account = g_strdup(ctx->curr_acc->name); #if MYDEBUG == 1 if(gentxn->rawnumber) g_print(" len number %d %ld\n", (int)strlen(gentxn->rawnumber) , g_utf8_strlen(gentxn->rawnumber, -1)); if(gentxn->rawmemo) g_print(" len memo %d %ld\n", (int)strlen(gentxn->rawmemo) , g_utf8_strlen(gentxn->rawmemo, -1)); if(gentxn->rawpayee) g_print(" len name %d %ld\n", (int)strlen(gentxn->rawpayee), g_utf8_strlen(gentxn->rawpayee, -1)); #endif //#1842935 workaround for libofx truncate bug that can leave invalid UTF-8 string //NAME = A-32 (96 allowed) #if( (GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION >= 52) ) if( gentxn->rawpayee && g_utf8_strlen(gentxn->rawpayee, -1) > 32 ) { gchar *oldtxt = gentxn->rawpayee; DB( g_print(" ensure UTF-8 for truncated NAME='%s'\n", oldtxt) ); gentxn->rawpayee = g_utf8_make_valid(oldtxt, -1); g_free(oldtxt); } #endif //TODO: maybe MEMO = A-255 /* ensure utf-8 here, has under windows, libofx not always return utf-8 as it should */ #ifndef G_OS_UNIX DB( g_print(" ensure UTF-8\n") ); gentxn->rawnumber = homebank_utf8_ensure(gentxn->rawnumber); gentxn->rawmemo = homebank_utf8_ensure(gentxn->rawmemo); gentxn->rawpayee = homebank_utf8_ensure(gentxn->rawpayee); #endif da_gen_txn_append(ctx, gentxn); DB( g_print(" insert gentxn: acc=%s\n", gentxn->account) ); if( ctx->curr_acc_isnew == TRUE ) { DB( g_print(" sub amount from initial\n") ); ctx->curr_acc->initial -= data.amount; } } else { da_gen_txn_free(gentxn); DB( g_print(" no account, insert txn skipped\n") ); } return 0; } static LibofxProcStatusCallback ofx_proc_status_cb(const struct OfxStatusData data, ImportContext *ctx) { DB( g_print("** ofx_proc_status_cb()\n") ); if(data.ofx_element_name_valid==true){ DB( g_print(" Ofx entity this status is relevent to: '%s'\n", data.ofx_element_name) ); } if(data.severity_valid==true){ DB( g_print(" Severity: ") ); switch(data.severity){ case INFO : DB( g_print("INFO\n") ); break; case WARN : DB( g_print("WARN\n") ); break; case ERROR : DB( g_print("ERROR\n") ); break; default: DB( g_print("WRITEME: Unknown status severity!\n") ); } } if(data.code_valid==true){ DB( g_print(" Code: %d, name: %s\n Description: %s\n", data.code, data.name, data.description) ); } if(data.server_message_valid==true){ DB( g_print(" Server Message: %s\n", data.server_message) ); } DB( g_print("\n") ); return 0; } GList *homebank_ofx_import(ImportContext *ictx, GenFile *genfile) { /*extern int ofx_PARSER_msg; extern int ofx_DEBUG_msg; extern int ofx_WARNING_msg; extern int ofx_ERROR_msg; extern int ofx_INFO_msg; extern int ofx_STATUS_msg;*/ DB( g_print("\n[import] ofx import (libofx=%s) \n", LIBOFX_VERSION_RELEASE_STRING) ); /*ofx_PARSER_msg = false; ofx_DEBUG_msg = false; ofx_WARNING_msg = false; ofx_ERROR_msg = false; ofx_INFO_msg = false; ofx_STATUS_msg = false;*/ LibofxContextPtr libofx_context = libofx_get_new_context(); ofx_set_status_cb (libofx_context, (LibofxProcStatusCallback) ofx_proc_status_cb , ictx); ofx_set_statement_cb (libofx_context, (LibofxProcStatementCallback) ofx_proc_statement_cb , ictx); ofx_set_account_cb (libofx_context, (LibofxProcAccountCallback) ofx_proc_account_cb , ictx); ofx_set_transaction_cb(libofx_context, (LibofxProcTransactionCallback)ofx_proc_transaction_cb, ictx); #ifdef G_OS_WIN32 //#932959: windows don't like utf8 path, so convert gchar *filepath = g_win32_locale_filename_from_utf8(genfile->filepath); libofx_proc_file(libofx_context, filepath, AUTODETECT); g_free(filepath); #else libofx_proc_file(libofx_context, genfile->filepath, AUTODETECT); #endif libofx_free_context(libofx_context); DB( g_print("ofx nb txn=%d\n", g_list_length(ictx->gen_lst_txn) )); return ictx->gen_lst_txn; } #endif homebank-5.9.1/src/hb-payee.h0000644000175000017500000000356714736461415011453 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_PAYEE_H__ #define __HB_PAYEE_H__ #include "hb-types.h" struct _payee { guint32 key; gushort paymode; gushort flags; //_pad1 prior 5.6 guint32 kcat; gchar *name; gchar *notes; //added 5.6 /* unsaved datas */ //gboolean flt_select; guint16 nb_use_txn; guint16 nb_use_all; }; #define PF_HIDDEN (1<<8) //hidden by user void da_pay_free(Payee *item); Payee *da_pay_malloc(void); void da_pay_destroy(void); void da_pay_new(void); guint da_pay_length(void); guint32 da_pay_get_max_key(void); gboolean da_pay_delete(guint32 key); gboolean da_pay_insert(Payee *acc); gboolean da_pay_append(Payee *acc); Payee *da_pay_append_if_new(gchar *rawname); Payee *da_pay_get(guint32 key); Payee *da_pay_get_by_name(gchar *rawname); void da_pay_consistency(Payee *item); gint payee_delete_unused(void); void payee_fill_usage(void); GList *payee_glist_sorted(gint column); void payee_move(guint32 key1, guint32 key2); gboolean payee_rename(Payee *item, const gchar *newname); gboolean payee_load_csv(gchar *filename, gchar **error); void payee_save_csv(gchar *filename); #endif homebank-5.9.1/src/list-account.h0000644000175000017500000000330114736461415012350 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __LIST_ACCOUNT__H__ #define __LIST_ACCOUNT__H__ enum { DSPACC_GROUP_BY_TYPE, DSPACC_GROUP_BY_BANK, DSPACC_GROUP_BY_GROUP }; /* lst acc datatype */ enum { DSPACC_TYPE_NORMAL, DSPACC_TYPE_HEADER, DSPACC_TYPE_SUBTOTAL, DSPACC_TYPE_TOTAL }; /* list display account */ enum { LST_DSPACC_DATATYPE, LST_DSPACC_POS, LST_DSPACC_DATAS, NUM_LST_DSPACC }; enum { COL_DSPACC_STATUS, COL_DSPACC_ACCOUNTS, COL_DSPACC_RECON, COL_DSPACC_CLEAR, COL_DSPACC_TODAY, COL_DSPACC_FUTURE, NUM_LST_COL_DSPACC }; enum { LST_TXN_ACC_REC = 1 << 0, //detail/print LST_TXN_ACC_CLR = 1 << 1, //!print LST_TXN_ACC_TOD = 1 << 2, LST_TXN_ACC_FUT = 1 << 3, }; struct lst_accview_data { GtkWidget *treeview; GtkWidget *menu; }; GString *lst_accview_to_string(GtkTreeView *treeview, ToStringMode mode); gboolean list_account_level1_expanded(GtkTreeView *treeview, gchar *name); GtkWidget *lst_accview_new(void); #endif homebank-5.9.1/src/ui-group.h0000664000175000017500000000302414736461415011516 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_GROUP_GTK_H__ #define __HB_GROUP_GTK_H__ /* = = = = = = = = = = */ struct grpPopContext { GtkTreeModel *model; guint except_key; }; /* = = = = = = = = = = */ guint32 ui_grp_comboboxentry_get_key(GtkComboBox *entry_box); guint32 ui_grp_comboboxentry_get_key_add_new(GtkComboBox *entry_box); Group *ui_grp_comboboxentry_get(GtkComboBox *entry_box); gboolean ui_grp_comboboxentry_set_active(GtkComboBox *entry_box, guint32 key); void ui_grp_comboboxentry_add(GtkComboBox *entry_box, Group *pay); void ui_grp_comboboxentry_populate(GtkComboBox *entry_box, GHashTable *hash); void ui_grp_comboboxentry_populate_except(GtkComboBox *entry_box, GHashTable *hash, guint except_key); GtkWidget *ui_grp_comboboxentry_new(GtkWidget *label); #endif homebank-5.9.1/src/ui-widgets.h0000644000175000017500000001640715005623561012027 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_WIDGETS_GTK_H__ #define __HB_WIDGETS_GTK_H__ typedef struct _hbtk_kv_data HbKvData; typedef struct _hbtk_kiv_data HbKivData; struct _hbtk_kv_data { guint32 key; const gchar *name; }; struct _hbtk_kiv_data { guint32 key; const gchar *iconname; const gchar *name; }; #define HBTK_IS_SEPARATOR -66 typedef enum { DATE_RANGE_FLAG_NONE = 0, DATE_RANGE_FLAG_BUDGET_MODE = 1 << 1, DATE_RANGE_FLAG_CUSTOM_HIDDEN = 1 << 8, DATE_RANGE_FLAG_CUSTOM_DISABLE = 1 << 9 } HbDateRangeFlags; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* GTK4 transitional anticipation */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if( (GTK_MAJOR_VERSION < 4) ) void gtk_window_set_child (GtkWindow* window, GtkWidget* child); void gtk_popover_set_child (GtkPopover* popover, GtkWidget* child); void gtk_frame_set_child (GtkFrame* frame, GtkWidget* child); void gtk_overlay_set_child (GtkOverlay* overlay, GtkWidget* child); void gtk_scrolled_window_set_child (GtkScrolledWindow* scrolled_window, GtkWidget* child); void gtk_revealer_set_child (GtkRevealer* revealer, GtkWidget* child); void gtk_expander_set_child (GtkExpander* expander, GtkWidget* child); void gtk_box_prepend (GtkBox* box, GtkWidget* child); void gtk_box_append (GtkBox* box, GtkWidget* child); void gtk_box_prependfe (GtkBox* box, GtkWidget* child); void gtk_window_destroy (GtkWindow* window); #endif GtkWidget *hbtk_image_new_from_icon_name_16(const gchar *icon_name); GtkWidget *hbtk_image_new_from_icon_name_24(const gchar *icon_name); GtkWidget *hbtk_image_new_from_icon_name_32(const gchar *icon_name); /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void hbtk_box_prepend (GtkBox* box, GtkWidget* child); GtkWidget *make_label(gchar *str, gfloat xalign, gfloat yalign); GtkWidget *make_clicklabel(gchar *id, gchar *str); GtkWidget *make_label_group(gchar *str); GtkWidget *make_label_left(char *str); GtkWidget *make_label_widget(gchar *str); GtkWidget *make_text(gfloat xalign); GtkWidget *make_search(void); GtkWidget *make_string(GtkWidget *label); GtkWidget *hbtk_menubar_add_menu(GtkWidget *menubar, gchar *label, GtkWidget **menuitem_ptr); GtkWidget *hbtk_menu_add_menuitem(GtkWidget *menu, gchar *label); GtkWidget *hbtk_toolbar_add_toolbutton(GtkToolbar *toolbar, gchar *icon_name, gchar *label, gchar *tooltip_text); GtkWidget *make_image_button(gchar *icon_name, gchar *tooltip_text); GtkWidget *make_image_toggle_button(gchar *icon_name, gchar *tooltip_text); GtkWidget *make_image_radio_button(gchar *icon_name, gchar *tooltip_text); GtkWidget *make_image_button2(gchar *icon_name, gchar *tooltip_text); GtkWidget *make_image_toggle_button2(gchar *icon_name, gchar *tooltip_text); GtkWidget *make_tb(void); GtkWidget *make_tb_separator(void); GtkWidget *make_tb_image_button(gchar *icon_name, gchar *tooltip_text); GtkWidget *make_tb_image_toggle_button(gchar *icon_name, gchar *tooltip_text); GtkWidget *make_tb_image_radio_button(gchar *icon_name, gchar *tooltip_text); GtkWidget *make_memo_entry(GtkWidget *label); GtkWidget *make_string_maxlength(GtkWidget *label, guint max_length); GtkWidget *make_entry_numeric(GtkWidget *label, gint min, gint max); GtkWidget *make_amount(GtkWidget *label); GtkWidget *make_amount_pos(GtkWidget *label); GtkWidget *make_exchange_rate(GtkWidget *label); GtkWidget *make_numeric(GtkWidget *label, gdouble min, gdouble max); GtkWidget *make_scrolled_window_ns(GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy); GtkWidget *make_scrolled_window(GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy); GtkWidget *make_scale(GtkWidget *label); GtkWidget *make_long(GtkWidget *label); gchar *hb_get_scheduled_unit(gint unit); guint32 hbtk_monthyear_getmin(GtkSpinButton *spin); guint32 hbtk_monthyear_getmax(GtkSpinButton *spin); void hbtk_monthyear_set(GtkSpinButton *spin, guint32 julian); GtkWidget *make_monthyear(GtkWidget *label); //GtkWidget *make_year(GtkWidget *label); GtkWidget *make_daterange(GtkWidget *label, HbDateRangeFlags flags); GtkWidget *create_popover (GtkWidget *parent, GtkWidget *child, GtkPositionType pos); void ui_label_set_integer(GtkLabel *label, gint value); void hbtk_listview_redraw_selected_row(GtkTreeView *treeview); gboolean hbtk_tree_store_get_top_level(GtkTreeModel *model, gint column_id, guint32 key, GtkTreeIter *return_iter); void hbtk_tree_store_remove_iter_with_child(GtkTreeModel *model, GtkTreeIter *iter); GtkTreeViewColumn *hbtk_treeview_get_column_by_id(GtkTreeView *treeview, gint search_id); gchar *hbtk_get_label(HbKvData *kvdata, guint32 key); guint32 hbtk_combo_box_get_active_id (GtkComboBox *combobox); void hbtk_combo_box_set_active_id (GtkComboBox *combobox, guint32 active_id); void hbtk_combo_box_text_append (GtkComboBox *combobox, guint32 key, gchar *text); GtkWidget *hbtk_combo_box_new (GtkWidget *label); GtkWidget *hbtk_combo_box_new_with_data (GtkWidget *label, HbKvData *kvdata); GtkWidget *hbtk_combo_box_new_with_array (GtkWidget *label, gchar **items); #ifdef G_OS_WIN32 void hbtk_assistant_hack_button_order(GtkAssistant *assistant); #endif void gimp_label_set_attributes (GtkLabel *label, ...); void hb_window_run_pending(void); void hb_widget_set_margins(GtkWidget *widget, gint top, gint right, gint bottom, gint left); void hb_widget_set_margin(GtkWidget *widget, gint margin); void hb_widget_visible(GtkWidget *widget, gboolean visible); void hbtk_entry_tag_name_append(GtkEntry *entry, gchar *tagname); void hbtk_entry_set_text(GtkEntry *entry, gchar *text); gboolean hbtk_entry_replace_text(GtkEntry *entry, gchar **storage); /* guint make_popaccount_populate(GtkComboBox *combobox, GList *srclist); GtkWidget *make_popaccount(GtkWidget *label); guint make_poppayee_populate(GtkComboBox *combobox, GList *srclist); GtkWidget *make_poppayee(GtkWidget *label); guint make_poparchive_populate(GtkComboBox *combobox, GList *srclist); GtkWidget *make_poparchive(GtkWidget *label); guint make_popcategory_populate(GtkComboBox *combobox, GList *srclist); GtkWidget *make_popcategory(GtkWidget *label); */ gint hb_clicklabel_to_int(const gchar *uri); const gchar *get_grpflag_icon_name(guint32 key); GtkWidget *make_fltgrpflag(GtkWidget *label); const gchar *get_paymode_icon_name(guint32 key); guint32 paymode_combo_box_get_active (GtkComboBox *combo_box); void paymode_combo_box_set_active (GtkComboBox *combo_box, guint32 active_key); void paymode_list_get_order(GtkTreeView *treeview); GtkWidget *make_paymode_list(void); GtkWidget *make_paymode(GtkWidget *label); #endif homebank-5.9.1/src/list-report.c0000664000175000017500000006675715002205050012226 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "list-report.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif // our global datas extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; static void lst_report_to_string_row(GString *node, ToStringMode mode, gint src, GtkTreeModel *model, GtkTreeIter *iter) { guint32 key; gchar sep, *name; gdouble values[4]; sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; gtk_tree_model_get (model, iter, LST_REPORT_KEY , &key, LST_REPORT_LABEL , &name, LST_REPORT_EXPENSE, &values[0], LST_REPORT_INCOME , &values[1], LST_REPORT_TOTAL , &values[2], -1); //#2033298 we get fullname for export if( src == REPORT_GRPBY_CATEGORY ) { Category *catitem = da_cat_get(key); if( catitem != NULL ) { g_free(name); name = g_strdup( (catitem->key == 0) ? _("(no category)") : catitem->fullname ); } } //format = (mode == HB_STRING_EXPORT) ? "%s;%.2f;%.2f;%.2f\n" : "%s\t%.2f\t%.2f\t%.2f\n"; //g_string_append_printf(node, format, name, exp, inc, bal); g_string_append(node, name); for(guint i=0;i<3;i++) { g_string_append_c(node, sep); _format_decimal(node, mode, values[i]); } g_string_append_c(node, '\n'); //leak g_free(name); } GString *lst_report_to_string(ToStringMode mode, GtkTreeView *treeview, gint src, gchar *title) { GString *node; GtkTreeModel *model; GtkTreeIter iter, child; gboolean valid; const gchar *format; DB( g_print("\n[list-report] to string\n") ); node = g_string_new(NULL); // header format = (mode == HB_STRING_EXPORT) ? "%s;%s;%s;%s\n" : "%s\t%s\t%s\t%s\n"; g_string_append_printf(node, format, (title == NULL) ? _("Result") : title, _("Expense"), _("Income"), _("Total")); model = gtk_tree_view_get_model(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { lst_report_to_string_row(node, mode, src, model, &iter); if( gtk_tree_model_iter_has_child(model, &iter) ) { valid = gtk_tree_model_iter_children(model, &child, &iter); while (valid) { lst_report_to_string_row(node, mode, src, model, &child); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } //DB( g_print("text is:\n%s", node->str) ); return node; } static void lst_report_cell_data_func_label (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gchar *label, *overlabel; gint pos; gtk_tree_model_get(model, iter, LST_REPORT_POS, &pos, LST_REPORT_LABEL, &label, LST_REPORT_OVERLABEL, &overlabel, -1); if( overlabel != NULL ) { g_object_set(renderer, "weight", PANGO_WEIGHT_NORMAL, "markup", overlabel, NULL); } else { g_object_set(renderer, "weight", (pos == LST_REPORT_POS_TOTAL) ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, "text" , label, NULL); } g_free(label); g_free(overlabel); } static void lst_report_cell_data_func_rate (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { struct lst_report_data *lst_data = NULL; GtkWidget *widget; gint pos, colid = GPOINTER_TO_INT(user_data); gdouble amount, rate = 0.0; gchar buf[16], *retval = ""; widget = gtk_tree_view_column_get_tree_view(col); if( widget ) lst_data = g_object_get_data(G_OBJECT(widget), "inst_data"); if(lst_data != NULL) { gtk_tree_model_get(model, iter, LST_REPORT_POS, &pos, colid, &amount, -1); //don't display total/total if( pos != LST_REPORT_POS_TOTAL ) { switch(colid) { case LST_REPORT_EXPENSE: rate = hb_rate(amount, lst_data->tot_exp); break; case LST_REPORT_INCOME: rate = hb_rate(amount, lst_data->tot_inc); break; case LST_REPORT_TOTAL: rate = hb_rate(amount, -lst_data->tot_exp + lst_data->tot_inc); break; } if( hb_amount_cmp(rate, 0.0) != 0 ) { g_snprintf(buf, sizeof(buf), "%.2f %%", rate); retval = buf; } } } g_object_set(renderer, "text", retval, NULL); } static void lst_report_cell_data_func_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble value; gchar *color; gint pos, colid = GPOINTER_TO_INT(user_data); gint weight = PANGO_WEIGHT_NORMAL; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gtk_tree_model_get(model, iter, LST_REPORT_POS, &pos, GPOINTER_TO_INT(user_data), &value, -1); //#2026184 value = hb_amount_round(value, 2); if( (value != 0.0) || (colid == LST_REPORT_TOTAL) ) { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, value, GLOBALS->kcur, GLOBALS->minor); color = get_normal_color_amount(value); if( pos == LST_REPORT_POS_TOTAL ) { weight = PANGO_WEIGHT_BOLD; } g_object_set(renderer, "foreground", color, "weight", weight, "text", buf, NULL); } else { g_object_set(renderer, "text", "", NULL); } } static GtkTreeViewColumn *lst_report_amount_column(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_report_cell_data_func_amount, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //#1933164 gtk_tree_view_column_set_sort_column_id (column, id); return column; } static GtkTreeViewColumn *lst_report_rate_column(gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, "%"); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, "yalign", 1.0, "scale", 0.8, "scale-set", TRUE, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); //gtk_tree_view_column_add_attribute(column, renderer, "text", id); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_report_cell_data_func_rate, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_sort_column_id (column, id); //gtk_tree_view_column_set_visible(column, FALSE); return column; } static gint lst_report_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); gint retval = 0; gint pos1, pos2; gdouble val1, val2; //#1933164 gint csid; GtkSortType cso; gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(model), &csid, &cso); //DB( g_print(" csid=%d cso=%s\n", csid, cso == GTK_SORT_ASCENDING ? "asc" : "desc") ); gtk_tree_model_get(model, a, LST_REPORT_POS, &pos1, sortcol, &val1, -1); gtk_tree_model_get(model, b, LST_REPORT_POS, &pos2, sortcol, &val2, -1); //#1933164 should return // > 0 if a sorts before b // = 0 if a sorts with b // < 0 if a sorts after b //total always at bottom if( pos1 == LST_REPORT_POS_TOTAL ) { retval = cso == GTK_SORT_ASCENDING ? 1 : -1; //DB( g_print(" sort p1=%d ? p2=%d = %d\n", pos1, pos2, retval) ); } else { if( pos2 == LST_REPORT_POS_TOTAL ) { retval = cso == GTK_SORT_ASCENDING ? -1 : 1; //DB( g_print(" sort p1=%d ? p2=%d = %d\n", pos1, pos2, retval) ) } else { switch(sortcol) { case LST_REPORT_POS: retval = pos1 - pos2; //DB( g_print(" sort %3d = %3d :: %d\n", pos1, pos2, retval) ); break; case LST_REPORT_EXPENSE: case LST_REPORT_INCOME: retval = (ABS(val1) - ABS(val2)) > 0 ? -1 : 1; break; default: // should be LST_REPORT_TOTAL //#1956060 sort with sign (no abs), option is possible but complex //retval = (ABS(val1) - ABS(val2)) > 0 ? -1 : 1; retval = (val1 - val2) > 0 ? -1 : 1; //DB( g_print(" sort %.2f = %.2f :: %d\n", val1, val2, retval) ); break; } } } return retval; } static gboolean lst_report_selectionfunc(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean path_currently_selected, gpointer data) { GtkTreeIter iter; gint pos; if(gtk_tree_model_get_iter(model, &iter, path)) { gtk_tree_model_get(model, &iter, LST_REPORT_POS, &pos, -1); if( pos == LST_REPORT_POS_TOTAL ) return FALSE; } return TRUE; } static void lst_report_destroy( GtkWidget *widget, gpointer user_data ) { struct lst_report_data *lst_data; lst_data = g_object_get_data(G_OBJECT(widget), "inst_data"); DB( g_print ("\n[list-report] destroy event occurred\n") ); DB( g_print(" - view=%p, inst_data=%p\n", widget, lst_data) ); g_free(lst_data); } void lst_report_add_columns(GtkTreeView *treeview, GtkTreeModel *model) { GtkCellRenderer *renderer; GtkTreeViewColumn *column; // column: Name renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Result")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_report_cell_data_func_label, NULL, NULL); //gtk_tree_view_column_add_attribute(column, renderer, "text", LST_REPORT_LABEL); //#1933164 gtk_tree_view_column_set_sort_column_id (column, LST_REPORT_POS); gtk_tree_view_column_set_resizable(column, TRUE); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column: Expense column = lst_report_amount_column(_("Expense"), LST_REPORT_EXPENSE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = lst_report_rate_column(LST_REPORT_EXPENSE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column: Income column = lst_report_amount_column(_("Income"), LST_REPORT_INCOME); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = lst_report_rate_column(LST_REPORT_INCOME); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column: Total column = lst_report_amount_column(_("Total"), LST_REPORT_TOTAL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); column = lst_report_rate_column(LST_REPORT_TOTAL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column last: empty column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } GtkTreeStore *lst_report_new(void) { GtkTreeStore *store; store = gtk_tree_store_new( NUM_LST_REPORT, G_TYPE_INT, //POS keep for compatibility with chart G_TYPE_INT, //KEY //G_TYPE_POINTER, //ROW G_TYPE_STRING, //ROWLABEL G_TYPE_DOUBLE, //EXP G_TYPE_DOUBLE, //INC G_TYPE_DOUBLE, //TOT G_TYPE_STRING //OVERRIDELABEL ); return store; } /* ** create our statistic list */ GtkWidget *lst_report_create(void) { struct lst_report_data *lst_data; GtkTreeStore *store; GtkWidget *treeview; DB( g_print("\n[list-report] create\n") ); lst_data = g_malloc0(sizeof(struct lst_report_data)); if(!lst_data) return NULL; // create list store store = lst_report_new(); // treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); // store our window private data g_object_set_data(G_OBJECT(treeview), "inst_data", (gpointer)lst_data); DB( g_print(" - treeview=%p, inst_data=%p\n", treeview, lst_data) ); // connect our dispose function g_signal_connect (treeview, "destroy", G_CALLBACK (lst_report_destroy), NULL); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); lst_report_add_columns(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(store)); // prevent selection of total gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), lst_report_selectionfunc, NULL, NULL); // sort gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REPORT_POS , lst_report_compare_func, GINT_TO_POINTER(LST_REPORT_POS), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REPORT_EXPENSE, lst_report_compare_func, GINT_TO_POINTER(LST_REPORT_EXPENSE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REPORT_INCOME , lst_report_compare_func, GINT_TO_POINTER(LST_REPORT_INCOME), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REPORT_TOTAL , lst_report_compare_func, GINT_TO_POINTER(LST_REPORT_TOTAL), NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_REPORT_POS, GTK_SORT_ASCENDING); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); return(treeview); } /* ** ============================================================================ */ static void lst_rep_time_to_string_row(GString *node, ToStringMode mode, gint src, GtkTreeModel *model, GtkTreeIter *iter) { guint32 key; gchar sep, *name; DataRow *dr; gdouble value; sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; gtk_tree_model_get (model, iter, LST_REPORT2_KEY, &key, LST_REPORT2_LABEL, &name, LST_REPORT2_ROW, &dr, -1); //#2033298 we get fullname for export if( src == REPORT_GRPBY_CATEGORY ) { Category *catitem = da_cat_get(key); if( catitem != NULL ) { g_free(name); name = g_strdup( (catitem->key == 0) ? _("(no category)") : catitem->fullname ); } } g_string_append(node, name); g_string_append_c(node, sep); //hb_strfmongc(buf, G_ASCII_DTOSTR_BUF_SIZE-1, values[i]); //iterate row cells for(guint i=0 ; i < dr->nbcols ; i++ ) { value = da_datarow_get_cell_sum(dr, i); DB( g_print(" %2d %.2f\n", i, value) ); _format_decimal(node, mode, value); if( i < dr->nbcols ) g_string_append_c(node, sep); } //average value = (dr->rowexp + dr->rowinc) / dr->nbcols; _format_decimal(node, mode, value); g_string_append_c(node, sep); //total value = (dr->rowexp + dr->rowinc); _format_decimal(node, mode, value); //newline g_string_append_c(node, '\n'); //leak g_free(name); } GString *lst_rep_time_to_string(ToStringMode mode, GtkTreeView *treeview, gint src, gchar *title) { GString *node; GtkTreeModel *model; GtkTreeIter iter, child; gboolean valid; guint32 nbcols, r, i; gchar sep; DB( g_print("\n[list_rep_time] to string\n") ); node = g_string_new(NULL); sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; // header (nbcols-1 for empty column) nbcols = gtk_tree_view_get_n_columns (treeview) - 1; for( i=0 ; i < nbcols ; i++ ) { GtkTreeViewColumn *column = gtk_tree_view_get_column (treeview, i); if( GTK_IS_TREE_VIEW_COLUMN(column) ) { g_string_append(node, gtk_tree_view_column_get_title (column)); if( i < nbcols-1 ) { g_string_append_c(node, sep); } } } g_string_append_c(node, '\n'); // data rows r = 0; model = gtk_tree_view_get_model(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { lst_rep_time_to_string_row(node, mode, src, model, &iter); if( gtk_tree_model_iter_has_child(model, &iter) ) { valid = gtk_tree_model_iter_children(model, &child, &iter); while (valid) { lst_rep_time_to_string_row(node, mode, src, model, &child); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); r++; } //DB( g_print("text is:\n%s", node->str) ); return node; } static gboolean lst_rep_time_cb_tooltip_query (GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer data) { GtkTreeIter iter; GtkTreePath *path; GtkTreeModel *model; GtkTreeView *tree_view = GTK_TREE_VIEW (widget); gchar *label = NULL; if (!gtk_tree_view_get_tooltip_context (GTK_TREE_VIEW (widget), &x, &y, keyboard_tip, &model, &path, &iter)) return FALSE; gtk_tree_model_get(model, &iter, LST_REPORT2_LABEL, &label, -1); gtk_tooltip_set_text (tooltip, label); gtk_tree_view_set_tooltip_row (tree_view, tooltip, path); gtk_tree_path_free (path); return TRUE; } static void lst_rep_time_cell_data_func_label (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gchar *label, *overlabel; gint pos; gtk_tree_model_get(model, iter, LST_REPORT2_POS, &pos, LST_REPORT2_LABEL, &label, LST_REPORT2_OVERLABEL, &overlabel, -1); if( overlabel != NULL ) { g_object_set(renderer, "weight", PANGO_WEIGHT_NORMAL, "markup", overlabel, NULL); } else { g_object_set(renderer, "weight", (pos == LST_REPORT_POS_TOTAL) ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, "text" , label, NULL); } g_free(label); g_free(overlabel); } static void lst_rep_time_cell_data_func_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { DataRow *dr; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gint colid = GPOINTER_TO_INT(user_data); gint pos; gtk_tree_model_get(model, iter, LST_REPORT2_POS, &pos, LST_REPORT2_ROW, &dr, -1); if( dr != NULL ) { gdouble exp, inc, value; gboolean dodisplay = FALSE; gint weight = PANGO_WEIGHT_NORMAL; if( colid==LST_REP_COLID_AVERAGE || colid==LST_REP_COLID_TOTAL) { exp = dr->rowexp; inc = dr->rowinc; } else { exp = dr->colexp[colid]; inc = dr->colinc[colid]; } value = exp + inc; if( hb_amount_cmp(value, 0.0) != 0 ) { dodisplay = TRUE; if(colid==LST_REP_COLID_AVERAGE) value /= dr->nbcols; } else { //#2091004 we have exact 0.0, do we force display ? if( pos == LST_REPORT_POS_TOTAL ) { weight = PANGO_WEIGHT_BOLD; if( hb_amount_cmp(exp, 0.0) != 0 ) // test exp is enough dodisplay = TRUE; } } if( dodisplay ) { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, value, GLOBALS->kcur, GLOBALS->minor); g_object_set(renderer, "foreground", get_normal_color_amount(value), "weight", weight, "text", buf, NULL); return; } } g_object_set(renderer, "text", "", NULL); } static GtkTreeViewColumn *lst_rep_time_column_create_amount(gchar *name, gint id, gboolean forecast) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); if( forecast ) { g_object_set(renderer, "style-set", TRUE, "style", PANGO_STYLE_OBLIQUE, NULL); } gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_rep_time_cell_data_func_amount, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_set_sort_column_id (column, id); return column; } static gint lst_rep_time_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { //gint sortcol = GPOINTER_TO_INT(userdata); gint retval = 0; DataRow *dr1, *dr2; //#2034625 gint csid; GtkSortType cso; gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(model), &csid, &cso); //#2034625 should return // > 0 if a sorts before b // = 0 if a sorts with b // < 0 if a sorts after b gtk_tree_model_get(model, a, LST_REPORT2_ROW, &dr1, -1); gtk_tree_model_get(model, b, LST_REPORT2_ROW, &dr2, -1); //total always at bottom if( dr1->pos == LST_REPORT_POS_TOTAL ) { retval = cso == GTK_SORT_ASCENDING ? 1 : -1; } else { if( dr2->pos == LST_REPORT_POS_TOTAL ) { retval = cso == GTK_SORT_ASCENDING ? -1 : 1; } else { gdouble val1, val2; switch(csid) { case LST_REP_COLID_POS: retval = dr1->pos - dr2->pos; break; case LST_REP_COLID_AVERAGE: val1 = (dr1->rowexp + dr1->rowinc) / dr1->nbcols; val2 = (dr2->rowexp + dr2->rowinc) / dr2->nbcols; retval = hb_amount_cmp(val1, val2); break; case LST_REP_COLID_TOTAL: val1 = (dr1->rowexp + dr1->rowinc); val2 = (dr2->rowexp + dr2->rowinc); retval = hb_amount_cmp(val1, val2); break; default: val1 = dr1->colexp[csid] + dr1->colinc[csid]; val2 = dr2->colexp[csid] + dr2->colinc[csid]; retval = hb_amount_cmp(val1, val2); break; } } } //DB( g_print(" sort %d=%d or %.2f=%.2f :: %d\n", pos1,pos2, val1, val2, ret) ); return retval; } static gboolean lst_rep_time_selectionfunc(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean path_currently_selected, gpointer data) { GtkTreeIter iter; gint pos; if(gtk_tree_model_get_iter(model, &iter, path)) { gtk_tree_model_get(model, &iter, LST_REPORT2_POS, &pos, -1); if( pos == LST_REPORT_POS_TOTAL ) return FALSE; } return TRUE; } // test new listview //TODO: optimise params void lst_rep_time_renewcol(GtkTreeView *treeview, GtkTreeModel *model, DataTable *dt, gboolean avg) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; GList *columns, *list; guint i; DB( g_print("\n[list_rep_time] renewcol\n") ); // remove all columns columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(treeview)); i = 0; list = g_list_first(columns); while(list != NULL) { if( GTK_IS_TREE_VIEW_COLUMN(list->data) ) { gtk_tree_view_remove_column(treeview, GTK_TREE_VIEW_COLUMN(list->data)); } i++; list = g_list_next(list); } DB( g_print(" removed %d columns\n", i) ); g_list_free(columns); //adding columns // column: Name column = gtk_tree_view_column_new(); //gtk_tree_view_column_set_title(column, _("Acc/Cat/Pay")); //gtk_tree_view_column_set_title(column, "ItemsType (todo)"); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_rep_time_cell_data_func_label, NULL, NULL); //gtk_tree_view_column_add_attribute(column, renderer, "text", LST_REPORT2_LABEL); gtk_tree_view_column_set_sort_column_id (column, LST_REP_COLID_POS); gtk_tree_view_column_set_resizable(column, TRUE); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); DB( g_print (" create column id:%4d ''\n", LST_REP_COLID_POS) ); // column: Amount * x //TODO: useless with DataCol for(i=0;inbcols;i++) { //gchar intvlname[64]; //guint32 jdate = report_interval_snprint_name(intvlname, sizeof(intvlname)-1, intvl, jfrom, i); //gboolean forecast = (jdate > GLOBALS->today) ? TRUE : FALSE; DataCol *dtcol = report_data_get_col(dt, i); if ( dtcol ) { column = lst_rep_time_column_create_amount(dtcol->label, i, (dtcol->flags & RF_FORECAST) ); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); DB( g_print (" create column id:%4d '%s' forecast:%d\n", i, dtcol->label, (dtcol->flags & RF_FORECAST)) ); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(model), i, lst_rep_time_compare_func, NULL, NULL); } } column = lst_rep_time_column_create_amount(_("Average"), LST_REP_COLID_AVERAGE, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); DB( g_print (" create column id:%4d ''\n", LST_REP_COLID_AVERAGE) ); //#2012576 keep column but hide it gtk_tree_view_column_set_visible(column, avg); column = lst_rep_time_column_create_amount(_("Total"), LST_REP_COLID_TOTAL, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); DB( g_print (" create column id:%4d ''\n", LST_REP_COLID_TOTAL) ); // column last: empty column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); } static void lst_rep_time_destroy( GtkWidget *widget, gpointer user_data ) { struct lst_report_data *lst_data; lst_data = g_object_get_data(G_OBJECT(widget), "inst_data"); DB( g_print ("\n[list_rep_time] destroy event occurred\n") ); DB( g_print(" - view=%p, inst_data=%p\n", widget, lst_data) ); g_free(lst_data); } GtkTreeStore *lst_rep_time_new(void) { GtkTreeStore *store; // create list store store = gtk_tree_store_new( NUM_LST_REPORT2, G_TYPE_INT, //POS G_TYPE_INT, //KEY G_TYPE_STRING, //ROWLABEL G_TYPE_POINTER, //ROWDATA (pointer to DataRow) G_TYPE_STRING //OVERRIDELABEL ); return store; } GtkWidget *lst_rep_time_create(void) { struct lst_report_data *lst_data; GtkTreeStore *store; GtkWidget *treeview; DB( g_print("\n[list_rep_time] create\n") ); lst_data = g_malloc0(sizeof(struct lst_report_data)); if(!lst_data) return NULL; // create list store store = lst_rep_time_new(); //treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); // store our window private data g_object_set_data(G_OBJECT(treeview), "inst_data", (gpointer)lst_data); DB( g_print(" - treeview=%p, inst_data=%p\n", treeview, lst_data) ); // connect our dispose function g_signal_connect (treeview, "destroy", G_CALLBACK (lst_rep_time_destroy), NULL); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); //prevent selection of total gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), lst_rep_time_selectionfunc, NULL, NULL); // sort gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REP_COLID_POS, lst_rep_time_compare_func, NULL, NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REP_COLID_AVERAGE, lst_rep_time_compare_func, NULL, NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REP_COLID_TOTAL, lst_rep_time_compare_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(store), LST_REP_COLID_POS, GTK_SORT_ASCENDING); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); gtk_widget_set_has_tooltip (GTK_WIDGET (treeview), TRUE); g_signal_connect (treeview, "query-tooltip", G_CALLBACK (lst_rep_time_cb_tooltip_query), NULL); return(treeview); } homebank-5.9.1/src/hub-scheduled.h0000664000175000017500000000211314736461415012461 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "dsp-mainwindow.h" #ifndef __HUB_SCHEDULED_H__ #define __HUB_SCHEDULED_H__ void ui_hub_scheduled_postall(GtkWidget *widget, gpointer user_data); void ui_hub_scheduled_populate(GtkWidget *widget, gpointer user_data); GtkWidget *ui_hub_scheduled_create(struct hbfile_data *data); #endif homebank-5.9.1/src/hb-pref-data.h0000664000175000017500000000271214736461415012204 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_PREF_DATA_H__ #define __HB_PREF_DATA_H__ #include typedef struct { gchar *locale; gchar *name; } LangName; typedef struct { gushort id; gushort mceii; gchar *iso; gchar *name; gdouble value; //gchar *prefix_symbol; /* max symbol is 3 digits in unicode */ //gchar *suffix_symbol; /* but mostly is 1 digit */ gchar *symbol; gboolean sym_prefix; gchar *decimal_char; gchar *grouping_char; gushort frac_digits; } EuroParams; gboolean euro_country_is_mceii(gint ctryid); EuroParams *euro_country_get(guint ctryid); gboolean euro_country_notmceii_rate_update(guint ctryid); gchar *languagename_get(const gchar *locale); #endif homebank-5.9.1/src/ui-assign.c0000644000175000017500000016751515005624421011643 /* HomeBank -- Free, easy, personal ruleing for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "ui-assign.h" #include "hbtk-switcher.h" #include "ui-category.h" #include "ui-payee.h" #include "ui-tag.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern gchar *CYA_ASG_FIELD[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_asg_listview_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, LST_DEFASG_TOGGLE, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFASG_TOGGLE, fixed, -1); /* clean up */ gtk_tree_path_free (path); } static void ui_asg_listview_sort_force(GtkTreeSortable *sortable, gpointer user_data) { gint sort_column_id; GtkSortType order; DB( g_print("\n[ui-asg-listview] sort force\n") ); gtk_tree_sortable_get_sort_column_id(sortable, &sort_column_id, &order); DB( g_print(" id %d\n order %d\n", sort_column_id, order) ); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sortable), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, order); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sortable), sort_column_id, order); } /* static gint ui_asg_listview_compare_default_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { Assign *item1, *item2; gtk_tree_model_get(model, a, LST_DEFASG_DATAS, &item1, -1); gtk_tree_model_get(model, b, LST_DEFASG_DATAS, &item2, -1); return item1->pos - item2->pos; } */ static gint ui_asg_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); Assign *item1, *item2; gint retval = 0; gtk_tree_model_get(model, a, LST_DEFASG_DATAS, &item1, -1); gtk_tree_model_get(model, b, LST_DEFASG_DATAS, &item2, -1); switch (sortcol) { case LST_DEFASG_SORT_POS: retval = item1->pos - item2->pos; break; case LST_DEFASG_SORT_SEARCH: retval = hb_string_utf8_compare(item1->search, item2->search); break; case LST_DEFASG_SORT_PAYEE: { gchar *name1 = assign_get_target_payee(item1); gchar *name2 = assign_get_target_payee(item2); retval = hb_string_utf8_compare(name1, name2); } break; case LST_DEFASG_SORT_CATEGORY: { gchar *name1 = assign_get_target_category(item1); gchar *name2 = assign_get_target_category(item2); retval = hb_string_utf8_compare(name1, name2); } break; case LST_DEFASG_SORT_PAYMENT: retval = item1->paymode - item2->paymode; break; case LST_DEFASG_SORT_TAGS: gchar *t1, *t2; t1 = tags_tostring(item1->tags); t2 = tags_tostring(item2->tags); retval = hb_string_utf8_compare(t1, t2); g_free(t2); g_free(t1); break; case LST_DEFASG_SORT_NOTES: retval = hb_string_utf8_compare(item1->notes, item2->notes); break; default: g_return_val_if_reached(0); } if( retval == 0 ) retval = item1->pos - item2->pos; return retval; } static void ui_asg_listview_cell_data_func_icons (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gchar *iconname = NULL; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); switch(GPOINTER_TO_INT(user_data)) { case 1: iconname = ( asgitem->flags & ASGF_PREFILLED ) ? ICONNAME_HB_ITEM_PREFILLED : NULL; break; } g_object_set(renderer, "icon-name", iconname, NULL); } static void ui_asg_listview_cell_data_function_pos (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gchar buffer[256]; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); g_snprintf(buffer, 256-1, "%d", asgitem->pos); g_object_set(renderer, "text", buffer, NULL); } static void ui_asg_listview_cell_data_func_searchicons (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gchar *iconname = NULL; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); switch(GPOINTER_TO_INT(user_data)) { case 1: iconname = ( asgitem->flags & ASGF_EXACT ) ? ICONNAME_HB_TEXT_CASE : NULL; break; case 2: iconname = ( asgitem->flags & ASGF_REGEX ) ? ICONNAME_HB_TEXT_REGEX : NULL; break; } g_object_set(renderer, "icon-name", iconname, NULL); } static void ui_asg_listview_cell_data_function_search (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gchar *name; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); if(asgitem->search == NULL) name = _("(none)"); // can never occurs also else name = asgitem->search; g_object_set(renderer, "text", name, NULL); } static void ui_asg_listview_cell_data_function_payee (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gchar *text; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); text = assign_get_target_payee(asgitem); g_object_set(renderer, "text", text, NULL); } static void ui_asg_listview_cell_data_function_category (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gchar *text; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); text = assign_get_target_category(asgitem); g_object_set(renderer, "text", text, NULL); } static void ui_asg_listview_cell_data_function_notes (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); g_object_set(renderer, "text", asgitem->notes != NULL ? asgitem->notes : "", NULL); } static void ui_asg_listview_cell_data_function_payment (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); g_object_set(renderer, "icon-name", get_paymode_icon_name(asgitem->paymode), NULL); } static void ui_asg_listview_cell_data_function_tags (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Assign *asgitem; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &asgitem, -1); if(asgitem->tags != NULL) { gchar *text = tags_tostring(asgitem->tags); g_object_set(renderer, "text", text, NULL); g_free(text); } else g_object_set(renderer, "text", NULL, NULL); } #if MYDEBUG == 1 static void ui_asg_listview_cell_data_function_debugkey (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Payee *item; gchar *string; gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &item, -1); string = g_strdup_printf ("[%d]", item->key ); g_object_set(renderer, "text", string, NULL); g_free(string); } #endif /* = = = = = = = = = = = = = = = = */ /** * rul_list_add: * * Add a single element (useful for dynamics add) * * Return value: -- * */ void ui_asg_listview_add(GtkTreeView *treeview, Assign *item) { DB( g_print("\n[ui-asg-listview] add\n") ); if( item->search != NULL ) { GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; model = gtk_tree_view_get_model(treeview); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DEFASG_TOGGLE, FALSE, LST_DEFASG_DATAS, item, -1); gtk_tree_selection_select_iter (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), &iter); //5.6 add scroll to active item path = gtk_tree_model_get_path(model, &iter); gtk_tree_view_scroll_to_cell(treeview, path, NULL, FALSE, 0, 0); gtk_tree_path_free(path); } } guint32 ui_asg_listview_get_selected_key(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("\n[ui-asg-listview] get selected key\n") ); selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Assign *item; gtk_tree_model_get(model, &iter, LST_DEFASG_DATAS, &item, -1); if( item!= NULL ) return item->key; } return 0; } void ui_asg_listview_remove_selected(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("\n[ui-asg-listview] remove selected\n") ); selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_list_store_remove(GTK_LIST_STORE(model), &iter); } } /* static gint ui_asg_glist_compare_func(Assign *a, Assign *b) { return 0; //((gint)a->pos - b->pos); } */ void ui_asg_listview_populate(GtkWidget *view, gchar *needle) { GtkTreeModel *model; GtkTreeIter iter; GList *lrul, *list; gboolean hastext = FALSE; gboolean insert = TRUE; DB( g_print("\n[ui-asg-listview] populate\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); gtk_list_store_clear (GTK_LIST_STORE(model)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(view), NULL); /* Detach model from view */ if( needle != NULL ) hastext = (strlen(needle) >= 2) ? TRUE : FALSE; /* populate */ //g_hash_table_foreach(GLOBALS->h_rul, (GHFunc)ui_asg_listview_populate_ghfunc, model); //lrul = list = g_hash_table_get_values(GLOBALS->h_rul); lrul = list = assign_glist_sorted(HB_GLIST_SORT_POS); while (list != NULL) { Assign *item = list->data; if(hastext) insert = hb_string_utf8_strstr(item->search, needle, FALSE); if( insert == TRUE ) { DB( g_print(" populate: k%d p%d '%s'\n", item->key, item->pos, item->notes) ); gtk_list_store_insert_with_values (GTK_LIST_STORE(model), &iter, -1, LST_DEFASG_TOGGLE , FALSE, LST_DEFASG_DATAS, item, -1); } list = g_list_next(list); } g_list_free(lrul); gtk_tree_view_set_model(GTK_TREE_VIEW(view), model); /* Re-attach model to view */ g_object_unref(model); } /* static gboolean ui_asg_listview_search_equal_func (GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) { gboolean retval = TRUE; gchar *normalized_string; gchar *normalized_key; gchar *case_normalized_string = NULL; gchar *case_normalized_key = NULL; Assign *item; //gtk_tree_model_get_value (model, iter, column, &value); gtk_tree_model_get(model, iter, LST_DEFASG_DATAS, &item, -1); if(item != NULL) { normalized_string = g_utf8_normalize (item->search, -1, G_NORMALIZE_ALL); normalized_key = g_utf8_normalize (key, -1, G_NORMALIZE_ALL); if (normalized_string && normalized_key) { case_normalized_string = g_utf8_casefold (normalized_string, -1); case_normalized_key = g_utf8_casefold (normalized_key, -1); if (strncmp (case_normalized_key, case_normalized_string, strlen (case_normalized_key)) == 0) retval = FALSE; } g_free (normalized_key); g_free (normalized_string); g_free (case_normalized_key); g_free (case_normalized_string); } return retval; } */ static GtkTreeViewColumn * ui_asg_listview_column_text_create(gchar *title, gint sortcolumnid, GtkTreeCellDataFunc func, gpointer user_data) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; DB( g_print("\n[ui-asg-listview] text create\n") ); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new_with_attributes(title, renderer, NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_column_set_sort_column_id (column, sortcolumnid); //gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); //gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_GROW_ONLY); //gtk_tree_view_column_set_expand (column, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, func, user_data, NULL); return column; } /* enum { TARGET_GTK_TREE_MODEL_ROW }; static GtkTargetEntry row_targets[] = { { "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_APP, TARGET_GTK_TREE_MODEL_ROW } }; static void data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selda, guint info, guint time, gpointer dada) { g_print(" drag data received\n"); } */ GtkWidget * ui_asg_listview_new(gboolean withtoggle) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; DB( g_print("\n[ui-asg-listview] new\n") ); // create list store store = gtk_list_store_new(NUM_LST_DEFASG, G_TYPE_BOOLEAN, G_TYPE_POINTER ); // treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); #if MYDEBUG == 1 column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_asg_listview_cell_data_function_debugkey, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); #endif // column: toggle if( withtoggle == TRUE ) { renderer = gtk_cell_renderer_toggle_new (); column = gtk_tree_view_column_new_with_attributes (_("Visible"), renderer, "active", LST_DEFASG_TOGGLE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (ui_asg_listview_toggled_cb), store); } // column: icons column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_asg_listview_cell_data_func_icons, GINT_TO_POINTER(1), NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column: position renderer = gtk_cell_renderer_text_new (); //#2004631 date and column title alignement g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, "#"); gtk_tree_view_column_set_sort_column_id (column, LST_DEFASG_SORT_POS); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_asg_listview_cell_data_function_pos, GINT_TO_POINTER(LST_DEFASG_DATAS), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column : Search column = ui_asg_listview_column_text_create(_("Search"), LST_DEFASG_SORT_SEARCH, ui_asg_listview_cell_data_function_search, NULL); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_renderer_set_fixed_size(renderer, 16, -1); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_asg_listview_cell_data_func_searchicons, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_renderer_set_fixed_size(renderer, 16, -1); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_asg_listview_cell_data_func_searchicons, GINT_TO_POINTER(2), NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column : Notes column = ui_asg_listview_column_text_create(_("Notes"), LST_DEFASG_SORT_NOTES, ui_asg_listview_cell_data_function_notes, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column : Payee column = ui_asg_listview_column_text_create(_("Payee"), LST_DEFASG_SORT_PAYEE, ui_asg_listview_cell_data_function_payee, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column : Category column = ui_asg_listview_column_text_create(_("Category"), LST_DEFASG_SORT_CATEGORY, ui_asg_listview_cell_data_function_category, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column : Payment renderer = gtk_cell_renderer_pixbuf_new (); g_object_set(renderer, "xalign", 0.0, NULL); column = gtk_tree_view_column_new(); //TRANSLATORS: abbreviation for payment gtk_tree_view_column_set_title(column, _("Pay.")); gtk_tree_view_column_set_sort_column_id (column, LST_DEFASG_SORT_PAYMENT); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_asg_listview_cell_data_function_payment, 0, NULL); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column : Tags column = ui_asg_listview_column_text_create(_("Tags"), LST_DEFASG_SORT_TAGS, ui_asg_listview_cell_data_function_tags, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column : empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // treeviewattribute //gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), FALSE); //5.6 drag n drop is no more possible easily when sort //gtk_tree_view_set_reorderable (GTK_TREE_VIEW(treeview), TRUE); /* gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW (treeview), GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS (row_targets), GDK_ACTION_MOVE | GDK_ACTION_COPY); gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW (treeview), row_targets, G_N_ELEMENTS (row_targets), GDK_ACTION_MOVE | GDK_ACTION_COPY); g_signal_connect (treeview, "drag-data-received", G_CALLBACK (data_received), NULL); */ //gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_asg_listview_compare_default_func, NULL, NULL); //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); //sortable gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFASG_SORT_POS, ui_asg_listview_compare_func, GINT_TO_POINTER(LST_DEFASG_SORT_POS), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFASG_SORT_SEARCH, ui_asg_listview_compare_func, GINT_TO_POINTER(LST_DEFASG_SORT_SEARCH), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFASG_SORT_PAYEE, ui_asg_listview_compare_func, GINT_TO_POINTER(LST_DEFASG_SORT_PAYEE), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFASG_SORT_CATEGORY, ui_asg_listview_compare_func, GINT_TO_POINTER(LST_DEFASG_SORT_CATEGORY), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFASG_SORT_PAYMENT, ui_asg_listview_compare_func, GINT_TO_POINTER(LST_DEFASG_SORT_PAYMENT), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFASG_SORT_TAGS, ui_asg_listview_compare_func, GINT_TO_POINTER(LST_DEFASG_SORT_TAGS), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFASG_SORT_NOTES, ui_asg_listview_compare_func, GINT_TO_POINTER(LST_DEFASG_SORT_NOTES), NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DEFASG_SORT_POS, GTK_SORT_ASCENDING); //#1897810 add quicksearch //gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(treeview), ui_asg_listview_search_equal_func, NULL, NULL); return treeview; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_asg_dialog_update(GtkWidget *widget, gpointer user_data) { struct ui_asg_dialog_data *data; gboolean sensitive; //ignore event triggered from inactive radiobutton //if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)) == FALSE ) // return; DB( g_print("\n[ui-asg-dialog] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_amount)); gtk_widget_set_sensitive(data->ST_amount, sensitive); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_pay)); gtk_widget_set_sensitive(data->LB_pay, sensitive); gtk_widget_set_sensitive(data->PO_pay, sensitive); gtk_widget_set_sensitive(data->CM_payovw, sensitive); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cat)); gtk_widget_set_sensitive(data->LB_cat, sensitive); gtk_widget_set_sensitive(data->PO_cat, sensitive); gtk_widget_set_sensitive(data->CM_catovw, sensitive); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_mod)); gtk_widget_set_sensitive(data->LB_mod, sensitive); gtk_widget_set_sensitive(data->NU_mod, sensitive); gtk_widget_set_sensitive(data->CM_modovw, sensitive); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_tags)); gtk_widget_set_sensitive(data->LB_tags, sensitive); gtk_widget_set_sensitive(data->ST_tags, sensitive); gtk_widget_set_sensitive(data->CY_tags, sensitive); gtk_widget_set_sensitive(data->CM_tagsovw, sensitive); } /* ** rename the selected assign to our treeview and temp GList */ static void ui_asg_dialog_rename(GtkWidget *widget, gpointer user_data) { struct ui_asg_dialog_data *data; gboolean error; gchar *txt; GString *errstr; Assign *item; DB( g_print("\n[ui-asg-dialog] rename\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); errstr = g_string_new(NULL); error = FALSE; gtk_label_set_text(GTK_LABEL(data->LB_wrntxt), ""); gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET(data->ST_search)), GTK_STYLE_CLASS_ERROR); item = data->asgitem; txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_search)); if( txt == NULL || *txt == '\0' ) { //#2042035 g_string_append_printf(errstr, _("Search cannot be empty")); error = TRUE; goto end; } if( strcmp(txt, item->search) ) { //#2042035 Assign *existitem = da_asg_get_by_name(txt); if( existitem != NULL ) { g_string_append_printf(errstr, _("This search text already exists at position %d"), existitem->pos); error = TRUE; } } //#1842897 lead/trail visible if detected if( txt != NULL && hb_string_has_leading_trailing(txt) == TRUE ) { gchar *wrntxt; gchar **split; split = g_strsplit(txt, " ", -1); wrntxt = g_strjoinv("\xE2\x90\xA3", split); if( errstr->len > 0 ) g_string_append(errstr, "\n"); g_string_append(errstr, wrntxt); g_free(wrntxt); g_strfreev(split); } end: gtk_label_set_text(GTK_LABEL(data->LB_wrntxt), errstr->str); if( errstr->len > 0 ) gtk_widget_show(data->GR_wrntxt); else gtk_widget_hide(data->GR_wrntxt); g_string_free(errstr, TRUE); if( error == TRUE ) { gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(data->ST_search)), GTK_STYLE_CLASS_ERROR); } //5.7.2 disable OK gtk_dialog_set_response_sensitive(GTK_DIALOG (data->dialog), GTK_RESPONSE_ACCEPT, !error); } static void ui_asg_dialog_get(GtkWidget *widget, gpointer user_data) { struct ui_asg_dialog_data *data; Assign *item; gint active; gchar *txt; DB( g_print("\n[ui-asg-dialog] get\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); item = data->asgitem; if(item != NULL) { data->change++; item->field = hbtk_switcher_get_active (HBTK_SWITCHER(data->CY_field)); //#2042035 txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_search)); if (txt && *txt) { hbtk_entry_replace_text(GTK_ENTRY(data->ST_search), &item->search); } item->flags = 0; active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_exact)); if(active == 1) item->flags |= ASGF_EXACT; active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_re)); if(active == 1) item->flags |= ASGF_REGEX; //#1710085 assignment based on amount active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_amount)); if(active == 1) item->flags |= ASGF_AMOUNT; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_pay)); if(active == 1) item->flags |= ASGF_DOPAY; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_payovw)); if(active == 1) item->flags |= ASGF_OVWPAY; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_cat)); if(active == 1) item->flags |= ASGF_DOCAT; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_catovw)); if(active == 1) item->flags |= ASGF_OVWCAT; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_mod)); if(active == 1) item->flags |= ASGF_DOMOD; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_modovw)); if(active == 1) item->flags |= ASGF_OVWMOD; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_tags)); if(active == 1) item->flags |= ASGF_DOTAG; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_tagsovw)); if(active == 1) item->flags |= ASGF_OVWTAG; item->amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); //item->kcat = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_cat)); item->kcat = ui_cat_entry_popover_get_key_add_new(GTK_BOX(data->PO_cat)); //item->kpay = ui_pay_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_pay)); item->kpay = ui_pay_entry_popover_get_key_add_new(GTK_BOX(data->PO_pay)); item->paymode = paymode_combo_box_get_active(GTK_COMBO_BOX(data->NU_mod)); gchar *txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_tags)); DB( g_print(" tags: '%s'\n", txt) ); g_free(item->tags); item->tags = tags_parse(txt); hbtk_entry_replace_text(GTK_ENTRY(data->ST_notes), &item->notes); } } /* ** set widgets contents from the selected assign */ static void ui_asg_dialog_set(GtkWidget *widget, gpointer user_data) { struct ui_asg_dialog_data *data; Assign *item; gint active; DB( g_print("\n[ui-asg-dialog] set\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); item = data->asgitem; DB( g_print(" -> set rul id=%d\n", item->key) ); hbtk_entry_set_text(GTK_ENTRY(data->ST_search), item->search); hbtk_switcher_set_active (HBTK_SWITCHER(data->CY_field), item->field); hbtk_entry_set_text(GTK_ENTRY(data->ST_notes), item->notes); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_exact), (item->flags & ASGF_EXACT) ? 1 : 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_re), (item->flags & ASGF_REGEX) ? 1 : 0); //#1710085 assignment based on amount //g_signal_handlers_block_by_func(G_OBJECT(data->CM_amount), G_CALLBACK(ui_asg_manage_update_amount), NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_amount), (item->flags & ASGF_AMOUNT ? 1 : 0)); //g_signal_handlers_unblock_by_func(G_OBJECT(data->CM_amount), G_CALLBACK(ui_asg_manage_update_amount), NULL); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), item->amount); active = (item->flags & ASGF_DOPAY) ? 1 : 0; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_pay), active); active = (item->flags & ASGF_OVWPAY) ? 1 : 0; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_payovw), active); //ui_pay_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_pay), item->kpay); ui_pay_entry_popover_set_active(GTK_BOX(data->PO_pay), item->kpay); active = (item->flags & ASGF_DOCAT) ? 1 : 0; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_cat), active); active = (item->flags & ASGF_OVWCAT) ? 1 : 0; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_catovw), active); //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), item->kcat); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_cat), item->kcat); active = (item->flags & ASGF_DOMOD) ? 1 : 0; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_mod), active); active = (item->flags & ASGF_OVWMOD) ? 1 : 0; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_modovw), active); paymode_combo_box_set_active(GTK_COMBO_BOX(data->NU_mod), item->paymode); active = (item->flags & ASGF_DOTAG) ? 1 : 0; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_tags), active); active = (item->flags & ASGF_OVWTAG) ? 1 : 0; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_tagsovw), active); gchar *tagstr = tags_tostring(item->tags); hbtk_entry_set_text(GTK_ENTRY(data->ST_tags), tagstr); g_free(tagstr); hbtk_entry_set_text(GTK_ENTRY(data->ST_notes), item->notes); //} } static void ui_asg_dialog_cb_destroy_cb_destroy(GtkWidget *widget, gpointer user_data) { struct ui_asg_dialog_data *data; DB( g_print("\n[ui-asg-dialog] destroy cb\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print(" free data\n") ); g_free(data); } static GtkWidget *ui_asg_dialog_new(GtkWindow *parent, Assign *item) { struct ui_asg_dialog_data *data; GtkWidget *dialog, *content; GtkWidget *content_grid, *group_grid; GtkWidget *label, *entry1; GtkWidget *wbox, *bbox; GtkWidget *widget; gint crow, row; gint w, h, dw, dh; DB( g_print("\n[ui-asg-dialog] new\n") ); data = g_malloc0(sizeof(struct ui_asg_dialog_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Assignment"), GTK_WINDOW(parent), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; data->asgitem = item; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 4:3 dw = (dh * 4) / 3; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our window private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" window=%p, inst_data=%p\n", dialog, data) ); //window contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox /* right area */ content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_LARGE); hbtk_box_prepend (GTK_BOX(content), content_grid); // group :: Rule crow = 0; group_grid = gtk_grid_new (); data->GR_condition = group_grid; gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); row = 0; label = make_label_group(_("Condition")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 3, 1); row++; //label = make_label_widget(_("Con_tains:")); label = make_label_widget(_("_Search:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(bbox)), GTK_STYLE_CLASS_LINKED); gtk_grid_attach (GTK_GRID (group_grid), bbox, 2, row, 2, 1); entry1 = make_string(label); data->ST_search = entry1; gtk_widget_set_hexpand(entry1, TRUE); hbtk_box_prepend (GTK_BOX(bbox), entry1); row++; bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); data->GR_wrntxt = bbox; gtk_grid_attach (GTK_GRID (group_grid), bbox, 2, row, 2, 1); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_WARNING); gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_label(NULL, 0.0, 0.5); data->LB_wrntxt = widget; hbtk_box_prepend (GTK_BOX(bbox), widget); row++; label = make_label_widget(_("_In:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup(HBTK_SWITCHER(widget), CYA_ASG_FIELD, FALSE); data->CY_field = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Case _sensitive")); data->CM_exact = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("_Regular expression")); data->CM_re = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); row++; label = make_label_widget(_("Amou_nt:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); bbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (group_grid), bbox, 2, row, 2, 1); widget = gtk_check_button_new_with_mnemonic(_("_AND")); data->CM_amount = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_amount(label); data->ST_amount = widget; gtk_box_prepend(GTK_BOX(bbox), widget); // group :: Assignments crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); row = 0; //label = make_label_group(_("Assign payee")); label = make_label_group(_("Assignments")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 3, 1); //payee row++; widget = gtk_check_button_new(); data->CM_pay = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); label = make_label_widget (_("_Payee:")); data->LB_pay = label; gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); //widget = ui_pay_comboboxentry_new(label); widget = ui_pay_entry_popover_new(label); data->PO_pay = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 1, 1); widget = gtk_check_button_new_with_mnemonic(_("Overwrite")); data->CM_payovw = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 4, row, 1, 1); //category row++; widget = gtk_check_button_new(); data->CM_cat = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); label = make_label_widget (_("_Category:")); data->LB_cat = label; gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); //widget = ui_cat_comboboxentry_new(label); widget = ui_cat_entry_popover_new(label); data->PO_cat = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 1, 1); widget = gtk_check_button_new_with_mnemonic(_("Overwrite")); data->CM_catovw = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 4, row, 1, 1); //payment row++; widget = gtk_check_button_new(); data->CM_mod = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); label = make_label_widget (_("Pay_ment:")); data->LB_mod = label; gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); widget = make_paymode (label); data->NU_mod = widget; gtk_widget_set_halign(widget, GTK_ALIGN_START); gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 1, 1); widget = gtk_check_button_new_with_mnemonic(_("Overwrite")); data->CM_modovw = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 4, row, 1, 1); //tags row++; widget = gtk_check_button_new(); data->CM_tags = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); label = make_label_widget (_("_Tags:")); data->LB_tags = label; gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); wbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(wbox)), GTK_STYLE_CLASS_LINKED); gtk_grid_attach (GTK_GRID (group_grid), wbox, 3, row, 1, 1); widget = make_string(label); data->ST_tags = widget; hbtk_box_prepend (GTK_BOX (wbox), widget); widget = ui_tag_popover_list(data->ST_tags); data->CY_tags = widget; gtk_box_prepend (GTK_BOX (wbox), widget); widget = gtk_check_button_new_with_mnemonic(_("Overwrite")); data->CM_tagsovw = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 4, row, 1, 1); //misc crow++; group_grid = gtk_grid_new (); data->GR_misc = group_grid; gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow, 1, 1); gtk_widget_set_margin_top(group_grid, SPACING_MEDIUM); row = 0; label = make_label_widget(_("Notes:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); entry1 = make_string(label); data->ST_notes = entry1; gtk_widget_set_hexpand(entry1, TRUE); gtk_grid_attach (GTK_GRID (group_grid), entry1, 2, row, 2, 1); // connect dialog signals g_signal_connect (dialog, "destroy", G_CALLBACK (ui_asg_dialog_cb_destroy_cb_destroy), NULL); //g_signal_connect (dialog, "map-event", G_CALLBACK (ui_asg_manage_mapped), &dialog); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all (dialog); gtk_widget_hide(data->GR_wrntxt); g_signal_connect (G_OBJECT (data->ST_search), "changed", G_CALLBACK (ui_asg_dialog_rename), NULL); g_signal_connect (data->CM_amount, "toggled", G_CALLBACK (ui_asg_dialog_update), NULL); g_signal_connect (G_OBJECT (data->CM_pay), "toggled", G_CALLBACK (ui_asg_dialog_update), NULL); g_signal_connect (G_OBJECT (data->CM_cat), "toggled", G_CALLBACK (ui_asg_dialog_update), NULL); g_signal_connect (G_OBJECT (data->CM_mod), "toggled", G_CALLBACK (ui_asg_dialog_update), NULL); g_signal_connect (G_OBJECT (data->CM_tags), "toggled", G_CALLBACK (ui_asg_dialog_update), NULL); return dialog; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_asg_manage_refilter(struct ui_asg_manage_data *data) { gchar *needle; DB( g_print("[ui-asg-manage] refilter\n") ); needle = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_search)); ui_asg_listview_populate(data->LV_rul, needle); } /* ** update the widgets status and contents from action/selection value */ static void ui_asg_manage_update(GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; gboolean selected, sensitive, canup, candw, canto; DB( g_print("\n[ui-asg-manage] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //if true there is a selected node selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_rul)), &model, &iter); DB( g_print(" selected = %d\n", selected) ); sensitive = (selected == TRUE) ? TRUE : FALSE; //gtk_widget_set_sensitive(data->BT_mod, sensitive); gtk_widget_set_sensitive(data->BT_rem, sensitive); gtk_widget_set_sensitive(data->BT_edit, sensitive); gtk_widget_set_sensitive(data->BT_dup, sensitive); //#1999243/2000629 rewrite up/down/to button sensitivity canup = candw = canto = selected; DB( g_print(" is_sortable= %d\n", GTK_IS_TREE_SORTABLE(model)) ); if( selected == TRUE ) { GtkTreeIter *tmpIter; gint sort_column_id; GtkSortType sort_order; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_rul)); sort_column_id = GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID; sort_order = GTK_SORT_DESCENDING; gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(model), &sort_column_id, &sort_order); DB( g_print(" sort is colid=%d order=%d (ok is %d %d)\n", sort_column_id, sort_order, LST_DEFASG_SORT_POS, GTK_SORT_ASCENDING) ); if( !((sort_column_id == LST_DEFASG_SORT_POS) && (sort_order == GTK_SORT_ASCENDING)) ) { canup = candw = FALSE; DB( g_print(" sort is not by position ASC\n") ); goto end; } tmpIter = gtk_tree_iter_copy(&iter); canup = gtk_tree_model_iter_previous(model, tmpIter); gtk_tree_iter_free(tmpIter); tmpIter = gtk_tree_iter_copy(&iter); candw = gtk_tree_model_iter_next(model, tmpIter); gtk_tree_iter_free(tmpIter); } end: DB( g_print(" can up=%d dw=%d to=%d\n", canup, candw, canto) ); gtk_widget_set_sensitive(data->BT_up , canup); gtk_widget_set_sensitive(data->BT_down, candw); gtk_widget_set_sensitive(data->BT_move, canto); } /* static gboolean ui_asg_manage_focus_out(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { ui_asg_manage_get(widget, user_data); return FALSE; } */ static void ui_asg_manage_popmove(GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; Assign *curitem; guint32 curpos, newpos; GList *lrul, *list; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-asg-manage] moveto apply (data=%p)\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_rul)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_poppos)); newpos = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->ST_poppos)); gtk_tree_model_get(model, &iter, LST_DEFASG_DATAS, &curitem, -1); curpos = curitem->pos; if( curpos == newpos ) goto end; lrul = list = assign_glist_sorted(HB_GLIST_SORT_POS); while (list != NULL) { Assign *item = list->data; if( item != curitem ) { //move is before if( newpos < curpos ) { if( item->pos >= newpos && item->pos < curpos ) item->pos++; } //move is after else { if( item->pos > curpos && item->pos <= newpos ) item->pos--; } } list = g_list_next(list); } g_list_free(lrul); curitem->pos = newpos; //#1999243 add change data->change++; ui_asg_listview_sort_force(GTK_TREE_SORTABLE(model), NULL); } end: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->MB_moveto), FALSE); } //#1999243 set maximum position when popover open static void ui_asg_manage_cb_move_to(GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data; gint maxpos; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-asg-manage] moveto init (data=%p)\n", data) ); maxpos = da_asg_length(); gtk_spin_button_set_range(GTK_SPIN_BUTTON(data->ST_poppos), 1.0, (gdouble)maxpos); } static void ui_asg_manage_cb_move_updown(GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data; GtkDirectionType direction = GPOINTER_TO_INT(user_data); GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; gboolean hasprvnxt; Assign *curitem, *prvnxtitem; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-asg-manage] up/down (data=%p)\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_rul)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DEFASG_DATAS, &curitem, -1); hasprvnxt = FALSE; if( direction == GTK_DIR_UP ) hasprvnxt = gtk_tree_model_iter_previous(model, &iter); else if( direction == GTK_DIR_DOWN ) hasprvnxt = gtk_tree_model_iter_next(model, &iter); if( hasprvnxt == TRUE ) { gushort tmp = curitem->pos; gtk_tree_model_get(model, &iter, LST_DEFASG_DATAS, &prvnxtitem, -1); //swap position curitem->pos = prvnxtitem->pos; prvnxtitem->pos = tmp; //#1999243 add change data->change++; ui_asg_listview_sort_force(GTK_TREE_SORTABLE(model), NULL); } } } static void ui_asg_manage_edit(GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; Assign *item; GtkWidget *dialog; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-asg-manage] edit (data=%p)\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_rul)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DEFASG_DATAS, &item, -1); dialog = ui_asg_dialog_new(GTK_WINDOW(data->dialog), item); ui_asg_dialog_set(dialog, NULL); ui_asg_dialog_update(dialog, NULL); gtk_dialog_set_default_response(GTK_DIALOG( dialog ), GTK_RESPONSE_ACCEPT); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { ui_asg_dialog_get(dialog, NULL); data->change++; } // cleanup and destroy //ui_asg_dialog_cleanup(dialog); gtk_window_destroy (GTK_WINDOW(dialog)); ui_asg_listview_sort_force(GTK_TREE_SORTABLE(model), NULL); } } static void ui_asg_manage_dup(GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; Assign *item, *newitem; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-asg-manage] dup (data=%p)\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_rul)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DEFASG_DATAS, &item, -1); newitem = da_asg_duplicate(item); if( newitem ) { ui_asg_listview_add(GTK_TREE_VIEW(data->LV_rul), newitem); ui_asg_listview_sort_force(GTK_TREE_SORTABLE(model), NULL); } else { gchar *newsearch = g_strdup_printf("%s %s", item->search, _("(copy)") ); ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("Error"), _("Cannot duplicate this Assignment,\n" "'%s' already exists."), newsearch ); g_free(newsearch); } } } /* ** add an empty new assign to our temp GList and treeview */ static void ui_asg_manage_add(GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data; GtkWidget *dialog; Assign *item; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-asg-manage] add (data=%p)\n", data) ); item = da_asg_malloc(); item->search = g_strdup_printf( _("(rule %d)"), da_asg_length()+1); dialog = ui_asg_dialog_new(GTK_WINDOW(data->dialog), item); ui_asg_dialog_set(dialog, NULL); ui_asg_dialog_update(dialog, NULL); gtk_dialog_set_default_response(GTK_DIALOG( dialog ), GTK_RESPONSE_ACCEPT); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { ui_asg_dialog_get(dialog, NULL); da_asg_append(item); ui_asg_listview_add(GTK_TREE_VIEW(data->LV_rul), item); data->change++; } else da_asg_free(item); // cleanup and destroy //ui_asg_dialog_cleanup(dialog); gtk_window_destroy (GTK_WINDOW(dialog)); } /* ** delete the selected assign to our treeview and temp GList */ static void ui_asg_manage_delete(GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data; guint32 key; gint result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-asg-manage] delete) data=%p\n", data) ); key = ui_asg_listview_get_selected_key(GTK_TREE_VIEW(data->LV_rul)); if( key > 0 ) { Assign *item = da_asg_get(key); gchar *title = NULL; gchar *secondtext; title = g_strdup_printf ( _("Are you sure you want to permanently delete '%s'?"), item->search); secondtext = _("If you delete an assignment, it will be permanently lost."); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Delete"), TRUE ); g_free(title); if( result == GTK_RESPONSE_OK ) { da_asg_remove(key); ui_asg_listview_remove_selected(GTK_TREE_VIEW(data->LV_rul)); data->change++; } da_asg_update_position(); } } static gboolean ui_asg_manage_cb_on_key_press(GtkWidget *source, GdkEvent *event, gpointer user_data) { struct ui_asg_manage_data *data = user_data; GdkModifierType state; guint keyval; gdk_event_get_state (event, &state); gdk_event_get_keyval(event, &keyval); DB( g_printf("\n[ui-asg-manage] cb key press\n") ); // On Control-f enable search entry if (state & GDK_CONTROL_MASK && keyval == GDK_KEY_f) { gtk_widget_grab_focus(data->ST_search); } else if (keyval == GDK_KEY_Escape && gtk_widget_has_focus(data->ST_search)) { hbtk_entry_set_text(GTK_ENTRY(data->ST_search), NULL); gtk_widget_grab_focus(data->LV_rul); return TRUE; } return GDK_EVENT_PROPAGATE; } static void ui_asg_manage_cb_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { DB( g_printf("\n[ui-asg-manage] row activated\n") ); ui_asg_manage_edit(GTK_WIDGET(treeview), userdata); } static void ui_asg_manage_selection(GtkTreeSelection *treeselection, gpointer user_data) { DB( g_printf("\n[ui-asg-manage] selection\n") ); ui_asg_manage_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static void ui_asg_manage_sort_changed(GtkTreeSortable *sortable, gpointer user_data) { struct ui_asg_manage_data *data = user_data; DB( g_printf("\n[ui-asg-manage] sort changed\n") ); ui_asg_manage_update(data->dialog, NULL); } static void ui_asg_manage_search_changed_cb (GtkWidget *widget, gpointer user_data) { struct ui_asg_manage_data *data = user_data; DB( g_printf("\n[ui-asg-manage] search_changed_cb\n") ); ui_asg_manage_refilter(data); } static gboolean ui_asg_manage_cleanup(struct ui_asg_manage_data *data, gint result) { //GtkTreeModel *tree_model; gboolean doupdate = FALSE; DB( g_print("\n[ui-asg-manage] cleanup data=%p\n", data) ); //tree_model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_rul)); //data->change += ui_asg_manage_persist_position(tree_model); GLOBALS->changes_count += data->change; return doupdate; } static void ui_asg_manage_setup(struct ui_asg_manage_data *data) { DB( g_print("\n[ui-asg-manage] setup\n") ); DB( g_print(" init data\n") ); //init GList data->tmp_list = NULL; //hb-glist_clone_list(GLOBALS->rul_list, sizeof(struct _Assign)); data->change = 0; DB( g_print(" populate\n") ); da_asg_update_position(); ui_asg_listview_populate(data->LV_rul, NULL); //5.5 done in popover //ui_pay_comboboxentry_populate(GTK_COMBO_BOX(data->PO_pay), GLOBALS->h_pay); //ui_cat_comboboxentry_populate(GTK_COMBO_BOX(data->PO_cat), GLOBALS->h_cat); //DB( g_print(" set widgets default\n") ); DB( g_print(" connect widgets signals\n") ); //gtk_tree_view_set_search_entry(GTK_TREE_VIEW(data->LV_rul), GTK_ENTRY(data->ST_search)); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(data->LV_rul), FALSE); g_signal_connect (data->ST_search, "search-changed", G_CALLBACK (ui_asg_manage_search_changed_cb), data); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_rul)), "changed", G_CALLBACK (ui_asg_manage_selection), NULL); g_signal_connect (data->LV_rul, "row-activated", G_CALLBACK (ui_asg_manage_cb_row_activated), NULL); g_signal_connect (gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_rul)), "sort-column-changed", G_CALLBACK (ui_asg_manage_sort_changed), data); g_signal_connect (G_OBJECT (data->BT_add), "clicked", G_CALLBACK (ui_asg_manage_add), NULL); g_signal_connect (G_OBJECT (data->BT_rem), "clicked", G_CALLBACK (ui_asg_manage_delete), NULL); g_signal_connect (G_OBJECT (data->BT_edit), "clicked", G_CALLBACK (ui_asg_manage_edit), NULL); g_signal_connect (G_OBJECT (data->BT_dup), "clicked", G_CALLBACK (ui_asg_manage_dup), NULL); g_signal_connect (G_OBJECT (data->BT_up ), "clicked", G_CALLBACK (ui_asg_manage_cb_move_updown), GUINT_TO_POINTER(GTK_DIR_UP)); g_signal_connect (G_OBJECT (data->BT_down), "clicked", G_CALLBACK (ui_asg_manage_cb_move_updown), GUINT_TO_POINTER(GTK_DIR_DOWN)); g_signal_connect (G_OBJECT (data->BT_move), "clicked", G_CALLBACK (ui_asg_manage_cb_move_to), NULL); // popover signals g_signal_connect (G_OBJECT (data->ST_poppos), "activate", G_CALLBACK (ui_asg_manage_popmove), NULL); g_signal_connect (G_OBJECT (data->BT_popmove), "clicked", G_CALLBACK (ui_asg_manage_popmove), NULL); } static gboolean ui_asg_manage_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct ui_asg_manage_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[ui-asg-manage] mapped\n") ); ui_asg_manage_setup(data); ui_asg_manage_update(data->LV_rul, NULL); gtk_widget_grab_focus(GTK_WIDGET(data->LV_rul)); data->mapped_done = TRUE; return FALSE; } static GtkWidget *ui_asg_popover_move_after_new(struct ui_asg_manage_data *data) { GtkWidget *box, *menubutton, *label, *widget, *image; GtkWidget *pop_content; DB( g_print("\n[ui-asg-manage] create popmove\n") ); menubutton = gtk_menu_button_new (); data->MB_moveto = menubutton; box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); image = gtk_image_new_from_icon_name (ICONNAME_LIST_MOVE_AFTER, GTK_ICON_SIZE_BUTTON); gtk_box_prepend (GTK_BOX(box), image); gtk_container_add(GTK_CONTAINER(menubutton), box); gtk_widget_set_tooltip_text(menubutton, _("Move to...")); gtk_menu_button_set_direction (GTK_MENU_BUTTON(menubutton), GTK_ARROW_DOWN ); gtk_widget_set_halign (menubutton, GTK_ALIGN_END); //gtk_widget_set_hexpand (menubutton, TRUE); gtk_widget_show_all(menubutton); pop_content = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL); widget = make_label_group(_("Move rule")); gtk_box_prepend(GTK_BOX(pop_content), widget); widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); hbtk_box_prepend (GTK_BOX(pop_content), widget); box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX(pop_content), box); label = make_label_widget(_("_To:")); gtk_box_prepend(GTK_BOX(box), label); widget = make_numeric(label, 1, 99); data->ST_poppos = widget; gtk_entry_set_width_chars(GTK_ENTRY(widget), 10); gtk_box_prepend(GTK_BOX(box), widget); widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); hbtk_box_prepend (GTK_BOX(pop_content), widget); box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append(GTK_BOX(pop_content), box); widget = gtk_button_new_with_mnemonic(_("Move")); data->BT_popmove = widget; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(widget)), GTK_STYLE_CLASS_SUGGESTED_ACTION); gtk_box_append(GTK_BOX(box), widget); gtk_widget_show_all(pop_content); GtkWidget *popover = create_popover (menubutton, pop_content, GTK_POS_TOP); gtk_menu_button_set_popover(GTK_MENU_BUTTON(menubutton), popover); return menubutton; } GtkWidget *ui_asg_manage_dialog (void) { struct ui_asg_manage_data *data; GtkWidget *dialog, *content_area, *bbox, *hbox, *vbox, *tbar; GtkWidget *box, *treeview, *scrollwin; GtkWidget *widget, *content; gint w, h, dw, dh; DB( g_print("\n[ui-asg-manage] dialog\n") ); data = g_malloc0(sizeof(struct ui_asg_manage_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Manage Assignments"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 3:2 dw = (dh * 3) / 2; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" dialog=%p, inst_data=%p\n", dialog, data) ); //dialog content content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox content = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(content), SPACING_LARGE); hbtk_box_prepend (GTK_BOX (content_area), content); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (content), hbox); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hbtk_box_prepend (GTK_BOX (hbox), box); widget = make_search (); data->ST_search = widget; gtk_widget_set_size_request(widget, HB_MINWIDTH_SEARCH, -1); gtk_widget_set_halign(widget, GTK_ALIGN_END); gtk_box_prepend (GTK_BOX (hbox), widget); // list + toolbar vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hbtk_box_prepend (GTK_BOX (content), vbox); // listview scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); treeview = ui_asg_listview_new(FALSE); data->LV_rul = treeview; gtk_widget_set_size_request(treeview, HB_MINWIDTH_LIST, -1); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_ADD, _("Add")); data->BT_add = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); data->BT_rem = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_EDIT, _("Edit")); data->BT_edit = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_DUPLICATE, _("Duplicate")); data->BT_dup = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_MOVE_UP, _("Move up")); data->BT_up = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_MOVE_DOWN, _("Move down")); data->BT_down = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = ui_asg_popover_move_after_new(data); data->BT_move = widget; gtk_box_prepend(GTK_BOX(bbox), widget); // connect dialog signals g_signal_connect (dialog, "map-event", G_CALLBACK (ui_asg_manage_mapped), &dialog); g_signal_connect (dialog, "key-press-event", G_CALLBACK (ui_asg_manage_cb_on_key_press), (gpointer)data); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all(content); gtk_widget_show (dialog); // wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); // cleanup and destroy ui_asg_manage_cleanup(data, result); gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/src/hb-types.h0000664000175000017500000000227714736461415011513 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_TYPES_H__ #define __HB_TYPES_H__ #pragma once typedef struct _account Account; typedef struct _archive Archive; typedef struct _assign Assign; typedef struct _category Category; typedef struct _currency Currency; typedef struct _payee Payee; typedef struct _split Split; typedef struct _tag Tag; typedef struct _transaction Transaction; typedef struct _filter Filter; #endifhomebank-5.9.1/src/rep-vehicle.h0000644000175000017500000000373314736461415012157 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HOMEBANK_REPVEHICLE_H__ #define __HOMEBANK_REPVEHICLE_H__ enum { HID_REPVEHICLE_MINDATE, HID_REPVEHICLE_MAXDATE, HID_REPVEHICLE_RANGE, HID_REPVEHICLE_VEHICLE, MAX_REPVEHICLE_HID }; enum { CAR_RES_METER = 1, CAR_RES_FUEL, CAR_RES_FUELCOST, CAR_RES_OTHERCOST, CAR_RES_TOTALCOST, MAX_CAR_RES }; struct repvehicle_data { GQueue *txn_queue; GList *vehicle_list; Filter *filter; guint total_dist; gdouble total_fuel; gdouble total_fuelcost; gdouble total_misccost; GtkWidget *window; GActionGroup *actions; gboolean mapped_done; GtkWidget *TB_bar; GtkWidget *BT_refresh; GtkWidget *BT_export; //GtkWidget *TX_info; GtkWidget *CM_minor; GtkWidget *LV_report; GtkWidget *PO_cat; GtkWidget *PO_mindate, *PO_maxdate; GtkWidget *CY_range; GtkWidget *GR_result; GtkWidget *LA_avera[MAX_CAR_RES]; GtkWidget *LA_total[MAX_CAR_RES]; gulong handler_id[MAX_REPVEHICLE_HID]; }; //extern gchar *CYA_FLT_SELECT[]; /* list stat */ enum { LST_CAR_DATE, LST_CAR_MEMO, LST_CAR_METER, LST_CAR_FUEL, LST_CAR_PRICE, LST_CAR_AMOUNT, LST_CAR_DIST, LST_CAR_100KM, LST_CAR_DISTBYVOL, LST_CAR_PARTIAL, NUM_LST_CAR }; GtkWidget *repvehicle_window_new(void); #endif homebank-5.9.1/src/rep-budget.c0000644000175000017500000022126215005633647012002 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "rep-budget.h" #include "list-operation.h" #include "gtk-chart-progress.h" #include "gtk-dateentry.h" #include "hbtk-switcher.h" #include "dsp-mainwindow.h" #include "ui-transaction.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* prototypes */ static void repbudget_compute(GtkWidget *widget, gpointer user_data); static void repbudget_sensitive(GtkWidget *widget, gpointer user_data); static void repbudget_update_daterange(GtkWidget *widget, gpointer user_data); static void repbudget_update_chart(GtkWidget *widget, gpointer user_data); static void repbudget_update_detail(GtkWidget *widget, gpointer user_data); static void repbudget_detail(GtkWidget *widget, gpointer user_data); static gchar *repbudget_compute_title(gint mode); static void repbudget_selection(GtkTreeSelection *treeselection, gpointer user_data); extern gchar *CYA_REPORT_MODE[]; extern HbKvData CYA_KIND[]; /* = = = = = = = = = = = = = = = = */ static void lst_repbud_to_string_row(GString *node, ToStringMode mode, HbRepBudMode uimode, GtkTreeModel *model, GtkTreeIter *iter) { guint32 key; gchar sep, *name, *status; gdouble spent, budget, result; gint fulfilled; gtk_tree_model_get (model, iter, LST_BUDGET_KEY, &key, LST_BUDGET_NAME, &name, LST_BUDGET_SPENT, &spent, LST_BUDGET_BUDGET, &budget, LST_BUDGET_FULFILLED, &fulfilled, LST_BUDGET_RESULT, &result, LST_BUDGET_STATUS, &status, -1); //#2033298 we get fullname for export if( uimode == REP_BUD_MODE_TOTAL ) { Category *catitem = da_cat_get(key); if( catitem != NULL ) { g_free(name); name = g_strdup( (catitem->key == 0) ? _("(no category)") : catitem->fullname ); } } //2023696 add unbudgeted if( key != LST_BUDGET_POS_UNBUDGETED ) { sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; g_string_append (node, name ); g_string_append_c(node, sep); _format_decimal(node, mode, spent); g_string_append_c(node, sep); _format_decimal(node, mode, budget); g_string_append_c(node, sep); g_string_append_printf(node, "%d %%", fulfilled); g_string_append_c(node, sep); _format_decimal(node, mode, result); g_string_append_c(node, sep); g_string_append (node, status ); g_string_append_c(node, '\n'); } //leak g_free(name); g_free(status); } static GString *lst_repbud_to_string(ToStringMode mode, GtkTreeView *treeview, HbRepBudMode uimode, gchar *title, gboolean clipboard) { GString *node; GtkTreeModel *model; GtkTreeIter iter, child; gboolean valid; gchar sep; node = g_string_new(NULL); sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; // header g_string_append (node, (title == NULL) ? _("Category") : title ); g_string_append_c (node, sep ); g_string_append (node, _("Spent") ); g_string_append_c (node, sep ); g_string_append (node, _("Budget") ); g_string_append_c (node, sep ); g_string_append (node, _("Fulfilled") ); g_string_append_c (node, sep ); g_string_append (node, _("Result") ); g_string_append_c (node, sep ); g_string_append_c(node, '\n'); // lines model = gtk_tree_view_get_model(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { lst_repbud_to_string_row(node, mode, uimode, model, &iter); // children ? valid = gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while (valid) { lst_repbud_to_string_row(node, mode, uimode, model, &child); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } //DB( g_print("text is:\n%s", node->str) ); return node; } /* ** ** The function should return: ** a negative integer if the first value comes before the second, ** 0 if they are equal, ** or a positive integer if the first value comes after the second. */ static gint budget_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); gint retval = 0; gint pos1, pos2; HbRepBudMode tmpmode; gint csid; GtkSortType cso; gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(model), &csid, &cso); tmpmode = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(model), "mode-data")); //DB( g_print(" budget compare column=%d order=%s tmpmode=%d\n", sortcol, sort_order == GTK_SORT_ASCENDING ? "ASC" : "DESC" , tmpmode) ); gtk_tree_model_get(model, a, LST_BUDGET_POS, &pos1, -1); gtk_tree_model_get(model, b, LST_BUDGET_POS, &pos2, -1); //total always at bottom if( pos1 == LST_BUDGET_POS_UNBUDGETED ) { retval = cso == GTK_SORT_ASCENDING ? 1 : -1; //DB( g_print(" sort p1=%d ? p2=%d = %d\n", pos1, pos2, retval) ); } else { if( pos2 == LST_BUDGET_POS_UNBUDGETED ) { retval = cso == GTK_SORT_ASCENDING ? -1 : 1; //DB( g_print(" sort p1=%d ? p2=%d = %d\n", pos1, pos2, retval) ) } else { switch( sortcol ) { case LST_BUDGET_NAME: { if( tmpmode == REP_BUD_MODE_TIME ) { //DB( g_print(" retval = %d - %d\n", pos1, pos2) ); retval = pos1 - pos2; } else { gchar *entry1, *entry2; gtk_tree_model_get(model, a, LST_BUDGET_NAME, &entry1, -1); gtk_tree_model_get(model, b, LST_BUDGET_NAME, &entry2, -1); retval = hb_string_utf8_compare(entry1, entry2); //leak g_free(entry2); g_free(entry1); } } break; default: { gdouble val1, val2; gtk_tree_model_get(model, a, csid, &val1, -1); gtk_tree_model_get(model, b, csid, &val2, -1); //DB( g_print(" retval = %.2f - %2f\n", val1, val2) ); retval = (gint)(val1 - val2); } break; } } } //DB( g_print(" retval = %d\n", retval) ); return retval; } static void lst_repbud_cell_data_function_name (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gint tmpmode; tmpmode = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(model), "mode-data")); if( tmpmode == REP_BUD_MODE_TOTAL ) { Category *item; gint pos; guint32 key; gchar *markup = NULL; gtk_tree_model_get(model, iter, LST_BUDGET_POS, &pos, LST_BUDGET_KEY, &key, -1); if( pos != LST_BUDGET_POS_UNBUDGETED ) { item = da_cat_get(key); if(item) { markup = item->typename; } } else { goto libname; } g_object_set(renderer, "markup", markup, NULL); } else libname: { gchar *name; gtk_tree_model_get(model, iter, LST_BUDGET_NAME, &name, -1); g_object_set(renderer, "text", name, NULL); g_free(name); } } static void lst_repbud_cell_data_function_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble value; gchar *color; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gint column_id = GPOINTER_TO_INT(user_data); gtk_tree_model_get(model, iter, column_id, &value, -1); if( value ) { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, value, GLOBALS->kcur, GLOBALS->minor); if( column_id == LST_BUDGET_RESULT) color = get_minimum_color_amount (value, 0.0); else color = get_normal_color_amount(value); g_object_set(renderer, "foreground", color, "text", buf, NULL); } else { g_object_set(renderer, "text", "", NULL); } } static void lst_repbud_cell_data_function_result (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble value; gchar *color; gchar *status; gint column_id = GPOINTER_TO_INT(user_data); gtk_tree_model_get(model, iter, column_id, &value, LST_BUDGET_STATUS, &status, -1); if( value ) { color = get_minimum_color_amount (value, 0.0); g_object_set(renderer, "foreground", color, "text", status, NULL); } else { g_object_set(renderer, "text", "", NULL); } //leak g_free(status); } static void lst_repbud_cell_data_function_fulfilled (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble budget; gint rawrate; gchar buf[16]; gtk_tree_model_get(model, iter, LST_BUDGET_BUDGET, &budget, LST_BUDGET_FULFILLED, &rawrate, -1); if( hb_amount_cmp(budget, 0.0) != 0 ) { g_snprintf(buf, sizeof(buf), "%d %%", rawrate); g_object_set(renderer, "text", buf, NULL); } else g_object_set(renderer, "text", "", NULL); } static GtkTreeViewColumn *lst_repbud_column_create_amount(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_repbud_cell_data_function_amount, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_set_sort_column_id (column, id); return column; } /* ** create our statistic list */ static GtkWidget *lst_repbud_create(void) { GtkTreeStore *store; GtkWidget *view; GtkCellRenderer *renderer; GtkTreeViewColumn *column; DB( g_print("\n[repbudget] create list\n") ); /* create list store */ store = gtk_tree_store_new( NUM_LST_BUDGET, G_TYPE_INT, //pos G_TYPE_INT, //key G_TYPE_STRING, //name G_TYPE_DOUBLE, //spent G_TYPE_DOUBLE, //budget G_TYPE_INT, //fulfilled G_TYPE_DOUBLE, //result G_TYPE_STRING //status ); //treeview view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), PREFS->grid_lines); /* column: Name */ renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Category")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_repbud_cell_data_function_name, GINT_TO_POINTER(LST_BUDGET_NAME), NULL); //gtk_tree_view_column_add_attribute(column, renderer, "text", LST_BUDGET_NAME); gtk_tree_view_column_set_sort_column_id (column, LST_BUDGET_NAME); gtk_tree_view_column_set_resizable(column, TRUE); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_min_width (column, HB_MINWIDTH_COLUMN); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Expense */ column = lst_repbud_column_create_amount(_("Spent"), LST_BUDGET_SPENT); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Income */ column = lst_repbud_column_create_amount(_("Budget"), LST_BUDGET_BUDGET); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Fulfilled */ renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Fulfilled")); gtk_tree_view_column_set_sort_column_id (column, LST_BUDGET_FULFILLED); gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_repbud_cell_data_function_fulfilled, GINT_TO_POINTER(LST_BUDGET_FULFILLED), NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Result */ column = lst_repbud_column_create_amount(_("Result"), LST_BUDGET_RESULT); //right part renderer = gtk_cell_renderer_text_new (); //g_object_set(renderer, "xalign", 0.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_repbud_cell_data_function_result, GINT_TO_POINTER(LST_BUDGET_RESULT), NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column last: empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* sort */ //gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), budget_listview_compare_func, NULL, NULL); //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_BUDGET_NAME, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_BUDGET_NAME , budget_listview_compare_func, GINT_TO_POINTER(LST_BUDGET_NAME), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_BUDGET_SPENT , budget_listview_compare_func, GINT_TO_POINTER(LST_BUDGET_SPENT), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_BUDGET_BUDGET, budget_listview_compare_func, GINT_TO_POINTER(LST_BUDGET_BUDGET), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_BUDGET_FULFILLED, budget_listview_compare_func, GINT_TO_POINTER(LST_BUDGET_FULFILLED), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_BUDGET_RESULT, budget_listview_compare_func, GINT_TO_POINTER(LST_BUDGET_RESULT), NULL); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(view), FALSE); return(view); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static gchar *budget_mode_label(gint mode) { gchar *retval = (mode == REP_BUD_MODE_TIME) ? _("Month") : _("Category"); return (gchar *)retval; } /* action functions -------------------- */ static void repbudget_action_viewlist(GtkWidget *toolbutton, gpointer user_data) { struct repbudget_data *data = user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 0); repbudget_sensitive(data->window, NULL); } static void repbudget_action_viewstack(GtkWidget *toolbutton, gpointer user_data) { struct repbudget_data *data = user_data; //#1860905 we redraw chart in case a sort changed repbudget_update_chart(data->window, NULL); gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 1); repbudget_sensitive(data->window, NULL); } static void repbudget_action_print(GtkWidget *toolbutton, gpointer user_data) { struct repbudget_data *data = user_data; gint tmpmode, page; gchar *name, *coltitle, *title; tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); name = g_strdup_printf("hb-repbudget_%s", budget_mode_label(tmpmode) ); if( page == 0 ) { GString *node; title = repbudget_compute_title(tmpmode); coltitle = budget_mode_label(tmpmode); node = lst_repbud_to_string(HB_STRING_PRINT, GTK_TREE_VIEW(data->LV_report), tmpmode, coltitle, TRUE); gint8 leftcols[4] = { 0, 5, -1 }; hb_print_listview(GTK_WINDOW(data->window), node->str, leftcols, title, name, FALSE); g_string_free(node, TRUE); g_free(title); } else { gtk_chart_progress_print(GTK_CHARTPROGRESS(data->RE_progress), GTK_WINDOW(data->window), PREFS->path_export, name); } g_free(name); } /* ======================== */ static guint _date_getmonth(guint date) { GDate *date1; guint month; date1 = g_date_new_julian(date); month = g_date_get_month(date1); /*#if MYDEBUG == 1 g_print("\n[repbudget] getmonth\n"); gchar buffer1[128]; g_date_strftime (buffer1, 128-1, "%x", date1); g_print(" date is '%s', month=%d\n", buffer1, month); #endif*/ g_date_free(date1); return(month); } //# static void _date_clamp_today(Filter *flt, gboolean today) { if(today) { if( (GLOBALS->today > flt->mindate) && (GLOBALS->today < flt->maxdate) ) flt->maxdate = GLOBALS->today; } } static guint _date_countmonth(guint32 mindate, guint32 maxdate) { GDate *date1, *date2; guint nbmonth; if( mindate > maxdate ) return 0; date1 = g_date_new_julian(mindate); date2 = g_date_new_julian(maxdate); nbmonth = ((g_date_get_year(date2) - g_date_get_year(date1)) * 12) + g_date_get_month(date2) - g_date_get_month(date1) + 1; g_date_free(date2); g_date_free(date1); return(nbmonth); } static gdouble budget_compute_result(gdouble budget, gdouble spent) { gdouble retval; //original formula //result = ABS(budget) - ABS(spent); retval = spent - budget; return hb_amount_round(retval, 2); } static void repbudget_cb_date_monthyear(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; gboolean tmptoday; gdouble minval, maxval; DB( g_print("\n[repbudget] monthyear change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmptoday = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_untiltoday)); //todo g_signal_handler_block(data->SB_mindate, data->handler_id[HID_REPBUDGET_MINMONTHYEAR]); g_signal_handler_block(data->SB_maxdate, data->handler_id[HID_REPBUDGET_MAXMONTHYEAR]); //ensure always minval < maxval minval = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->SB_mindate)); maxval = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->SB_maxdate)); if( minval > maxval) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->SB_mindate), minval); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->SB_maxdate), minval); } if( maxval < minval) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->SB_mindate), maxval); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->SB_maxdate), maxval); } data->filter->mindate = hbtk_monthyear_getmin(GTK_SPIN_BUTTON(data->SB_mindate)); data->filter->maxdate = hbtk_monthyear_getmax(GTK_SPIN_BUTTON(data->SB_maxdate)); _date_clamp_today(data->filter, tmptoday); g_signal_handler_unblock(data->SB_maxdate, data->handler_id[HID_REPBUDGET_MAXMONTHYEAR]); g_signal_handler_unblock(data->SB_mindate, data->handler_id[HID_REPBUDGET_MINMONTHYEAR]); g_signal_handler_block(data->CY_range, data->handler_id[HID_REPBUDGET_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_CUSTOM); g_signal_handler_unblock(data->CY_range, data->handler_id[HID_REPBUDGET_RANGE]); repbudget_sensitive(widget, user_data); repbudget_compute(widget, NULL); repbudget_update_daterange(widget, NULL); } static gchar * repbudget_compute_title(gint mode) { gchar *title; if( mode == REP_BUD_MODE_TOTAL ) title = g_strdup(_("Budget by category")); else title = g_strdup(_("Budget by month")); return title; } /*static void repbudget_date_change(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; DB( g_print("\n[repbudget] date change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->filter->mindate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_mindate)); data->filter->maxdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_maxdate)); // set min/max date for both widget gtk_date_entry_set_maxdate(GTK_DATE_ENTRY(data->PO_mindate), data->filter->maxdate); gtk_date_entry_set_mindate(GTK_DATE_ENTRY(data->PO_maxdate), data->filter->mindate); g_signal_handler_block(data->CY_range, data->handler_id[HID_REPBUDGET_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_CUSTOM); g_signal_handler_unblock(data->CY_range, data->handler_id[HID_REPBUDGET_RANGE]); repbudget_compute(widget, NULL); repbudget_update_daterange(widget, NULL); }*/ static void repbudget_cb_date_range(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; gboolean tmptoday; gint range; DB( g_print("\n[repbudget] range change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); tmptoday = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_untiltoday)); if(range != FLT_RANGE_MISC_CUSTOM) { filter_preset_daterange_set(data->filter, range, 0); if( range == FLT_RANGE_MISC_ALLDATE ) { data->filter->mindate = hb_date_get_jbound(data->filter->mindate, HB_DATE_BOUND_FIRST); data->filter->maxdate = hb_date_get_jbound(data->filter->maxdate, HB_DATE_BOUND_LAST); } _date_clamp_today(data->filter, tmptoday); //5.7 g_signal_handler_block(data->SB_mindate, data->handler_id[HID_REPBUDGET_MINMONTHYEAR]); g_signal_handler_block(data->SB_maxdate, data->handler_id[HID_REPBUDGET_MAXMONTHYEAR]); hbtk_monthyear_set(GTK_SPIN_BUTTON(data->SB_mindate), data->filter->mindate); hbtk_monthyear_set(GTK_SPIN_BUTTON(data->SB_maxdate), data->filter->maxdate); g_signal_handler_unblock(data->SB_maxdate, data->handler_id[HID_REPBUDGET_MAXMONTHYEAR]); g_signal_handler_unblock(data->SB_mindate, data->handler_id[HID_REPBUDGET_MINMONTHYEAR]); repbudget_compute(widget, NULL); repbudget_update_daterange(widget, NULL); } } static void repbudget_update_daterange(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; gchar *daterange; DB( g_print("\n[repbudget] update daterange\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); daterange = filter_daterange_text_get(data->filter); gtk_label_set_markup(GTK_LABEL(data->TX_daterange), daterange); g_free(daterange); } static void repbudget_toggle_detail(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[repbudget] toggle detail\n") ); data->detail ^= 1; repbudget_update_detail(widget, user_data); repbudget_sensitive(widget, NULL); } static void repbudget_detail_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct repbudget_data *data; Transaction *active_txn; gboolean result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print ("\n[repbudget] A detail row has been double-clicked!\n") ); active_txn = list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_detail)); if(active_txn) { Transaction *old_txn, *new_txn; //#1909749 skip reconciled if lock is ON if( PREFS->safe_lock_recon == TRUE && active_txn->status == TXN_STATUS_RECONCILED ) return; old_txn = da_transaction_clone (active_txn); new_txn = active_txn; result = deftransaction_external_edit(GTK_WINDOW(data->window), old_txn, new_txn); if(result == GTK_RESPONSE_ACCEPT) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path = NULL; //1936806 keep the selection treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_report)); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { path = gtk_tree_model_get_path(model, &iter); } //#1640885 GLOBALS->changes_count++; repbudget_compute(data->window, NULL); if( path != NULL ) { gtk_tree_selection_select_path(treeselection, path); gtk_tree_path_free(path); } } da_transaction_free (old_txn); } } static void repbudget_update_detail(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[repbudget] update detail\n") ); if(GTK_IS_TREE_VIEW(data->LV_report)) { //#2018039 list_txn_set_lockreconciled(GTK_TREE_VIEW(data->LV_detail), PREFS->safe_lock_recon); if(data->detail) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; guint key; treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_report)); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_BUDGET_KEY, &key, -1); //DB( g_print(" active is %d\n", key) ); repbudget_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key)); } gtk_widget_show(data->GR_detail); } else gtk_widget_hide(data->GR_detail); } } static void repbudget_export_result_clipboard(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct repbudget_data *data; GtkClipboard *clipboard; GString *node; gint tmpmode; gchar *coltitle; DB( g_print("\n[repbudget] export result clipboard\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpmode = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_mode)); coltitle = budget_mode_label(tmpmode); node = lst_repbud_to_string(HB_STRING_CLIPBOARD, GTK_TREE_VIEW(data->LV_report), tmpmode, coltitle, TRUE); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); } static void repbudget_export_result_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct repbudget_data *data; gchar *filename = NULL; GString *node; GIOChannel *io; gchar *name; gint tmpmode; gchar *coltitle; DB( g_print("\n[repbudget] export result csv\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpmode = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_mode)); name = g_strdup_printf("hb-repbudget_%s.csv", budget_mode_label(tmpmode) ); if( ui_file_chooser_csv(GTK_WINDOW(data->window), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, name) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { coltitle = budget_mode_label(tmpmode); node = lst_repbud_to_string(HB_STRING_EXPORT, GTK_TREE_VIEW(data->LV_report), tmpmode, coltitle, FALSE); g_io_channel_write_chars(io, node->str, -1, NULL, NULL); g_io_channel_unref (io); g_string_free(node, TRUE); } g_free( filename ); } g_free(name); } static void repbudget_export_detail_clipboard(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct repbudget_data *data; GtkClipboard *clipboard; GString *node; guint flags; DB( g_print("\n[repbudget] export detail clipboard\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); flags = LST_TXN_EXP_CLR | LST_TXN_EXP_PMT | LST_TXN_EXP_CAT | LST_TXN_EXP_TAG; node = list_txn_to_string(GTK_TREE_VIEW(data->LV_detail), TRUE, FALSE, FALSE, flags); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); } static void repbudget_export_detail_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct repbudget_data *data; gchar *filepath = NULL; GString *node; GIOChannel *io; gchar *name; gint tmpmode; gboolean hassplit, hasstatus; DB( g_print("\n[repbudget] export detail csv\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpmode = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_mode)); name = g_strdup_printf("hb-repbudget-detail_%s.csv", budget_mode_label(tmpmode)); filepath = g_build_filename(PREFS->path_export, name, NULL); //#2019312 //if( ui_file_chooser_csv(GTK_WINDOW(data->window), GTK_FILE_CHOOSER_ACTION_SAVE, &filepath, name) == TRUE ) if( ui_dialog_export_csv(GTK_WINDOW(data->window), &filepath, &hassplit, &hasstatus, FALSE) == GTK_RESPONSE_ACCEPT ) { DB( g_print(" + filename is %s\n", filepath) ); io = g_io_channel_new_file(filepath, "w", NULL); if(io != NULL) { guint flags; flags = LST_TXN_EXP_PMT | LST_TXN_EXP_CAT | LST_TXN_EXP_TAG; if( hasstatus ) flags |= LST_TXN_EXP_CLR; node = list_txn_to_string(GTK_TREE_VIEW(data->LV_detail), FALSE, hassplit, FALSE, flags); g_io_channel_write_chars(io, node->str, -1, NULL, NULL); g_io_channel_unref (io); g_string_free(node, TRUE); } } g_free( filepath ); g_free(name); } static void repbudget_detail(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; gint active = GPOINTER_TO_INT(user_data); GList *list; guint tmpmode, tmptype; GtkTreeModel *model; GtkTreeIter iter, child; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[repbudget] detail\n") ); DB( g_print(" active: %d\n", active) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail)); gtk_tree_store_clear (GTK_TREE_STORE(model)); if(data->detail && data->txn_queue && active != -1) { /* clear and detach our model */ g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_detail), NULL); /* Detach model from view */ tmpmode = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_mode)); tmptype = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); /* fill in the model */ list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; gdouble dtlamt = ope->amount; gint pos = 0; gboolean match = FALSE; GPtrArray *matchsplit = NULL; DB( g_print(" ope: %s :: acc=%d, cat=%d, mnt=%.2f\n", ope->memo, ope->kacc, ope->kcat, ope->amount) ); //filter here //#2039995 filter txn with type // flt: expense if( tmptype == REPORT_TYPE_EXPENSE && (ope->flags & GF_INCOME) ) goto txnnext; // flt: income if( tmptype == REPORT_TYPE_INCOME && !(ope->flags & GF_INCOME) ) goto txnnext; //time: month if( tmpmode == REP_BUD_MODE_TIME ) { pos = report_interval_get_pos(REPORT_INTVL_MONTH, data->filter->mindate, ope); if( pos == active ) { if( !(ope->flags & OF_SPLIT) ) { match = category_key_budget_active(ope->kcat); } else { guint nbsplit = da_splits_length(ope->splits); dtlamt = 0.0; matchsplit = g_ptr_array_new(); for(guint i=0;isplits, i); if( category_key_budget_active(split->kcat) ) { match = TRUE; dtlamt += split->amount; g_ptr_array_add(matchsplit, split); } } } } } //total: category else { if( active != LST_BUDGET_POS_UNBUDGETED ) { Category *active_cat; gboolean is_subcat = FALSE; //get cat/subcat active_cat = da_cat_get(active); if( active_cat ) is_subcat = (active_cat->parent == 0) ? FALSE : TRUE; //category if( !(ope->flags & OF_SPLIT) ) { pos = category_report_id(ope->kcat, is_subcat); if( pos == active ) match = TRUE; } else { guint nbsplit = da_splits_length(ope->splits); dtlamt = 0.0; matchsplit = g_ptr_array_new(); for(guint i=0;isplits, i); pos = category_report_id(split->kcat, is_subcat); if( pos == active ) { match = TRUE; dtlamt += split->amount; g_ptr_array_add(matchsplit, split); } } } } // LST_BUDGET_POS_UNBUDGETED else { DB( g_print(" unbudgeted test\n") ); // we match txn cat with no budget set if( !(ope->flags & OF_SPLIT) ) { match = category_key_unbudgeted(ope->kcat); DB( g_print(" unbudgeted match: %d\n", match) ); } //splits else { guint nbsplit = da_splits_length(ope->splits); dtlamt = 0.0; matchsplit = g_ptr_array_new(); for(guint i=0;isplits, i); match = category_key_unbudgeted(split->kcat); dtlamt += split->amount; g_ptr_array_add(matchsplit, split); } } } } //insert if( match == TRUE ) { gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &iter, NULL, -1, MODEL_TXN_POINTER, ope, MODEL_TXN_SPLITAMT, dtlamt, -1); if( matchsplit != NULL ) { for(guint i=0;ilen;i++) { gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &child, &iter, -1, MODEL_TXN_POINTER, ope, MODEL_TXN_SPLITPTR, g_ptr_array_index(matchsplit, i), -1); } DB( g_print(" free matchsplit\n") ); g_ptr_array_free(matchsplit, TRUE); matchsplit = NULL; } } txnnext: list = g_list_next(list); } /* Re-attach model to view */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_detail), model); g_object_unref(model); gtk_tree_view_columns_autosize( GTK_TREE_VIEW(data->LV_detail) ); } } static void repbudget_update_total(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; DB( g_print("\n[repbudget] update total\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); GLOBALS->minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); hb_label_set_colvalue(GTK_LABEL(data->TX_total[0]), data->total_spent, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_total[1]), data->total_budget, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_total[2]), budget_compute_result(data->total_budget, data->total_spent), GLOBALS->kcur, GLOBALS->minor); } static void repbudget_update_chart(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; GtkTreeModel *model; gint tmpmode; gchar *title; DB( g_print("\n[repbudget] update chart\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpmode = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_mode)); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); /* update stack chart */ title = repbudget_compute_title(tmpmode); ui_chart_progress_set_currency(GTK_CHARTPROGRESS(data->RE_progress), GLOBALS->kcur); /* set chart color scheme */ ui_chart_progress_set_color_scheme(GTK_CHARTPROGRESS(data->RE_progress), PREFS->report_color_scheme); ui_chart_progress_set_dualdatas(GTK_CHARTPROGRESS(data->RE_progress), model, _("Budget"), _("Result"), title, NULL); g_free(title); } static void repbudget_fill_budget_for_category(Category *catitem, gdouble *tmp_budget, gint startmonth, gint nbmonth) { if( catitem == NULL) return; if( (catitem->flags & GF_BUDGET) == FALSE ) return; //debug /*#if MYDEBUG == 1 gint k; g_print(" budget vector: "); for(k=0;k<13;k++) g_print( " %d:[%.2f]", k, entry->budget[k]); g_print("\n"); #endif*/ DB( g_print(" %d:'%s' issub=%d hasbudget=%d custom=%d\n", catitem->key, catitem->name, (catitem->flags & GF_SUB), (catitem->flags & GF_BUDGET), (catitem->flags & GF_CUSTOM)) ); // same value each month ? if(!(catitem->flags & GF_CUSTOM)) { DB( g_print(" - monthly %.2f\n", catitem->budget[0]) ); tmp_budget[catitem->key] += catitem->budget[0]*nbmonth; if( catitem->flags & GF_SUB ) { tmp_budget[catitem->parent] += catitem->budget[0]*nbmonth; } } //otherwise sum each month from mindate month else { gint j, month = startmonth; DB( g_print(" - custom each month for %d months\n", nbmonth) ); for(j=0;jbudget[month]) ); tmp_budget[catitem->key] += catitem->budget[month]; if( catitem->flags & GF_SUB ) { tmp_budget[catitem->parent] += catitem->budget[month]; } month++; if(month > 12) { month = 1; } } } } static void _repbudget_compute_cat_spent(guint32 key, gint tmptype, gdouble amount, gdouble *tmp_spent, gdouble *unbudgeted) { Category *cat; //5.7.3 filter on type if( (tmptype == REPORT_TYPE_EXPENSE && amount > 0) || (tmptype == REPORT_TYPE_INCOME && amount< 0) ) return; cat = da_cat_get(key); if(cat) { DB( g_print(" cat %02d:%02d (sub=%d)\n", cat->parent, cat->key, (cat->flags & GF_SUB)) ); if( (cat->flags & (GF_FORCED|GF_BUDGET)) ) { DB( g_print(" + spend %.2f to cat %d\n", amount, cat->key) ); tmp_spent[cat->key] += amount; } //#2023696 else { //here if prefs we ignore if this is subcat but aprent have budget if( category_key_unbudgeted(key) == TRUE ) *unbudgeted += amount; } //#1825653 subcat without budget must be computed if( (cat->flags & GF_SUB) ) { Category *pcat = da_cat_get(cat->parent); if(pcat) { if( (cat->flags & (GF_FORCED|GF_BUDGET)) || (pcat->flags & (GF_FORCED|GF_BUDGET)) ) { DB( g_print(" + spend %.2f to parent %d\n", amount, cat->parent) ); tmp_spent[pcat->key] += amount; } } } } } static void budget_compute_category(struct repbudget_data *data, GtkTreeModel *model, gdouble *tmp_spent, gdouble *tmp_budget, guint startmonth, guint nbmonth, gboolean tmptype, gboolean tmponlyout) { GList *lcat, *list; guint id, i; gdouble unbudgeted; DB( g_print("\n+ compute budget for category\n") ); // fill tmp_budget //get ordered cat/subcat DB( g_print(" + cat fill budget\n") ); lcat = category_glist_sorted(HB_GLIST_SORT_KEY); list = lcat; while (list != NULL) { Category *catitem = list->data; repbudget_fill_budget_for_category(catitem, tmp_budget, startmonth, nbmonth); list = g_list_next(list); } // compute spent for each transaction // fill tmp_spent DB( g_print(" + cat fill spent\n") ); unbudgeted = 0.0; list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; DB( g_print(" ope: %s :: acc=%d, cat=%d, mnt=%.2f\n", ope->memo, ope->kacc, ope->kcat, ope->amount) ); if( ope->flags & OF_SPLIT ) { guint nbsplit = da_splits_length(ope->splits); Split *split; for(i=0;isplits, i); _repbudget_compute_cat_spent(split->kcat, tmptype, hb_amount_base(split->amount, ope->kcur), tmp_spent, &unbudgeted); } } else { _repbudget_compute_cat_spent(ope->kcat, tmptype, hb_amount_base(ope->amount, ope->kcur), tmp_spent, &unbudgeted); } list = g_list_next(list); } DB( g_print("\n -- populate budget listview --\n") ); DB( g_printf(" type=%d, onlyout=%d\n", tmptype, tmponlyout) ); DB( g_printf(" unbudgeted=%.2f\n\n", unbudgeted) ); id = 0; list = lcat; while (list != NULL) { Category *catitem = list->data; gchar *name; gboolean outofbudget; gboolean doinsert; gdouble result, rawrate; gint fulfilled; gchar *status; if( catitem == NULL) continue; name = catitem->key == 0 ? "(None)" : catitem->name; guint pos = catitem->key; DB( g_print(" eval %d: %d '%s' b:%d f:%d : spen=%.2f bud=%.2f \n", id, pos, name, (catitem->flags & GF_BUDGET), (catitem->flags & GF_FORCED), tmp_spent[pos], tmp_budget[pos] ) ); doinsert = FALSE; if( (hb_amount_cmp(tmp_budget[pos], 0.0) != 0) || (hb_amount_cmp(tmp_spent[pos], 0.0) != 0) ) doinsert = TRUE; //filter expense/income if( tmptype != REPORT_TYPE_ALL ) { Category *parent = catitem; gint cattype = 0; if(catitem->parent > 0) parent = da_cat_get(catitem->parent); cattype = category_type_get(parent); if( (tmptype == REPORT_TYPE_EXPENSE) && (cattype > 0) ) { doinsert = FALSE; DB( g_printf(" >skip: expense filter\n") ); } if( (tmptype == REPORT_TYPE_INCOME) && (cattype < 0) ) { doinsert = FALSE; DB( g_printf(" >skip: income filter\n") ); } } result = budget_compute_result(tmp_budget[pos], tmp_spent[pos]); rawrate = 0.0; if(ABS(tmp_budget[pos]) > 0) { rawrate = tmp_spent[pos] / tmp_budget[pos]; } else if(tmp_budget[pos] == 0.0) rawrate = ABS(tmp_spent[pos]); status = ""; outofbudget = FALSE; if( result ) { if(rawrate > 1.0) { status = _(" over"); outofbudget = TRUE; } else { if(tmp_budget[pos] < 0.0) status = _(" left"); else if(tmp_budget[pos] > 0.0) { status = _(" under"); outofbudget = TRUE; } } } if((tmponlyout == TRUE && outofbudget == FALSE) && !(catitem->flags & GF_MIXED) ) { DB( g_printf(" >skip: only out filter is on\n") ); doinsert = FALSE; } if( doinsert ) { GtkTreeIter parent; GtkTreeIter *tmpparent = NULL; Category *tmpcat = da_cat_get(pos); if( tmpcat != NULL) { //if( lst_repbud_get_top_level (GTK_TREE_MODEL(model), tmpcat->parent, &parent) == TRUE ) if( hbtk_tree_store_get_top_level(GTK_TREE_MODEL(model), LST_BUDGET_KEY, tmpcat->parent, &parent) ) { tmpparent = &parent; } else { //DB( g_print(" !! no parent %d found for %d '%s'\n", entry->parent, entry->key, entry->fullname) ); } } DB( g_print(" >insert '%s' s:%.2f b:%.2f r:%.2f (%%%.2f) '%s' '%d'\n", name, tmp_spent[pos], tmp_budget[pos], result, rawrate, status, outofbudget ) ); //5.7.3 dont fulfill if no budget fulfilled = 0; if( hb_amount_cmp(tmp_budget[pos], 0.0) != 0 ) fulfilled = (gint)hb_amount_round(rawrate*100, 0); gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), NULL, tmpparent, -1, LST_BUDGET_POS, id++, LST_BUDGET_KEY, pos, LST_BUDGET_NAME, name, LST_BUDGET_SPENT, tmp_spent[pos], LST_BUDGET_BUDGET, tmp_budget[pos], //#2043223 //LST_BUDGET_FULFILLED, (gint)(rawrate*100), LST_BUDGET_FULFILLED, fulfilled, LST_BUDGET_RESULT, result, LST_BUDGET_STATUS, status, -1); //#2036703 only sum level1, as level are already into the sum if( catitem->parent == 0 ) { data->total_spent += tmp_spent[pos]; data->total_budget += tmp_budget[pos]; } } list = g_list_next(list); } //2023696 add unbudgeted if( hb_amount_cmp(unbudgeted, 0.0) != 0 ) { gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), NULL, NULL, -1, LST_BUDGET_POS, LST_BUDGET_POS_UNBUDGETED, LST_BUDGET_KEY, LST_BUDGET_POS_UNBUDGETED, LST_BUDGET_NAME, _("(unbudgeted)"), LST_BUDGET_SPENT, unbudgeted, -1); } DB( g_print(" -- end populate category\n") ); // free cat list g_list_free(lcat); } static void budget_compute_month(struct repbudget_data *data, GtkTreeModel *model, gdouble *tmp_spent, gdouble *tmp_budget, guint startmonth, guint nbmonth, gboolean tmptype, gboolean tmponlyout) { GList *lcat, *list; GtkTreeIter iter; guint pos, i; DB( g_print("\n+ compute budget for month\n") ); // fill tmp_budget //get ordered cat/subcat DB( g_print(" + month compute budget, startmonth %d\n", startmonth) ); lcat = category_glist_sorted(HB_GLIST_SORT_KEY); list = lcat; while (list != NULL) { Category *catitem = list->data; DB( g_print(" %d:'%s' issub=%d hasbudget=%d custom=%d\n", catitem->key, catitem->name, (catitem->flags & GF_SUB), (catitem->flags & GF_BUDGET), (catitem->flags & GF_CUSTOM)) ); // flt: expense if( tmptype == REPORT_TYPE_EXPENSE && (catitem->flags & GF_INCOME) ) goto budnext; // flt: income if( tmptype == REPORT_TYPE_INCOME && !(catitem->flags & GF_INCOME) ) goto budnext; if( (catitem->flags & GF_BUDGET) ) { // same value each month ? if(!(catitem->flags & GF_CUSTOM)) { DB( g_print(" add same %.2f for '%s'\n =>", catitem->budget[0], catitem->fullname) ); //we add same amount each month for(pos=0 ; posbudget[0]; } DB( g_print("\n") ); } // different value each month else { guint month = startmonth; DB( g_print(" add custom for '%s'\n =>", catitem->fullname) ); for(pos=0 ; posbudget[month]) ); tmp_budget[pos] += catitem->budget[month]; month++; if(month > 12) { month = 1; } } } } budnext: list = g_list_next(list); } // free cat list g_list_free(lcat); // compute spent for each transaction // fill tmp_spent DB( g_print(" + month compute spent\n") ); list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; pos = report_interval_get_pos(REPORT_INTVL_MONTH, data->filter->mindate, ope); DB( g_print(" ope: %s :: acc=%d, cat=%d, mnt=%.2f, pos=%d\n", ope->memo, ope->kacc, ope->kcat, ope->amount, pos) ); //#2039995 filter txn with type if( (tmptype == REPORT_TYPE_EXPENSE && (ope->flags & GF_INCOME)) // flt: expense || (tmptype == REPORT_TYPE_INCOME && !(ope->flags & GF_INCOME)) // flt: income txn ) { DB( g_print(" skipped by type filter\n") ); goto txnnext; } if( ope->flags & OF_SPLIT ) { guint nbsplit = da_splits_length(ope->splits); Split *split; for(i=0;isplits, i); if( category_key_budget_active(split->kcat) == TRUE ) { tmp_spent[pos] += hb_amount_base(split->amount, ope->kcur); } else { DB( g_print(" skipped not budget|forced\n") ); } } } else { if( category_key_budget_active(ope->kcat) == TRUE ) { tmp_spent[pos] += hb_amount_base(ope->amount, ope->kcur); } else { DB( g_print(" skipped not budget|forced\n") ); } } DB( g_print(" spent[%d]=%.2f\n", pos, tmp_spent[pos]) ); txnnext: list = g_list_next(list); } DB( g_print("\n -- populate budget listview --\n") ); for( i=0 ; i < nbmonth ; i++ ) { guint pos = i; gboolean outofbudget; gchar intvlname[64]; report_interval_snprint_name(intvlname, sizeof(intvlname)-1, REPORT_INTVL_MONTH, data->filter->mindate, i); DB( g_print(" eval %d '%s' : spen=%.2f bud=%.2f \n", pos, intvlname, tmp_spent[pos], tmp_budget[pos] ) ); if( tmp_budget[pos] /*|| tmp_spent[pos]*/) { gdouble result, rawrate; gchar *status; result = budget_compute_result(tmp_budget[pos], tmp_spent[pos]); rawrate = 0.0; if(ABS(tmp_budget[pos]) > 0) { rawrate = tmp_spent[pos] / tmp_budget[pos]; } else if(tmp_budget[pos] == 0.0) rawrate = ABS(tmp_spent[pos]); status = ""; outofbudget = FALSE; if( result ) { if(rawrate > 1.0) { status = _(" over"); outofbudget = TRUE; } else { if(tmp_budget[pos] < 0.0) status = _(" left"); else if(tmp_budget[pos] > 0.0) { status = _(" under"); outofbudget = TRUE; } } } if(tmponlyout == TRUE && outofbudget == FALSE) goto nextins; DB( g_print(" => insert '%s' s:%.2f b:%.2f r:%.2f (%%%.2f) '%s' '%d'\n\n", intvlname, tmp_spent[pos], tmp_budget[pos], result, rawrate, status, outofbudget ) ); gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &iter, NULL, -1, LST_BUDGET_POS, pos, LST_BUDGET_KEY, pos, LST_BUDGET_NAME, intvlname, LST_BUDGET_SPENT, tmp_spent[pos], LST_BUDGET_BUDGET, tmp_budget[pos], LST_BUDGET_FULFILLED, (gint)(rawrate*100), LST_BUDGET_RESULT, result, LST_BUDGET_STATUS, status, -1); nextins: data->total_spent += tmp_spent[pos]; data->total_budget += tmp_budget[pos]; } } DB( g_print(" -- end populate month\n") ); } static void repbudget_compute(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; GtkTreeModel *model; gint tmpmode, tmptype, tmponlyout; guint32 mindate, maxdate; guint nbkeycat, nbmonth, n_result; gdouble *tmp_spent, *tmp_budget; DB( g_print("\n[repbudget] compute\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); mindate = data->filter->mindate; maxdate = data->filter->maxdate; //0=Total / 1=Time tmpmode = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_mode)); tmptype = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); tmponlyout = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_onlyout)); DB( g_print(" mode:%d type:%d only:%d\n", tmpmode, tmptype, tmponlyout) ); //#2019876 return is invalid date range if(maxdate < mindate) return; if( data->filter->maxdate < data->filter->mindate ) return; //TODO: not necessary until date range change //free previous txn if(data->txn_queue != NULL) g_queue_free (data->txn_queue); data->txn_queue = hbfile_transaction_get_partial_budget(mindate, maxdate); nbkeycat = da_cat_get_max_key(); nbmonth = _date_countmonth(mindate, maxdate); DB( g_print(" date: min=%d max=%d nbcat=%d nbmonth=%d\n", mindate, maxdate, nbkeycat, nbmonth) ); // allocate some memory n_result = (tmpmode == REP_BUD_MODE_TIME) ? nbmonth : nbkeycat; tmp_spent = g_malloc0((n_result+1) * sizeof(gdouble)); tmp_budget = g_malloc0((n_result+1) * sizeof(gdouble)); if(tmp_spent && tmp_budget) { guint startmonth; // compute the results data->total_spent = 0.0; data->total_budget = 0.0; startmonth = _date_getmonth(mindate); DB( g_print("\nblock handlers\n") ); g_signal_handlers_block_by_func (G_OBJECT (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report))), G_CALLBACK (repbudget_selection), NULL); g_signal_handlers_block_by_func (G_OBJECT (data->LV_detail), G_CALLBACK (repbudget_detail_onRowActivated), NULL); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail)); gtk_tree_store_clear (GTK_TREE_STORE(model)); DB( g_print("\nclear and detach model\n") ); // clear and detach our model model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); gtk_tree_store_clear (GTK_TREE_STORE(model)); g_object_ref(model); // Make sure the model stays with us after the tree view unrefs it gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), NULL); // Detach model from view // compute budget for each category g_object_set_data(G_OBJECT(model), "mode-data", GINT_TO_POINTER(tmpmode)); if( tmpmode == REP_BUD_MODE_TIME ) { budget_compute_month(data, model, tmp_spent, tmp_budget, startmonth, nbmonth, tmptype, tmponlyout); } else { budget_compute_category(data, model, tmp_spent, tmp_budget, startmonth, nbmonth, tmptype, tmponlyout); } // update column 0 title GtkTreeViewColumn *column = gtk_tree_view_get_column( GTK_TREE_VIEW(data->LV_report), 0); gtk_tree_view_column_set_title(column, budget_mode_label(tmpmode) ); // Re-attach model to view gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), model); g_object_unref(model); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_report)); gtk_tree_view_columns_autosize(GTK_TREE_VIEW(data->LV_report)); repbudget_update_total(widget, NULL); repbudget_update_chart(widget, NULL); DB( g_print("\nunblock handlers\n") ); g_signal_handlers_unblock_by_func (G_OBJECT (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report))), G_CALLBACK (repbudget_selection), NULL); g_signal_handlers_unblock_by_func (G_OBJECT (data->LV_detail), G_CALLBACK (repbudget_detail_onRowActivated), NULL); } //DB( g_print(" inserting %i, %f %f\n", i, total_expense, total_income) ); // free our memory g_free(tmp_spent); g_free(tmp_budget); } /* ** update sensitivity */ static void repbudget_sensitive(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; gboolean visible, sensitive; gint tmppage, tmpmode, tmptoday, count; DB( g_print("\n[repbudget] sensitive\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmppage = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); tmpmode = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_mode)); tmptoday = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_untiltoday)); visible = (tmppage == 0) ? TRUE : FALSE; hb_widget_visible (data->BT_detail, visible); hb_widget_visible (data->BT_export, visible); //5.7 visible = (tmpmode == 0) ? TRUE : FALSE; //hb_widget_visible (data->BT_print, !visible); hb_widget_visible (data->GR_listbar, visible); //5.9 sensitive = tmptoday ? FALSE : TRUE; gtk_widget_set_sensitive(data->LB_maxdate, sensitive); gtk_widget_set_sensitive(data->SB_maxdate, sensitive); count = gtk_tree_model_iter_n_children(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail)), NULL); sensitive = ((count > 0) && data->detail) ? TRUE : FALSE; g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "detclip")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "detcsv")), sensitive); } static void repbudget_toggle(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; gboolean minor; DB( g_print("\n[repbudget] toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); repbudget_update_total(widget, NULL); //hbfile_update(data->LV_acc, (gpointer)4); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); ui_chart_progress_show_minor(GTK_CHARTPROGRESS(data->RE_progress), minor); } static void repbudget_cb_expand_all(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[repdist] expand all (data=%p)\n", data) ); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_report)); } static void repbudget_cb_collapse_all(GtkWidget *widget, gpointer user_data) { struct repbudget_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[repdist] collapse all (data=%p)\n", data) ); gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_report)); } static void repbudget_selection(GtkTreeSelection *treeselection, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; gint key = -1; DB( g_print("\n[repbudget] selection\n") ); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_BUDGET_KEY, &key, -1); } DB( g_print(" - active is %d\n", key) ); repbudget_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key)); repbudget_sensitive(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static const GActionEntry win_actions[] = { { "resclip" , repbudget_export_result_clipboard, NULL, NULL, NULL, {0,0,0} }, { "rescsv" , repbudget_export_result_csv, NULL, NULL, NULL, {0,0,0} }, { "detclip" , repbudget_export_detail_clipboard, NULL, NULL, NULL, {0,0,0} }, { "detcsv" , repbudget_export_detail_csv, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; static GtkWidget * repbudget_toolbar_create(struct repbudget_data *data) { GtkWidget *toolbar, *button; toolbar = gtk_toolbar_new(); button = (GtkWidget *)gtk_radio_tool_button_new(NULL); data->BT_list = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_LIST, "label", _("List"), NULL); gtk_widget_set_tooltip_text(button, _("View results as list")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = (GtkWidget *)gtk_radio_tool_button_new_from_widget(GTK_RADIO_TOOL_BUTTON(button)); data->BT_progress = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_PROGRESS, "label", _("Stack"), NULL); gtk_widget_set_tooltip_text(button, _("View results as stack bars")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); button = gtk_widget_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "icon-name", ICONNAME_HB_OPE_SHOW, "label", _("Detail"), "tooltip-text", _("Toggle detail"), "active", PREFS->budg_showdetail, NULL); data->BT_detail = button; gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REFRESH, _("Refresh"), _("Refresh results")); data->BT_refresh = button; //export button button = gtk_menu_button_new(); data->BT_export = button; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(button)), GTK_STYLE_CLASS_FLAT); GtkWidget *image = gtk_image_new_from_icon_name (ICONNAME_HB_FILE_EXPORT, GTK_ICON_SIZE_LARGE_TOOLBAR); g_object_set (button, "image", image, NULL); GtkToolItem *toolitem = gtk_tool_item_new(); gtk_container_add (GTK_CONTAINER(toolitem), button); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(toolitem), -1); GMenu *menu = g_menu_new (); GMenu *section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Result to clipboard"), "win.resclip"); g_menu_append (section, _("_Result to CSV") , "win.rescsv"); g_object_unref (section); section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Detail to clipboard"), "win.detclip"); g_menu_append (section, _("_Detail to CSV") , "win.detcsv"); g_object_unref (section); GActionGroup *group = (GActionGroup*)g_simple_action_group_new (); data->actions = group; g_action_map_add_action_entries (G_ACTION_MAP (group), win_actions, G_N_ELEMENTS (win_actions), data); gtk_widget_insert_action_group (button, "win", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu)); button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_PRINT, _("Print"), _("Print")); data->BT_print = button; return toolbar; } //reset the filter static void repbudget_filter_setup(struct repbudget_data *data) { DB( g_print("\n[repbudget] reset filter\n") ); filter_reset(data->filter); filter_preset_daterange_set(data->filter, PREFS->date_range_rep, 0); /* 3.4 : make int transfer out of stats */ filter_preset_type_set(data->filter, FLT_TYPE_INTXFER, FLT_EXCLUDE); if( PREFS->date_range_rep == FLT_RANGE_MISC_ALLDATE ) { data->filter->mindate = hb_date_get_jbound(data->filter->mindate, HB_DATE_BOUND_FIRST); data->filter->maxdate = hb_date_get_jbound(data->filter->maxdate, HB_DATE_BOUND_LAST); } //g_signal_handler_block(data->PO_mindate, data->handler_id[HID_REPBUDGET_MINDATE]); //g_signal_handler_block(data->PO_maxdate, data->handler_id[HID_REPBUDGET_MAXDATE]); //gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_mindate), data->filter->mindate); //gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_maxdate), data->filter->maxdate); //5.7 hbtk_monthyear_set(GTK_SPIN_BUTTON(data->SB_mindate), data->filter->mindate); hbtk_monthyear_set(GTK_SPIN_BUTTON(data->SB_maxdate), data->filter->maxdate); //g_signal_handler_unblock(data->PO_mindate, data->handler_id[HID_REPBUDGET_MINDATE]); //g_signal_handler_unblock(data->PO_maxdate, data->handler_id[HID_REPBUDGET_MAXDATE]); } // setup default for our object/memory static void repbudget_window_setup(struct repbudget_data *data) { DB( g_print("\n[repbudget] setup\n") ); DB( g_print(" init data\n") ); repbudget_filter_setup(data); DB( g_print(" set widgets default\n") ); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->BT_detail), PREFS->budg_showdetail); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_minor),GLOBALS->minor); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report))), "minor", (gpointer)data->CM_minor); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail))), "minor", (gpointer)data->CM_minor); DB( g_print(" connect widgets signals\n") ); g_signal_connect (data->CM_untiltoday, "toggled", G_CALLBACK (repbudget_cb_date_monthyear), NULL); g_signal_connect (data->CM_onlyout, "toggled", G_CALLBACK (repbudget_compute), NULL); g_signal_connect (data->CM_minor, "toggled", G_CALLBACK (repbudget_toggle), NULL); g_signal_connect (G_OBJECT (data->BT_expand), "clicked", G_CALLBACK (repbudget_cb_expand_all), NULL); g_signal_connect (G_OBJECT (data->BT_collapse), "clicked", G_CALLBACK (repbudget_cb_collapse_all), NULL); data->handler_id[HID_REPBUDGET_RANGE] = g_signal_connect (data->CY_range, "changed", G_CALLBACK (repbudget_cb_date_range), NULL); //g_signal_connect (data->CY_for , "changed", G_CALLBACK (repbudget_compute), (gpointer)data); g_signal_connect (data->RA_mode, "changed", G_CALLBACK (repbudget_compute), (gpointer)data); g_signal_connect (data->CY_type, "changed", G_CALLBACK (repbudget_compute), (gpointer)data); //data->handler_id[HID_REPBUDGET_MINDATE] = g_signal_connect (data->PO_mindate, "changed", G_CALLBACK (repbudget_date_change), (gpointer)data); //data->handler_id[HID_REPBUDGET_MAXDATE] = g_signal_connect (data->PO_maxdate, "changed", G_CALLBACK (repbudget_date_change), (gpointer)data); data->handler_id[HID_REPBUDGET_MINMONTHYEAR] = g_signal_connect (data->SB_mindate, "value-changed", G_CALLBACK (repbudget_cb_date_monthyear), NULL); data->handler_id[HID_REPBUDGET_MAXMONTHYEAR] = g_signal_connect (data->SB_maxdate, "value-changed", G_CALLBACK (repbudget_cb_date_monthyear), NULL); g_signal_connect (G_OBJECT (data->BT_list), "clicked", G_CALLBACK (repbudget_action_viewlist), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_progress), "clicked", G_CALLBACK (repbudget_action_viewstack), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_detail), "clicked", G_CALLBACK (repbudget_toggle_detail), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_refresh), "clicked", G_CALLBACK (repbudget_compute), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_print), "clicked", G_CALLBACK (repbudget_action_print), (gpointer)data); //export is a menu g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report)), "changed", G_CALLBACK (repbudget_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_detail), "row-activated", G_CALLBACK (repbudget_detail_onRowActivated), NULL); } static gboolean repbudget_window_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct repbudget_data *data; guint32 rid; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[repbudget] window mapped\n") ); //setup, init and show window repbudget_window_setup(data); //5.9 ensure we will trigger a valid id rid = FLT_RANGE_MISC_ALLDATE; if( rid == FLT_RANGE_LAST_MONTH || rid == FLT_RANGE_THIS_MONTH || rid == FLT_RANGE_NEXT_MONTH || rid == FLT_RANGE_LAST_QUARTER || rid == FLT_RANGE_THIS_QUARTER || rid == FLT_RANGE_NEXT_QUARTER || rid == FLT_RANGE_LAST_YEAR || rid == FLT_RANGE_THIS_YEAR || rid == FLT_RANGE_NEXT_YEAR || rid == FLT_RANGE_LAST_12MONTHS || rid == FLT_RANGE_LAST_6MONTHS || rid == FLT_RANGE_MISC_ALLDATE || rid == FLT_RANGE_TODATE_YEAR || rid == FLT_RANGE_TODATE_MONTH || rid == FLT_RANGE_TODATE_ALL ) { rid = PREFS->date_range_rep; } hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), rid); //hb_window_set_busy(GTK_WINDOW(data->window), FALSE); //check for any account included into the budget or warn { guint count =0; GList *lacc, *list; lacc = list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { Account *acc; acc = list->data; //#1674045 ony rely on nosummary //if((acc->flags & (AF_CLOSED|AF_NOREPORT))) goto next1; if((acc->flags & (AF_NOREPORT))) goto next1; if(!(acc->flags & AF_NOBUDGET)) count++; next1: list = g_list_next(list); } g_list_free(lacc); if(count <= 0) { ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_WARNING, _("No account is defined to be part of the budget."), _("You should include some accounts from the account dialog.") ); } } data->mapped_done = TRUE; return FALSE; } static gboolean repbudget_window_dispose(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct repbudget_data *data = user_data; struct WinGeometry *wg; DB( g_print("\n[repbudget] start dispose\n") ); if(data->txn_queue != NULL) g_queue_free (data->txn_queue); da_flt_free(data->filter); g_free(data); //store position and size wg = &PREFS->bud_wg; gtk_window_get_position(GTK_WINDOW(widget), &wg->l, &wg->t); gtk_window_get_size(GTK_WINDOW(widget), &wg->w, &wg->h); DB( g_print(" window: l=%d, t=%d, w=%d, h=%d\n", wg->l, wg->t, wg->w, wg->h) ); //enable define windows GLOBALS->define_off--; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); //unref window to our open window list GLOBALS->openwindows = g_slist_remove(GLOBALS->openwindows, widget); DB( g_print("\n[repbudget] end dispose\n") ); return FALSE; } //allocate our object/memory static void repbudget_window_acquire(struct repbudget_data *data) { DB( g_print("\n[repbudget] acquire\n") ); data->txn_queue = g_queue_new (); data->filter = da_flt_malloc(); data->detail = PREFS->budg_showdetail; data->legend = 1; } // the window creation GtkWidget *repbudget_window_new(void) { struct repbudget_data *data; struct WinGeometry *wg; GtkWidget *window, *mainbox, *hbox, *vbox, *tbar, *bbox, *notebook, *treeview, *vpaned, *scrollwin; GtkWidget *label, *widget, *table, *entry; gint row; DB( g_print("\n[repbudget] new\n") ); data = g_malloc0(sizeof(struct repbudget_data)); if(!data) return NULL; repbudget_window_acquire(data); //disable define windows GLOBALS->define_off++; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); data->window = window; //ref window to our open window list GLOBALS->openwindows = g_slist_prepend(GLOBALS->openwindows, window); //store our window private data g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)data); DB( g_print(" - new window=%p, inst_data=%p\n", window, data) ); gtk_window_set_title (GTK_WINDOW (window), _("Budget report")); //window contents mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hb_widget_set_margin(GTK_WIDGET(mainbox), SPACING_SMALL); gtk_window_set_child(GTK_WINDOW(window), mainbox); //control part table = gtk_grid_new (); gtk_box_prepend (GTK_BOX (mainbox), table); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); row = 0; label = make_label_group(_("Display")); gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); row++; label = make_label_widget(_("Mode:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup(HBTK_SWITCHER(widget), CYA_REPORT_MODE, TRUE); data->RA_mode = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Type:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_KIND); data->CY_type = widget; gtk_grid_attach (GTK_GRID (table), data->CY_type, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Only out of budget")); data->CM_onlyout = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Euro _minor")); data->CM_minor = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); //-- filter row++; widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_margin_top(widget, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (table), widget, 0, row, 3, 1); row++; label = make_label_group(_("Filter")); gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); row++; label = make_label_group(_("Date")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 2, 1); row++; label = make_label_widget(_("_Range:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->CY_range = make_daterange(label, DATE_RANGE_FLAG_BUDGET_MODE | DATE_RANGE_FLAG_CUSTOM_DISABLE); gtk_grid_attach (GTK_GRID (table), data->CY_range, 2, row, 1, 1); row++; label = make_label_widget(_("_From:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = make_monthyear(NULL); data->SB_mindate = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_To:")); data->LB_maxdate = label; gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = make_monthyear(NULL); data->SB_maxdate = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("U_ntil today")); data->CM_untiltoday = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); //part: info + report vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_margin_start (vbox, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (mainbox), vbox); //toolbar widget = repbudget_toolbar_create(data); data->TB_bar = widget; gtk_box_prepend (GTK_BOX (vbox), widget); //infos hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); hb_widget_set_margin(GTK_WIDGET(hbox), SPACING_SMALL); gtk_box_prepend (GTK_BOX (vbox), hbox); widget = make_label(NULL, 0.5, 0.5); gimp_label_set_attributes (GTK_LABEL (widget), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); data->TX_daterange = widget; gtk_box_prepend (GTK_BOX (hbox), widget); entry = gtk_label_new(NULL); data->TX_total[2] = entry; gtk_box_append (GTK_BOX (hbox), entry); label = gtk_label_new(_("Result:")); gtk_box_append (GTK_BOX (hbox), label); entry = gtk_label_new(NULL); data->TX_total[1] = entry; gtk_box_append (GTK_BOX (hbox), entry); label = gtk_label_new(_("Budget:")); gtk_box_append (GTK_BOX (hbox), label); entry = gtk_label_new(NULL); data->TX_total[0] = entry; gtk_box_append (GTK_BOX (hbox), entry); label = gtk_label_new(_("Spent:")); gtk_box_append (GTK_BOX (hbox), label); /* report area */ notebook = gtk_notebook_new(); data->GR_result = notebook; gtk_widget_show(notebook); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); hbtk_box_prepend (GTK_BOX (vbox), notebook); //page: list vpaned = gtk_paned_new(GTK_ORIENTATION_VERTICAL); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vpaned, NULL); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); treeview = lst_repbud_create(); data->LV_report = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_paned_pack1 (GTK_PANED(vpaned), scrollwin, TRUE, TRUE); //5.8 moved collapse/expand here tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); data->GR_listbar = tbar; gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_EXPAND, _("Expand all")); data->BT_expand = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_button(ICONNAME_HB_BUTTON_COLLAPSE, _("Collapse all")); data->BT_collapse = widget; gtk_box_prepend (GTK_BOX (bbox), widget); //detail scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); data->GR_detail = scrollwin; treeview = create_list_transaction(LIST_TXN_TYPE_DETAIL, PREFS->lst_det_columns); data->LV_detail = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_paned_pack2 (GTK_PANED(vpaned), scrollwin, TRUE, TRUE); list_txn_set_save_column_width(GTK_TREE_VIEW(treeview), TRUE); //page: 2d bar //widget = gtk_chart_new(CHART_TYPE_COL); widget = ui_chart_progress_new(); data->RE_progress = widget; gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL); // connect dialog signals g_signal_connect (window, "delete-event", G_CALLBACK (repbudget_window_dispose), (gpointer)data); g_signal_connect (window, "map-event" , G_CALLBACK (repbudget_window_mapped), NULL); // setup, init and show window wg = &PREFS->bud_wg; if( wg->l && wg->t ) gtk_window_move(GTK_WINDOW(window), wg->l, wg->t); gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h); // toolbar if(PREFS->toolbar_style == 0) gtk_toolbar_unset_style(GTK_TOOLBAR(data->TB_bar)); else gtk_toolbar_set_style(GTK_TOOLBAR(data->TB_bar), PREFS->toolbar_style-1); gtk_widget_show_all (window); //minor ? hb_widget_visible(data->CM_minor, PREFS->euro_active); repbudget_sensitive(window, NULL); repbudget_update_detail(window, NULL); return(window); } homebank-5.9.1/src/hub-scheduled.c0000664000175000017500000005331615005633544012461 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "dsp-mainwindow.h" #include "list-scheduled.h" #include "hub-scheduled.h" #include "ui-transaction.h" #include "ui-dialogs.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern HbKvData CYA_FLT_SCHEDULED[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* scheduled */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_hub_scheduled_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct hbfile_data *data; GtkTreeModel *model; GList *selection, *list; gint count; DB( g_print ("\n[hub-scheduled] row double-clicked\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); count = gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc))); if( count == 1 ) { //model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_upc)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)), &model); list = g_list_first(selection); if(list != NULL) { GtkTreeIter iter; Archive *arc; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arc, -1); //fix: don't open for total line if( arc != NULL ) ui_wallet_defarchive(arc); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); } } static void ui_hub_scheduled_do_post(Archive *arc, gboolean doedit, gpointer user_data) { struct hbfile_data *data = user_data; GtkWidget *window; gint result; Transaction *txn; DB( g_print("\n[hub-scheduled] do post\n") ); window = create_deftransaction_window(GTK_WINDOW(data->window), TXN_DLG_ACTION_ADD, TXN_DLG_TYPE_SCH, 0); /* fill in the transaction */ txn = da_transaction_malloc(); da_transaction_init_from_template(txn, arc); txn->date = scheduled_get_txn_real_postdate(arc->nextdate, arc->weekend); deftransaction_set_transaction(window, txn); result = gtk_dialog_run (GTK_DIALOG (window)); DB( g_print(" - dialog result is %d\n", result) ); if(result == HB_RESPONSE_ADD || result == GTK_RESPONSE_ACCEPT) { deftransaction_get(window, NULL); transaction_add(GTK_WINDOW(GLOBALS->mainwindow), FALSE, txn); GLOBALS->changes_count++; scheduled_date_advance(arc); DB( g_print(" - added 1 transaction to %d\n", txn->kacc) ); } da_transaction_free(txn); deftransaction_dispose(window, NULL); gtk_window_destroy (GTK_WINDOW(window)); } static void ui_hub_scheduled_editpost_cb(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data = user_data; GtkTreeModel *model; GList *selection, *list; DB( g_print("\n[hub-scheduled] editpost\n") ); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)), &model); list = g_list_first(selection); while(list != NULL) { GtkTreeIter iter; Archive *arc; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arc, -1); if( (arc != NULL) ) { ui_hub_scheduled_do_post(arc, TRUE, data); } list = g_list_next(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE|UF_REFRESHALL)); } static void ui_hub_scheduled_post_cb(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data = user_data; GtkTreeModel *model; GList *selection, *list; DB( g_print("\n[hub-scheduled] post\n") ); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)), &model); list = g_list_first(selection); while(list != NULL) { GtkTreeIter iter; Archive *arc; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arc, -1); if( (arc != NULL) ) { if( scheduled_is_postable(arc) ) { Transaction *txn = da_transaction_malloc (); da_transaction_init_from_template(txn, arc); txn->date = scheduled_get_txn_real_postdate(arc->nextdate, arc->weekend); transaction_add(GTK_WINDOW(GLOBALS->mainwindow), FALSE, txn); GLOBALS->changes_count++; scheduled_date_advance(arc); da_transaction_free (txn); } else { ui_hub_scheduled_do_post(arc, FALSE, data); } } list = g_list_next(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE|UF_REFRESHALL)); } static void ui_hub_scheduled_skip_cb(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data = user_data; GtkTreeModel *model; GList *selection, *list; DB( g_print("\n[hub-scheduled] skip\n") ); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)), &model); list = g_list_first(selection); while(list != NULL) { GtkTreeIter iter; Archive *arc; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arc, -1); DB( g_print(" %s %f\n", arc->memo, arc->amount) ); if( (arc != NULL) && (arc->rec_flags & TF_RECUR) ) { GLOBALS->changes_count++; scheduled_date_advance(arc); DB( g_print(" >skipping\n") ); //ui_hub_scheduled_populate(GLOBALS->mainwindow, NULL); } list = g_list_next(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); ui_hub_scheduled_populate(GLOBALS->mainwindow, NULL); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); } static void ui_hub_scheduled_update(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; GtkTreeSelection *selection; gchar *msg; gint count; //gint filter; DB( g_print("\n[hub-scheduled] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //filter = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_sched_filter)); // sensitive against selection selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)); count = gtk_tree_selection_count_selected_rows(selection); //Archive *arc = ui_hub_scheduled_get_selected_item(GTK_TREE_VIEW(data->LV_upc)); if(count >= 1) { //DB( g_print("archive is %s\n", arc->memo) ); gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_skip), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_post), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_editpost), TRUE); } else { gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_skip), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_post), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_editpost), FALSE); } //#1996505 add sum of selected if( count > 1 ) { GList *list, *tmplist; GtkTreeModel *model; GtkTreeIter iter; gchar buf1[64]; gchar buf2[64]; gchar buf3[64]; gdouble sumexp, suminc; DB( g_print(" update list info\n") ); sumexp = suminc = 0.0; //model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_upc)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)); list = gtk_tree_selection_get_selected_rows(selection, &model); tmplist = g_list_first(list); while (tmplist != NULL) { Archive *arc; Account *acc = NULL; gtk_tree_model_get_iter(model, &iter, tmplist->data); gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arc, -1); //DB( g_print(" collect %f - %f = %f %s\n", txninc, txnexp, txninc + txnexp, item->memo) ); acc = da_acc_get(arc->kacc); if( acc != NULL ) { if( arc->flags & OF_INCOME ) suminc += hb_amount_base(arc->amount, acc->kcur); else sumexp += hb_amount_base(arc->amount, acc->kcur); } /* insert internal xfer txn : 1378836 */ if( (arc->flags & OF_INTXFER) ) { gdouble amount = -arc->amount; if( arc->flags & OF_ADVXFER ) { amount = arc->xferamount; DB( g_print(" xfer amount is != curr %.17g\n", amount ) ); } /* opposite here */ acc = da_acc_get(arc->kxferacc); if( acc != NULL ) { if( arc->flags & OF_INCOME ) sumexp += hb_amount_base(amount, acc->kcur); else suminc += hb_amount_base(amount, acc->kcur); } } DB( g_print(" %.17g - %.17g = %.17g temp\n", suminc, sumexp, suminc + sumexp) ); tmplist = g_list_next(tmplist); } g_list_free(list); DB( g_print(" %.17g - %.17g = %.17g final\n", suminc, sumexp, suminc + sumexp) ); hb_strfmon(buf1, 64-1, suminc + sumexp, GLOBALS->kcur, GLOBALS->minor); hb_strfmon(buf2, 64-1, sumexp, GLOBALS->kcur, GLOBALS->minor); hb_strfmon(buf3, 64-1, suminc, GLOBALS->kcur, GLOBALS->minor); //TRANSLATORS: example 'sum: 3 (-1 + 4)' msg = g_strdup_printf(_("sum: %s (%s + %s)"), buf1, buf2, buf3); gtk_label_set_markup(GTK_LABEL(data->TX_selection), msg); g_free (msg); } else gtk_label_set_markup(GTK_LABEL(data->TX_selection), ""); } static void ui_hub_scheduled_selection_cb(GtkTreeSelection *treeselection, gpointer user_data) { DB( g_print("\n[hub-scheduled] selection\n") ); ui_hub_scheduled_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(UF_SENSITIVE)); } /* ** called after load, importamiga, on demand */ void ui_hub_scheduled_postall(GtkWidget *widget, gpointer user_data) { //struct hbfile_data *data; gint count; gint usermode = GPOINTER_TO_INT(user_data); DB( g_print("\n[hub-scheduled] post all\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); count = scheduled_post_all_pending(); //inform the user if(usermode == TRUE) { gchar *txt; //#125534 if( count > 0 ) { ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_REFRESHALL)); } if(count == 0) txt = _("No transaction to add"); else txt = _("transaction added: %d"); ui_dialog_msg_infoerror(GTK_WINDOW(GLOBALS->mainwindow), GTK_MESSAGE_INFO, _("Check scheduled transactions result"), txt, count); } } void ui_hub_scheduled_populate(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; GtkTreeModel *model; GtkTreeIter iter; GtkTreeSelection *selection; GList *list; gdouble totexp = 0; gdouble totinc = 0; gint count = 0; gchar buffer[256], *tooltip; guint32 maxpostdate = 0; guint32 fltmindate, fltmaxdate; GDate *date; DB( g_print("\n[hub-scheduled] populate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)); g_signal_handlers_block_by_func (G_OBJECT (selection), G_CALLBACK (ui_hub_scheduled_selection_cb), NULL); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_upc)); gtk_list_store_clear (GTK_LIST_STORE(model)); //5.7.4 add g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_upc), NULL); /* Detach model from view */ ui_arc_listview_widget_columns_order_load(GTK_TREE_VIEW(data->LV_upc)); homebank_app_date_get_julian(); PREFS->pnl_upc_range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_sched_range)); //set tooltip text maxpostdate = scheduled_date_get_post_max(GLOBALS->today, GLOBALS->auto_smode, GLOBALS->auto_nbdays, GLOBALS->auto_weekday, GLOBALS->auto_nbmonths); date = g_date_new_julian (maxpostdate); g_date_strftime (buffer, 256-1, PREFS->date_format, date); //post when program start: ON/OFF tooltip = g_strdup_printf("%s: %s\n%s: %s", _("Post when program start"), PREFS->appendscheduled ? _("On") : _("Off"), _("maximum post date"), buffer); //gtk_label_set_text(GTK_LABEL(data->LB_maxpostdate), buffer); gtk_widget_set_tooltip_text(data->IM_info, tooltip); g_free(tooltip); fltmindate = HB_MINDATE; fltmaxdate = HB_MAXDATE; scheduled_date_get_show_minmax(PREFS->pnl_upc_range, &fltmindate, &fltmaxdate); //#1909851 5.7 override if FLT_SCHEDULED_MAXPOSTDATE if( PREFS->pnl_upc_range == FLT_SCHEDULED_MAXPOSTDATE ) fltmaxdate = maxpostdate; DB( hb_print_date(GLOBALS->today, "today" ) ); DB( hb_print_date(maxpostdate, "maxpostdate" ) ); DB( hb_print_date(fltmindate, "fltmindate" ) ); DB( hb_print_date(fltmaxdate, "fltmaxdate" ) ); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *arc = list->data; Account *acc; gdouble inc, exp; gint nbdays, nblate; if( (arc->rec_flags & TF_RECUR) ) //&& arc->kacc > 0) { count++; nbdays = arc->nextdate - maxpostdate; //nblate = scheduled_get_latepost_count(date, arc, GLOBALS->today); nblate = scheduled_get_latepost_count(date, arc, maxpostdate); DB( g_print(" eval %d in [%d-%d] ? days %d late %d, memo='%s'\n", arc->nextdate, fltmindate, fltmaxdate, nbdays, nblate, arc->memo) ); if( nblate == 0 ) { //#1857636 hide due date scheduled > custom user config if > 0 if( (arc->nextdate < fltmindate) || (arc->nextdate > fltmaxdate) ) { DB( g_print(" skip '%s' : next %d >= maxshow %d\n", arc->memo, arc->nextdate, PREFS->pnl_upc_range) ); //TODO: count hidden goto next; } } exp = inc = 0.0; if( arc->flags & OF_INCOME ) inc = arc->amount; else exp = arc->amount; acc = da_acc_get(arc->kacc); if( acc != NULL ) { DB( g_print(" add totals: %.17g %.17g\n", exp, inc) ); if( arc->flags & OF_INCOME ) totinc += hb_amount_base(arc->amount, acc->kcur); else totexp += hb_amount_base(arc->amount, acc->kcur); } /* good */ /* insert internal xfer txn : 1378836 */ if( (arc->flags & OF_INTXFER) ) { gdouble amount = -arc->amount; if( arc->flags & OF_ADVXFER ) { amount = arc->xferamount; DB( g_print(" xfer amount is != curr %.17g\n", amount ) ); } /* opposite here */ if( arc->flags & OF_INCOME ) exp = amount; else inc = amount; acc = da_acc_get(arc->kxferacc); if( acc != NULL ) { DB( g_print(" add totals: %.17g %.17g\n", exp, inc) ); if( arc->flags & OF_INCOME ) totexp += hb_amount_base(amount, acc->kcur); else totinc += hb_amount_base(amount, acc->kcur); } } gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DSPUPC_DATAS, arc, LST_DSPUPC_NEXT, nbdays, //LST_DSPUPC_ACCOUNT, acc, LST_DSPUPC_MEMO, arc->memo, LST_DSPUPC_EXPENSE, exp, LST_DSPUPC_INCOME , inc, LST_DSPUPC_NB_LATE, nblate, -1); DB( g_print(" totals: %.17g %.17g\n", totexp, totinc) ); } next: list = g_list_next(list); } g_date_free(date); // insert total if(count > 0 ) { DB( g_print(" insert totals: %.17g %.17g\n", totexp, totinc) ); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DSPUPC_DATAS, NULL, LST_DSPUPC_MEMO, _("Total"), LST_DSPUPC_EXPENSE, totexp, LST_DSPUPC_INCOME, totinc, -1); } //added 5.7.4 gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_upc), model); /* Re-attach model to view */ g_object_unref(model); g_signal_handlers_unblock_by_func (G_OBJECT (selection), G_CALLBACK (ui_hub_scheduled_selection_cb), NULL); ui_hub_scheduled_update(widget, NULL); } static void ui_hub_scheduled_clipboard (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hbfile_data *data = user_data; GtkClipboard *clipboard; GString *node; //g_print ("Action %s activated\n", g_action_get_name (G_ACTION (action))); node = lst_sch_widget_to_string(GTK_TREE_VIEW(data->LV_upc), HB_STRING_PRINT); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); } static void ui_hub_scheduled_print (GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct hbfile_data *data = user_data; GString *node; //g_print ("Action %s activated\n", g_action_get_name (G_ACTION (action))); gint8 leftcols[8] = { 0, 1, 2, 3, 6, 7, -1 }; node = lst_sch_widget_to_string(GTK_TREE_VIEW(data->LV_upc), HB_STRING_PRINT); hb_print_listview(GTK_WINDOW(data->window), node->str, leftcols, _("Scheduled"), NULL, FALSE); g_string_free(node, TRUE); } static const GActionEntry actions[] = { // name, function(), type, state, { "clipboard" , ui_hub_scheduled_clipboard , NULL, NULL , NULL, {0,0,0} }, { "print" , ui_hub_scheduled_print , NULL, NULL , NULL, {0,0,0} }, // { "paste", activate_action, NULL, NULL, NULL, {0,0,0} }, }; GtkWidget *ui_hub_scheduled_create(struct hbfile_data *data) { GtkWidget *hub, *vbox, *bbox, *scrollwin, *treeview, *tbar; GtkWidget *label, *widget; DB( g_print("\n[hub-scheduled] create\n") ); hub = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hb_widget_set_margin(GTK_WIDGET(hub), SPACING_SMALL); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hbtk_box_prepend (GTK_BOX (hub), vbox); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); treeview = (GtkWidget *)lst_sch_widget_new(LIST_SCH_TYPE_DISPLAY); data->LV_upc = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(bbox), TRUE); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = gtk_button_new_with_mnemonic (_("_Skip")); data->BT_sched_skip = widget; hbtk_box_prepend (GTK_BOX (bbox), widget); widget = gtk_button_new_with_mnemonic(_("Edit & P_ost")); data->BT_sched_editpost = widget; hbtk_box_prepend (GTK_BOX (bbox), widget); //TRANSLATORS: Posting a scheduled transaction is the action to materialize it into its target account. //TRANSLATORS: Before that action the automated transaction occurrence is pending and not yet really existing. widget = gtk_button_new_with_mnemonic (_("_Post")); data->BT_sched_post = widget; hbtk_box_prepend (GTK_BOX (bbox), widget); //info icon widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); data->IM_info = widget; gtk_box_prepend (GTK_BOX (tbar), widget); //#1996505 add sum of selected label = make_label(NULL, 0.5, 0.5); gtk_widget_set_margin_end(GTK_WIDGET(label), SPACING_MEDIUM); data->TX_selection = label; hbtk_box_prepend (GTK_BOX (tbar), label); //#1857636 add setting to input max due date to show widget = hbtk_combo_box_new_with_data (NULL, CYA_FLT_SCHEDULED); data->CY_sched_range = widget; gtk_box_prepend (GTK_BOX (tbar), widget); //gmenu test (see test folder into gtk) GMenu *menu, *section; GtkWidget *image; menu = g_menu_new (); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("Copy to clipboard"), "actions.clipboard"); g_menu_append (section, _("Print..."), "actions.print"); g_object_unref (section); GSimpleActionGroup *group = g_simple_action_group_new (); data->action_group_acc = group; g_action_map_add_action_entries (G_ACTION_MAP (group), actions, G_N_ELEMENTS (actions), data); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(bbox), TRUE); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = gtk_menu_button_new(); gtk_box_prepend (GTK_BOX (bbox), widget); gtk_menu_button_set_direction (GTK_MENU_BUTTON(widget), GTK_ARROW_UP); gtk_widget_set_halign (widget, GTK_ALIGN_END); image = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_BUTTON_MENU); g_object_set (widget, "image", image, NULL); gtk_widget_insert_action_group (widget, "actions", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); //setup hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_sched_range), PREFS->pnl_upc_range); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)), "changed", G_CALLBACK (ui_hub_scheduled_selection_cb), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_upc), "row-activated", G_CALLBACK (ui_hub_scheduled_onRowActivated), NULL); g_signal_connect (G_OBJECT (data->BT_sched_skip), "clicked", G_CALLBACK (ui_hub_scheduled_skip_cb), data); g_signal_connect (G_OBJECT (data->BT_sched_editpost), "clicked", G_CALLBACK (ui_hub_scheduled_editpost_cb), data); g_signal_connect (G_OBJECT (data->BT_sched_post), "clicked", G_CALLBACK (ui_hub_scheduled_post_cb), data); g_signal_connect (data->CY_sched_range, "changed", G_CALLBACK (ui_hub_scheduled_populate), NULL); return hub; } homebank-5.9.1/src/list-account.c0000644000175000017500000005700014736461407012351 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "list-account.h" #include "hub-account.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; static void lst_accview_to_string_row(GString *node, ToStringMode mode, GtkTreeModel *model, GtkTreeIter *iter, gchar *sub, gint flags) { gpointer p; gint type; gchar *text = ""; gchar sep; gdouble clear, recon, today, future; guint32 kcur = GLOBALS->kcur; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; clear = recon = today = future = 0.0; gtk_tree_model_get (model, iter, LST_DSPACC_DATATYPE, &type, LST_DSPACC_DATAS, &p, -1); if( type == DSPACC_TYPE_HEADER ) { PnlAccGrp *g = p; text = g->name; //g_string_append_printf(node, "%s\t\t\t\t\n", text); g_string_append_printf(node, "%s", text); if( flags & LST_TXN_ACC_REC ) g_string_append_c(node, sep); if( flags & LST_TXN_ACC_CLR ) g_string_append_c(node, sep); if( flags & LST_TXN_ACC_TOD ) g_string_append_c(node, sep); if( flags & LST_TXN_ACC_FUT ) g_string_append_c(node, sep); g_string_append_c(node, '\n'); } else { if( type == DSPACC_TYPE_NORMAL ) { Account *acc = p; kcur = acc->kcur; text = acc->name; recon = acc->bal_recon; clear = acc->bal_clear; today = acc->bal_today; future = acc->bal_future; } else { PnlAccGrp *g = p; recon = g->bal_recon; clear = g->bal_clear; today = g->bal_today; future = g->bal_future; } if( type == DSPACC_TYPE_SUBTOTAL ) text = _("Total"); else if( type == DSPACC_TYPE_TOTAL ) text = _("Grand total"); g_string_append_printf(node, "%s%s", sub, text); if( flags & LST_TXN_ACC_REC ) { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, recon, kcur, FALSE); g_string_append_c(node, sep); g_string_append(node, buf); } if( flags & LST_TXN_ACC_CLR ) { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, clear, kcur, FALSE); g_string_append_c(node, sep); g_string_append(node, buf); } if( flags & LST_TXN_ACC_TOD ) { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, today, kcur, FALSE); g_string_append_c(node, sep); g_string_append(node, buf); } if( flags & LST_TXN_ACC_FUT ) { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, future, kcur, FALSE); g_string_append_c(node, sep); g_string_append(node, buf); } g_string_append(node, "\n"); } } GString *lst_accview_to_string(GtkTreeView *treeview, ToStringMode mode) { GString *node; GtkTreeModel *model; GtkTreeIter iter, child; gboolean valid; guint32 nbcols, i; gint uid, flags = 0; gchar sep; DB( g_print("\n[lst_accview] to string\n") ); node = g_string_new(NULL); sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; // header (nbcols-2 for icon column) nbcols = gtk_tree_view_get_n_columns (treeview) - 1; for( i=1 ; i < nbcols ; i++ ) { GtkTreeViewColumn *column = gtk_tree_view_get_column (treeview, i); //todo: ? restrict to visibility if( GTK_IS_TREE_VIEW_COLUMN(column) ) { if( gtk_tree_view_column_get_visible(column)) { uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); switch(uid) { case COL_DSPACC_RECON : flags |= LST_TXN_ACC_REC; break; case COL_DSPACC_CLEAR : flags |= LST_TXN_ACC_CLR; break; case COL_DSPACC_TODAY : flags |= LST_TXN_ACC_TOD; break; case COL_DSPACC_FUTURE: flags |= LST_TXN_ACC_FUT; break; } g_string_append(node, gtk_tree_view_column_get_title (column)); if( i < nbcols-1 ) { g_string_append_c(node, sep); } } } } g_string_append_c(node, '\n'); //lines model = gtk_tree_view_get_model(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { lst_accview_to_string_row(node, mode, model, &iter, "", flags); if( gtk_tree_model_iter_has_child(model, &iter) ) { valid = gtk_tree_model_iter_children(model, &child, &iter); while (valid) { lst_accview_to_string_row(node, mode, model, &child, "- ", flags); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } //DB( g_print("text is:\n%s", node->str) ); return node; } /* ** draw some icons according to the stored data structure */ static void lst_accview_cell_data_func_status (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Account *acc; gchar *iconname = NULL; gint dt; gtk_tree_model_get(model, iter, LST_DSPACC_DATATYPE, &dt, LST_DSPACC_DATAS, &acc, -1); if( dt == DSPACC_TYPE_NORMAL ) { switch(GPOINTER_TO_INT(user_data)) { case 1: if(acc->dspflags & FLAG_ACC_TMP_EDITED) iconname = ICONNAME_HB_ITEM_EDITED; else if(acc->dspflags & FLAG_ACC_TMP_ADDED) iconname = ICONNAME_HB_ITEM_ADDED; // override if closed account if( acc->flags & AF_CLOSED ) iconname = ICONNAME_HB_ITEM_CLOSED; break; case 2: if( acc->flags & AF_HASNOTICE ) iconname = ICONNAME_WARNING; break; } } g_object_set(renderer, "icon-name", iconname, NULL); } /* ** draw some text from the stored data structure */ static void lst_accview_cell_data_func_text (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gpointer p; gint dt; gint weight = PANGO_WEIGHT_BOLD; gchar *text = NULL; //gchar *groupname; gtk_tree_model_get(model, iter, LST_DSPACC_DATATYPE, &dt, LST_DSPACC_DATAS, &p, //LST_DSPACC_NAME, &groupname, -1); if( p == NULL ) goto end; switch( dt ) { case DSPACC_TYPE_NORMAL: { Account *acc = p; weight = PANGO_WEIGHT_NORMAL; text = acc->name; } break; case DSPACC_TYPE_HEADER: { PnlAccGrp *g = p; text = g->name; } break; case DSPACC_TYPE_SUBTOTAL: text = _("Total"); break; case DSPACC_TYPE_TOTAL: text = _("Grand total"); break; } end: g_object_set(renderer, "weight", weight, "text", text, NULL); } static void lst_accview_cell_data_func_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gpointer p; gint dt; gint colid = GPOINTER_TO_INT(user_data); //LST_DSPACC_(BANK/TODAY/FUTURE) gdouble amount = -1; gint weight = PANGO_WEIGHT_NORMAL; gchar *color = NULL; gchar *text = NULL; gtk_tree_model_get(model, iter, LST_DSPACC_DATATYPE, &dt, LST_DSPACC_DATAS, &p, -1); if( p == NULL ) goto end; if( dt == DSPACC_TYPE_NORMAL ) { Account *acc = p; switch(colid) { case COL_DSPACC_CLEAR: amount = acc->bal_clear; break; case COL_DSPACC_RECON: amount = acc->bal_recon; break; case COL_DSPACC_TODAY: amount = acc->bal_today; break; case COL_DSPACC_FUTURE: amount = acc->bal_future; break; } hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, acc->kcur, GLOBALS->minor); color = get_minimum_color_amount(amount, acc->minimum); text = buf; } else { gboolean expanded = TRUE; if( dt == DSPACC_TYPE_HEADER ) { GtkTreePath* tp = gtk_tree_model_get_path(model, iter); expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(gtk_tree_view_column_get_tree_view(col)), tp); gtk_tree_path_free(tp); } if( dt != DSPACC_TYPE_HEADER || (expanded == FALSE) ) { PnlAccGrp *g = p; switch(colid) { case COL_DSPACC_CLEAR: amount = g->bal_clear; break; case COL_DSPACC_RECON: amount = g->bal_recon; break; case COL_DSPACC_TODAY: amount = g->bal_today; break; case COL_DSPACC_FUTURE: amount = g->bal_future; break; } //nota: header is always in base currency hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, GLOBALS->kcur, GLOBALS->minor); if(expanded) weight = PANGO_WEIGHT_BOLD; color = get_normal_color_amount(amount); text = buf; } } end: g_object_set(renderer, "weight", weight, "foreground", color, "text", text, NULL); } static gint lst_accview_func_compare (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint retval = 0; gint dt1, dt2; gpointer p1, p2; gint pos1, pos2; gtk_tree_model_get(model, a, LST_DSPACC_POS, &pos1, LST_DSPACC_DATATYPE, &dt1, LST_DSPACC_DATAS, &p1, -1); gtk_tree_model_get(model, b, LST_DSPACC_POS, &pos2, LST_DSPACC_DATATYPE, &dt2, LST_DSPACC_DATAS, &p2, -1); if( p1 == NULL || p2 == NULL ) return 0; if( dt1 == DSPACC_TYPE_NORMAL && dt2 == DSPACC_TYPE_NORMAL ) { Account *entry1 = p1; Account *entry2 = p2; retval = entry1->pos - entry2->pos; } else if( dt1 == DSPACC_TYPE_HEADER && dt2 == DSPACC_TYPE_HEADER ) { PnlAccGrp *elt1 = p1; PnlAccGrp *elt2 = p2; retval = pos1 - pos2; if( !retval ) retval = hb_string_utf8_compare(elt1->name, elt2->name); } return retval; } static gboolean lst_accview_func_selection(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean path_currently_selected, gpointer data) { GtkTreeIter iter; DB( g_print ("\n[lst_accview] selection\n") ); if( gtk_tree_path_get_depth( path ) < 2 ) return FALSE; if(gtk_tree_model_get_iter(model, &iter, path)) { gint dt; gtk_tree_model_get(model, &iter, LST_DSPACC_DATATYPE, &dt, -1); if( dt != DSPACC_TYPE_NORMAL ) return FALSE; } return TRUE; } static void lst_accview_columns_prefs_get(GtkTreeView *treeview) { GtkTreeViewColumn *column; gint i, uid; DB( g_print ("\n[lst_accview] columns prefs get\n") ); DB( g_print(" nbcol=%d, nbsortid=%d\n", NUM_LST_COL_DSPACC, gtk_tree_view_get_n_columns (treeview)) ); for(i=0 ; i < NUM_LST_COL_DSPACC ; i++ ) { column = gtk_tree_view_get_column(treeview, i); if(column != NULL) { uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); if( uid >= 0 ) { gboolean visible; visible = gtk_tree_view_column_get_visible (column); PREFS->lst_acc_columns[i] = (visible == TRUE) ? uid : -uid; DB( g_print(" col-%2d => %2d '%s' w=%d\n", i, uid, gtk_tree_view_column_get_title(column), PREFS->lst_ope_col_width[uid-1] ) ); /* save width for accounts */ if( uid == COL_DSPACC_ACCOUNTS ) { PREFS->pnl_acc_col_acc_width = gtk_tree_view_column_get_width(column); } } else //should not occurs PREFS->lst_ope_columns[i] = 0; } } } static void lst_accview_columns_prefs_set(GtkTreeView *treeview, gint *cols_id) { GtkTreeViewColumn *column; gboolean visible; gint uid, i = 0; gint tmpval; DB( g_print ("\n[lst_accview] columns prefs set\n") ); for(i=0; i < NUM_LST_COL_DSPACC ; i++ ) { column = gtk_tree_view_get_column(treeview, i); if( column != NULL ) { uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); tmpval = homebank_pref_list_column_get(cols_id, uid, NUM_LST_COL_DSPACC); DB( g_print(" - pos:%2d uid:%d sortid:%2d (%s)\n", i, uid, tmpval, gtk_tree_view_column_get_title(column)) ); visible = tmpval < 0 ? FALSE : TRUE; gtk_tree_view_column_set_visible (column, visible); } } } static GtkTreeViewColumn * lst_accview_column_amount_new(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(id)); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_accview_cell_data_func_amount, GINT_TO_POINTER(id), NULL); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_spacing( column, 16 ); //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_BANK); return column; } static void lst_accview_popmenu_cb_activate (GtkCheckMenuItem *checkmenuitem, gpointer user_data) { GtkTreeViewColumn *column = user_data; //GtkWidget *treeview; DB( g_print ("\n[lst_accview] menuitem activated\n") ); if( !GTK_IS_TREE_VIEW_COLUMN(column) ) return; //TDOO: useless until we link dsp_accoutn balance to this list //treeview = gtk_tree_view_column_get_tree_view(GTK_TREE_VIEW_COLUMN(column)); gtk_tree_view_column_set_visible(column, gtk_check_menu_item_get_active(checkmenuitem) ); //lst_accview_columns_prefs_get(GTK_TREE_VIEW(treeview)); } static gint lst_accview_cb_button_pressed_event (GtkWidget *widget, GdkEvent *event, GtkWidget *menu) { GdkEventType type; guint button = 0; type = gdk_event_get_event_type(event); gdk_event_get_button(event, &button); DB( g_print ("\n[lst_accview] popmenu\n") ); if (type == GDK_BUTTON_PRESS && button == 3) { // check we ARE in the header but in bin window if (gdk_event_get_window(event) != gtk_tree_view_get_bin_window (GTK_TREE_VIEW (widget))) { #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) gtk_menu_popup_at_pointer(GTK_MENU(menu), (GdkEvent *)event); #else gtk_menu_popup (GTK_MENU(menu), NULL, NULL, NULL, NULL, button, gdk_event_get_time(event)); #endif // On indique à l'appelant que l'on a géré cet événement. return TRUE; } // On indique à l'appelant que l'on n'a pas géré cet événement. } return FALSE; } static void lst_accview_popmenu_destroy(GtkTreeView *treeview, gpointer user_data) { DB( g_print ("\n[lst_accview] menu destroy\n") ); } static GtkWidget * lst_accview_popmenu_new(GtkTreeView *treeview) { GtkTreeViewColumn *column; GtkWidget *menu; GtkWidget *menuitem; gint i, uid; //GtkAccelGroup *accel_group = NULL; //accel_group = gtk_accel_group_new(); //gtk_window_add_accel_group(GTK_WINDOW(data->window), accel_group); DB( g_print ("\n[lst_accview] create popmenu\n") ); menu = gtk_menu_new(); //data->ME_popmenu = menu; for(i=0 ; i < NUM_LST_COL_DSPACC ; i++ ) { column = gtk_tree_view_get_column(GTK_TREE_VIEW(treeview), i); if( column != NULL ) { //uid = gtk_tree_view_column_get_sort_column_id (column); uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid")); DB( g_print (" col %d\n", uid) ); if( (uid == -1) || (uid == COL_DSPACC_STATUS) || (uid == COL_DSPACC_ACCOUNTS) ) continue; menuitem = gtk_check_menu_item_new_with_label ( gtk_tree_view_column_get_title (column) ); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), gtk_tree_view_column_get_visible (column) ); g_signal_connect (menuitem, "activate", G_CALLBACK (lst_accview_popmenu_cb_activate), column); } } g_signal_connect (menu, "destroy", G_CALLBACK (lst_accview_popmenu_destroy), NULL); gtk_widget_show_all(menu); return menu; } static gboolean gtk_tree_view_set_tooltip_query_cb (GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer data) { GtkTreeIter iter; GtkTreePath *path; GtkTreeModel *model; GtkTreeView *tree_view = GTK_TREE_VIEW (widget); GString *node; gint dt; Account *acc; gchar buffer[256]; gchar *escapedname; if (!gtk_tree_view_get_tooltip_context (GTK_TREE_VIEW (widget), &x, &y, keyboard_tip, &model, &path, &iter)) return FALSE; gtk_tree_model_get(model, &iter, LST_DSPACC_DATATYPE, &dt, LST_DSPACC_DATAS, &acc, -1); // no tooltip if not an account if( (dt != DSPACC_TYPE_NORMAL) ) { gtk_tree_path_free (path); return FALSE; } //#1993599 tooltip fail when & into acc name escapedname = g_markup_escape_text(acc->name, -1); node = g_string_sized_new(255); g_string_append(node, ""); g_string_append(node, escapedname); g_string_append(node, "\n"); g_free(escapedname); //#2064754 always display a tooltip to keep consistency g_string_append(node, "\n"); g_string_append(node, _("last reconciled")); g_string_append(node, ": "); if( acc->rdate > 0 ) { GDate *date; //format date date = g_date_new_julian (acc->rdate); g_date_strftime (buffer, 256-1, PREFS->date_format, date); g_date_free(date); g_string_append(node, buffer); } else g_string_append(node, _("none")); if( (acc->minimum < 0) && (acc->bal_today >= acc->minimum) ) { gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; g_string_append(node, "\n"); hb_strfmon(formatd_buf, G_ASCII_DTOSTR_BUF_SIZE-1, acc->bal_today - acc->minimum, acc->kcur, FALSE); g_string_append(node, formatd_buf); g_string_append(node, " "); g_string_append(node, _("until overdraft")); g_string_append(node, " ("); hb_strfmon(formatd_buf, G_ASCII_DTOSTR_BUF_SIZE-1, acc->minimum, acc->kcur, FALSE); g_string_append(node, formatd_buf); g_string_append(node, ")"); } if( (acc->maximum > 0) && (acc->maximum >= acc->bal_today) ) { gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; g_string_append(node, "\n"); hb_strfmon(formatd_buf, G_ASCII_DTOSTR_BUF_SIZE-1, acc->maximum - acc->bal_today, acc->kcur, FALSE); g_string_append(node, formatd_buf); g_string_append(node, " "); g_string_append(node, _("before maximum")); g_string_append(node, " ("); hb_strfmon(formatd_buf, G_ASCII_DTOSTR_BUF_SIZE-1, acc->maximum, acc->kcur, FALSE); g_string_append(node, formatd_buf); g_string_append(node, ")"); } gtk_tooltip_set_markup (tooltip, node->str); gtk_tree_view_set_tooltip_row (tree_view, tooltip, path); gtk_tree_path_free (path); g_string_free(node, TRUE); return TRUE; } static void lst_accview_destroy(GtkWidget *widget, gpointer user_data) { struct lst_accview_data *data; data = g_object_get_data(G_OBJECT(widget), "inst_data"); DB( g_print ("\n[lst_accview] destroy\n") ); lst_accview_columns_prefs_get(GTK_TREE_VIEW(data->treeview)); gtk_widget_destroy (data->menu); } GtkWidget *lst_accview_new(void) { struct lst_accview_data *data; GtkTreeStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; DB( g_print ("\n[lst_accview] create\n") ); data = g_malloc0(sizeof(struct lst_accview_data)); if(!data) return NULL; /* create list store */ store = gtk_tree_store_new( NUM_LST_DSPACC, G_TYPE_INT, /* datatype */ G_TYPE_INT, /* pos */ G_TYPE_POINTER /* datas*/ ); //treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); data->treeview = treeview; g_object_unref(store); //store our window private data g_object_set_data(G_OBJECT(treeview), "inst_data", (gpointer)data); DB( g_print(" - treeview=%p, inst_data=%p\n", treeview, data) ); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); //gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), // COLUMN_DESCRIPTION); //gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW (view), TRUE); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_SINGLE); /* Status */ column = gtk_tree_view_column_new(); //gtk_tree_view_column_set_title(column, _("Status")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_accview_cell_data_func_status, GINT_TO_POINTER(1), NULL); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_accview_cell_data_func_status, GINT_TO_POINTER(2), NULL); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //add system icon to 1st column gtk_tree_view_column_set_clickable(column, TRUE); GtkWidget *img = hbtk_image_new_from_icon_name_16 (ICONNAME_EMBLEM_SYSTEM); gtk_widget_show(img); gtk_tree_view_column_set_widget(column, img); /* Account */ renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new(); g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_DSPACC_ACCOUNTS)); gtk_tree_view_column_set_title(column, _("Accounts")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_accview_cell_data_func_text, NULL, NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST/2); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_view_column_set_fixed_width(column, PREFS->pnl_acc_col_acc_width); gtk_tree_view_set_expander_column(GTK_TREE_VIEW (treeview), column); /* Reconciled */ column = lst_accview_column_amount_new(_("Reconciled"), COL_DSPACC_RECON); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* Cleared */ column = lst_accview_column_amount_new(_("Cleared"), COL_DSPACC_CLEAR); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* Today */ column = lst_accview_column_amount_new(_("Today"), COL_DSPACC_TODAY); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* Future */ column = lst_accview_column_amount_new(_("Future"), COL_DSPACC_FUTURE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column 7: empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* disable selection for level 1 of the tree */ gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), lst_accview_func_selection, NULL, NULL); //sort etc gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), lst_accview_func_compare, NULL, NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); lst_accview_columns_prefs_set(GTK_TREE_VIEW(treeview), PREFS->lst_acc_columns); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); GtkWidget *popmenu = lst_accview_popmenu_new(GTK_TREE_VIEW(treeview)); data->menu = popmenu; //add tooltip gtk_widget_set_has_tooltip (GTK_WIDGET (treeview), TRUE); g_signal_connect (treeview, "destroy", G_CALLBACK (lst_accview_destroy), NULL); g_signal_connect (treeview, "button-press-event", G_CALLBACK (lst_accview_cb_button_pressed_event), popmenu); g_signal_connect (treeview, "query-tooltip", G_CALLBACK (gtk_tree_view_set_tooltip_query_cb), NULL); return(treeview); } homebank-5.9.1/src/homebank.h0000644000175000017500000001507315006354746011537 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HOMEBANK_H__ #define __HOMEBANK_H__ #ifdef HAVE_CONFIG_H #include #endif #include #include /* floor */ #include /* gettext */ #include #include /* atoi, atof, atol */ #include /* memset, memcpy, strcmp, strcpy */ //#include #include #include #include #include "hb-types.h" #include "enums.h" #include "icon-names.h" #include "hb-preferences.h" #include "hb-account.h" #include "hb-archive.h" #include "hb-assign.h" #include "hb-category.h" #include "hb-filter.h" #include "hb-payee.h" #include "hb-tag.h" #include "hb-transaction.h" #include "hb-currency.h" #include "hb-encoding.h" #include "hb-export.h" #include "hb-group.h" #include "hb-hbfile.h" #include "hb-import.h" #include "hb-misc.h" #include "hb-report.h" #define _(str) gettext (str) #define gettext_noop(str) (str) #define N_(str) gettext_noop (str) /* = = = = = = = = = = = = = = = = */ #define HB_PRIV_FUNC FALSE #define HB_PRIV_FORCE_ENUS FALSE #define HB_UNSTABLE FALSE #define HB_UNSTABLE_SHOW FALSE //show user RC header #define HOMEBANK_MAJOR 5 #define HOMEBANK_MINOR 9 #define HOMEBANK_MICRO 1 #define HB_VERSION "5.9.1" #define HB_VERSION_NUM (HOMEBANK_MAJOR*10000) + (HOMEBANK_MINOR*100) + HOMEBANK_MICRO #define FILE_VERSION 1.6 #define PREF_VERSION 591 #if HB_UNSTABLE == FALSE #define PROGNAME "HomeBank" #define HB_DATA_PATH "homebank" #else #define PROGNAME "HomeBank " HB_VERSION " (unstable)" #define HB_DATA_PATH "homebank_unstable" #endif #ifdef G_OS_WIN32 #define GETTEXT_PACKAGE "homebank" #define LOCALE_DIR "locale" #define PIXMAPS_DIR "images" #define HELP_DIR "help" #define PACKAGE_VERSION HB_VERSION #define PACKAGE "homebank" #define VERSION HB_VERSION //#define PORTABLE_APP //#define NOOFX #define ENABLE_NLS 1 #endif /* container spacing */ #define SPACING_TINY 3 #define SPACING_SMALL 6 #define SPACING_MEDIUM 12 #define SPACING_LARGE 18 #define SPACING_POPOVER 10 #define HB_DATE_MAX_GAP 7 // those 2 line are duplicated into dateentry #define HB_MINDATE 693596 //01/01/1900 #define HB_MAXDATE 803533 //31/12/2200 /* widget minimum width */ #define HB_MINWIDTH_LIST 161 #define HB_MINHEIGHT_LIST 260 #define HB_MINWIDTH_SEARCH 240 #define HB_MINWIDTH_COLUMN 48 /* miscellaneous */ #define PHI 1.61803399 #define HB_NUMBER_SAMPLE 1234567.89 /* hbfile/account/import update flags */ enum { UF_TITLE = 1 << 0, //1 UF_SENSITIVE = 1 << 1, //2 UF_VISUAL = 1 << 2, //4 UF_REFRESHALL = 1 << 3, //8 UF_TXNLIST = 1 << 4, //16 // = 1 << 5 }; typedef enum { FILETYPE_UNKNOWN, FILETYPE_HOMEBANK, FILETYPE_OFX, FILETYPE_QIF, FILETYPE_CSV_HB, // FILETYPE_AMIGA_HB, NUM_FILETYPE } HbFileType; /* ---- icon size as defined into gtkiconfactory.c ---- */ /* GTK_ICON_SIZE_MENU 16 * GTK_ICON_SIZE_BUTTON 20 * GTK_ICON_SIZE_SMALL_TOOLBAR 18 * GTK_ICON_SIZE_LARGE_TOOLBAR 24 (default for toolbar) * GTK_ICON_SIZE_DND 32 * GTK_ICON_SIZE_DIALOG 48 */ /* ** Global application datas */ struct HomeBank { // hbfile storage GHashTable *h_cur; //currencies GHashTable *h_grp; //groups GHashTable *h_acc; //accounts GHashTable *h_pay; //payees GHashTable *h_cat; //categories GHashTable *h_rul; //assign rules GHashTable *h_tag; //tags GHashTable *h_flt; //filters GtkListStore *fltmodel; GHashTable *h_memo; //memo/description GList *arc_list; //scheduled/template //#1419304 we keep the deleted txn to a stack trash //GTrashStack *txn_stk; GSList *openwindows; //added 5.5.1 GSList *deltxn_list; // hbfile (wallet saved properties) gchar *owner; gshort auto_smode; gshort auto_weekday; gshort auto_nbmonths; gshort auto_nbdays; gdouble lifen_earnbyh; guint32 vehicle_category; guint32 kcur; // base currency // hbfile (unsaved properties) guint changes_count; gboolean hbfile_is_new; gboolean hbfile_is_bak; gchar *xhb_filepath; gboolean xhb_hasrevert; //file has backup (*.xhb~) used for revert menu sensitivity guint64 xhb_timemodified; gboolean xhb_obsoletecurr; // really global stuffs gboolean first_run; guint32 today; //today's date gint define_off; //>0 when a stat, account window is opened gboolean minor; GtkApplication *application; GtkWidget *mainwindow; //should be global to access attached window data GtkCssProvider *provider; GtkIconTheme *icontheme; //GdkPixbuf *lst_pixbuf[NUM_LST_PIXBUF]; //gint lst_pixbuf_maxwidth; GDBusProxy *settings_portal; ColorScheme color_scheme; gboolean theme_is_dark; }; gchar *homebank_filepath_with_extention(gchar *path, gchar *extension); gchar *homebank_filename_without_extention(gchar *path); void homebank_file_ensure_xhb(gchar *filename); void homebank_backup_current_file(void); gboolean homebank_util_url_show (const gchar *url); gchar *homebank_lastopenedfiles_load(void); gboolean homebank_lastopenedfiles_save(void); void homebank_window_set_icon_from_file(GtkWindow *window, gchar *filename); const gchar *homebank_app_get_config_dir (void); const gchar *homebank_app_get_images_dir (void); const gchar *homebank_app_get_pixmaps_dir (void); const gchar *homebank_app_get_locale_dir (void); const gchar *homebank_app_get_help_dir (void); const gchar *homebank_app_get_datas_dir (void); guint32 homebank_app_date_get_julian(void); GtkWindow *homebank_app_find_window(gint needle_key); /* - - - - obsolete/future things - - - - */ /* typedef struct _budget Budget; struct _budget { guint key; gushort flags; guint cat_key; guint year; gdouble value[13]; }; */ /* struct _investment { guint date; gdouble buy_amount; gdouble curr_amount; gdouble commission; guint number; guint account; gchar *name; gchar *symbol; gchar *note; }; */ #endif homebank-5.9.1/src/list-operation.h0000644000175000017500000000524614736461415012726 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __LIST_OPERATION__H__ #define __LIST_OPERATION__H__ enum { LIST_TXN_TYPE_BOOK = 0, LIST_TXN_TYPE_DETAIL, LIST_TXN_TYPE_OTHER, LIST_TXN_TYPE_XFERSOURCE, LIST_TXN_TYPE_XFERTARGET }; enum { MODEL_TXN_POINTER = 0, MODEL_TXN_SPLITAMT, MODEL_TXN_SPLITPTR }; enum { LST_TXN_EXP_ACC = 1 << 0, //detail/print LST_TXN_EXP_PMT = 1 << 1, //!print LST_TXN_EXP_CLR = 1 << 2, LST_TXN_EXP_CAT = 1 << 3, LST_TXN_EXP_TAG = 1 << 4, LST_TXN_EXP_BAL = 1 << 5 }; struct list_txn_data { GtkWidget *treeview; GtkTreeViewColumn *tvc_balance; gint list_type; gboolean showall; gboolean lockreconciled; gboolean warnnocategory; gboolean tvc_is_visible; gboolean save_column_width; gboolean life_energy; }; GtkWidget *create_list_transaction(gint type, gboolean *pref_columns); GtkWidget *create_list_import_transaction(gboolean enable_choose); void list_txn_set_warn_nocategory(GtkTreeView *treeview, gboolean warn); void list_txn_set_columns(GtkTreeView *treeview, gint *col_id); void list_txn_get_columns(GtkTreeView *treeview); gboolean list_txn_column_id_isvisible(GtkTreeView *treeview, gint sort_id); void list_txn_set_column_acc_visible(GtkTreeView *treeview, gboolean visible); void list_txn_set_life_energy(GtkTreeView *treeview, gboolean life_energy); Transaction *list_txn_get_surround_transaction(GtkTreeView *treeview, Transaction **prev, Transaction **next); Transaction *list_txn_get_active_transaction(GtkTreeView *treeview); GString *list_txn_to_string(GtkTreeView *treeview, gboolean isclipboard, gboolean hassplit, gboolean selectonly, guint flags); void list_txn_set_lockreconciled(GtkTreeView *treeview, gboolean lockreconciled); void list_txn_set_save_column_width(GtkTreeView *treeview, gboolean save_column_width); void list_txn_sort_force(GtkTreeSortable *sortable, gpointer user_data); guint list_txn_get_quicksearch_column_mask(GtkTreeView *treeview); #endif homebank-5.9.1/src/gtk-dateentry.c0000644000175000017500000005204515005625251012517 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //#include #include /* atoi, atof, atol */ #include /* gettext */ #include #include #include "gtk-dateentry.h" //TODO: move this after GTK4 #include "ui-widgets.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif //keypress #define DBK(x) //(x); enum { CHANGED, LAST_SIGNAL }; enum { PROPERTY_DATE = 5, }; static guint dateentry_signals[LAST_SIGNAL] = {0,}; //G_DEFINE_TYPE(GtkDateEntry, gtk_date_entry, GTK_TYPE_BOX) G_DEFINE_TYPE_WITH_CODE(GtkDateEntry, gtk_date_entry, GTK_TYPE_BOX, G_ADD_PRIVATE (GtkDateEntry)) gboolean using_twodigit_years = FALSE; /* order of these in the current locale ** https://calendars.fandom.com/wiki/Date_format_by_country ** YMD: hungary ** DMY: united-kingdom ** MDY: united-states */ static GDateDMY dmy_order[3] = { G_DATE_DAY, G_DATE_MONTH, G_DATE_YEAR }; struct _GDateParseTokens { gint num_ints; gint n[3]; }; typedef struct _GDateParseTokens GDateParseTokens; #define NUM_LEN 10 /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if MYDEBUG == 1 static void _hb_dbg_date(gchar *title, GDate *date) { gchar buffer1[128]; g_date_strftime (buffer1, 128-1, "%a %d-%m-%Y", date); g_print(" %s: [%s]\n", title != NULL ? title:"==>", buffer1); } #endif //https://en.wikipedia.org/wiki/Date_format_by_country static void hb_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt) { gchar num[4][NUM_LEN+1]; gint i; const guchar *s; //DB( g_print("\n[dateentry] fill parse token\n") ); /* We count 4, but store 3; so we can give an error * if there are 4. */ num[0][0] = num[1][0] = num[2][0] = num[3][0] = '\0'; s = (const guchar *) str; pt->num_ints = 0; while (*s && pt->num_ints < 4) { i = 0; while (*s && g_ascii_isdigit (*s) && i < NUM_LEN) { num[pt->num_ints][i] = *s; ++s; ++i; } if (i > 0) { num[pt->num_ints][i] = '\0'; ++(pt->num_ints); } if (*s == '\0') break; ++s; } pt->n[0] = pt->num_ints > 0 ? atoi (num[0]) : 0; pt->n[1] = pt->num_ints > 1 ? atoi (num[1]) : 0; pt->n[2] = pt->num_ints > 2 ? atoi (num[2]) : 0; } static void hb_date_determine_dmy_order(void) { GDateParseTokens testpt; GDate d; gchar buf[127]; gint i; DB( g_print("\n[dateentry] determine dmy order\n") ); /* had to pick a random day - don't change this, some strftimes * are broken on some days, and this one is good so far. */ g_date_set_dmy (&d, 4, 7, 1976); g_date_strftime (buf, 127, "%x", &d); DB( g_print(" dmy'04/07/1976' > '%s'\n", buf )); hb_date_fill_parse_tokens (buf, &testpt); using_twodigit_years = FALSE; dmy_order[0] = G_DATE_DAY; dmy_order[1] = G_DATE_MONTH; dmy_order[2] = G_DATE_YEAR; i = 0; while (i < testpt.num_ints) { switch (testpt.n[i]) { case 7: dmy_order[i] = G_DATE_MONTH; break; case 4: dmy_order[i] = G_DATE_DAY; break; case 76: using_twodigit_years = TRUE; /* FALL THRU */ case 1976: dmy_order[i] = G_DATE_YEAR; break; } ++i; } DB( g_print(" => dmy=%d mdy=%d ymd=%d\n", dmy_order[0]==G_DATE_DAY, dmy_order[0]==G_DATE_MONTH, dmy_order[0]==G_DATE_YEAR) ); } static void hb_date_parse_tokens(GDate *date, const gchar *str) { GDate tokendate; gchar **num_array = NULL; gint num_ints; num_array = g_strsplit_set(str, " /-.", -1); num_ints = g_strv_length( num_array ); DB( g_print(" num ints: %d\n", num_ints) ); //invalid date g_date_clear(&tokendate, 1); //user input day/month or month/day if( num_ints == 2 ) { gint num1 = atoi(num_array[0]); gint num2 = atoi(num_array[1]); if( num1 > 0 && num2 > 0 ) { g_date_set_time_t(&tokendate, time(NULL)); //DMY if( dmy_order[0] == G_DATE_DAY ) { g_date_set_day(&tokendate, num1); g_date_set_month(&tokendate, num2); DB( g_print(" set d/m: %d %d\n", num1, num2) ); } else if( dmy_order[0] == G_DATE_MONTH ) { g_date_set_month(&tokendate, num1); g_date_set_day(&tokendate, num2); DB( g_print(" set m/d: %d %d\n", num1, num2) ); } } } else //user input day if( num_ints == 1 ) { g_date_set_time_t(&tokendate, time(NULL)); g_date_set_day(&tokendate, atoi(num_array[0])); DB( g_print(" set d: %d\n", atoi(num_array[0])) ); } g_strfreev(num_array); //update output date if tokendate is valid if( g_date_valid(&tokendate) ) { g_date_set_julian(date, g_date_get_julian(&tokendate)); } else { g_date_clear(date, 1); DB( g_print(" quick set fail\n") ); } } static void update_text(GtkDateEntry *self) { GtkDateEntryPrivate *priv = self->priv; gchar label[127]; DB( g_print("\n[dateentry] '%s' update text\n", (gchar *)gtk_widget_get_name(GTK_WIDGET(self))) ); //%x : The preferred date representation for the current locale without the time. //5.7 added %a to display abbreviated weekday g_date_strftime (label, 127 - 1, "%a %x", priv->date); gtk_entry_set_text (GTK_ENTRY (priv->entry), label); DB( g_print(" = %s\n", label) ); } static void eval_date(GtkDateEntry *self) { GtkDateEntryPrivate *priv = self->priv; DB( g_print("\n[dateentry] '%s' eval date\n", (gchar *)gtk_widget_get_name(GTK_WIDGET(self))) ); DB( _hb_dbg_date("min", &priv->mindate) ); DB( _hb_dbg_date("max", &priv->maxdate) ); DB( _hb_dbg_date("in ", priv->date) ); g_date_clamp(priv->date, &priv->mindate, &priv->maxdate); DB( _hb_dbg_date("out", priv->date) ); update_text(self); if(priv->lastdate != g_date_get_julian(priv->date)) { DB( g_print(" **emit 'changed' signal**\n") ); g_signal_emit_by_name (self, "changed", NULL, NULL); } priv->lastdate = g_date_get_julian(priv->date); } static void parse_date(GtkDateEntry *self) { GtkDateEntryPrivate *priv = self->priv; const gchar *str; DB( g_print("\n[dateentry] '%s' parse date\n", (gchar *)gtk_widget_get_name(GTK_WIDGET(self))) ); str = gtk_entry_get_text (GTK_ENTRY (priv->entry)); DB( g_print(" rawstr '%s'\n", str) ); //1) give a try to tokens = day, day/month, month/day hb_date_parse_tokens(priv->date, str); DB( g_print(" 1/ quick parsed :: valid=%d\n", g_date_valid(priv->date)) ); //2) invalid: glib failover if(!g_date_valid(priv->date)) { //2) we parse the string according to the locale g_date_set_parse (priv->date, str); DB( g_print(" 2/ glib parsed :: valid=%d > %d %d %d\n", g_date_valid(priv->date), g_date_get_day(priv->date), g_date_get_month(priv->date), g_date_get_year(priv->date) ) ); //#1956185 adjust for 2 digits year, note: IBM is windowing 40, not 60 if( using_twodigit_years == TRUE && g_date_valid(priv->date) == TRUE ) { if( g_date_get_year(priv->date) < 1970 ) { DB( g_print(" > adjusting year %04d from 2 to 4 digits\n", g_date_get_year(priv->date)) ); if( g_date_get_year(priv->date) < 60 ) g_date_add_years(priv->date, 2000); else g_date_add_years(priv->date, 1900); DB( g_print(" > year set to %d\n", g_date_get_year(priv->date)) ); } } } //3) invalid: warn user put today's if(!g_date_valid(priv->date)) { g_date_set_time_t(priv->date, time(NULL)); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(priv->entry)), GTK_STYLE_CLASS_WARNING); } else { gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET(priv->entry)), GTK_STYLE_CLASS_WARNING); } DB( _hb_dbg_date(NULL, priv->date) ); eval_date(self); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void gtk_date_entry_set_calendar (GtkWidget * widget, GtkDateEntry * dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; guint day, month; DB( g_print("\n[dateentry] set calendar\n") ); /* GtkCalendar expects month to be in 0-11 range (inclusive) */ day = g_date_get_day (priv->date); month = g_date_get_month (priv->date) - 1; g_signal_handler_block(priv->calendar, priv->hid_dayselect); gtk_calendar_select_month (GTK_CALENDAR (priv->calendar), month, g_date_get_year (priv->date)); gtk_calendar_select_day (GTK_CALENDAR (priv->calendar), day); g_signal_handler_unblock(priv->calendar, priv->hid_dayselect); } static void gtk_date_entry_cb_today_clicked (GtkWidget * widget, GtkDateEntry * dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; DB( g_print("\n[dateentry] today_clicked\n") ); //revert to now (today) g_date_set_time_t(priv->date, time(NULL)); eval_date(dateentry); gtk_date_entry_set_calendar(widget, dateentry); //1923368 keep the popover visible //gtk_widget_hide (priv->popover); } static void gtk_date_entry_cb_calendar_day_selected(GtkWidget * calendar, GtkDateEntry * dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; guint year, month, day; DB( g_print("\n[dateentry] calendar_day_selected\n") ); gtk_calendar_get_date (GTK_CALENDAR (priv->calendar), &year, &month, &day); g_date_set_dmy (priv->date, day, month + 1, year); eval_date(dateentry); } static gint gtk_date_entry_cb_calendar_day_select_double_click(GtkWidget * calendar, gpointer user_data) { GtkDateEntry *dateentry = user_data; GtkDateEntryPrivate *priv = dateentry->priv; DB( g_print("\n[dateentry] calendar_day_select_double_click\n") ); gtk_widget_hide (priv->popover); return FALSE; } static void gtk_date_entry_cb_calendar_today_mark(GtkWidget *calendar, GtkDateEntry *dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; guint year, month, day; DB( g_print("\n[dateentry] cb_calendar_mark_day\n") ); gtk_calendar_get_date (GTK_CALENDAR (priv->calendar), &year, &month, &day); //maybe 1828914 gtk_calendar_clear_marks(GTK_CALENDAR(priv->calendar)); if( year == g_date_get_year (&priv->nowdate) && month == (g_date_get_month (&priv->nowdate)-1) ) gtk_calendar_mark_day(GTK_CALENDAR(priv->calendar), g_date_get_day (&priv->nowdate)); } static void gtk_date_entry_cb_calendar_monthyear(GtkWidget *calendar, GtkDateEntry *dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; guint year, month, day; DB( g_print("\n[dateentry] cb_calendar_monthyear\n") ); gtk_calendar_get_date (GTK_CALENDAR (priv->calendar), &year, &month, &day); if( year < 1900) g_object_set(calendar, "year", 1900, NULL); if( year > 2200) g_object_set(calendar, "year", 2200, NULL); gtk_date_entry_cb_calendar_today_mark(calendar, dateentry); } static gint gtk_date_entry_cb_entry_key_pressed (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GtkDateEntry *dateentry = user_data; GtkDateEntryPrivate *priv = dateentry->priv; GdkModifierType state; guint keyval; guint action; DBK( g_print("\n[dateentry] '%s' entry key pressed", (gchar *)gtk_widget_get_name(GTK_WIDGET(dateentry))) ); gdk_event_get_keyval(event, &keyval); gdk_event_get_state (event, &state); DBK( g_print(" state: %s %s\n", (state & GDK_SHIFT_MASK) ? "shift" : "", (state & GDK_CONTROL_MASK) ? "ctrl" : "" ) ); DBK( g_print(" keyval: %s %s\n", (keyval == GDK_KEY_Up) ? "up" : "", (keyval == GDK_KEY_Down) ? "down" : "") ); if( (gdk_event_get_event_type(event) != GDK_KEY_PRESS) ) return FALSE; //#1873643 preserve Up/Down (+ctrl) natural GTK focus change if( (state & GDK_CONTROL_MASK) && !(state & GDK_SHIFT_MASK) ) return FALSE; if( (keyval == GDK_KEY_Up) || (keyval == GDK_KEY_Down) ) { //let's bitwise key to an action-id action = 0; action |= (state & GDK_SHIFT_MASK) ? 2 : 0; action |= (state & GDK_CONTROL_MASK) ? 4 : 0; action |= (keyval == GDK_KEY_Down) ? 1 : 0; DBK( g_print(" action: %d\n", action) ); switch(action) { case 0: g_date_add_days (priv->date, 1); break; case 1: g_date_subtract_days (priv->date, 1); break; case 2: g_date_add_months (priv->date, 1); break; case 3: g_date_subtract_months (priv->date, 1); break; case 6: g_date_add_years (priv->date, 1); break; case 7: g_date_subtract_years (priv->date, 1); break; } eval_date(dateentry); //stop handlers return TRUE; } //propagate return FALSE; } static void gtk_date_entry_cb_entry_activate(GtkWidget *gtkentry, gpointer user_data) { GtkDateEntry *dateentry = user_data; DB( g_print("\n- - - - - - - -\n[dateentry] '%s' entry_activate\n", (gchar *)gtk_widget_get_name(GTK_WIDGET(dateentry))) ); parse_date(dateentry); //5.8 done in parse_date //eval_date(dateentry); } static gboolean gtk_date_entry_cb_entry_focus_out(GtkWidget *widget, GdkEvent *event, gpointer user_data) { GtkDateEntry *dateentry = user_data; DB( g_print("\n- - - - - - - -\n[dateentry] entry focus-out-event %d\n", gtk_widget_is_focus(GTK_WIDGET(dateentry))) ); parse_date(dateentry); //5.8 done in parse_date //eval_date(dateentry); return FALSE; } static void gtk_date_entry_cb_button_clicked (GtkWidget * widget, GtkDateEntry * dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; DB( g_print("\n[dateentry] button_clicked\n") ); gtk_date_entry_set_calendar(widget, dateentry); gtk_popover_set_relative_to (GTK_POPOVER (priv->popover), GTK_WIDGET (priv->entry)); //gtk_widget_get_clip(priv->arrow, &rect); //gtk_popover_set_pointing_to (GTK_POPOVER (priv->popover), &rect); gtk_date_entry_cb_calendar_today_mark(widget, dateentry); gtk_widget_show_all (priv->popover); } static void gtk_date_entry_destroy (GtkWidget *object) { GtkDateEntry *dateentry = GTK_DATE_ENTRY (object); GtkDateEntryPrivate *priv = dateentry->priv; g_return_if_fail(object != NULL); g_return_if_fail(GTK_IS_DATE_ENTRY(object)); DB( g_print("\n[dateentry] destroy\n") ); DB( g_print(" free gtkentry: %p\n", priv->entry) ); DB( g_print(" free arrow: %p\n", priv->button) ); DB( g_print(" free dateentry: %p\n", dateentry) ); if(priv->date) g_date_free(priv->date); priv->date = NULL; GTK_WIDGET_CLASS (gtk_date_entry_parent_class)->destroy (object); } static void gtk_date_entry_dispose (GObject *gobject) { //GtkDateEntry *self = GTK_DATE_ENTRY (gobject); DB( g_print("\n[dateentry] dispose\n") ); //g_clear_object (&self->priv->an_object); G_OBJECT_CLASS (gtk_date_entry_parent_class)->dispose (gobject); } static void gtk_date_entry_finalize (GObject *gobject) { //GtkDateEntry *self = GTK_DATE_ENTRY (gobject); DB( g_print("\n[dateentry] finalize\n") ); //g_date_free(self->date); //g_free (self->priv->a_string); /* Always chain up to the parent class; as with dispose(), finalize() * is guaranteed to exist on the parent's class virtual function table */ G_OBJECT_CLASS(gtk_date_entry_parent_class)->finalize (gobject); } static void gtk_date_entry_class_init (GtkDateEntryClass *class) { GObjectClass *object_class; GtkWidgetClass *widget_class; object_class = G_OBJECT_CLASS (class); widget_class = GTK_WIDGET_CLASS (class); DB( g_print("\n[dateentry] class_init\n") ); //object_class->constructor = gtk_date_entry_constructor; //object_class->set_property = gtk_date_entry_set_property; //object_class->get_property = gtk_date_entry_get_property; object_class->dispose = gtk_date_entry_dispose; object_class->finalize = gtk_date_entry_finalize; widget_class->destroy = gtk_date_entry_destroy; dateentry_signals[CHANGED] = g_signal_new ("changed", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkDateEntryClass, changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); //g_type_class_add_private (object_class, sizeof (GtkDateEntryPrivate)); } static void gtk_date_entry_init (GtkDateEntry *dateentry) { GtkDateEntryPrivate *priv; GtkWidget *vbox; DB( g_print("\n[dateentry] init\n") ); /* yes, also priv, need to keep the code readable */ /*dateentry->priv = G_TYPE_INSTANCE_GET_PRIVATE (dateentry, GTK_TYPE_DATE_ENTRY, GtkDateEntryPrivate);*/ dateentry->priv = gtk_date_entry_get_instance_private(dateentry); priv = dateentry->priv; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(dateentry)), GTK_STYLE_CLASS_LINKED); priv->entry = gtk_entry_new (); //todo: see if really useful gtk_entry_set_width_chars(GTK_ENTRY(priv->entry), 16); gtk_entry_set_max_width_chars(GTK_ENTRY(priv->entry), 16); hbtk_box_prepend (GTK_BOX (dateentry), priv->entry); priv->button = gtk_button_new (); priv->arrow = hbtk_image_new_from_icon_name_16 ("pan-down-symbolic"); gtk_button_set_image(GTK_BUTTON(priv->button), priv->arrow); gtk_box_append (GTK_BOX (dateentry), priv->button); priv->popover = gtk_popover_new (priv->button); gtk_popover_set_position(GTK_POPOVER(priv->popover), GTK_POS_BOTTOM); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_popover_set_child (GTK_POPOVER(priv->popover), vbox); gtk_widget_set_margin_start (vbox, 10); gtk_widget_set_margin_end (vbox, 10); gtk_widget_set_margin_top (vbox, 10); gtk_widget_set_margin_bottom (vbox, 10); priv->calendar = gtk_calendar_new (); gtk_box_prepend(GTK_BOX(vbox), priv->calendar); priv->BT_today = gtk_button_new_with_mnemonic ( gettext("_Today")); gtk_box_prepend(GTK_BOX(vbox), priv->BT_today); gtk_widget_show_all (GTK_WIDGET(dateentry)); /* initialize datas */ priv->date = g_date_new(); g_date_set_time_t(priv->date, time(NULL)); g_date_set_time_t(&priv->nowdate, time(NULL)); g_date_set_dmy(&priv->mindate, 1, 1, 1900); //693596 g_date_set_dmy(&priv->maxdate, 31, 12, 2200); //803533 //update_text(dateentry); g_signal_connect (priv->entry, "key-press-event", G_CALLBACK (gtk_date_entry_cb_entry_key_pressed), dateentry); g_signal_connect_after (priv->entry, "focus-out-event", G_CALLBACK (gtk_date_entry_cb_entry_focus_out), dateentry); g_signal_connect (priv->entry, "activate", G_CALLBACK (gtk_date_entry_cb_entry_activate), dateentry); g_signal_connect (priv->button, "clicked", G_CALLBACK (gtk_date_entry_cb_button_clicked), dateentry); g_signal_connect (priv->calendar, "prev-year", G_CALLBACK (gtk_date_entry_cb_calendar_monthyear), dateentry); g_signal_connect (priv->calendar, "next-year", G_CALLBACK (gtk_date_entry_cb_calendar_monthyear), dateentry); g_signal_connect (priv->calendar, "prev-month", G_CALLBACK (gtk_date_entry_cb_calendar_monthyear), dateentry); g_signal_connect (priv->calendar, "next-month", G_CALLBACK (gtk_date_entry_cb_calendar_monthyear), dateentry); priv->hid_dayselect = g_signal_connect (priv->calendar, "day-selected", G_CALLBACK (gtk_date_entry_cb_calendar_day_selected), dateentry); g_signal_connect (priv->calendar, "day-selected-double-click", G_CALLBACK (gtk_date_entry_cb_calendar_day_select_double_click), dateentry); g_signal_connect (priv->BT_today, "clicked", G_CALLBACK (gtk_date_entry_cb_today_clicked), dateentry); } GtkWidget * gtk_date_entry_new (GtkWidget *label) { GtkDateEntry *dateentry; DB( g_print("\n[dateentry] new\n") ); dateentry = g_object_new (GTK_TYPE_DATE_ENTRY, NULL); if(dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), priv->entry); hb_date_determine_dmy_order(); } return GTK_WIDGET(dateentry); } void gtk_date_entry_set_error(GtkDateEntry *dateentry, gboolean error) { GtkDateEntryPrivate *priv = dateentry->priv; if( error == TRUE ) gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(priv->entry)), GTK_STYLE_CLASS_ERROR); else gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET(priv->entry)), GTK_STYLE_CLASS_ERROR); } void gtk_date_entry_set_date(GtkDateEntry *dateentry, guint32 julian_days) { GtkDateEntryPrivate *priv = dateentry->priv; DB( g_print("\n[dateentry] '%s' set date\n", (gchar *)gtk_widget_get_name(GTK_WIDGET(dateentry))) ); g_return_if_fail (GTK_IS_DATE_ENTRY (dateentry)); if(g_date_valid_julian(julian_days)) { g_date_set_julian (priv->date, julian_days); } else { g_date_set_time_t(priv->date, time(NULL)); } DB( _hb_dbg_date(NULL, priv->date) ); eval_date(dateentry); } /* ** */ guint32 gtk_date_entry_get_date(GtkDateEntry *dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; DB( g_print("\n[dateentry] '%s' get date\n", (gchar *)gtk_widget_get_name(GTK_WIDGET(dateentry))) ); g_return_val_if_fail (GTK_IS_DATE_ENTRY (dateentry), 0); DB( _hb_dbg_date(NULL, priv->date) ); return(g_date_get_julian(priv->date)); } GDateWeekday gtk_date_entry_get_weekday(GtkDateEntry *dateentry) { GtkDateEntryPrivate *priv = dateentry->priv; DB( g_print("\n[dateentry] '%s' get weekday\n", (gchar *)gtk_widget_get_name(GTK_WIDGET(dateentry))) ); g_return_val_if_fail (GTK_IS_DATE_ENTRY (dateentry), 0); return(g_date_get_weekday(priv->date)); } homebank-5.9.1/src/hb-report.h0000644000175000017500000001006414736461415011651 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_REPORT_H__ #define __HB_REPORT_H__ typedef enum { REPORT_GRPBY_NONE, REPORT_GRPBY_CATEGORY, //REPORT_GRPBY_SUBCATEGORY, REPORT_GRPBY_PAYEE, REPORT_GRPBY_ACCOUNT, REPORT_GRPBY_TAG, REPORT_GRPBY_MONTH, REPORT_GRPBY_YEAR, REPORT_GRPBY_ACCGROUP, //5.7.3 REPORT_GRPBY_TYPE //5.8 } HbReportGrpBy; typedef enum { REPORT_TYPE_NONE, REPORT_TYPE_ALL, REPORT_TYPE_EXPENSE, REPORT_TYPE_INCOME, REPORT_TYPE_TOTAL } HbReportType; typedef enum { REPORT_INTVL_NONE, REPORT_INTVL_DAY, REPORT_INTVL_WEEK, REPORT_INTVL_FORTNIGHT, REPORT_INTVL_MONTH, REPORT_INTVL_QUARTER, REPORT_INTVL_HALFYEAR, REPORT_INTVL_YEAR } HbReportIntvl; typedef enum { REPORT_RESULT_TOTAL, REPORT_RESULT_CUMUL, REPORT_RESULT_BALANCE } HbReportResult; //5.8 compute option flags typedef enum { REPORT_COMP_FLG_NONE = 0, REPORT_COMP_FLG_CATSIGN = 1 << 1, REPORT_COMP_FLG_SPENDING = 1 << 2, REPORT_COMP_FLG_REVENUE = 1 << 3, REPORT_COMP_FLG_BALANCE = 1 << 8, REPORT_COMP_FLG_FORECAST = 1 << 9, } HbReportCompFlag; typedef struct _datatable DataTable; typedef struct _datarow DataRow; typedef struct _datacol DataCol; typedef struct _carcost CarCost; struct _carcost { guint32 kparent; guint32 kcat; guint32 date; gchar *memo; gdouble amount; gboolean partial; guint meter; gdouble fuel; guint dist; }; CarCost *da_vehiclecost_malloc(void); void da_vehiclecost_free(CarCost *item); void da_vehiclecost_destroy(GList *list); enum { REPORT_MODE_TOTAL, REPORT_MODE_TREND }; void da_datatable_free(DataTable *dt); gdouble da_datarow_get_cell_sum(DataRow *dr, guint32 index); DataTable *report_compute(gint grpby, gint intvl, Filter *flt, GQueue *txn_queue, gint flags); DataCol *report_data_get_col(DataTable *dt, guint32 idx); DataRow *report_data_get_row(DataTable *dt, guint32 row); guint report_items_get_key(gint tmpgrpby, guint jfrom, Transaction *ope); gint report_interval_get_pos(gint intvl, guint jfrom, Transaction *ope); gint report_interval_count(gint intvl, guint32 jfrom, guint32 jto); guint32 report_interval_snprint_name(gchar *s, gint slen, gint intvl, guint32 jfrom, gint idx); gdouble report_txn_amount_get(Filter *flt, Transaction *txn); struct _datarow { guint32 nbcols; guint32 pos; //used for sort gchar *label; //row label gshort flags; //See below gshort pad1; gchar *xlabel; //short label gchar *misclabel; //host top label: year, today, etc gdouble *colexp; //array for each row column gdouble *colinc; //array for each row column gdouble rowexp; //row total expense gdouble rowinc; //row total income }; struct _datacol { gchar *label; //long label gshort flags; //See below gshort pad1; gchar *xlabel; //short label gchar *misclabel; //host top label: year, today, etc }; #define RF_NEWYEAR (1<<1) #define RF_FORECAST (1<<2) struct _datatable { guint32 nbkeys; //maximum key value for items (row) guint32 nbrows; //nb of items (length): cat/subcat/pay/acc/... guint32 nbcols; //nb of intervals: d, w, m, q, hy, y guint32 maxpostdate; guint flags; guint grpby; guint intvl; guint32 *keyindex; //array of correspondance key => index in rows guint32 *keylist; DataRow **rows; //array of _datarow struct per key of item DataRow *totrow; //for trend DataCol **cols; //array of datacol }; #endif homebank-5.9.1/src/ui-widgets.c0000644000175000017500000013227015006353713012017 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "gtk-chart.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ extern HbKvData CYA_FLT_RANGE_DWF[]; extern HbKvData CYA_FLT_RANGE_MQY[]; extern HbKvData CYA_FLT_RANGE_YTO[]; extern HbKvData CYA_FLT_RANGE_LASTXXD[]; extern HbKvData CYA_FLT_RANGE_COMMON[]; extern HbKvData CYA_FLT_RANGE_CUSTOM[]; extern gchar *CYA_ABMONTHS[]; extern gchar *CYA_ARC_UNIT[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* GTK4 transitional anticipation */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if( (GTK_MAJOR_VERSION < 4) ) void gtk_window_set_child (GtkWindow* window, GtkWidget* child) { gtk_container_add (GTK_CONTAINER(window), child); } void gtk_popover_set_child (GtkPopover* popover, GtkWidget* child) { gtk_container_add (GTK_CONTAINER(popover), child); } void gtk_frame_set_child (GtkFrame* frame, GtkWidget* child) { gtk_container_add (GTK_CONTAINER(frame), child); } void gtk_overlay_set_child (GtkOverlay* overlay, GtkWidget* child) { gtk_container_add (GTK_CONTAINER(overlay), child); } void gtk_scrolled_window_set_child (GtkScrolledWindow* scrolled_window, GtkWidget* child) { gtk_container_add (GTK_CONTAINER(scrolled_window), child); } void gtk_revealer_set_child (GtkRevealer* revealer, GtkWidget* child) { gtk_container_add (GTK_CONTAINER(revealer), child); } void gtk_expander_set_child (GtkExpander* expander, GtkWidget* child) { gtk_container_add (GTK_CONTAINER(expander), child); } void gtk_box_prepend (GtkBox* box, GtkWidget* child) { gtk_box_pack_start (GTK_BOX(box), child, FALSE, FALSE, 0); } void gtk_box_append (GtkBox* box, GtkWidget* child) { gtk_box_pack_end (GTK_BOX(box), child, FALSE, FALSE, 0); } void gtk_window_destroy (GtkWindow* window) { gtk_widget_destroy (GTK_WIDGET(window)); } #endif //TODO: to be removed when migrate GtkWidget *hbtk_image_new_from_icon_name_16(const gchar *icon_name) { return gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON); } GtkWidget *hbtk_image_new_from_icon_name_24(const gchar *icon_name) { return gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); } GtkWidget *hbtk_image_new_from_icon_name_32(const gchar *icon_name) { return gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_DIALOG); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* GTK3 obsolete */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ GtkWidget * hbtk_toolbar_add_toolbutton(GtkToolbar *toolbar, gchar *icon_name, gchar *label, gchar *tooltip_text) { GtkWidget *button = gtk_widget_new(GTK_TYPE_TOOL_BUTTON, "icon-name", icon_name, "label", label, NULL); if(tooltip_text != NULL) gtk_widget_set_tooltip_text(button, tooltip_text); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); return button; } GtkWidget * hbtk_menubar_add_menu(GtkWidget *menubar, gchar *label, GtkWidget **menuitem_ptr) { GtkWidget *menu, *menuitem; menu = gtk_menu_new(); menuitem = gtk_menu_item_new_with_mnemonic(label); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); if(menuitem_ptr) *menuitem_ptr = menuitem; return menu; } GtkWidget * hbtk_menu_add_menuitem(GtkWidget *menu, gchar *label) { GtkWidget *menuitem = gtk_menu_item_new_with_mnemonic(label); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); return menuitem; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ //TODO: only WEIGHT & SCALE are used for now void gimp_label_set_attributes (GtkLabel *label, ...) { PangoAttribute *attr = NULL; PangoAttrList *attrs; va_list args; g_return_if_fail (GTK_IS_LABEL (label)); attrs = pango_attr_list_new (); va_start (args, label); do { PangoAttrType attr_type = va_arg (args, PangoAttrType); if (attr_type <= 0) attr_type = PANGO_ATTR_INVALID; switch (attr_type) { case PANGO_ATTR_LANGUAGE: attr = pango_attr_language_new (va_arg (args, PangoLanguage *)); break; case PANGO_ATTR_FAMILY: attr = pango_attr_family_new (va_arg (args, const gchar *)); break; case PANGO_ATTR_STYLE: attr = pango_attr_style_new (va_arg (args, PangoStyle)); break; case PANGO_ATTR_WEIGHT: attr = pango_attr_weight_new (va_arg (args, PangoWeight)); break; case PANGO_ATTR_VARIANT: attr = pango_attr_variant_new (va_arg (args, PangoVariant)); break; case PANGO_ATTR_STRETCH: attr = pango_attr_stretch_new (va_arg (args, PangoStretch)); break; case PANGO_ATTR_SIZE: attr = pango_attr_size_new (va_arg (args, gint)); break; case PANGO_ATTR_FONT_DESC: attr = pango_attr_font_desc_new (va_arg (args, const PangoFontDescription *)); break; case PANGO_ATTR_FOREGROUND: { const PangoColor *color = va_arg (args, const PangoColor *); attr = pango_attr_foreground_new (color->red, color->green, color->blue); } break; case PANGO_ATTR_BACKGROUND: { const PangoColor *color = va_arg (args, const PangoColor *); attr = pango_attr_background_new (color->red, color->green, color->blue); } break; case PANGO_ATTR_UNDERLINE: attr = pango_attr_underline_new (va_arg (args, PangoUnderline)); break; case PANGO_ATTR_STRIKETHROUGH: attr = pango_attr_strikethrough_new (va_arg (args, gboolean)); break; case PANGO_ATTR_RISE: attr = pango_attr_rise_new (va_arg (args, gint)); break; case PANGO_ATTR_SCALE: attr = pango_attr_scale_new (va_arg (args, gdouble)); break; default: //g_warning ("%s: invalid PangoAttribute type %d", G_STRFUNC, attr_type); case PANGO_ATTR_INVALID: attr = NULL; break; } if (attr) { attr->start_index = 0; attr->end_index = -1; pango_attr_list_insert (attrs, attr); } } while (attr); va_end (args); gtk_label_set_attributes (label, attrs); pango_attr_list_unref (attrs); } // can't get rid of FILL|EXPAND for now void hbtk_box_prepend (GtkBox* box, GtkWidget* child) { gtk_box_pack_start (GTK_BOX(box), child, TRUE, TRUE, 0); } gint hb_clicklabel_to_int(const gchar *uri) { gint retval = HB_LIST_QUICK_SELECT_UNSET; if (g_strcmp0 (uri, "all") == 0) { retval = HB_LIST_QUICK_SELECT_ALL; } else if (g_strcmp0 (uri, "non") == 0) { retval = HB_LIST_QUICK_SELECT_NONE; } else if (g_strcmp0 (uri, "inv") == 0) { retval = HB_LIST_QUICK_SELECT_INVERT; } return retval; } void hb_window_run_pending(void) { while (gtk_events_pending ()) gtk_main_iteration (); } void hb_widget_set_margins(GtkWidget *widget, gint top, gint right, gint bottom, gint left) { gtk_widget_set_margin_top (widget, top); gtk_widget_set_margin_end (widget, right); gtk_widget_set_margin_bottom (widget, bottom); gtk_widget_set_margin_start (widget, left); } void hb_widget_set_margin(GtkWidget *widget, gint margin) { hb_widget_set_margins (widget, margin, margin, margin, margin); } void hb_widget_visible(GtkWidget *widget, gboolean visible) { if(!GTK_IS_WIDGET(widget)) return; if(visible) { gtk_widget_show(widget); } else { gtk_widget_hide(widget); } } void ui_label_set_integer(GtkLabel *label, gint value) { gchar buf[16]; g_snprintf(buf, 16, "%d", value); gtk_label_set_text (label, buf); } void hbtk_entry_tag_name_append(GtkEntry *entry, gchar *tagname) { GtkEntryBuffer *buffer; const gchar *text; guint len; text = gtk_entry_get_text(entry); if( g_strstr_len(text, -1, tagname) == NULL ) { DB( g_print(" gtkentry append tagname '%s'\n", tagname) ); buffer = gtk_entry_get_buffer(GTK_ENTRY(entry)); if(buffer) { len = gtk_entry_buffer_get_length(buffer); DB( g_print("- add ' %s' %p %d\n", tagname, buffer, len) ); if(len > 0) gtk_entry_buffer_insert_text(buffer, len, " ", 1); gtk_entry_buffer_insert_text(buffer, len+1, tagname, -1); } } } void hbtk_entry_set_text(GtkEntry *entry, gchar *text) { //DB( g_print(" set text to '%s'\n", text) ); gtk_entry_set_text(GTK_ENTRY(entry), ( text != NULL ) ? text : ""); } gboolean hbtk_entry_replace_text(GtkEntry *entry, gchar **storage) { const gchar *text = gtk_entry_get_text(GTK_ENTRY(entry)); gint tmpcmp = hb_string_ascii_compare(*storage, (gchar *)text); DB( g_print(" storage is '%p' at '%p'\n", *storage, storage) ); if( tmpcmp != 0 ) { // free any previous string g_free(*storage); *storage = g_strdup(text); DB( g_print(" replace with '%s'", text) ); return TRUE; } return FALSE; } // redraw a single row of a listview (not work with GTK_SELECTION_MULTIPLE) void hbtk_listview_redraw_selected_row(GtkTreeView *treeview) { GtkTreeModel *model; GtkTreeSelection *selection; GtkTreeIter iter; GtkTreePath *path; selection = gtk_tree_view_get_selection(treeview); if( gtk_tree_selection_get_selected(selection, &model, &iter) ) { path = gtk_tree_model_get_path(model, &iter); gtk_tree_model_row_changed(model, path, &iter); gtk_tree_path_free (path); } } gboolean hbtk_tree_store_get_top_level(GtkTreeModel *model, gint column_id, guint32 key, GtkTreeIter *return_iter) { GtkTreeIter iter; gboolean valid; guint32 tmpkey; if( model != NULL && key > 0 ) { valid = gtk_tree_model_get_iter_first(model, &iter); while (valid) { gtk_tree_model_get (model, &iter, column_id, &tmpkey, -1); if(tmpkey == key) { *return_iter = iter; return TRUE; } valid = gtk_tree_model_iter_next(model, &iter); } } return FALSE; } void hbtk_tree_store_remove_iter_with_child(GtkTreeModel *model, GtkTreeIter *iter) { GtkTreeIter child; gboolean valid; valid = gtk_tree_model_iter_children(model, &child, iter); while( valid ) { valid = gtk_tree_store_remove(GTK_TREE_STORE(model), &child); if( valid ) valid = gtk_tree_model_iter_next(model, &child); } gtk_tree_store_remove(GTK_TREE_STORE(model), iter); } GtkTreeViewColumn * hbtk_treeview_get_column_by_id(GtkTreeView *treeview, gint search_id) { GtkTreeViewColumn *column = NULL; GList *list, *tmp; gint id; list = gtk_tree_view_get_columns( treeview ); tmp = g_list_first(list); while (tmp != NULL) { id = gtk_tree_view_column_get_sort_column_id(tmp->data); if( search_id == id ) { column = tmp->data; break; } tmp = g_list_next(tmp); } g_list_free(list); return column; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ GtkWidget *make_clicklabel(gchar *id, gchar *str) { GtkWidget *label; gchar buffer[255]; g_snprintf(buffer, 254, "%s", id, str); label = gtk_label_new(buffer); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_label_set_track_visited_links(GTK_LABEL(label), FALSE); gtk_widget_set_halign(label, GTK_ALIGN_START); return GTK_WIDGET(label); } GtkWidget *make_label_group(gchar *str) { GtkWidget *label = gtk_label_new (str); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_halign (label, GTK_ALIGN_START); gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); return label; } GtkWidget *make_label_left(char *str) { GtkWidget *label = gtk_label_new_with_mnemonic (str); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_halign (label, GTK_ALIGN_START); return label; } GtkWidget *make_label_widget(char *str) { GtkWidget *label = gtk_label_new_with_mnemonic (str); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_halign (label, GTK_ALIGN_END); return label; } GtkWidget *make_label(char *str, gfloat xalign, gfloat yalign) { GtkWidget *label = gtk_label_new_with_mnemonic (str); #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION < 16) ) gtk_misc_set_alignment (GTK_MISC (label), xalign, yalign); #else gtk_label_set_xalign(GTK_LABEL(label), xalign); gtk_label_set_yalign(GTK_LABEL(label), yalign); #endif return label; } /* ** */ GtkWidget *make_text(gfloat xalign) { GtkWidget *entry; entry = gtk_entry_new (); gtk_editable_set_editable (GTK_EDITABLE(entry), FALSE); g_object_set(entry, "xalign", xalign, NULL); return entry; } GtkWidget *make_search(void) { GtkWidget *search; search = gtk_search_entry_new(); gtk_entry_set_placeholder_text(GTK_ENTRY(search), _("Search...") ); gtk_entry_set_width_chars(GTK_ENTRY(search), 24); return search; } /* ** */ GtkWidget *make_string(GtkWidget *label) { GtkWidget *entry; entry = gtk_entry_new (); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), entry); return entry; } static GtkWidget * _raw_image_button(GType type, gchar *icon_name, gchar *tooltip_text, gboolean flat, gboolean force_large) { GtkWidget *image, *button; image = gtk_widget_new(GTK_TYPE_IMAGE, "icon-name", icon_name, /*"margin", 2,*/ NULL); if(force_large) g_object_set(image, "icon-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); button = gtk_widget_new(type, "image", image, "tooltip-text", tooltip_text, NULL); if( flat ) gtk_style_context_add_class (gtk_widget_get_style_context (button), GTK_STYLE_CLASS_FLAT); return button; } //TODO: imagebutton with svg -symbolic looks blurry if we set LARGE_TOOLBAR GtkWidget *make_image_button(gchar *icon_name, gchar *tooltip_text) { return _raw_image_button(GTK_TYPE_BUTTON, icon_name, tooltip_text, FALSE, FALSE); } GtkWidget *make_image_toggle_button(gchar *icon_name, gchar *tooltip_text) { return _raw_image_button(GTK_TYPE_TOGGLE_BUTTON, icon_name, tooltip_text, FALSE, FALSE); } GtkWidget *make_image_button2(gchar *icon_name, gchar *tooltip_text) { return _raw_image_button(GTK_TYPE_BUTTON, icon_name, tooltip_text, FALSE, !PREFS->icon_symbolic); } GtkWidget *make_image_toggle_button2(gchar *icon_name, gchar *tooltip_text) { return _raw_image_button(GTK_TYPE_TOGGLE_BUTTON, icon_name, tooltip_text, FALSE, !PREFS->icon_symbolic); } GtkWidget *make_image_radio_button(gchar *icon_name, gchar *tooltip_text) { GtkWidget * button = _raw_image_button(GTK_TYPE_RADIO_BUTTON, icon_name, tooltip_text, FALSE, FALSE); gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(button), FALSE); return button; } /* toolbar stuff */ GtkWidget *make_tb(void) { GtkWidget *widget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); gtk_style_context_add_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_PRIMARY_TOOLBAR); return widget; } GtkWidget *make_tb_separator(void) { GtkWidget *widget = gtk_separator_new(GTK_ORIENTATION_VERTICAL); gtk_widget_set_margin_start(widget, SPACING_SMALL); gtk_widget_set_margin_end (widget, SPACING_SMALL); return widget; } GtkWidget *make_tb_image_button(gchar *icon_name, gchar *tooltip_text) { return _raw_image_button(GTK_TYPE_BUTTON, icon_name, tooltip_text, TRUE, TRUE); } GtkWidget *make_tb_image_toggle_button(gchar *icon_name, gchar *tooltip_text) { return _raw_image_button(GTK_TYPE_TOGGLE_BUTTON, icon_name, tooltip_text, TRUE, TRUE); } GtkWidget *make_tb_image_radio_button(gchar *icon_name, gchar *tooltip_text) { GtkWidget *button = _raw_image_button(GTK_TYPE_RADIO_BUTTON, icon_name, tooltip_text, TRUE, TRUE); gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(button), FALSE); return button; } /* ** */ GtkWidget *make_memo_entry(GtkWidget *label) { GtkListStore *store; GtkWidget *entry; GtkEntryCompletion *completion; GList *lmem, *list; store = gtk_list_store_new (1, G_TYPE_STRING); completion = gtk_entry_completion_new (); gtk_entry_completion_set_model (completion, GTK_TREE_MODEL(store)); gtk_entry_completion_set_text_column (completion, 0); entry = gtk_entry_new (); gtk_entry_set_completion (GTK_ENTRY (entry), completion); g_object_unref(store); //populate //gtk_list_store_clear (GTK_LIST_STORE(store)); lmem = list = g_hash_table_get_keys(GLOBALS->h_memo); while (list != NULL) { GtkTreeIter iter; //gtk_list_store_append (GTK_LIST_STORE(store), &iter); //gtk_list_store_set (GTK_LIST_STORE(store), &iter, 0, list->data, -1); gtk_list_store_insert_with_values(GTK_LIST_STORE(store), &iter, -1, 0, list->data, -1); list = g_list_next(list); } g_list_free(lmem); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), entry); return entry; } /* ** */ GtkWidget *make_string_maxlength(GtkWidget *label, guint max_length) { GtkWidget *entry; entry = make_string(label); gtk_entry_set_width_chars(GTK_ENTRY(entry), max_length+2); gtk_entry_set_max_length(GTK_ENTRY(entry), max_length); return entry; } static void hb_amount_insert_text_handler (GtkEntry *entry, const gchar *text, gint length, gint *position, gpointer data) { GtkEditable *editable = GTK_EDITABLE(entry); gint i, digits, count=0, dcpos=-1; gchar *clntxt; DB( g_print("-----\ninsert_text-handler: instxt:%s pos:%d len:%d\n", text, *position, length) ); digits = gtk_spin_button_get_digits(GTK_SPIN_BUTTON(entry)); // most common : only 1 char to be inserted if( length == 1 ) { const gchar *curtxt = gtk_entry_get_text(entry); for (i=0 ; curtxt[i]!='\0' ; i++) { if(curtxt[i]==',' || curtxt[i]=='.') dcpos = i; } DB( g_print(" dcpos:'%d'\n", dcpos) ); clntxt = g_new0 (gchar, length+1); for (i=0 ; i < length ; i++) { if( g_ascii_isdigit(text[i]) && ( (*position <= dcpos + digits) || dcpos < 0) ) goto doinsert; //5.4.3 + sign now authorized if( (text[i]=='-' || text[i]=='+') && *position==0 ) /* -/+ sign only at position 0 */ goto doinsert; if( dcpos < 0 && (text[i]=='.' || text[i]==',') ) /* decimal separator if not in previous string */ clntxt[count++] = '.'; continue; doinsert: clntxt[count++] = text[i]; } } // less common: paste a full text else { clntxt = hb_string_dup_raw_amount_clean(text, digits); count = strlen(clntxt); } if (count > 0) { DB( g_print(" insert %d char '%s' at %d\n", count, clntxt, *position) ); g_signal_handlers_block_by_func (G_OBJECT (editable), G_CALLBACK (hb_amount_insert_text_handler), data); gtk_editable_insert_text (editable, clntxt, count, position); g_signal_handlers_unblock_by_func (G_OBJECT (editable), G_CALLBACK (hb_amount_insert_text_handler), data); } g_free (clntxt); g_signal_stop_emission_by_name (G_OBJECT (editable), "insert-text"); } GtkWidget *make_amount(GtkWidget *label) { GtkWidget *spinner; GtkAdjustment *adj; //adj = (GtkAdjustment *) gtk_adjustment_new (0.0, -G_MAXDOUBLE, G_MAXDOUBLE, 0.01, 1.0, 0.0); adj = (GtkAdjustment *) gtk_adjustment_new (0.0, -8589934588, 8589934588, 0.01, 1.0, 0.0); spinner = gtk_spin_button_new (adj, 1.0, 2); g_object_set(spinner, "xalign", 1.0, NULL); //5.7 gtk_entry_set_width_chars(GTK_ENTRY(spinner), 13); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), spinner); g_signal_connect(G_OBJECT(spinner), "insert-text", G_CALLBACK(hb_amount_insert_text_handler), NULL); return spinner; } GtkWidget *make_amount_pos(GtkWidget *label) { GtkWidget *widget = make_amount(label); gtk_spin_button_set_range(GTK_SPIN_BUTTON(widget), 0, 8589934588); return widget; } GtkWidget *make_exchange_rate(GtkWidget *label) { GtkWidget *spinner; GtkAdjustment *adj; //#1871383 wish: increase exchange rate size //adj = (GtkAdjustment *) gtk_adjustment_new (0.0, 0.0, 99999, 0.01, 1.0, 0.0); adj = (GtkAdjustment *) gtk_adjustment_new (0.0, 0.0, 999999, 0.01, 1.0, 0.0); spinner = gtk_spin_button_new (adj, 1.0, 8); //gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinner), TRUE); g_object_set(spinner, "xalign", 1.0, NULL); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), spinner); return spinner; } /* ** */ GtkWidget *make_numeric(GtkWidget *label, gdouble min, gdouble max) { GtkWidget *spinner; GtkAdjustment *adj; adj = (GtkAdjustment *) gtk_adjustment_new (0.0, min, max, 1.0, 10.0, 0.0); spinner = gtk_spin_button_new (adj, 0, 0); //gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinner), TRUE); g_object_set(spinner, "xalign", 1.0, NULL); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), spinner); return spinner; } GtkWidget * make_scrolled_window_ns(GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy) { GtkWidget *scrollwin; scrollwin = gtk_scrolled_window_new(NULL,NULL); //gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), hscrollbar_policy, vscrollbar_policy); return scrollwin; } GtkWidget * make_scrolled_window(GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy) { GtkWidget *scrollwin; scrollwin = gtk_scrolled_window_new(NULL,NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), hscrollbar_policy, vscrollbar_policy); return scrollwin; } /* ** */ GtkWidget *make_scale(GtkWidget *label) { GtkWidget *scale; scale = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, GTK_CHART_MINBARW, GTK_CHART_SPANBARW, 1.0); gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); gtk_range_set_value(GTK_RANGE(scale), GTK_CHART_BARW); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), scale); return scale; } /* ** */ GtkWidget *make_long(GtkWidget *label) { GtkWidget *spinner; spinner = make_numeric(label, 0.0, G_MAXINT); return spinner; } static gint hbtk_monthyear_spin_input (GtkSpinButton *spin_button, gdouble *new_val) { const gchar *text; gchar **str; gboolean found = FALSE; gint month = 0; gint year; gchar *endm; gint i; gchar *tmp1, *tmp2; text = gtk_entry_get_text (GTK_ENTRY (spin_button)); str = g_strsplit (text, " ", 2); if (g_strv_length (str) == 2) { //month = strtol (str[0], &endh, 10); for (i = 0; i < 12; i++) { tmp1 = g_ascii_strup (_(CYA_ABMONTHS[i+1]), -1); tmp2 = g_ascii_strup (str[0], -1); if (strstr (tmp1, tmp2) == tmp1) { found = TRUE; month = i; } g_free (tmp1); g_free (tmp2); if (found) break; } year = strtol (str[1], &endm, 10) - 1900; //g_print(" input: m=%d y=%d => %d\n", month, year, month + year * 12); if (found && !*endm && 0 <= month && month < 12 ) { *new_val = month + (year * 12); found = TRUE; //g_print(" affect newval %f\n", *new_val); } } g_strfreev (str); if (!found) { *new_val = 0.0; return GTK_INPUT_ERROR; } return TRUE; } static gint hbtk_monthyear_spin_output (GtkSpinButton *spin_button) { GtkAdjustment *adjustment; gchar *buf; gint month; gint year; gint retval = TRUE; adjustment = gtk_spin_button_get_adjustment (spin_button); month = ((gint)gtk_adjustment_get_value (adjustment) % 12); year = (gint)gtk_adjustment_get_value (adjustment) / 12.0; //g_print(" output: %d => m:%d y:%d\n", (gint)gtk_adjustment_get_value (adjustment), month, year); buf = g_strdup_printf ("%s %04d", _(CYA_ABMONTHS[month+1]), year+1900); //g_signal_handlers_block_by_func(spin_button, time_spin_input, NULL); if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (spin_button)))) { //g_print(" update text '%s'\n", buf); gtk_entry_set_text (GTK_ENTRY (spin_button), buf); retval = TRUE; } //g_signal_handlers_unblock_by_func(spin_button, time_spin_input, NULL); g_free (buf); return retval; } static guint32 hbtk_monthyear_get_internal(GtkSpinButton *spin, guint type) { GDate date; guint month, year; gint val; if(!GTK_IS_SPIN_BUTTON(spin)) return GLOBALS->today; val = gtk_spin_button_get_value_as_int(spin); year = 1900 + (val / 12); month = (val % 12) + 1; g_date_clear(&date, 1); g_date_set_year(&date, year); g_date_set_month(&date, month); if(type == 0) g_date_set_day(&date, 1); else g_date_set_day(&date, g_date_get_days_in_month(month, year)); return g_date_get_julian(&date); } guint32 hbtk_monthyear_getmin(GtkSpinButton *spin) { return hbtk_monthyear_get_internal(spin, 0); } guint32 hbtk_monthyear_getmax(GtkSpinButton *spin) { return hbtk_monthyear_get_internal(spin, 1); } void hbtk_monthyear_set(GtkSpinButton *spin, guint32 julian) { GDate date; gdouble newval; if(!GTK_IS_SPIN_BUTTON(spin)) return; g_date_set_julian(&date, julian); newval = (g_date_get_month(&date)-1) + (g_date_get_year(&date) - 1900) * 12; gtk_spin_button_set_value(spin, newval); } GtkWidget *make_monthyear(GtkWidget *label) { GtkWidget *spinner; GtkAdjustment *adj; adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, (2200-1900)*12, 1, 12, 0); //adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, 14010, 30, 60, 0); spinner = gtk_spin_button_new (adj, 0, 0); //gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE); //gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinner), TRUE); //g_object_set(spinner, "xalign", 1.0, NULL); //#2081574 width too small gtk_entry_set_width_chars(GTK_ENTRY(spinner), 10); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), spinner); g_signal_connect (spinner, "output", G_CALLBACK (hbtk_monthyear_spin_output), NULL); g_signal_connect (spinner, "input", G_CALLBACK (hbtk_monthyear_spin_input), NULL); return spinner; } /* GtkWidget *make_year(GtkWidget *label) { GtkWidget *spinner; GtkAdjustment *adj; adj = (GtkAdjustment *) gtk_adjustment_new (0.0, 1900, 2200, 1.0, 10.0, 0.0); spinner = gtk_spin_button_new (adj, 0, 0); gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinner), TRUE); g_object_set(spinner, "xalign", 1.0, NULL); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), spinner); return spinner; }*/ GtkWidget * create_popover (GtkWidget *parent, GtkWidget *child, GtkPositionType pos) { GtkWidget *popover; popover = gtk_popover_new (parent); gtk_popover_set_position (GTK_POPOVER (popover), pos); gtk_popover_set_child (GTK_POPOVER(popover), child); gtk_widget_show (child); hb_widget_set_margin(child, SPACING_POPOVER); return popover; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #ifdef G_OS_WIN32 static GtkWidget *hbtk_container_get_children_named(GtkContainer *container, gchar *buildname) { GList *lchild, *list; GtkWidget *widget = NULL; gint i; if(!GTK_IS_CONTAINER(container)) return NULL; lchild = list = gtk_container_get_children (container); for(i=0;list != NULL;i++) { if( hb_string_ascii_compare(buildname, (gchar *)gtk_buildable_get_name(list->data)) == 0 ) { widget = list->data; break; } list = g_list_next(list); } g_list_free(lchild); return widget; } void hbtk_assistant_hack_button_order(GtkAssistant *assistant) { GtkWidget *bmain, *bchild, *barea, *bbutton; //main_box bmain = gtk_bin_get_child(GTK_BIN(assistant)); if( !bmain ) return; DB( g_print(" got %s\n", gtk_buildable_get_name(bmain)) ); bchild = hbtk_container_get_children_named(GTK_CONTAINER(bmain), "content_box"); if( !bchild ) return; DB( g_print(" got %s\n", gtk_buildable_get_name(bchild)) ); barea = hbtk_container_get_children_named(GTK_CONTAINER(bchild), "action_area"); if( !barea ) return; DB( g_print(" got %s\n", gtk_buildable_get_name(barea)) ); //assistant buttonbox is GTK_PACK_END bbutton = hbtk_container_get_children_named(GTK_CONTAINER(barea), "back"); if(bbutton) gtk_box_reorder_child(GTK_BOX(barea), bbutton, 5); bbutton = hbtk_container_get_children_named(GTK_CONTAINER(barea), "forward"); if(bbutton) gtk_box_reorder_child(GTK_BOX(barea), bbutton, 4); bbutton = hbtk_container_get_children_named(GTK_CONTAINER(barea), "apply"); if(bbutton) gtk_box_reorder_child(GTK_BOX(barea), bbutton, 3); bbutton = hbtk_container_get_children_named(GTK_CONTAINER(barea), "last"); if(bbutton) gtk_box_reorder_child(GTK_BOX(barea), bbutton, 2); bbutton = hbtk_container_get_children_named(GTK_CONTAINER(barea), "cancel"); if(bbutton) gtk_box_reorder_child(GTK_BOX(barea), bbutton, 1); bbutton = hbtk_container_get_children_named(GTK_CONTAINER(barea), "close"); if(bbutton) gtk_box_reorder_child(GTK_BOX(barea), bbutton, 0); } #endif /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #define HB_KV_BUFFER_MAX_LEN 16 #define HB_KV_ITEMS_MAX_LEN 32 gchar *hbtk_get_label(HbKvData *kvdata, guint32 key) { gchar *retval = NULL; guint32 i; for(i=0;iname == NULL ) break; if( tmp->key == key ) { //#1820372 retval = (gchar *)_(tmp->name); break; } } return retval; } static gboolean hbtk_combo_box_is_separator (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { //GtkTreePath *path; gboolean retval; gchar *txt; gtk_tree_model_get (model, iter, 0, &txt, -1); retval = *txt == 0 ? TRUE : FALSE; //leak g_free(txt); return retval; } guint32 hbtk_combo_box_get_active_id (GtkComboBox *combobox) { const gchar* buf; guint32 retval; buf = gtk_combo_box_get_active_id(GTK_COMBO_BOX(combobox)); retval = buf != NULL ? atoi(buf) : 0; return retval; } void hbtk_combo_box_set_active_id (GtkComboBox *combobox, guint32 key) { gchar buf[HB_KV_BUFFER_MAX_LEN]; g_snprintf(buf, HB_KV_BUFFER_MAX_LEN-1, "%d", key); gtk_combo_box_set_active_id(GTK_COMBO_BOX(combobox), buf); } void hbtk_combo_box_text_append (GtkComboBox *combobox, guint32 key, gchar *text) { gchar buf[HB_KV_BUFFER_MAX_LEN]; g_snprintf(buf, HB_KV_BUFFER_MAX_LEN-1, "%d", key); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(combobox), buf, text); } GtkWidget *hbtk_combo_box_new (GtkWidget *label) { GtkWidget *combobox; combobox = gtk_combo_box_text_new(); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), combobox); return combobox; } GtkWidget *hbtk_combo_box_new_with_data (GtkWidget *label, HbKvData *kvdata) { GtkWidget *combobox = hbtk_combo_box_new(label); HbKvData *tmp; gboolean hassep; guint32 i; hassep = FALSE; for(i=0;iname == NULL ) break; if( *tmp->name != 0 ) { hbtk_combo_box_text_append(GTK_COMBO_BOX(combobox), tmp->key, (gchar *)_(tmp->name)); } else { hbtk_combo_box_text_append(GTK_COMBO_BOX(combobox), tmp->key, (gchar *)""); hassep = TRUE; } } gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); if(hassep) gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combobox), hbtk_combo_box_is_separator, NULL, NULL); return combobox; } GtkWidget *hbtk_combo_box_new_with_array (GtkWidget *label, gchar **items) { GtkWidget *combobox = hbtk_combo_box_new(label); guint32 i; for (i = 0; items[i] != NULL; i++) { if(*items[i] != 0) hbtk_combo_box_text_append(GTK_COMBO_BOX(combobox), i, (gchar *)_(items[i])); else hbtk_combo_box_text_append(GTK_COMBO_BOX(combobox), i, (gchar *)""); } gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); return combobox; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void make_daterange_set_sensitive (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gint id_column = GPOINTER_TO_INT(data); gboolean sensitive; gchar *textid; gint id; g_return_if_fail (id_column >= 0); gtk_tree_model_get (tree_model, iter, id_column, &textid, -1); id = atoi(textid); sensitive = (id != FLT_RANGE_MISC_CUSTOM); g_object_set (cell, "sensitive", sensitive, NULL); g_free(textid); } static void make_daterange_fill_items(GtkComboBox *combo_box, HbKvData *kvdata) { HbKvData *tmp; guint32 i; for(i=0;iname == NULL ) break; hbtk_combo_box_text_append(GTK_COMBO_BOX(combo_box), tmp->key, (*tmp->name != 0) ? (gchar *)_(tmp->name) : (gchar *)""); } } GtkWidget *make_daterange(GtkWidget *label, HbDateRangeFlags flags) { GtkWidget *combo_box; GList *renderers, *list; combo_box = hbtk_combo_box_new(label); if( !(flags & DATE_RANGE_FLAG_BUDGET_MODE) ) make_daterange_fill_items(GTK_COMBO_BOX(combo_box), CYA_FLT_RANGE_DWF); make_daterange_fill_items(GTK_COMBO_BOX(combo_box), CYA_FLT_RANGE_MQY); make_daterange_fill_items(GTK_COMBO_BOX(combo_box), CYA_FLT_RANGE_YTO); if( !(flags & DATE_RANGE_FLAG_BUDGET_MODE) ) make_daterange_fill_items(GTK_COMBO_BOX(combo_box), CYA_FLT_RANGE_LASTXXD); make_daterange_fill_items(GTK_COMBO_BOX(combo_box), CYA_FLT_RANGE_COMMON); if( !(flags & DATE_RANGE_FLAG_CUSTOM_HIDDEN) ) make_daterange_fill_items(GTK_COMBO_BOX(combo_box), CYA_FLT_RANGE_CUSTOM); if( flags & DATE_RANGE_FLAG_CUSTOM_DISABLE ) { renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT(combo_box)); if(g_list_length(renderers) == 1) { gint id_column = gtk_combo_box_get_id_column (GTK_COMBO_BOX (combo_box)); list = g_list_first(renderers); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo_box), list->data, make_daterange_set_sensitive, GINT_TO_POINTER(id_column), NULL); } g_list_free(renderers); } //TODO: option removed into GTK4 ?? gtk_combo_box_set_wrap_width (GTK_COMBO_BOX(combo_box), 3); //gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), FLT_RANGE_MISC_ALLDATE); //5.8.6 leave unset to trigger a change //hbtk_combo_box_set_active_id(GTK_COMBO_BOX(combo_box), FLT_RANGE_MISC_ALLDATE); gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo_box), hbtk_combo_box_is_separator, NULL, NULL); return combo_box; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static HbKivData *hb_kvidata_get_by_key(HbKivData *kivdata, guint32 key) { HbKivData *tmp = NULL; guint32 i; for(i=0;iname == NULL ) break; if( tmp->key == key ) break; } return tmp; } HbKivData CYA_TXN_GRPFLAG[NUM_GRPFLAG] = { // { GRPFLAG_NONE, "hb-gf-none", N_("(none)") }, { GRPFLAG_RED, "hb-gf-red", N_("Red") }, { GRPFLAG_ORANGE, "hb-gf-orange", N_("Orange") }, { GRPFLAG_YELLOW, "hb-gf-yellow", N_("Yellow") }, { GRPFLAG_GREEN, "hb-gf-green", N_("Green") }, { GRPFLAG_BLUE, "hb-gf-blue", N_("Blue") }, { GRPFLAG_PURPLE, "hb-gf-purple", N_("Purple") }, { 0, NULL , NULL } }; const gchar *get_grpflag_icon_name(guint32 key) { HbKivData *tmp = hb_kvidata_get_by_key(CYA_TXN_GRPFLAG, key); return (tmp != NULL) ? tmp->iconname : NULL; } GtkWidget *make_fltgrpflag(GtkWidget *label) { GtkWidget *combo_box; HbKivData *tmp = NULL; guint32 i; combo_box = hbtk_combo_box_new(label); hbtk_combo_box_text_append(GTK_COMBO_BOX(combo_box), GRPFLAG_ANY, _("Any flag")); for(i=0;iname == NULL ) break; hbtk_combo_box_text_append(GTK_COMBO_BOX(combo_box), tmp->key, (*tmp->name != 0) ? (gchar *)_(tmp->name) : (gchar *)""); } hbtk_combo_box_set_active_id(GTK_COMBO_BOX(combo_box), GRPFLAG_ANY); return combo_box; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* OFX transactiontype id ofx english french --------------------------------------------------------------------- 0 -------- (none) (aucun) 1 -------- credit card carte de crédit 2 OFX_CHECK Check cheque 3 OFX_CASH Cash withdrawal retrait espece 4 OFX_XFER Transfer virement 5 -------- internal transfer virement compte 6 -------- (debit card) (carte de paiement) 7 OFX_REPEATPMT Repeating payment/standing order Paiement recurrent/Virement auto. 8 OFX_PAYMENT Electronic payment télépaiement 9 OFX_DEP Deposit dépôt 10 OFX_FEE FI fee frais bancaires OFX_DIRECTDEBIT Merchant initiated debit prelevement OFX_OTHER Some other type of transaction autre other OFX values: OFX_CREDIT Generic credit OFX_DEBIT Generic debit OFX_INT Interest earned or paid (Note: Depends on signage of amount) OFX_DIV Dividend OFX_SRVCHG Service charge -OFX_DEP Deposit OFX_ATM ATM debit or credit (Note: Depends on signage of amount) OFX_POS Point of sale debit or credit (Note: Depends on signage of amount) -OFX_XFER Transfer -OFX_CHECK Check -OFX_PAYMENT Electronic payment -OFX_CASH Cash withdrawal OFX_DIRECTDEP Direct deposit OFX_DIRECTDEBIT Merchant initiated debit -OFX_REPEATPMT Repeating payment/standing order OFX_OTHER Somer other type of transaction */ enum { LST_PAYMODE_KEY, LST_PAYMODE_ICONNAME, LST_PAYMODE_LABEL, LST_PAYMODE_ONOFF, NUM_LST_PAYMODE }; HbKivData CYA_TXN_PAYMODE[NUM_PAYMODE_MAX] = { { PAYMODE_NONE, "hb-pm-none", N_("(none)") }, { PAYMODE_CCARD, "hb-pm-ccard", N_("Credit card") }, { PAYMODE_CHECK, "hb-pm-check", N_("Check") }, { PAYMODE_CASH, "hb-pm-cash" , N_("Cash") }, { PAYMODE_XFER, "hb-pm-transfer", N_("Bank Transfer") }, { PAYMODE_DCARD, "hb-pm-dcard", N_("Debit card") }, { PAYMODE_REPEATPMT, "hb-pm-standingorder", N_("Standing order") }, { PAYMODE_EPAYMENT, "hb-pm-epayment", N_("Electronic payment") }, { PAYMODE_DEPOSIT, "hb-pm-deposit", N_("Deposit") }, //TRANSLATORS: Financial institution fee { PAYMODE_FEE, "hb-pm-fifee", N_("FI fee") }, { PAYMODE_DIRECTDEBIT, "hb-pm-directdebit", N_("Direct Debit") }, //#1817274 { PAYMODE_MOBPHONE, "hb-pm-mobphone", N_("Mobile Phone") }, { 0, NULL , NULL } }; /* nota: used in ui-filter */ const gchar *get_paymode_icon_name(guint32 key) { HbKivData *tmp = NULL; /*HbKivData *kivdata = CYA_TXN_PAYMODE; guint32 i; for(i=0;iname == NULL ) break; if( tmp->key == key ) { retval = tmp->iconname; break; } }*/ tmp = hb_kvidata_get_by_key(CYA_TXN_PAYMODE, key); return (tmp != NULL) ? tmp->iconname : NULL; } guint32 paymode_combo_box_get_active (GtkComboBox *combo_box) { GtkTreeModel *model; GtkTreeIter iter; model = gtk_combo_box_get_model (combo_box); if (gtk_combo_box_get_active_iter (combo_box, &iter)) { gint key; gtk_tree_model_get (model, &iter, LST_PAYMODE_KEY, &key, -1); return (guint32)key; } return 0; } void paymode_combo_box_set_active (GtkComboBox *combo_box, guint32 active_key) { GtkTreeModel *model; GtkTreeIter iter; model = gtk_combo_box_get_model (combo_box); if (gtk_tree_model_get_iter_first (model, &iter)) do { gint key; gtk_tree_model_get (model, &iter, LST_PAYMODE_KEY, &key, -1); if (key == (gint)active_key) { gtk_combo_box_set_active_iter (combo_box, &iter); break; } } while (gtk_tree_model_iter_next (model, &iter)); } void paymode_list_get_order(GtkTreeView *treeview) { GtkTreeModel *model; GtkTreeIter iter; gint i = 1; model = gtk_tree_view_get_model (treeview); PREFS->lst_paymode[0] = PAYMODE_NONE; if (gtk_tree_model_get_iter_first (model, &iter)) do { guint32 key; gboolean active; gtk_tree_model_get (model, &iter, LST_PAYMODE_KEY, &key, LST_PAYMODE_ONOFF, &active, -1); PREFS->lst_paymode[i++] = (active == TRUE) ? key : -key; } while (gtk_tree_model_iter_next (model, &iter)); } static GtkListStore * paymode_store_new(gboolean prefmode) { GtkListStore *store; HbKivData *tmp; GtkTreeIter iter; guint i; store = gtk_list_store_new ( NUM_LST_PAYMODE, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN ); //populate our combobox model for(i=0 ; ilst_paymode[i]; //hide None for prefmode if( prefmode == TRUE && key == 0 ) continue; tmp = hb_kvidata_get_by_key(CYA_TXN_PAYMODE, ABS(key)); if( tmp != NULL ) { if( prefmode == FALSE && key < 0 ) continue; gtk_list_store_insert_with_values(store, &iter, -1, LST_PAYMODE_KEY, tmp->key, LST_PAYMODE_ICONNAME, tmp->iconname, LST_PAYMODE_LABEL, _(tmp->name), LST_PAYMODE_ONOFF, key > 0 ? TRUE : FALSE, -1); } } return store; } static void fixed_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, LST_PAYMODE_ONOFF, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_PAYMODE_ONOFF, fixed, -1); /* clean up */ gtk_tree_path_free (path); } GtkWidget *make_paymode_list(void) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; store = paymode_store_new(TRUE); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)); /* column for fixed toggles */ renderer = gtk_cell_renderer_toggle_new (); g_signal_connect (renderer, "toggled", G_CALLBACK (fixed_toggled), store); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "active", LST_PAYMODE_ONOFF, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); //gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); renderer = gtk_cell_renderer_pixbuf_new (); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "icon-name", LST_PAYMODE_ICONNAME, NULL); //gtk_tree_view_column_set_sort_column_id (column, LST_PAYMODE_ICONNAME); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* column for description */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", LST_PAYMODE_LABEL, NULL); //gtk_tree_view_column_set_sort_column_id (column, LST_PAYMODE_LABEL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW (treeview), FALSE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW(treeview), TRUE); return GTK_WIDGET(treeview); } /* ** Make a paymode combobox widget */ GtkWidget *make_paymode(GtkWidget *label) { GtkListStore *store; GtkWidget *combobox; GtkCellRenderer *renderer, *r1, *r2; store = paymode_store_new(FALSE); combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); //leak g_object_unref(store); renderer = r1 = gtk_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), renderer, FALSE); gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT(combobox), renderer, "icon-name", LST_PAYMODE_ICONNAME); renderer = r2 = gtk_cell_renderer_text_new(); g_object_set(renderer, "xpad", SPACING_SMALL, NULL); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), renderer, FALSE); gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT(combobox), renderer, "text", LST_PAYMODE_LABEL); gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); if(label) gtk_label_set_mnemonic_widget (GTK_LABEL(label), combobox); return combobox; } homebank-5.9.1/src/ui-hbfile.h0000644000175000017500000000222014736461415011606 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_HBFILE_GTK_H__ #define __HB_HBFILE_GTK_H__ struct defhbfile_data { GtkWidget *ST_owner; GtkWidget *RA_postmode; GtkWidget *GR_payout, *GR_advance; GtkWidget *NU_weekday, *NU_nbmonths; GtkWidget *NU_nbdays; GtkWidget *LB_maxpostdate; GtkWidget *PO_grp; GtkWidget *ST_earnbyh; gint change; }; GtkWidget *create_defhbfile_dialog (void); #endif homebank-5.9.1/src/enums.h0000644000175000017500000000650414736461415011102 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_ENUMS_H__ #define __HB_ENUMS_H__ /* ** paymode pixbuf */ #define OLDPAYMODE_INTXFER 5 typedef enum { DEFAULT, PREFER_DARK, PREFER_LIGHT } ColorScheme; typedef enum { HB_STRING_NONE, HB_STRING_CLIPBOARD, HB_STRING_PRINT, HB_STRING_EXPORT } ToStringMode; enum { PAYMODE_NONE, PAYMODE_CCARD, PAYMODE_CHECK, PAYMODE_CASH, PAYMODE_XFER, PAYMODE_OBSOLETEINTXFER, /* 4.1 new payments here */ PAYMODE_DCARD = 6, PAYMODE_REPEATPMT, PAYMODE_EPAYMENT, PAYMODE_DEPOSIT, PAYMODE_FEE, /* 4.6 new paymode */ PAYMODE_DIRECTDEBIT, /* 5.8 new paymode */ PAYMODE_MOBPHONE, // PAYMODE_, NUM_PAYMODE_MAX }; #define NUM_PAYMODE_KEY 12 /* list display transaction (dsp_account) */ enum { //0 is invalid column LST_DSPOPE_STATUS = 1, /* 1 fake column */ LST_DSPOPE_DATE, /* 2 fake column */ LST_DSPOPE_PAYNUMBER, /* 3 fake column <5.8 xxx_INFO */ LST_DSPOPE_PAYEE, /* 4 fake column */ LST_DSPOPE_MEMO, /* 5 fake column */ LST_DSPOPE_AMOUNT, /* 6 fake column */ LST_DSPOPE_EXPENSE, /* 7 fake column */ LST_DSPOPE_INCOME, /* 8 fake column */ LST_DSPOPE_CATEGORY, /* 9 fake column */ LST_DSPOPE_TAGS, /* 10 fake column */ LST_DSPOPE_BALANCE, /* 11 fake column */ LST_DSPOPE_CLR, /* 12 fake column */ /* here we insert account column, only used for detail */ LST_DSPOPE_ACCOUNT, /* 13 fake column : not stored */ LST_DSPOPE_MATCH, /* 14 fake column : not stored */ LST_DSPOPE_GRPFLAG, NUM_LST_DSPOPE }; typedef enum { GRPFLAG_ANY = -1, GRPFLAG_NONE = 0, GRPFLAG_RED = 1, GRPFLAG_ORANGE, GRPFLAG_YELLOW, GRPFLAG_GREEN, GRPFLAG_BLUE, GRPFLAG_PURPLE, NUM_GRPFLAG } HbGrpFlag; //sort for various glist enum { HB_GLIST_SORT_KEY, //0 HB_GLIST_SORT_NAME, //1 HB_GLIST_SORT_POS //2 }; // enum { HB_LIST_QUICK_SELECT_UNSET, HB_LIST_QUICK_SELECT_ALL, HB_LIST_QUICK_SELECT_NONE, HB_LIST_QUICK_SELECT_INVERT }; // enum { PRF_DATEFMT_MDY, PRF_DATEFMT_DMY, PRF_DATEFMT_YMD, NUM_PRF_DATEFMT }; enum { PRF_OFXNAME_IGNORE, PRF_OFXNAME_MEMO, PRF_OFXNAME_PAYEE, PRF_OFXNAME_NUMBER }; enum { PRF_OFXMEMO_IGNORE, PRF_OFXMEMO_NUMBER, PRF_OFXMEMO_MEMO, PRF_OFXMEMO_PAYEE }; #define PRF_DTEX_CSVSEP_BUFFER "\t,; " enum { PRF_DTEX_CSVSEP_TAB, PRF_DTEX_CSVSEP_COMMA, PRF_DTEX_CSVSEP_SEMICOLON, PRF_DTEX_CSVSEP_SPACE, }; /* ** list pixbuf (account/transaction) *//* enum { LST_PIXBUF_ADD, LST_PIXBUF_EDIT, LST_PIXBUF_REMIND, LST_PIXBUF_VALID, LST_PIXBUF_AUTO, LST_PIXBUF_WARNING, NUM_LST_PIXBUF };*/ /* ** toolbar item type *//* enum { TOOLBAR_SEPARATOR, TOOLBAR_BUTTON, TOOLBAR_TOGGLE };*/ #endif homebank-5.9.1/src/ui-tag.c0000664000175000017500000011760615005624021011124 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty ofdeftransaction_amountchanged * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "ui-tag.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ //TODO: ui_tag_combobox still used in rep_time guint32 ui_tag_combobox_get_key(GtkComboBox *combobox) { return hbtk_combo_box_get_active_id(combobox); } void ui_tag_combobox_populate_except(GtkComboBoxText *combobox, guint except_key) { GList *ltag, *list; //populate template //hbtk_combo_box_text_append(GTK_COMBO_BOX(combobox), 0, "----"); //gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); ltag = list = tag_glist_sorted(HB_GLIST_SORT_NAME); while (list != NULL) { Tag *item = list->data; if( item->key != except_key ) { DB( g_print(" populate: %d\n", item->key) ); hbtk_combo_box_text_append(GTK_COMBO_BOX(combobox), item->key, item->name); } list = g_list_next(list); } gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); g_list_free(ltag); } void ui_tag_combobox_populate(GtkComboBoxText *combobox) { ui_tag_combobox_populate_except(combobox, -1); } GtkWidget * ui_tag_combobox_new(GtkWidget *label) { GtkWidget *combobox; combobox = hbtk_combo_box_new(label); return combobox; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_tag_popover_cb_toggled (GtkToggleButton *togglebutton, gpointer user_data) { GtkWidget *entry = user_data; GtkAllocation allocation; GtkPopover *popover; DB( g_print ("[tag popover] open\n") ); if(GTK_IS_ENTRY(entry)) { gtk_widget_get_allocation (entry, &allocation); popover = gtk_menu_button_get_popover(GTK_MENU_BUTTON(togglebutton)); if(GTK_IS_POPOVER(popover)) { gtk_widget_set_size_request (GTK_WIDGET(popover), allocation.width + (2*SPACING_POPOVER), -1); DB( g_print("should set width to %d\n", allocation.width + (2*SPACING_POPOVER)) ); } } } static void ui_tag_popover_cb_row_activated(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; GtkEntry *entry = user_data; if( GTK_IS_ENTRY(entry) ) { treeselection = gtk_tree_view_get_selection(tree_view); if( gtk_tree_selection_get_selected(treeselection, &model, &iter) ) { Tag *item; gtk_tree_model_get(model, &iter, LST_DEFTAG_DATAS, &item, -1); hbtk_entry_tag_name_append(GTK_ENTRY(user_data), item->name); } } } GtkWidget * ui_tag_popover_list(GtkWidget *entry) { GtkWidget *box, *menubutton, *image, *scrollwin, *treeview; menubutton = gtk_menu_button_new (); image = hbtk_image_new_from_icon_name_16 ("pan-down-symbolic"); gtk_button_set_image(GTK_BUTTON(menubutton), image); gtk_menu_button_set_direction (GTK_MENU_BUTTON(menubutton), GTK_ARROW_LEFT ); //gtk_widget_set_halign (menubutton, GTK_ALIGN_END); gtk_widget_show_all(menubutton); //GtkWidget *template = ui_popover_tpl_create(data); box = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX(box), scrollwin); treeview = ui_tag_listview_new(FALSE, TRUE); //data.LV_tag = treeview; gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_show_all(box); gtk_tree_view_set_hover_selection(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); gtk_tree_view_set_activate_on_single_click(GTK_TREE_VIEW(treeview), TRUE); GtkWidget *popover = create_popover (menubutton, box, GTK_POS_LEFT); //gtk_widget_set_size_request (popover, HB_MINWIDTH_LIST, HB_MINHEIGHT_LIST); gtk_widget_set_vexpand(popover, TRUE); gtk_menu_button_set_popover(GTK_MENU_BUTTON(menubutton), popover); ui_tag_listview_populate(treeview, 0); g_signal_connect (menubutton, "toggled", G_CALLBACK (ui_tag_popover_cb_toggled), entry); g_signal_connect (treeview, "row-activated", G_CALLBACK (ui_tag_popover_cb_row_activated), entry); #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) g_signal_connect_swapped(treeview, "row-activated", G_CALLBACK(gtk_popover_popdown), popover); #else g_signal_connect_swapped(treeview, "row-activated", G_CALLBACK(gtk_widget_hide), popover); #endif return menubutton; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ guint ui_tag_listview_toggle_to_filter(GtkTreeView *treeview, Filter *filter) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gboolean toggled; guint change = 0; DB( g_print("(ui_tag_listview) toggle_to_filter\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_tag)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Tag *tagitem; gtk_tree_model_get (model, &iter, LST_DEFTAG_TOGGLE, &toggled, LST_DEFTAG_DATAS, &tagitem, -1); DB( g_print(" get tag k:%3d = %d (%s)\n", tagitem->key, toggled, tagitem->name) ); change += da_flt_status_tag_set(filter, tagitem->key, toggled); //tagitem->flt_select = toggled; /* Make iter point to the next row in the list store */ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } return change; } static void ui_tag_listview_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, LST_DEFTAG_TOGGLE, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFTAG_TOGGLE, fixed, -1); /* clean up */ gtk_tree_path_free (path); } void ui_tag_listview_quick_select(GtkTreeView *treeview, const gchar *uri) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gboolean toggle; gint qselect = hb_clicklabel_to_int(uri); DB( g_print("(ui_acc_listview) quick select\n") ); DB( g_print(" comboboxlink '%s' %d\n", uri, qselect) ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { switch(qselect) { case HB_LIST_QUICK_SELECT_ALL: gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFTAG_TOGGLE, TRUE, -1); break; case HB_LIST_QUICK_SELECT_NONE: gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFTAG_TOGGLE, FALSE, -1); break; case HB_LIST_QUICK_SELECT_INVERT: gtk_tree_model_get (model, &iter, LST_DEFTAG_TOGGLE, &toggle, -1); toggle ^= 1; gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFTAG_TOGGLE, toggle, -1); break; } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } static gint ui_tag_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); Tag *entry1, *entry2; gint retval = 0; gtk_tree_model_get(model, a, LST_DEFTAG_DATAS, &entry1, -1); gtk_tree_model_get(model, b, LST_DEFTAG_DATAS, &entry2, -1); switch (sortcol) { case LST_DEFTAG_SORT_NAME: retval = hb_string_utf8_compare(entry1->name, entry2->name); break; case LST_DEFTAG_SORT_USETXN: retval = entry1->nb_use_all - entry2->nb_use_all; break; case LST_DEFTAG_SORT_USECFG: retval = (entry1->nb_use_all - entry1->nb_use_txn) - (entry2->nb_use_all - entry2->nb_use_txn); break; default: g_return_val_if_reached(0); } return retval; } static void ui_tag_listview_count_txn_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Tag *entry; gchar buffer[256]; gtk_tree_model_get(model, iter, LST_DEFTAG_DATAS, &entry, -1); if(entry->nb_use_txn > 0) { g_snprintf(buffer, 256-1, "%d", entry->nb_use_txn); g_object_set(renderer, "text", buffer, NULL); } else g_object_set(renderer, "text", "", NULL); } static void ui_tag_listview_count_cfg_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Tag *entry; gchar buffer[256]; guint use; gtk_tree_model_get(model, iter, LST_DEFTAG_DATAS, &entry, -1); use = entry->nb_use_all - entry->nb_use_txn; if(use > 0) { g_snprintf(buffer, 256-1, "%d", use); g_object_set(renderer, "text", buffer, NULL); } else g_object_set(renderer, "text", "", NULL); } static void ui_tag_listview_name_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Tag *entry; gchar *name; gtk_tree_model_get(model, iter, LST_DEFTAG_DATAS, &entry, -1); if(entry->key == 0) name = _("(no tag)"); else name = entry->name; g_object_set(renderer, "text", name, NULL); } #if MYDEBUG == 1 static void ui_tag_listview_cell_data_function_debugkey (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Tag *item; gchar *string; gtk_tree_model_get(model, iter, LST_DEFTAG_DATAS, &item, -1); string = g_strdup_printf ("[%d]", item->key ); g_object_set(renderer, "text", string, NULL); g_free(string); } #endif /* = = = = = = = = = = = = = = = = */ /** * tag_list_add: * * Add a single element (useful for dynamics add) * * Return value: -- * */ void ui_tag_listview_add(GtkTreeView *treeview, Tag *item) { if( item->name != NULL ) { GtkTreeModel *model; GtkTreeIter iter; model = gtk_tree_view_get_model(treeview); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DEFTAG_TOGGLE, FALSE, LST_DEFTAG_DATAS, item, -1); gtk_tree_selection_select_iter (gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), &iter); } } guint32 ui_tag_listview_get_selected_key(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Tag *item; gtk_tree_model_get(model, &iter, LST_DEFTAG_DATAS, &item, -1); if( item!= NULL ) return item->key; } return 0; } void ui_tag_listview_remove_selected(GtkTreeView *treeview) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_list_store_remove(GTK_LIST_STORE(model), &iter); } } void ui_tag_listview_populate(GtkWidget *view, gint insert_type) { GtkTreeModel *model; GtkTreeIter iter; GList *ltag, *list; model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); gtk_list_store_clear (GTK_LIST_STORE(model)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(view), NULL); /* Detach model from view */ /* populate */ //g_hash_table_foreach(GLOBALS->h_tag, (GHFunc)ui_tag_listview_populate_ghfunc, model); ltag = list = g_hash_table_get_values(GLOBALS->h_tag); while (list != NULL) { Tag *item = list->data; DB( g_print(" populate: %d\n", item->key) ); //gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_prepend (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DEFTAG_TOGGLE , FALSE, LST_DEFTAG_DATAS, item, -1); list = g_list_next(list); } g_list_free(ltag); gtk_tree_view_set_model(GTK_TREE_VIEW(view), model); /* Re-attach model to view */ g_object_unref(model); } GtkWidget * ui_tag_listview_new(gboolean withtoggle, gboolean withcount) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; // create list store store = gtk_list_store_new(NUM_LST_DEFTAG, G_TYPE_BOOLEAN, G_TYPE_POINTER ); // treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); #if MYDEBUG == 1 column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_tag_listview_cell_data_function_debugkey, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); #endif // column 1: toggle if( withtoggle == TRUE ) { renderer = gtk_cell_renderer_toggle_new (); column = gtk_tree_view_column_new_with_attributes (_("Visible"), renderer, "active", LST_DEFTAG_TOGGLE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_NONE); g_signal_connect (renderer, "toggled", G_CALLBACK (ui_tag_listview_toggled_cb), store); g_object_set_data(G_OBJECT(treeview), "togrdr_data", renderer); } // column: usage if( withcount == TRUE ) { renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 0.5, NULL); column = gtk_tree_view_column_new(); //TRANSLATORS: 'txn' is abbrevation for transaction gtk_tree_view_column_set_title(column, _("# txn")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_tag_listview_count_txn_cell_data_function, GINT_TO_POINTER(LST_DEFTAG_DATAS), NULL); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (column, LST_DEFTAG_SORT_USETXN); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //by default hide this column gtk_tree_view_column_set_visible(column, FALSE); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 0.5, NULL); column = gtk_tree_view_column_new(); //TRANSLATORS: 'txn' is abbrevation for configuration gtk_tree_view_column_set_title(column, _("# cfg")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_tag_listview_count_cfg_cell_data_function, GINT_TO_POINTER(LST_DEFTAG_DATAS), NULL); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (column, LST_DEFTAG_SORT_USECFG); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); //by default hide this column gtk_tree_view_column_set_visible(column, FALSE); } // column 2: name column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Tag")); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL); if( withtoggle == FALSE ) { g_object_set(renderer, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); } gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_tag_listview_name_cell_data_function, GINT_TO_POINTER(LST_DEFTAG_DATAS), NULL); gtk_tree_view_column_set_sort_column_id (column, LST_DEFTAG_SORT_NAME); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // treeviewattribute //gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), FALSE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW(treeview), TRUE); // treeview attribute gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), withcount); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFTAG_SORT_NAME, ui_tag_listview_compare_func, GINT_TO_POINTER(LST_DEFTAG_SORT_NAME), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFTAG_SORT_USETXN, ui_tag_listview_compare_func, GINT_TO_POINTER(LST_DEFTAG_SORT_USETXN), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFTAG_SORT_USECFG, ui_tag_listview_compare_func, GINT_TO_POINTER(LST_DEFTAG_SORT_USECFG), NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DEFTAG_SORT_NAME, GTK_SORT_ASCENDING); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); return treeview; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_tag_manage_filter_text_handler (GtkEntry *entry, const gchar *text, gint length, gint *position, gpointer data) { GtkEditable *editable = GTK_EDITABLE(entry); gint i, count=0; gchar *result = g_new0 (gchar, length+1); for (i=0; i < length; i++) { if (text[i]==' ') continue; result[count++] = text[i]; } if (count > 0) { g_signal_handlers_block_by_func (G_OBJECT (editable), G_CALLBACK (ui_tag_manage_filter_text_handler), data); gtk_editable_insert_text (editable, result, count, position); g_signal_handlers_unblock_by_func (G_OBJECT (editable), G_CALLBACK (ui_tag_manage_filter_text_handler), data); } g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text"); g_free (result); } static void ui_tag_manage_dialog_delete_unused(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_tag_manage_dialog_data *data = user_data; gboolean result; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(ui_tag_manage_dialog) delete unused - data %p\n", data) ); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), _("Delete unused tag"), _("Are you sure you want to\npermanently delete unused tag?"), _("_Delete"), TRUE ); if( result == GTK_RESPONSE_OK ) { GtkTreeModel *model; //#1996275 fill usage before delete ! if( data->usagefilled == FALSE ) { tags_fill_usage(); data->usagefilled = TRUE; } model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_tag)); gtk_list_store_clear (GTK_LIST_STORE(model)); //#1917075 data->change += tags_delete_unused(); //ui_tag_manage_dialog_refilter(data); ui_tag_listview_populate(data->LV_tag, 0); } } static void ui_tag_manage_dialog_load_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_tag_manage_dialog_data *data = user_data; gchar *filename = NULL; gchar *error; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(ui_tag_manage_dialog) load csv - data %p\n", data) ); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_OPEN, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); if( !tag_load_csv(filename, &error) ) { ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("File format error"), _("The CSV file must contains the exact numbers of column,\nseparated by a semi-colon, please see the help for more details.") ); } g_free( filename ); ui_tag_listview_populate(data->LV_tag, 0); } } static void ui_tag_manage_dialog_save_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_tag_manage_dialog_data *data = user_data; gchar *filename = NULL; DB( g_print("(ui_tag_manage_dialog) save csv\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); tag_save_csv(filename); g_free( filename ); } } static void ui_tag_manage_dialog_cb_show_usage (GtkToggleButton *button, gpointer user_data) { struct ui_tag_manage_dialog_data *data; gboolean showusage; GtkTreeViewColumn *column; DB( g_print("(ui_tag_manage_dialog) show usage\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_WINDOW)), "inst_data"); if( data->usagefilled == FALSE ) { tags_fill_usage(); data->usagefilled = TRUE; } showusage = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_showusage)); column = hbtk_treeview_get_column_by_id(GTK_TREE_VIEW(data->LV_tag), LST_DEFTAG_SORT_USETXN); if(column != NULL) { gtk_tree_view_column_set_visible(column, showusage); } column = hbtk_treeview_get_column_by_id(GTK_TREE_VIEW(data->LV_tag), LST_DEFTAG_SORT_USECFG); if(column != NULL) { gtk_tree_view_column_set_visible(column, showusage); } } /** * ui_tag_manage_dialog_add: * */ static void ui_tag_manage_dialog_add(GtkWidget *widget, gpointer user_data) { struct ui_tag_manage_dialog_data *data; gboolean isadded; Tag *item; gchar *name; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(defayee) add (data=%p)\n", data) ); name = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_name)); item = da_tag_malloc (); item->name = g_strdup(name); g_strstrip(item->name); isadded = FALSE; if( strlen(item->name) > 0 ) { isadded = da_tag_append(item); if( isadded == TRUE ) { ui_tag_listview_add(GTK_TREE_VIEW(data->LV_tag), item); data->change++; } } //#2051349 warn user and free lack if( isadded == FALSE ) { DB( g_print(" existing item\n") ); da_tag_free (item); ui_dialog_msg_infoerror (GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("Error"), _("Duplicate tag name. Try another name.") ); } gtk_entry_set_text(GTK_ENTRY(data->ST_name), ""); } static void ui_tag_manage_dialog_edit_entry_cb(GtkEditable *editable, gpointer user_data) { GtkDialog *window = user_data; const gchar *buffer; buffer = gtk_entry_get_text(GTK_ENTRY(editable)); gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_ACCEPT, strlen(buffer) > 0 ? TRUE : FALSE); } static void ui_tag_manage_dialog_edit(GtkWidget *dowidget, gpointer user_data) { struct ui_tag_manage_dialog_data *data; GtkWidget *dialog, *content_area, *content_grid, *group_grid; GtkWidget *label, *widget; GtkWidget *ST_name; gint crow, row; guint32 key; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(dowidget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(defayee) modify %p\n", data) ); key = ui_tag_listview_get_selected_key(GTK_TREE_VIEW(data->LV_tag)); if( key > 0 ) { Tag *item; item = da_tag_get( key ); dialog = gtk_dialog_new_with_buttons (_("Edit Tag"), GTK_WINDOW (data->dialog), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (content_area), content_grid); crow = 0; // group :: General group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); //label = make_label_group(_("General")); //gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_widget(_("_Name:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(widget), 24); ST_name = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); //setup //#1992284 manage tag edit input is empty gtk_entry_set_text(GTK_ENTRY(ST_name), item->name); gtk_widget_grab_focus (ST_name); gtk_entry_set_activates_default (GTK_ENTRY(ST_name), TRUE); gtk_dialog_set_default_response(GTK_DIALOG( dialog ), GTK_RESPONSE_ACCEPT); //#2018414 disable input space... g_signal_connect(G_OBJECT(ST_name), "insert-text", G_CALLBACK(ui_tag_manage_filter_text_handler), NULL); g_signal_connect (G_OBJECT (ST_name), "changed", G_CALLBACK (ui_tag_manage_dialog_edit_entry_cb), dialog); gtk_widget_show_all(content_grid); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { const gchar *name; // 1: manage renaming name = gtk_entry_get_text(GTK_ENTRY(ST_name)); // ignore if item is empty if (name && *name) { if( tag_rename(item, name) ) { //to redraw the active entry gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_tag)); data->change++; } else { ui_dialog_msg_infoerror(GTK_WINDOW(dialog), GTK_MESSAGE_ERROR, _("Error"), _("Cannot rename this Tag,\n" "from '%s' to '%s',\n" "this name already exists."), item->name, name ); } } } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); } } static void ui_tag_manage_dialog_merge(GtkWidget *widget, gpointer user_data) { struct ui_tag_manage_dialog_data *data; GtkWidget *dialog, *content, *mainvbox; GtkWidget *getwidget, *togglebutton; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(ui_tag_manage_dialog) merge %p\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_tag)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Tag *srctag; gchar *title; gchar *secondtext; gtk_tree_model_get(model, &iter, LST_DEFTAG_DATAS, &srctag, -1); title = g_strdup_printf ( _("Merge tag '%s'"), srctag->name); dialog = gtk_message_dialog_new (GTK_WINDOW (data->dialog), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, title, NULL ); gtk_dialog_add_buttons (GTK_DIALOG(dialog), _("_Cancel"), GTK_RESPONSE_CANCEL, _("Merge"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL); content = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG (dialog)); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (content), mainvbox); secondtext = _("Transactions assigned to this tag,\n" "will be moved to the tag selected below."); g_object_set(GTK_MESSAGE_DIALOG (dialog), "secondary-text", secondtext, NULL); g_free(title); getwidget = ui_tag_combobox_new(NULL); gtk_box_prepend (GTK_BOX (mainvbox), getwidget); secondtext = g_strdup_printf ( _("_Delete the tag '%s'"), srctag->name); togglebutton = gtk_check_button_new_with_mnemonic(secondtext); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(togglebutton), TRUE); g_free(secondtext); gtk_box_prepend (GTK_BOX (mainvbox), togglebutton); //setup ui_tag_combobox_populate_except(GTK_COMBO_BOX_TEXT(getwidget), srctag->key); gtk_widget_grab_focus (getwidget); gtk_widget_show_all(mainvbox); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_OK) { GtkTreeModel *model; Tag *newtag; guint dsttagkey; dsttagkey = ui_tag_combobox_get_key(GTK_COMBO_BOX(getwidget)); //do nothing if src = dst... if( srctag->key != dsttagkey ) { model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_tag)); gtk_list_store_clear (GTK_LIST_STORE(model)); DB( g_print(" -> move cat to %d (subcat=%d)\n", dstcatkey, dosubcat) ); tag_move(srctag->key, dsttagkey); newtag = da_tag_get(dsttagkey); //#1771720: update count newtag->nb_use_all += srctag->nb_use_all; newtag->nb_use_txn += srctag->nb_use_txn; srctag->nb_use_all = 0; srctag->nb_use_txn = 0; // add the new tag to listview if(newtag) ui_tag_listview_add(GTK_TREE_VIEW(data->LV_tag), newtag); // delete the old tag if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(togglebutton)) ) { DB( g_print(" -> delete %d '%s'\n", srctag->key, srctag->name ) ); ui_tag_listview_remove_selected(GTK_TREE_VIEW(data->LV_tag)); da_tag_delete(srctag->key); } data->change++; ui_tag_listview_populate(data->LV_tag, 0); } } // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); } } /* ** delete the selected tag to our treeview and temp GList */ static void ui_tag_manage_dialog_delete(GtkWidget *widget, gpointer user_data) { struct ui_tag_manage_dialog_data *data; Tag *item; guint32 key; gint result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("(ui_tag_manage_dialog) delete (data=%p)\n", data) ); key = ui_tag_listview_get_selected_key(GTK_TREE_VIEW(data->LV_tag)); if( key > 0 ) { gchar *title; gchar *secondtext = NULL; item = da_tag_get(key); title = g_strdup_printf ( _("Are you sure you want to permanently delete '%s'?"), item->name); if( item->nb_use_all > 0 ) { secondtext = _("This tag is used.\n" "That tag will be deleted from any transaction using it."); } result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Delete"), TRUE ); g_free(title); if( result == GTK_RESPONSE_OK ) { //#1915729 no need to move to 0 (crash), just delete is safe //tag_move(key, 0); ui_tag_listview_remove_selected(GTK_TREE_VIEW(data->LV_tag)); da_tag_delete(key); data->change++; } } } static void ui_tag_manage_dialog_update(GtkWidget *treeview, gpointer user_data) { struct ui_tag_manage_dialog_data *data; gboolean sensitive; guint32 key; DB( g_print("\n(ui_tag_manage_dialog) cursor changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); key = ui_tag_listview_get_selected_key(GTK_TREE_VIEW(data->LV_tag)); sensitive = (key > 0) ? TRUE : FALSE; gtk_widget_set_sensitive(data->BT_edit, sensitive); gtk_widget_set_sensitive(data->BT_merge, sensitive); gtk_widget_set_sensitive(data->BT_delete, sensitive); } /* ** */ static void ui_tag_manage_dialog_selection(GtkTreeSelection *treeselection, gpointer user_data) { ui_tag_manage_dialog_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static void ui_tag_manage_dialog_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; DB( g_print("ui_tag_manage_dialog_onRowActivated()\n") ); model = gtk_tree_view_get_model(treeview); gtk_tree_model_get_iter_first(model, &iter); if(gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), &iter) == FALSE) { ui_tag_manage_dialog_edit(GTK_WIDGET(treeview), NULL); } } static void ui_tag_manage_setup(struct ui_tag_manage_dialog_data *data) { DB( g_print("\n[ui-tag] setup\n") ); DB( g_print(" init data\n") ); data->change = 0; DB( g_print(" populate\n") ); //tag_fill_usage(); ui_tag_listview_populate(data->LV_tag, 0); //DB( g_print(" set widgets default\n") ); DB( g_print(" connect widgets signals\n") ); g_signal_connect (G_OBJECT (data->BT_showusage) , "toggled", G_CALLBACK (ui_tag_manage_dialog_cb_show_usage), NULL); g_object_bind_property (data->BT_add, "active", data->RE_addreveal, "reveal-child", G_BINDING_BIDIRECTIONAL); g_signal_connect (G_OBJECT (data->ST_name), "activate", G_CALLBACK (ui_tag_manage_dialog_add), NULL); g_signal_connect(G_OBJECT(data->ST_name), "insert-text", G_CALLBACK(ui_tag_manage_filter_text_handler), NULL); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_tag)), "changed", G_CALLBACK (ui_tag_manage_dialog_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_tag), "row-activated", G_CALLBACK (ui_tag_manage_dialog_onRowActivated), NULL); g_signal_connect (G_OBJECT (data->BT_edit), "clicked", G_CALLBACK (ui_tag_manage_dialog_edit), NULL); g_signal_connect (G_OBJECT (data->BT_merge), "clicked", G_CALLBACK (ui_tag_manage_dialog_merge), NULL); g_signal_connect (G_OBJECT (data->BT_delete), "clicked", G_CALLBACK (ui_tag_manage_dialog_delete), NULL); } static gboolean ui_tag_manage_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct ui_tag_manage_dialog_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n(ui_tag_manage_mapped)\n") ); ui_tag_manage_setup(data); ui_tag_manage_dialog_update(data->LV_tag, NULL); data->mapped_done = TRUE; return FALSE; } static const GActionEntry win_actions[] = { { "imp" , ui_tag_manage_dialog_load_csv, NULL, NULL, NULL, {0,0,0} }, { "exp" , ui_tag_manage_dialog_save_csv, NULL, NULL, NULL, {0,0,0} }, { "del" , ui_tag_manage_dialog_delete_unused, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; GtkWidget *ui_tag_manage_dialog (void) { struct ui_tag_manage_dialog_data *data; GtkWidget *dialog, *content, *mainvbox, *box, *bbox, *tbar, *treeview, *scrollwin, *table, *addreveal; GtkWidget *widget, *image; gint w, h, dw, dh, row; data = g_malloc0(sizeof(struct ui_tag_manage_dialog_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Manage Tags"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); /*dialog = g_object_new (GTK_TYPE_DIALOG, "use-header-bar", TRUE, NULL); gtk_window_set_title (GTK_WINDOW (dialog), _("Manage Tags")); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW(GLOBALS->mainwindow)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); */ //gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); data->dialog = dialog; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 2:3 dw = (dh * 2) / 3; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print("(ui_tag_manage_dialog) dialog=%p, inst_data=%p\n", dialog, data) ); //dialog contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (content), mainvbox); hb_widget_set_margin(GTK_WIDGET(mainvbox), SPACING_LARGE); //our table table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (mainvbox), table); row = 0; bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (table), bbox, 0, row, 2, 1); //test headerbar //content = gtk_dialog_get_header_bar(GTK_DIALOG (dialog)); widget = make_image_toggle_button(ICONNAME_HB_BUTTON_USAGE, _("Show Usage") ); data->BT_showusage = widget; gtk_box_prepend(GTK_BOX (bbox), widget); //menubutton widget = gtk_menu_button_new(); image = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_BUTTON_MENU); g_object_set (widget, "image", image, NULL); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_box_append(GTK_BOX (bbox), widget); GMenu *menu = g_menu_new (); GMenu *section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Import CSV..."), "win.imp"); g_menu_append (section, _("E_xport CSV..."), "win.exp"); g_object_unref (section); section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Delete unused..."), "win.del"); g_object_unref (section); GActionGroup *group = (GActionGroup*)g_simple_action_group_new (); data->actions = group; g_action_map_add_action_entries (G_ACTION_MAP (group), win_actions, G_N_ELEMENTS (win_actions), data); gtk_widget_insert_action_group (widget, "win", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); // list row++; box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_grid_attach (GTK_GRID (table), box, 0, row, 2, 1); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX(box), scrollwin); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), HB_MINHEIGHT_LIST); gtk_widget_set_hexpand (scrollwin, TRUE); gtk_widget_set_vexpand (scrollwin, TRUE); treeview = ui_tag_listview_new(FALSE, TRUE); data->LV_tag = treeview; gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(scrollwin), treeview); tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (box), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); data->BT_add = widget = make_image_toggle_button(ICONNAME_LIST_ADD, _("Add")); gtk_box_prepend(GTK_BOX(bbox), widget); data->BT_delete = widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); data->BT_edit = widget = make_image_button(ICONNAME_LIST_EDIT, _("Edit")); gtk_box_prepend(GTK_BOX(bbox), widget); data->BT_merge = widget = make_image_button(ICONNAME_HB_LIST_MERGE, _("Move/Merge")); gtk_box_prepend(GTK_BOX(bbox), widget); row++; addreveal = gtk_revealer_new (); data->RE_addreveal = addreveal; gtk_grid_attach (GTK_GRID (table), addreveal, 0, row, 2, 1); data->ST_name = gtk_entry_new (); gtk_entry_set_placeholder_text(GTK_ENTRY(data->ST_name), _("new tag") ); gtk_widget_set_hexpand (data->ST_name, TRUE); gtk_revealer_set_child(GTK_REVEALER(addreveal), data->ST_name); // connect dialog signals g_signal_connect (dialog, "map-event", G_CALLBACK (ui_tag_manage_mapped), &dialog); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all (dialog); // wait for the user gtk_dialog_run (GTK_DIALOG (dialog)); // cleanup and destroy GLOBALS->changes_count += data->change; gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/src/hb-group.h0000664000175000017500000000304614736461415011476 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_GROUP_H__ #define __HB_GROUP_H__ typedef struct _group Group; struct _group { guint32 key; //gushort flags; //gushort type; gchar *name; }; /*typedef enum { GRP_TYPE_ACC = 1, //GRP_TYPE_PAY //GRP_TYPE_CAT } HbGroupType; */ void da_grp_free(Group *item); Group *da_grp_malloc(void); void da_grp_destroy(void); void da_grp_new(void); guint da_grp_length(void); gboolean da_grp_create_none(void); gboolean da_grp_remove(guint32 key); gboolean da_grp_insert(Group *item); gboolean da_grp_append(Group *item); guint32 da_grp_get_max_key(void); Group *da_grp_get_by_name(gchar *name); Group *da_grp_get_by_imp_name(gchar *name); Group *da_grp_get(guint32 key); void group_delete_unused(void); GList *group_glist_sorted(gint column); #endifhomebank-5.9.1/src/hub-transaction.h0000664000175000017500000000215614736461415013055 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "dsp-mainwindow.h" #ifndef __HUB_TRANSACTION_H__ #define __HUB_TRANSACTION_H__ typedef enum { HUB_TXN_TYPE_NONE, HUB_TXN_TYPE_FUTURE, HUB_TXN_TYPE_REMIND } HbHubTxnType; void ui_hub_transaction_populate(struct hbfile_data *data); GtkWidget *ui_hub_transaction_create(struct hbfile_data *data, HbHubTxnType type); #endifhomebank-5.9.1/src/hb-account.h0000644000175000017500000001041615006222604011755 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_ACCOUNT_H__ #define __HB_ACCOUNT_H__ #include "hb-types.h" struct _account { guint32 key; gushort flags; gushort type; guint32 pos; //display position guint32 kcur; gchar *name; gchar *number; gchar *bankname; guint32 kgrp; gdouble initial; //gdouble warning; gdouble minimum; gdouble maximum; guint32 cheque1; guint32 cheque2; gchar *website; //5.7 add gchar *notes; guint32 karc; guint16 cccday; //creditcard close day guint32 rdate; //last reconciled date /* unsaved datas */ GQueue *txn_queue; gushort dspflags; gushort nb_pending; //5.9 gdouble bal_recon; //bank balance (reconciled transaction) gdouble bal_clear; //cleared gdouble bal_today; //today balance (every transaction until today) gdouble bal_future; //future balance (every transaction) gchar *xferincname; //xfer payee display name: '< account' gchar *xferexpname; //xfer payee display name: '> account' //gboolean flt_select; //true if selected into filter }; // data flags //gushort is 2 bytes / 16 bits //FREE (1<<0) #define AF_CLOSED (1<<1) #define AF_NOSUMMARY (1<<4) #define AF_NOBUDGET (1<<5) #define AF_NOREPORT (1<<6) #define AF_OUTFLOWSUM (1<<7) #define AF_HASNOTICE (1<< 9) //added 5.9 for pending/import //deprecated #define AF_OLDBUDGET (1<<0) // unsaved flags -- display/session #define FLAG_ACC_TMP_ADDED (1<< 1) #define FLAG_ACC_TMP_EDITED (1<< 2) enum { // + https://www.kashoo.com/blog/what-are-the-different-account-types-in-accounting/ // + AceMoney: Bank / Cash / Credit / Investment / Loan ACC_TYPE_NONE = 0, ACC_TYPE_BANK = 1, //Banque ACC_TYPE_CASH = 2, //Espèce ACC_TYPE_ASSET = 3, //Actif (avoir) ACC_TYPE_CREDITCARD = 4, //Carte crédit ACC_TYPE_LIABILITY = 5, //Passif (dettes) ACC_TYPE_CHECKING = 6, //OFX A standard checking account ACC_TYPE_SAVINGS = 7, //OFX A standard savings account // OFX_MONEYMRKT OFX A money market account // OFX_CREDITLINE OFX A line of credit // OFX_INVESTMENT OFX An investment account // ACC_TYPE_STOCK = 11, //Actions //ACC_TYPE_MUTUALFUND = 12, //Fond de placement //ACC_TYPE_INCOME = 13, //Revenus //ACC_TYPE_EXPENSE = 14, //Dépenses //ACC_TYPE_EQUITY = 15, //Capitaux propres // ACC_TYPE_, ACC_TYPE_MAXVALUE }; enum { ACC_USAGE_NONE, ACC_USAGE_TXN, ACC_USAGE_TXN_XFER, ACC_USAGE_ARC, ACC_USAGE_ARC_XFER }; Account *da_acc_malloc(void); void da_acc_free(Account *item); Account *da_acc_malloc(void); void da_acc_destroy(void); void da_acc_new(void); guint da_acc_length(void); gboolean da_acc_create_none(void); gboolean da_acc_delete(guint32 key); gboolean da_acc_insert(Account *item); gboolean da_acc_append(Account *item); guint32 da_acc_get_max_key(void); Account *da_acc_get_by_name(gchar *name); Account *da_acc_get_by_imp_name(gchar *name); Account *da_acc_get(guint32 key); guint32 da_acc_get_first_key(void); void da_acc_consistency(Account *item); void da_acc_anonymize(Account *item); void account_transaction_sort(void); guint account_is_used(guint32 key); gboolean account_has_website(Account *item); gboolean account_exists(gchar *name); gboolean account_rename(Account *item, gchar *newname); void account_set_currency(Account *item, guint32 kcur); void account_flags_eval(Account *item); void account_compute_balances(gboolean init); gboolean account_balances_add(Transaction *txn); gboolean account_balances_sub(Transaction *txn); GList *account_glist_sorted(gint column); void account_convert_euro(Account *acc); #endif homebank-5.9.1/src/hb-export.c0000644000175000017500000005066514736464657011700 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-export.h" #include "list-operation.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = */ static void hb_export_qif_elt_txn(GIOChannel *io, Account *acc, gboolean allxfer) { GString *elt; GList *list; GDate *date; char amountbuf[G_ASCII_DTOSTR_BUF_SIZE]; gchar *sbuf; gint count, i; elt = g_string_sized_new(255); date = g_date_new (); list = g_queue_peek_head_link(acc->txn_queue); while (list != NULL) { Transaction *txn = list->data; Payee *payee; Category *cat; //#1915609 qif export of multiple account double xfer line if( (allxfer == FALSE) && (txn->flags & OF_INTXFER) && txn->amount > 0 ) goto nexttxn; g_date_set_julian (date, txn->date); //#1270876 switch(PREFS->dtex_datefmt) { case PRF_DATEFMT_MDY: //"m-d-y" g_string_append_printf (elt, "D%02d/%02d/%04d\n", g_date_get_month(date), g_date_get_day(date), g_date_get_year(date) ); break; case PRF_DATEFMT_DMY: //"d-m-y" g_string_append_printf (elt, "D%02d/%02d/%04d\n", g_date_get_day(date), g_date_get_month(date), g_date_get_year(date) ); break; case PRF_DATEFMT_YMD: //"y-m-d" g_string_append_printf (elt, "D%04d/%02d/%02d\n", g_date_get_year(date), g_date_get_month(date), g_date_get_day(date) ); break; } //g_ascii_dtostr (amountbuf, sizeof (amountbuf), txn->amount); g_ascii_formatd (amountbuf, sizeof (amountbuf), "%.2f", txn->amount); g_string_append_printf (elt, "T%s\n", amountbuf); //#2051307 to prevent ? v to be exported as qif sbuf = ""; if( txn->status == TXN_STATUS_CLEARED || txn->status == TXN_STATUS_RECONCILED) transaction_get_status_string(txn); g_string_append_printf (elt, "C%s\n", sbuf); if( txn->paymode == PAYMODE_CHECK) g_string_append_printf (elt, "N%s\n", txn->number); //Ppayee payee = da_pay_get(txn->kpay); if(payee) g_string_append_printf (elt, "P%s\n", payee->name); // Mmemo g_string_append_printf (elt, "M%s\n", txn->memo); // LCategory of transaction // L[Transfer account name] // LCategory of transaction/Class of transaction // L[Transfer account]/Class of transaction if( (txn->flags & OF_INTXFER) && (txn->kacc == acc->key) ) { //#579260 Account *dstacc = da_acc_get(txn->kxferacc); if(dstacc) g_string_append_printf (elt, "L[%s]\n", dstacc->name); } else { cat = da_cat_get(txn->kcat); if(cat) { g_string_append_printf (elt, "L%s\n", cat->fullname); } } // splits count = da_splits_length(txn->splits); for(i=0;isplits, i); cat = da_cat_get(s->kcat); if(cat) { g_string_append_printf (elt, "S%s\n", cat->fullname); } g_string_append_printf (elt, "E%s\n", s->memo); g_ascii_formatd (amountbuf, sizeof (amountbuf), "%.2f", s->amount); g_string_append_printf (elt, "$%s\n", amountbuf); } g_string_append (elt, "^\n"); nexttxn: list = g_list_next(list); } g_io_channel_write_chars(io, elt->str, -1, NULL, NULL); g_string_free(elt, TRUE); g_date_free(date); } static void hb_export_qif_elt_acc(GIOChannel *io, Account *acc) { GString *elt; gchar *type; elt = g_string_sized_new(255); // account export //#987144 fixed account type switch(acc->type) { case ACC_TYPE_BANK : type = "Bank"; break; case ACC_TYPE_CASH : type = "Cash"; break; case ACC_TYPE_ASSET : type = "Oth A"; break; case ACC_TYPE_CREDITCARD : type = "CCard"; break; case ACC_TYPE_LIABILITY : type = "Oth L"; break; default : type = "Bank"; break; } g_string_assign(elt, "!Account\n"); g_string_append_printf (elt, "N%s\n", acc->name); g_string_append_printf (elt, "T%s\n", type); g_string_append (elt, "^\n"); g_string_append_printf (elt, "!Type:%s\n", type); g_io_channel_write_chars(io, elt->str, -1, NULL, NULL); g_string_free(elt, TRUE); } void hb_export_qif_account_single(gchar *filename, Account *acc) { GIOChannel *io; io = g_io_channel_new_file(filename, "w", NULL); if(io == NULL) { g_message("file error on: %s", filename); //retval = XML_IO_ERROR; } else { hb_export_qif_elt_acc(io, acc); hb_export_qif_elt_txn(io, acc, TRUE); g_io_channel_unref (io); } } void hb_export_qif_account_all(gchar *filename) { GIOChannel *io; GList *lacc, *list; io = g_io_channel_new_file(filename, "w", NULL); if(io == NULL) { g_message("file error on: %s", filename); //retval = XML_IO_ERROR; } else { //5.5.1 save accounts in order //lacc = list = g_hash_table_get_values(GLOBALS->h_acc); lacc = list = account_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Account *item = list->data; hb_export_qif_elt_acc(io, item); hb_export_qif_elt_txn(io, item, FALSE); list = g_list_next(list); } g_list_free(lacc); g_io_channel_unref (io); } } /* = = = = = = = = = = = = = = = = = = = = */ #define HELPDRAW 0 #define HEX_R(xcol) (((xcol>>24) & 0xFF)/255) #define HEX_G(xcol) (((xcol>>16) & 0xFF)/255) #define HEX_B(xcol) (((xcol>> 8) & 0xFF)/255) #if HELPDRAW == 1 static void hb_pdf_draw_help_rect(cairo_t *cr, gint32 xcol, double x, double y, double w, double h) { cairo_save (cr); cairo_set_line_width(cr, 1.0); cairo_set_source_rgba(cr, HEX_R(xcol), HEX_G(xcol), HEX_B(xcol), 1.0); //alpha is unused for now cairo_rectangle (cr, x, y, w, h); cairo_stroke(cr); cairo_restore(cr); } #endif // references // https://www.blurb.com/blog/choosing-a-font-for-print-6-things-you-should-know/ // https://plumgroveinc.com/choosing-a-font-for-print-2/ #define HB_PRINT_FONT_HEAD_POINT 5 #define HB_PRINT_SPACING 6 typedef struct { gboolean statement; gdouble font_size; gchar *tabtext; gchar *title; gchar **lines; gint header_height; gint numpagerow; gint numpagecol; gint num_columns; gint *col_width; gint8 *col_align; //0 if right, 1 if left gint8 *leftcols; //-1 terminated index of col left aligned gint lines_per_page; gint num_lines; gint num_pages; } PrintData; static gint hb_print_listview_get_idx_for_pagecol(PrintData *data, gint width, gint pagecol) { gint col, availw, numbreak; //DB( g_print(" get col for pagerow %d\n", pagecol) ); availw = width; numbreak = 1; for(col=0 ; col < data->num_columns ; col++) { //DB( g_print(" ++ col=%d, curw=%d width=%d, numbrk=%d\n", col, currw, width, numbreak) ); if( numbreak >= pagecol ) break; availw -= data->col_width[col]; // new page column ? if( availw < data->col_width[col+1] ) { //DB( g_print(" ++ --break--\n") ); numbreak++; availw = width; } } //DB( g_print(" return %d\n", col) ); return col; } static void hb_print_listview_end_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PrintData *data = (PrintData *)user_data; g_free(data->col_width); g_free(data->col_align); g_strfreev (data->lines); g_free (data); } static void hb_print_listview_begin_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PrintData *data = (PrintData *)user_data; int i, j, count; double width, height; gchar **columns; PangoLayout *layout; PangoFontDescription *desc; gint text_width, text_height, line_height; DB( g_print("\n-- begin print --\n") ); width = gtk_print_context_get_width (context); height = gtk_print_context_get_height (context); line_height = data->font_size + 3; layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("Helvetica"); //compute header height pango_font_description_set_size (desc, (data->font_size + HB_PRINT_FONT_HEAD_POINT) * PANGO_SCALE); pango_font_description_set_weight (desc, PANGO_WEIGHT_BOLD); pango_layout_set_text (layout, data->title, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); //1 line space + column title + spacer data->header_height = text_height + (data->font_size * 2); height -= data->header_height + (2 * HB_PRINT_SPACING); data->lines = g_strsplit (data->tabtext, "\n", 0); //todo: test if line > 1 //get number of column from title columns = g_strsplit (data->lines[0], "\t", 0); data->num_columns = g_strv_length(columns); //debug /*for(i=0;inum_columns;i++) { DB( g_print(" %02d: %s\n", i, columns[i]) ); }*/ g_strfreev (columns); //alloc memory data->col_width = g_malloc0 (sizeof(gint)*(data->num_columns + 1)); data->col_align = g_malloc0 (sizeof(gint8)*(data->num_columns + 1)); pango_font_description_set_size (desc, data->font_size * PANGO_SCALE); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); DB( g_print(" - compute column width - \n") ); //TODO: maybe for text column we should remove outliers here i = 0; count = 0; while (data->lines[i] != NULL) { DB( g_print(" eval line %03d: '%s'\n", i, data->lines[i]) ); //skip empty lines if( strlen(data->lines[i]) > 1 ) { columns = g_strsplit (data->lines[i], "\t", 0); j = 0; while (columns[j] != NULL) { pango_layout_set_text (layout, columns[j], -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); //DB( g_print(" %d : '%s' %d %d\n", j, columns[j], text_width, text_width / PANGO_SCALE ) ); //add a width text_width += HB_PRINT_SPACING; data->col_width[j] = MAX(data->col_width[j], text_width); j++; } g_strfreev (columns); count++; } else { DB( g_print(" skipped\n") ); } i++; } g_object_unref (layout); data->num_lines = count; data->lines_per_page = floor (height / line_height); data->numpagerow = (data->num_lines - 1) / data->lines_per_page + 1; DB( g_print(" num_lines: %d\n", data->num_lines) ); DB( g_print(" lines_per_page: %d\n", data->lines_per_page) ); DB( g_print(" numpagerow: %d\n", data->numpagerow) ); DB( g_print(" num_colums: %d\n", data->num_columns) ); DB( g_print(" width: %f\n", width) ); //todo: clamp columns for statement // (account) date info payee memo amount clr balance //taken from 5.7.2 if( data->statement == TRUE ) { gdouble tmp = width - data->col_width[0] - data->col_width[4] - data->col_width[5] - data->col_width[6]; DB( g_print("\n - statement on - \n") ); DB( g_print(" substract: %d %d %d %d\n", data->col_width[0] , data->col_width[4] , data->col_width[5] , data->col_width[6]) ); DB( g_print(" tmp %f\n", tmp) ); data->col_width[1] = tmp / 4; //info data->col_width[2] = tmp / 4; //payee data->col_width[3] = 2*tmp / 4; //memo } DB( g_print("\n - compute numpagecol - \n") ); data->numpagecol = 1; gint availw = width; for(i=0;inum_columns;i++) { availw -= data->col_width[i]; DB( g_print(" colw[%d]=%d, availw=%d\n", i, data->col_width[i], availw) ); // new page column ? if( availw < data->col_width[i+1] ) { DB( g_print(" --break--\n") ); data->numpagecol++; availw = width; } } DB( g_print("\n - assign column alignment - \n") ); //column 0 is left by default data->col_align[0] = 1; //affect left align columns if( data->leftcols != NULL ) { for(i=0;i<10;i++) { gint index = data->leftcols[i]; if( index == -1 ) break; data->col_align[index] = 1; DB( g_print(" column %d i left align\n", index) ); } } DB( g_print(" numpagecol: %d\n", data->numpagecol) ); data->num_pages = data->numpagerow * data->numpagecol; DB( g_print(" num_pages:%d\n", data->num_pages) ); gtk_print_operation_set_n_pages (operation, data->num_pages); } static void hb_print_listview_draw_line(PrintData *data, gchar *line, gint firstcol, gint lastcol, gint y, cairo_t *cr, PangoLayout *layout) { gchar **columns; gint text_width, text_height; gint nbcol, j, x; columns = g_strsplit (line, "\t", 0); //#xxxxxxxx restrict to real column nbcol = g_strv_length(columns); DB( g_print(" draw line col %d to col %d, real is %d\n", firstcol, lastcol, nbcol )); lastcol = MIN(lastcol, nbcol); x = 0; //for(j=0;jnum_columns;j++) for(j=firstcol ; jcol_width[j] - HB_PRINT_SPACING) * PANGO_SCALE); pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END); //do align: 0=right, 1=left if( data->col_align[j] == 0 ) { pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to(cr, x + data->col_width[j] - text_width - HB_PRINT_SPACING, y); } else cairo_move_to(cr, x, y); pango_cairo_show_layout (cr, layout); x += data->col_width[j]; } else g_warning(" null print column %d", j); } g_strfreev (columns); } //print is done from left to right //page 1&2 will be the first column to fit, then page 3&4 the other columns static void hb_print_listview_draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, gpointer user_data) { PrintData *data = (PrintData *)user_data; cairo_t *cr; PangoLayout *layout; gint text_width, text_height; gdouble width, height; gint line, i, y; gint pagecol; PangoFontDescription *desc; gchar *page_str; GDate date; gchar buffer[256]; double tmpval; #if MYDEBUG == 1 gint pagerow = page_nr%data->numpagerow; #endif tmpval = (double)(page_nr+1)/(double)data->numpagerow; pagecol = ceil(tmpval); DB( g_print("\n-- draw page %d, pagerow=%d pagecol=%d (tmp=%f)\n", page_nr, pagerow, pagecol, tmpval) ); cr = gtk_print_context_get_cairo_context (context); width = gtk_print_context_get_width (context); height = gtk_print_context_get_height (context); //helpdraw #if HELPDRAW == 1 hb_pdf_draw_help_rect(cr, 0x0000FF00, 0, 0, width, 0 + data->header_height); hb_pdf_draw_help_rect(cr, 0x00FFFF00, 0, 0 + data->header_height, width, height - (data->header_height + 9 + (2* HB_PRINT_SPACING))); hb_pdf_draw_help_rect(cr, 0x00FF0000, 0, height - 9 - HB_PRINT_SPACING, width, 9 + HB_PRINT_SPACING); #endif /* cairo_rectangle (cr, 0, 0, width, data->header_height); cairo_set_source_rgb (cr, 0.8, 0.8, 0.8); cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_set_line_width (cr, 1); cairo_stroke (cr); */ //header layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("Helvetica"); pango_font_description_set_size (desc, (data->font_size + HB_PRINT_FONT_HEAD_POINT) * PANGO_SCALE); pango_font_description_set_weight (desc, PANGO_WEIGHT_BOLD); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_text (layout, data->title, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); if (text_width > width) { pango_layout_set_width (layout, width); pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_START); pango_layout_get_pixel_size (layout, &text_width, &text_height); } //left cairo_move_to (cr, 0, 0); //center //cairo_move_to (cr, (width - text_width) / 2, 0); pango_cairo_show_layout (cr, layout); g_object_unref (layout); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("Helvetica"); pango_font_description_set_size (desc, data->font_size * PANGO_SCALE); pango_layout_set_font_description (layout, desc); gint firstcol = hb_print_listview_get_idx_for_pagecol(data, width, pagecol); gint lastcol = hb_print_listview_get_idx_for_pagecol(data, width, pagecol+1); //line header y = data->header_height - data->font_size; pango_font_description_set_weight (desc, PANGO_WEIGHT_BOLD); pango_layout_set_font_description (layout, desc); hb_print_listview_draw_line(data, data->lines[0], firstcol, lastcol, y, cr, layout); //helpdraw #if HELPDRAW == 1 gint x = 0; gchar **columns = g_strsplit (data->lines[0], "\t", 0); for(gint j=firstcol ; jcol_width[j] - HB_PRINT_SPACING, height - (data->header_height + 9 + (2* HB_PRINT_SPACING)) ); x += data->col_width[j]; } } g_strfreev (columns); #endif y = data->header_height + HB_PRINT_SPACING; pango_font_description_set_weight (desc, PANGO_WEIGHT_NORMAL); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); //lines line = (page_nr%data->numpagerow) * data->lines_per_page; if( line == 0 ) //skip title line line++; DB( g_print(" print lines from %d to %d (max)\n", line, line+data->lines_per_page) ); DB( g_print(" print cols from %d\n", firstcol) ); for (i = 0; i < data->lines_per_page && line < data->num_lines; i++) { hb_print_listview_draw_line(data, data->lines[line], firstcol, lastcol, y, cr, layout); y += data->font_size + 3; line++; } g_object_unref (layout); //footer layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("Helvetica"); pango_font_description_set_size (desc, 9 * PANGO_SCALE); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); y = height - 9; //left: date g_date_set_julian (&date, GLOBALS->today); g_date_strftime (buffer, 256-1, "%a %x", &date); pango_layout_set_text (layout, buffer, -1); pango_layout_set_width (layout, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, 0, y); pango_cairo_show_layout (cr, layout); //right: page page_str = g_strdup_printf ("page %d/%d", page_nr + 1, data->num_pages); pango_layout_set_text (layout, page_str, -1); g_free (page_str); pango_layout_set_width (layout, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, width - text_width - 4, y); pango_cairo_show_layout (cr, layout); g_object_unref (layout); } //note: statement is hardcoded for account print only void hb_print_listview(GtkWindow *parent, gchar *tabtext, gint8 *leftcols, gchar *title, gchar *filepath, gboolean statement) { GtkPrintOperation *operation; GtkPrintSettings *settings; PrintData *data; GError *error = NULL; data = g_new0 (PrintData, 1); data->statement = statement; data->font_size = 12.0; data->tabtext = tabtext; data->title = title; data->leftcols = leftcols; DB( g_print("tabtext debug:\n%s\n", tabtext) ); operation = gtk_print_operation_new (); g_signal_connect (G_OBJECT (operation), "begin-print", G_CALLBACK (hb_print_listview_begin_print), data); g_signal_connect (G_OBJECT (operation), "draw-page" , G_CALLBACK (hb_print_listview_draw_page), data); g_signal_connect (G_OBJECT (operation), "end-print" , G_CALLBACK (hb_print_listview_end_print), data); gtk_print_operation_set_use_full_page (operation, FALSE); gtk_print_operation_set_unit (operation, GTK_UNIT_POINTS); gtk_print_operation_set_embed_page_setup (operation, TRUE); settings = gtk_print_settings_new (); gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_BASENAME, filepath); gtk_print_operation_set_print_settings (operation, settings); gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (parent), &error); g_object_unref (operation); g_object_unref (settings); if (error) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (parent), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } } homebank-5.9.1/src/ui-txn-multi.h0000664000175000017500000000306314736461415012326 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __UI_TXN_MULTI_H__ #define __UI_TXN_MULTI_H__ struct ui_multipleedit_dialog_data { GtkWidget *dialog; GtkWidget *CM_date, *PO_date; GtkWidget *CM_amount, *ST_amount; GtkWidget *LB_acc, *CM_acc, *PO_acc; GtkWidget *LB_mode, *CM_mode, *NU_mode; GtkWidget *CM_number, *ST_number; GtkWidget *CM_pay, *PO_pay; GtkWidget *CM_cat, *PO_cat; GtkWidget *CM_memo, *ST_memo; GtkWidget *CM_tags, *ST_tags, *CY_tags; GtkWidget *CM_xfer, *PO_accto; GtkTreeView *treeview; guint32 kacc; gboolean has_xfer; }; void ui_multipleedit_dialog_prefill( GtkWidget *widget, Transaction *ope, gint column_id ); gint ui_multipleedit_dialog_apply( GtkWidget *widget, gboolean *do_sort ); GtkWidget *ui_multipleedit_dialog_new(GtkWindow *parent, GtkTreeView *treeview); #endif /* __UI_TXN_MULTI_H__ */ homebank-5.9.1/src/rep-balance.h0000644000175000017500000000433014736461415012117 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HOMEBANK_REPBALANCE_H__ #define __HOMEBANK_REPBALANCE_H__ /* list stat */ enum { LST_OVER_POS, LST_OVER_KEY, LST_OVER_LABEL, LST_OVER_EXPENSE, LST_OVER_INCOME, LST_OVER_TOTAL, LST_OVER_FLAGS, NUM_LST_OVER }; /* -- flags -- */ #define REPORT_FLAG_OVER (1<<1) #define REPORT_FLAG_TODAY (1<<2) enum { HID_REPBALANCE_MINDATE, HID_REPBALANCE_MAXDATE, HID_REPBALANCE_RANGE, MAX_REPBALANCE_HID }; struct repbalance_data { GQueue *txn_queue; Filter *filter; gdouble minimum; gboolean detail; guint32 accnum; gdouble *tmp_income; gdouble *tmp_expense; gdouble firstbalance; guint n_result; guint nbovrdraft, nbope; guint32 usrkcur; GtkWidget *window; GActionGroup *actions; gboolean mapped_done; GtkWidget *TB_bar; GtkWidget *BT_list; GtkWidget *BT_line; GtkWidget *BT_detail; GtkWidget *BT_refresh; GtkWidget *BT_reset; GtkWidget *BT_print; GtkWidget *TX_info; GtkWidget *TX_fltactive, *TT_fltactive; GtkWidget *TX_daterange; GtkWidget *CM_minor; GtkWidget *LV_report; GtkWidget *BT_all, *BT_non, *BT_inv; GtkWidget *SW_acc, *LV_acc; GtkWidget *CY_intvl; GtkWidget *CM_showempty; GtkWidget *RG_zoomx, *LB_zoomx; GtkWidget *PO_mindate, *PO_maxdate; GtkWidget *CM_inclxfer; GtkWidget *CY_range; GtkWidget *GR_result; GtkWidget *RE_chart; GtkWidget *GR_detail; GtkWidget *LV_detail; gulong hid[MAX_REPBALANCE_HID]; }; GtkWidget *repbalance_window_new(guint32 accnum); #endif homebank-5.9.1/src/ui-txn-split.c0000664000175000017500000011537215005623670012322 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty ofdeftransaction_amountchanged * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "ui-transaction.h" #include "ui-archive.h" #include "gtk-dateentry.h" #include "ui-payee.h" #include "ui-category.h" #include "ui-account.h" #include "hbtk-decimalentry.h" #include "ui-txn-split.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; #define GTK_RESPONSE_SPLIT_REM 10888 /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void list_split_cell_data_func_number (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { GtkTreePath *path; gint *indices; gchar num[16]; path = gtk_tree_model_get_path(model, iter); indices = gtk_tree_path_get_indices(path); //num = gtk_tree_path_to_string(path); g_snprintf(num, 15, "%d", 1 + *indices); gtk_tree_path_free(path); g_object_set(renderer, "text", num, NULL); } static void list_split_cell_data_func_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Split *split; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gchar *color; guint32 kcur; gtk_tree_model_get(model, iter, 0, &split, -1); kcur = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(col), "kcur_data")); hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, split->amount, kcur, FALSE); color = get_normal_color_amount(split->amount); g_object_set(renderer, "foreground", color, "text", buf, NULL); } static void list_split_cell_data_func_memo (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Split *split; gtk_tree_model_get(model, iter, 0, &split, -1); g_object_set(renderer, "text", split->memo, NULL); } static void list_split_cell_data_func_category (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Split *split; Category *cat; gtk_tree_model_get(model, iter, 0, &split, -1); cat = da_cat_get(split->kcat); if( cat != NULL ) { g_object_set(renderer, "text", cat->fullname, NULL); } else g_object_set(renderer, "text", "", NULL); } static void list_split_populate(GtkWidget *treeview, GPtrArray *splits) { GtkTreeModel *model; GtkTreeIter iter; Split *split; gint count, i; DB( g_print("\n[list_split] populate\n") ); count = da_splits_length (splits); if( count <= 0 ) return; model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); gtk_list_store_clear (GTK_LIST_STORE(model)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), NULL); /* Detach model from view */ /* populate */ for(i=0 ; i < count ; i++) { split = da_splits_get(splits, i); DB( g_print(" append split %d : %d, %.2f, '%s'\n", i, split->kcat, split->amount, split->memo) ); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, 0, split, -1); } gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), model); /* Re-attach model to view */ g_object_unref(model); } static GtkWidget * list_split_new(guint32 kcur) { GtkListStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; DB( g_print("\n[ui_split_listview] new\n") ); // create list store store = gtk_list_store_new(1, G_TYPE_POINTER ); // treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); //column 0: line number renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new_with_attributes("#", renderer, NULL); gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_set_cell_data_func(column, renderer, list_split_cell_data_func_number, NULL, NULL); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column 1: category renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 20, NULL); column = gtk_tree_view_column_new_with_attributes(_("Category"), renderer, NULL); //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); //gtk_tree_view_column_set_sort_column_id (column, sortcolumnid); //gtk_tree_view_column_set_fixed_width( column, HB_MINWIDTH_LIST); gtk_tree_view_column_set_expand (column, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_split_cell_data_func_category, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column 2: memo renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 20, NULL); column = gtk_tree_view_column_new_with_attributes(_("Memo"), renderer, NULL); //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_resizable(column, TRUE); //gtk_tree_view_column_set_sort_column_id (column, sortcolumnid); //gtk_tree_view_column_set_fixed_width( column, HB_MINWIDTH_LIST); gtk_tree_view_column_set_expand (column, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, list_split_cell_data_func_memo, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column 3: amount renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); column = gtk_tree_view_column_new_with_attributes(_("Amount"), renderer, NULL); g_object_set_data(G_OBJECT(column), "kcur_data", GINT_TO_POINTER(kcur)); gtk_tree_view_column_set_alignment (column, 1.0); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); //gtk_tree_view_column_set_sort_column_id (column, sortcolumnid); //gtk_tree_view_column_set_fixed_width( column, HB_MINWIDTH_LIST); gtk_tree_view_column_set_cell_data_func(column, renderer, list_split_cell_data_func_amount, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // column empty //column = gtk_tree_view_column_new(); //gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); // treeviewattribute gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW(treeview), TRUE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(treeview), FALSE); //gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), ui_acc_listview_compare_func, NULL, NULL); //gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); return treeview; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /*static gboolean ui_split_dialog_cb_output_amount(GtkSpinButton *spin, gpointer data) { GtkAdjustment *adjustment; gchar *text; gdouble value; //gpointer position; DB( g_print("\n[ui_split_dialog] amount output\n") ); adjustment = gtk_spin_button_get_adjustment (spin); value = gtk_adjustment_get_value (adjustment); if( value == 0.0 ) { gtk_entry_set_text (GTK_ENTRY (spin), ""); } else { text = g_strdup_printf ("%+.*f", gtk_spin_button_get_digits(spin), value); DB( g_print(" output '%s'\n", text) ); gtk_entry_set_text (GTK_ENTRY (spin), text); //gtk_editable_delete_text (GTK_EDITABLE(spin), 0, -1); //gtk_editable_insert_text (GTK_EDITABLE(spin), text, -1, &position); g_free (text); } return TRUE; }*/ static void ui_split_dialog_filter_text_handler (GtkEntry *entry, const gchar *text, gint length, gint *position, gpointer data) { GtkEditable *editable = GTK_EDITABLE(entry); gint i, count=0; gchar *result = g_new0 (gchar, length+1); for (i=0; i < length; i++) { if (text[i]=='|') continue; result[count++] = text[i]; } if (count > 0) { g_signal_handlers_block_by_func (G_OBJECT (editable), G_CALLBACK (ui_split_dialog_filter_text_handler), data); gtk_editable_insert_text (editable, result, count, position); g_signal_handlers_unblock_by_func (G_OBJECT (editable), G_CALLBACK (ui_split_dialog_filter_text_handler), data); } g_signal_stop_emission_by_name (G_OBJECT (editable), "insert-text"); g_free (result); } static void ui_split_dialog_cb_eval_order(struct ui_split_dialog_data *data) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; guint i; DB( g_print("\n[ui_split_dialog] eval order\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_split)); i=1; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Split *split; gtk_tree_model_get (model, &iter, 0, &split, -1); split->pos = i; DB( g_print(" split pos: %d '%s' %.2f\n", i, split->memo, split->amount) ); i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } da_splits_sort(data->tmp_splits); } /* static gboolean ui_split_dialog_cb_amount_focus_out (GtkEditable *spin_button, GdkEvent *event, gpointer user_data) { struct ui_split_dialog_data *data; const gchar *txt; DB( g_print("\n[ui_split_dialog] cb amount focus out\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(spin_button), GTK_TYPE_WINDOW)), "inst_data"); //force store txt = gtk_entry_get_text(GTK_ENTRY(spin_button)); data->amountsign = hb_amount_forced_sign(txt); DB( g_print(" txt='%s'\n amt=%.8f\n sign=%d\n", txt, gtk_spin_button_get_value (GTK_SPIN_BUTTON(spin_button)), data->amountsign) ); return FALSE; } */ static void ui_split_dialog_update(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; gboolean tmpval; guint count; DB( g_print("\n[ui_split_dialog] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); count = da_splits_length (data->tmp_splits); //btn: edit/rem tmpval = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_split)), NULL, NULL); gtk_widget_set_sensitive (data->BT_edit, (data->isedited) ? FALSE : tmpval); gtk_widget_set_sensitive (data->BT_dup, (data->isedited) ? FALSE : tmpval); gtk_widget_set_sensitive (data->BT_rem, (data->isedited) ? FALSE : tmpval); //btn: remall tmpval = (count > 1) ? TRUE : FALSE; gtk_widget_set_sensitive (data->BT_remall, (data->isedited) ? FALSE : tmpval); //btn: add/apply /*amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); tmpval = hb_amount_round(amount, 2) != 0.0 ? TRUE : FALSE; gtk_widget_set_sensitive (data->BT_apply, tmpval); */ //btn: add tmpval = ( count >= TXN_MAX_SPLIT ) ? FALSE : TRUE; gtk_widget_set_sensitive (data->BT_add, tmpval); if( data->isedited ) tmpval = TRUE; gtk_widget_set_sensitive (data->PO_cat, tmpval); gtk_widget_set_sensitive (data->ST_memo, tmpval); gtk_widget_set_sensitive (data->ST_amount, tmpval); //btn: show/hide gtk_widget_set_sensitive (data->LV_split, !data->isedited); hb_widget_visible (data->BT_add, !data->isedited); hb_widget_visible (data->IM_edit, data->isedited); hb_widget_visible (data->BT_apply, data->isedited); hb_widget_visible (data->BT_cancel, data->isedited); } static void ui_split_dialog_edit_end(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; DB( g_print("\n[ui_split_dialog] edit_end\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), 0); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_cat), 0); if( data->mode == SPLIT_MODE_EMPTY ) //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), 0.0); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_amount), 0.0); gtk_entry_set_text(GTK_ENTRY(data->ST_memo), ""); gtk_widget_grab_focus(data->ST_amount); data->isedited = FALSE; } static void ui_split_dialog_edit_start(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("\n[ui_split_dialog] edit_start\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_split)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_split)); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Split *split; gchar *txt; gtk_tree_model_get(model, &iter, 0, &split, -1); //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), split->kcat); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_cat), split->kcat); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), split->amount); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_amount), split->amount); txt = (split->memo != NULL) ? split->memo : ""; gtk_entry_set_text(GTK_ENTRY(data->ST_memo), txt); data->isedited = TRUE; ui_split_dialog_update (data->dialog, user_data); } } static void ui_split_dialog_cancel_cb(GtkWidget *widget, gpointer user_data) { //struct ui_split_dialog_data *data; DB( g_print("\n[ui_split_dialog] cancel\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); ui_split_dialog_edit_end(widget, user_data); ui_split_dialog_update (widget, user_data); } static void ui_split_dialog_apply_cb(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("--------\n[ui_split_dialog] apply\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_split)); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Split *split; gdouble amount; gtk_tree_model_get(model, &iter, 0, &split, -1); DB( g_print(" update spin\n") ); //gtk_spin_button_update (GTK_SPIN_BUTTON(data->ST_amount)); //amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); amount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_amount)); if(amount) { //split->kcat = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_cat)); split->kcat = ui_cat_entry_popover_get_key_add_new(GTK_BOX(data->PO_cat)); g_free(split->memo); split->memo = g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_memo))); //split->amount = amount; //#1910819 must round frac digit split->amount = hb_amount_round(amount, data->cur->frac_digits); } } ui_split_dialog_edit_end(widget, user_data); ui_split_dialog_compute (widget, data); ui_split_dialog_update (widget, user_data); } static void ui_split_dialog_deleteall_cb(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; gint result; DB( g_print("\n[ui_split_dialog] deleteall_cb\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), NULL, _("Do you want to delete all split lines"), _("_Delete"), TRUE ); if(result == GTK_RESPONSE_OK) { gtk_list_store_clear (GTK_LIST_STORE(gtk_tree_view_get_model (GTK_TREE_VIEW(data->LV_split)))); da_split_destroy(data->tmp_splits); data->tmp_splits = da_split_new (); ui_split_dialog_compute (widget, data); ui_split_dialog_update (widget, user_data); } } static void ui_split_dialog_cb_duplicate(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("\n[ui_split_dialog] duplicate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_split)); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Split *src_split, *new_split; gtk_tree_model_get(model, &iter, 0, &src_split, -1); new_split = da_split_duplicate(src_split); if( new_split ) { //ui_split_listview_add(GTK_TREE_VIEW(data->LV_split), new_split); da_splits_append (data->tmp_splits, new_split); //model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_split)); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, 0, new_split, -1); } } ui_split_dialog_compute (widget, data); ui_split_dialog_update (widget, user_data); } static void ui_split_dialog_delete_cb(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; DB( g_print("\n[ui_split_dialog] delete_cb\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_split)); if (gtk_tree_selection_get_selected(selection, &model, &iter)) { Split *split; gtk_tree_model_get(model, &iter, 0, &split, -1); //todo: not implemented yet gtk_list_store_remove(GTK_LIST_STORE(model), &iter); da_splits_delete(data->tmp_splits, split); } ui_split_dialog_compute (widget, data); ui_split_dialog_update (widget, user_data); } static void ui_split_dialog_add_cb(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; GtkTreeModel *model; GtkTreeIter iter; Split *split; guint count; gdouble amount; DB( g_print("--------\n[ui_split_dialog] add\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); count = da_splits_length (data->tmp_splits); DB( g_print(" n_split: %d (of %d)\n", count, TXN_MAX_SPLIT) ); if( count <= TXN_MAX_SPLIT ) { split = da_split_malloc (); //5.4.4 DB( g_print(" update spin %d\n", data->amountsign) ); //gtk_spin_button_update (GTK_SPIN_BUTTON(data->ST_amount)); //amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); amount = hbtk_decimal_entry_get_value(HBTK_DECIMAL_ENTRY(data->ST_amount)); if(amount) { //force sign apply if( hbtk_decimal_entry_get_forcedsign(HBTK_DECIMAL_ENTRY(data->ST_amount)) == FALSE ) { DB( g_print(" raw amt=%.2f\n", amount) ); switch( data->amountsign ) { case HB_AMT_SIGN_EXP: if( amount > 0) amount *= -1; break; case HB_AMT_SIGN_INC: if( amount < 0) amount *= -1; break; default: if( hb_amount_type_match(amount, data->txntype) == FALSE ) amount *= -1; break; } } DB( g_print(" final amt=%.2f\n", amount) ); //split->amount = amount; //#1910819 must round frac digit split->amount = hb_amount_round(amount, data->cur->frac_digits); //split->kcat = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_cat)); split->kcat = ui_cat_entry_popover_get_key_add_new(GTK_BOX(data->PO_cat)); split->memo = g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_memo))); //#1977686 add into memo autocomplete if(PREFS->txn_memoacp == TRUE) { if( da_transaction_insert_memo(split->memo, data->date) ) { GtkEntryCompletion *completion; GtkTreeModel *model; GtkTreeIter iter; DB( g_print(" add memo to completion\n") ); completion = gtk_entry_get_completion (GTK_ENTRY(data->ST_memo)); model = gtk_entry_completion_get_model (completion); gtk_list_store_insert_with_values(GTK_LIST_STORE(model), &iter, -1, 0, split->memo, -1); } } DB( g_print(" append split : %d, %.2f, %s\n", split->kcat, split->amount, split->memo) ); da_splits_append (data->tmp_splits, split); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_split)); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, 0, split, -1); ui_split_dialog_compute (widget, data); } // 0 amount not allowed into splits else { da_split_free(split); } } else { g_warning("split error: limit of %d reached", TXN_MAX_SPLIT); } ui_split_dialog_edit_end(widget, user_data); ui_split_dialog_update (widget, user_data); } static void ui_split_dialog_cb_amount_activate(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; DB( g_print("\n[ui_split_dialog] cb amount activate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); //we trigger the focus-out-event on spinbutton, with grab the add button //because we also do things before the legacy spinbutton fucntion //gtk_widget_grab_focus(data->BT_add); if( data->isedited == TRUE ) ui_split_dialog_apply_cb(widget, NULL); else ui_split_dialog_add_cb(widget, NULL); } static void ui_split_rowactivated(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data) { DB( g_print("\n[ui_split_dialog] rowactivated\n") ); ui_split_dialog_edit_start(GTK_WIDGET(treeview), NULL); } static void ui_split_selection(GtkTreeSelection *treeselection, gpointer user_data) { DB( g_print("\n[ui_split_dialog] selection\n") ); ui_split_dialog_update (GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), user_data); } void ui_split_dialog_compute(GtkWidget *widget, gpointer user_data) { struct ui_split_dialog_data *data; gint i, count, nbvalid; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gboolean sensitive; GtkTreeModel *model; GtkTreeIter iter; gboolean valid; DB( g_print("\n[ui_split_dialog] compute\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); nbvalid = 0; data->sumsplit = 0.0; data->remsplit = 0.0; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_split)); i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Split *split; gtk_tree_model_get (model, &iter, 0, &split, -1); data->sumsplit += split->amount; if( hb_amount_round(split->amount, data->cur->frac_digits) != 0.0 ) nbvalid++; /* Make iter point to the next row in the list store */ i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } count = i; DB( g_print(" n_count=%d, n_valid=%d\n", count, nbvalid ) ); data->remsplit = data->amount - data->sumsplit; //validation: 2 split min, if 0 split //Accept button is not disabled to enable empty the splits sensitive = FALSE; if( (count == 0) || nbvalid >= 2 ) sensitive = TRUE; gtk_widget_hide(data->IB_inflimit); gtk_widget_hide(data->IB_wrnsum); gtk_widget_hide(data->IB_errtype); if( count >= TXN_MAX_SPLIT ) { gtk_widget_show_all(data->IB_inflimit); //#GTK+710888: hack waiting a GTK fix gtk_widget_queue_resize (data->IB_inflimit); } if( data->mode == SPLIT_MODE_AMOUNT ) { if( hb_amount_round(data->remsplit, data->cur->frac_digits) == 0.0 ) { g_sprintf(buf, "----"); //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), 0); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_amount), 0.0); } else { //g_snprintf(buf, G_ASCII_DTOSTR_BUF_SIZE-1, data->cur->format, data->remsplit); hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, data->remsplit, data->cur->key, FALSE); //#1845841 bring back checkpoint with initial amount + init remainder //revert, because block any edition/inherit //sensitive = (count > 1) ? FALSE : sensitive; //but keep prefill remainder //gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), data->remsplit); hbtk_decimal_entry_set_value(HBTK_DECIMAL_ENTRY(data->ST_amount), data->remsplit); gtk_widget_show_all(data->IB_wrnsum); //#GTK+710888: hack waiting a GTK fix gtk_widget_queue_resize (data->IB_wrnsum); } gtk_label_set_label(GTK_LABEL(data->LB_remain), buf); //g_snprintf(buf, G_ASCII_DTOSTR_BUF_SIZE-1, data->cur->format, data->amount); hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, data->amount, data->cur->key, FALSE); gtk_label_set_label(GTK_LABEL(data->LB_txnamount), buf); } //g_snprintf(buf, G_ASCII_DTOSTR_BUF_SIZE-1, data->cur->format, data->sumsplit); hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, data->sumsplit, data->cur->key, FALSE); gtk_label_set_text(GTK_LABEL(data->LB_sumsplit), buf); //if split sum sign do not match if( hb_amount_type_match(data->sumsplit, data->txntype) == FALSE ) { //#1885413 enable sign invert from split dialog //sensitive = FALSE; gtk_widget_show_all(data->IB_errtype); //#GTK+710888: hack waiting a GTK fix gtk_widget_queue_resize (data->IB_errtype); } gtk_dialog_set_response_sensitive(GTK_DIALOG(data->dialog), GTK_RESPONSE_ACCEPT, sensitive); } static void ui_split_dialog_setup(struct ui_split_dialog_data *data) { guint count; DB( g_print("\n[ui_split_dialog] set\n") ); count = da_splits_length(data->tmp_splits); data->nbsplit = count > 1 ? count-1 : 0; DB( g_print(" n_count = %d\n", count) ); list_split_populate (data->LV_split, data->tmp_splits); data->isedited = FALSE; //gtk_spin_button_set_digits (GTK_SPIN_BUTTON(data->ST_amount), data->cur->frac_digits); hbtk_decimal_entry_set_digits(HBTK_DECIMAL_ENTRY(data->ST_amount), data->cur->frac_digits); //5.5 done in popover //ui_cat_comboboxentry_populate(GTK_COMBO_BOX(data->PO_cat), GLOBALS->h_cat); ui_split_dialog_compute(data->dialog, data); ui_split_dialog_update (data->dialog, data); } GtkWidget *ui_split_view_dialog (GtkWidget *parent, Transaction *ope) { GtkWidget *dialog, *content, *table, *scrollwin, *treeview; gint w, h, dw, dh, row; DB( g_print("\n[ui_split_dialog] new view only\n") ); if( ope->splits == NULL ) return NULL; dialog = gtk_dialog_new_with_buttons (_("Transaction splits"), GTK_WINDOW(parent), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); //store our dialog private data DB( g_print(" window=%p\n", dialog) ); //set a nice dialog size gtk_window_get_size(GTK_WINDOW(parent), &w, &h); dh = (h/PHI); //ratio 3:2 dw = (dh * 3) / 2; DB( g_print(" parent w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //dialog contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); table = gtk_grid_new (); hb_widget_set_margin(GTK_WIDGET(table), SPACING_SMALL); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_TINY); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_TINY); hbtk_box_prepend (GTK_BOX (content), table); row = 0; scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_size_request(scrollwin, HB_MINWIDTH_LIST, HB_MINHEIGHT_LIST); gtk_widget_set_hexpand (scrollwin, TRUE); gtk_widget_set_vexpand (scrollwin, TRUE); treeview = list_split_new(ope->kcur); gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_grid_attach (GTK_GRID (table), scrollwin, 0, row, 4, 1); //setup list_split_populate(treeview, ope->splits); gtk_widget_show_all (dialog); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_window_destroy (GTK_WINDOW(dialog)); return NULL; } GtkWidget *ui_split_dialog (GtkWidget *parent, GPtrArray **src_splits, gint txntype, guint32 date, gdouble amount, guint32 kcur, void (update_callbackFunction(GtkWidget*, gdouble))) { struct ui_split_dialog_data *data; GtkWidget *dialog, *content, *table, *box, *scrollwin, *bar; GtkWidget *label, *widget, *treeview; gint row; DB( g_print("\n[ui_split_dialog] new\n") ); data = g_malloc0(sizeof(struct ui_split_dialog_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Transaction splits"), GTK_WINDOW(parent), 0, _("_Cancel"), GTK_RESPONSE_CANCEL, NULL); //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" window=%p, inst_data=%p\n", dialog, data) ); g_signal_connect (dialog, "destroy", G_CALLBACK (gtk_widget_destroyed), &dialog); data->dialog = dialog; gtk_dialog_add_button(GTK_DIALOG(dialog), _("_OK"), GTK_RESPONSE_ACCEPT); data->date = date; data->cur = da_cur_get (kcur); DB( g_print(" kcur: %d %d %s\n", data->cur->key, data->cur->frac_digits, data->cur->format) ); //todo: init should move //clone splits or create new data->src_splits = *src_splits; data->txntype = txntype; data->mode = (hb_amount_round(amount, data->cur->frac_digits) != 0.0) ? SPLIT_MODE_AMOUNT : SPLIT_MODE_EMPTY; data->amount = amount; data->sumsplit = amount; DB( g_print(" amount : %f\n", data->amount) ); DB( g_print(" txntype: %s\n", data->txntype == TXN_TYPE_EXPENSE ? "expense" : "income" )); DB( g_print(" mode : %s\n", data->mode == SPLIT_MODE_AMOUNT ? "amount" : "empty" )); if( *src_splits != NULL ) data->tmp_splits = da_splits_clone(*src_splits); else data->tmp_splits = da_split_new(); //dialog contents content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); table = gtk_grid_new (); hb_widget_set_margin(GTK_WIDGET(table), SPACING_LARGE); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_TINY); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_TINY); hbtk_box_prepend (GTK_BOX (content), table); row = 0; scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); //gtk_widget_set_size_request(scrollwin, HB_MINWIDTH_LIST, HB_MINHEIGHT_LIST); //gtk_widget_set_hexpand (scrollwin, TRUE); treeview = list_split_new(kcur); data->LV_split = treeview; gtk_widget_set_vexpand (treeview, TRUE); gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(scrollwin), data->LV_split); gtk_grid_attach (GTK_GRID (table), scrollwin, 0, row, 4, 1); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_TINY); gtk_widget_set_valign (box, GTK_ALIGN_CENTER); gtk_grid_attach (GTK_GRID (table), box, 4, row, 1, 1); widget = make_image_button(ICONNAME_LIST_DELETE_ALL, _("Delete all")); data->BT_remall = widget; gtk_box_append (GTK_BOX (box), widget); widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); data->BT_rem = widget; gtk_box_append (GTK_BOX(box), widget); widget = make_image_button(ICONNAME_LIST_DUPLICATE, _("Duplicate")); data->BT_dup = widget; gtk_box_append (GTK_BOX(box), widget); widget = make_image_button(ICONNAME_HB_OPE_EDIT, _("Edit")); data->BT_edit = widget; gtk_box_append (GTK_BOX(box), widget); row++; label = gtk_label_new(_("Category")); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1); label = gtk_label_new(_("Memo")); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); //5.7.1 gchar *typelabel = _("Amount"); if( txntype == TXN_TYPE_EXPENSE ) typelabel = _("Expense"); else if( txntype == TXN_TYPE_INCOME ) typelabel = _("Income"); label = gtk_label_new(typelabel); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_grid_attach (GTK_GRID (table), label, 2, row, 1, 1); row++; //widget = ui_cat_comboboxentry_new(NULL); widget = ui_cat_entry_popover_new(NULL); data->PO_cat = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (table), widget, 0, row, 1, 1); //1977686 //widget = make_string(NULL); widget = make_memo_entry(NULL); data->ST_memo= widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (table), widget, 1, row, 1, 1); //widget = make_amount(NULL); widget = hbtk_decimal_entry_new(NULL); data->ST_amount = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_TINY); gtk_grid_attach (GTK_GRID (table), box, 3, row, 1, 1); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); gtk_widget_set_tooltip_text(widget, _("Prefix with -/+ to force the sign")); gtk_box_prepend (GTK_BOX (box), widget); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_OPE_EDIT); data->IM_edit = widget; hbtk_box_prepend (GTK_BOX(box), widget); widget = make_image_button(ICONNAME_LIST_ADD, _("Add")); data->BT_add = widget; gtk_box_prepend (GTK_BOX(box), widget); widget = make_image_button(ICONNAME_EMBLEM_OK, _("Apply")); data->BT_apply = widget; gtk_box_prepend (GTK_BOX(box), widget); widget = make_image_button(ICONNAME_WINDOW_CLOSE, _("Cancel")); data->BT_cancel = widget; gtk_box_prepend (GTK_BOX(box), widget); if( data->mode == SPLIT_MODE_AMOUNT ) { row++; label = gtk_label_new(_("Transaction amount:")); gtk_widget_set_halign (label, GTK_ALIGN_END); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = gtk_label_new(NULL); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_widget_set_margin_end (widget, SPACING_SMALL); data->LB_txnamount = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = gtk_label_new(_("Unassigned:")); gtk_widget_set_halign (label, GTK_ALIGN_END); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = gtk_label_new(NULL); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_widget_set_margin_end (widget, SPACING_SMALL); data->LB_remain = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_grid_attach (GTK_GRID (table), widget, 1, row, 2, 1); } row++; label = gtk_label_new(_("Sum of splits:")); gtk_widget_set_halign (label, GTK_ALIGN_END); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = gtk_label_new(NULL); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_widget_set_margin_end (widget, SPACING_SMALL); data->LB_sumsplit = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; bar = gtk_info_bar_new (); data->IB_inflimit = bar; gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_INFO); label = gtk_label_new (_("Number of splits limit is reached")); hbtk_box_prepend (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label); gtk_grid_attach (GTK_GRID (table), bar, 0, row, 4, 1); row++; bar = gtk_info_bar_new (); data->IB_errtype = bar; gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); label = gtk_label_new (_("Warning: sum of splits and transaction type don't match")); hbtk_box_prepend (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label); gtk_grid_attach (GTK_GRID (table), bar, 0, row, 4, 1); row++; bar = gtk_info_bar_new (); data->IB_wrnsum = bar; gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_ERROR); label = gtk_label_new (_("Warning: sum of splits and transaction amount don't match")); hbtk_box_prepend (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label); gtk_grid_attach (GTK_GRID (table), bar, 0, row, 4, 1); //connect all our signals g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_split)), "changed", G_CALLBACK (ui_split_selection), data); g_signal_connect (GTK_TREE_VIEW(data->LV_split), "row-activated", G_CALLBACK (ui_split_rowactivated), data); g_signal_connect (data->BT_edit , "clicked", G_CALLBACK (ui_split_dialog_edit_start), NULL); g_signal_connect (data->BT_dup , "clicked", G_CALLBACK (ui_split_dialog_cb_duplicate), NULL); g_signal_connect (data->BT_rem , "clicked", G_CALLBACK (ui_split_dialog_delete_cb), NULL); g_signal_connect (data->BT_remall, "clicked", G_CALLBACK (ui_split_dialog_deleteall_cb), NULL); g_signal_connect (data->ST_memo , "insert-text", G_CALLBACK(ui_split_dialog_filter_text_handler), data); //g_signal_connect_after (data->ST_amount, "focus-out-event", G_CALLBACK (ui_split_dialog_cb_amount_focus_out), data); g_signal_connect_after (data->ST_amount, "activate", G_CALLBACK (ui_split_dialog_cb_amount_activate), NULL); g_signal_connect (data->BT_add , "clicked", G_CALLBACK (ui_split_dialog_add_cb), NULL); g_signal_connect (data->BT_apply , "clicked", G_CALLBACK (ui_split_dialog_apply_cb), NULL); g_signal_connect (data->BT_cancel, "clicked", G_CALLBACK (ui_split_dialog_cancel_cb), NULL); //gtk_window_set_default_size(GTK_WINDOW(dialog), 480, -1); gtk_widget_show_all (dialog); //setup, init and show dialog ui_split_dialog_setup(data); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); switch (result) { // sum split and alter txn amount case GTK_RESPONSE_ACCEPT: if( da_splits_length(data->tmp_splits) ) { ui_split_dialog_cb_eval_order(data); // here we swap src_splits <> tmp_splits *src_splits = data->tmp_splits; data->tmp_splits = data->src_splits; update_callbackFunction(parent, data->sumsplit); } else { //delete split and revert back original amount da_split_destroy(*src_splits); *src_splits = NULL; update_callbackFunction(parent, data->amount); } break; /*case GTK_RESPONSE_SPLIT_REM: da_split_destroy(*src_splits); *src_splits = NULL; update_callbackFunction(parent, data->sumsplit); break; */ default: //do_nothing_since_dialog_was_cancelled (); break; } // debug /*#if MYDEBUG == 1 { guint i; for(i=0;iope_splits[i]; if(data->ope_splits[i] == NULL) break; g_print(" split %d : %d, %.2f, %s\n", i, split->kcat, split->amount, split->memo); } } #endif*/ // cleanup and destroy //GLOBALS->changes_count += data->change; gtk_window_destroy (GTK_WINDOW(dialog)); da_split_destroy (data->tmp_splits); g_free(data); return NULL; } homebank-5.9.1/src/ui-assist-import.h0000644000175000017500000000541414736461415013203 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HOMEBANK_IMPORT_H__ #define __HOMEBANK_IMPORT_H__ #define PAGE_WELCOME 0 #define PAGE_FILES 1 #define PAGE_IMPORT 2 // other are dynamic enum { LST_GENFILE_POINTER, LST_GENFILE_NAME, NUM_LST_FILE }; enum { LST_GENACC_NAME, LST_GENACC_KEY, NUM_LST_GENACC }; enum { LST_GENTXN_POINTER, NUM_LST_GENTXN }; enum { LST_SELECT_UNSET, LST_SELECT_ALL, LST_SELECT_NONE, LST_SELECT_INVERT, LST_SELECT_VALID }; typedef struct _import_txndata ImpTxnData; struct _import_txndata { // account page GtkWidget *IM_txn, *LB_txn; GtkWidget *LB_acc_info; GtkWidget *LB_acc_title; //GtkWidget *LB_acc_count; GtkWidget *LB_txn_title; GtkWidget *BT_all, *BT_non, *BT_inv, *BT_val; GtkWidget *CY_acc; GtkWidget *IM_unamed; GtkWidget *LV_gentxn; GtkWidget *EX_duptxn; GtkWidget *LV_duptxn; GtkWidget *ST_stack; GtkWidget *GR_misc; GtkWidget *GR_msg; GtkWidget *GR_date; GtkWidget *GR_ofx; GtkWidget *GR_qif; GtkWidget *GR_select; GtkWidget *CY_txn_dateorder; GtkWidget *NB_txn_daygap; GtkWidget *CM_txn_ucfirst; GtkWidget *CM_txn_togamount; GtkWidget *CY_txn_ofxname; GtkWidget *CY_txn_ofxmemo; GtkWidget *CM_txn_qifmemo; GtkWidget *CM_txn_qifswap; }; struct import_data { GtkWidget *assistant; //intro GtkWidget *CM_dsta; // filechooser GtkWidget *filechooser; GtkWidget *LV_file; GtkWidget *BT_file_add; GtkWidget *BT_file_delete; //struct import_txndata txndata[TXN_MAX_ACCOUNT]; GArray *txndata; //summary GtkWidget *TX_summary; GtkWidget *CM_set_pending; GtkWidget *CM_do_auto_payee; GtkWidget *CM_do_auto_assign; // import context ImportContext ictx; }; struct import_target_data { GtkWidget *label1, *label2; GtkWidget *getwidget1; GtkWidget *getwidget2; GtkWidget *radio[2]; }; GtkWidget *ui_import_assistant_new (gchar **paths); Account *import_create_account(gchar *name, gchar *number); const gchar *homebank_file_getencoding(gchar *filename); gchar *homebank_utf8_ensure(gchar *buffer); #endif homebank-5.9.1/src/hbtk-switcher.h0000664000175000017500000000514714736461415012535 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HBTK_SWITCHER_H__ #define __HBTK_SWITCHER_H__ G_BEGIN_DECLS #define HBTK_TYPE_SWITCHER (hbtk_switcher_get_type ()) #define HBTK_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), HBTK_TYPE_SWITCHER, HbtkSwitcher)) #define HBTK_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), HBTK_TYPE_SWITCHER, HbtkSwitcherClass) #define HBTK_IS_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HBTK_TYPE_SWITCHER)) #define HBTK_IS_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HBTK_TYPE_SWITCHER)) #define HBTK_SWITCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), HBTK_TYPE_SWITCHER, HbtkSwitcherClass)) typedef struct _HbtkSwitcher HbtkSwitcher; typedef struct _HbtkSwitcherClass HbtkSwitcherClass; typedef struct _HbtkSwitcherPrivate HbtkSwitcherPrivate; struct _HbtkSwitcher { GtkBox box; /*< private >*/ HbtkSwitcherPrivate *priv; }; struct _HbtkSwitcherClass { GtkBoxClass parent_class; /* signals */ void (* changed) (HbtkSwitcher *dateentry); /* Padding for future expansion */ void (*_gtk_reserved0) (void); void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); }; struct _HbtkSwitcherPrivate { GtkRadioButton *first; gint active; }; GType hbtk_switcher_get_type(void) G_GNUC_CONST; GtkWidget *hbtk_switcher_new (GtkOrientation orientation); void hbtk_switcher_setup (HbtkSwitcher *switcher, gchar **items, gboolean buttonstyle); void hbtk_switcher_setup_with_data (HbtkSwitcher *switcher, GtkWidget *label, HbKivData *kivdata, gboolean buttonstyle); gint hbtk_switcher_get_active (HbtkSwitcher *switcher); void hbtk_switcher_set_active (HbtkSwitcher *switcher, gint active); void hbtk_switcher_set_nth_sensitive (HbtkSwitcher *switcher, gint nth, gboolean sensitive); G_END_DECLS #endif /* __HBTK_SWITCHER_H__ */ homebank-5.9.1/src/hb-pref-data.c0000664000175000017500000002552714736461407012211 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-pref-data.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* source: http://en.wikipedia.org/wiki/Currencies_of_the_European_Union http://www.xe.com/euro.php http://fr.wikipedia.org/wiki/Liste_des_unit%C3%A9s_mon%C3%A9taires_remplac%C3%A9es_par_l%27euro http://www.inter-locale.com/LocalesDemo.jsp */ EuroParams euro_params[] = { // id, mceii, ISO , country , rate , symb , prfx , dec, grp, frac // --------------------------------------------------------------------- { 0, TRUE , "" , "--------" , 0.0 , "" , FALSE, ",", ".", 2 }, { 1, TRUE , "ATS", "Austria" , 13.7603 , "S" , TRUE , ",", ".", 2 }, // -S 1.234.567,89 { 2, TRUE , "BEF", "Belgium" , 40.3399 , "BF" , TRUE , ",", ".", 2 }, // BF 1.234.567,89 - { 20, FALSE, "BGN", "Bulgaria*" , 1.95583 , "лв." , TRUE , ",", " ", 2 }, // fixé { 24, TRUE , "HRK", "Croatia" , 7.5345 , "kn" , FALSE, "" , ".", 0 }, // { 14, TRUE , "CYP", "Cyprus" , 0.585274, "£" , TRUE , ",", "" , 2 }, // { 23, FALSE, "CZK", "Czech Republic*" , 0.0 , "Kč" , FALSE, ",", " ", 2 }, // non-fixé - 2015 earliest { 26, FALSE, "DKK", "Denmark*" , 7.4603 , "kr." , TRUE , ".", ",", 2 }, // fixé { 17, TRUE , "EEK", "Estonia" , 15.6466 , "kr" , FALSE, ",", " ", 2 }, // { 3, TRUE , "FIM", "Finland" , 5.94573 , "mk" , FALSE, ",", " ", 2 }, // -1 234 567,89 mk { 4, TRUE , "FRF", "France" , 6.55957 , "F" , FALSE, ",", " ", 2 }, // -1 234 567,89 F { 5, TRUE , "DEM", "Germany" , 1.95583 , "DM" , FALSE, ",", ".", 2 }, // -1.234.567,89 DM { 6, TRUE , "GRD", "Greece" , 340.750 , "d" , TRUE , ".", ",", 2 }, // ?? { 21, FALSE, "HUF", "Hungary*" , 0.0 , "Ft" , TRUE , ",", " ", 2 }, // non-fixé - No current target for euro { 7, TRUE , "IEP", "Ireland" , 0.787564, "£" , TRUE , ".", ",", 2 }, // -£1,234,567.89 { 8, TRUE , "ITL", "Italy" , 1936.27 , "L" , TRUE , "" , ".", 0 }, // L -1.234.567 { 18, TRUE , "LVL", "Latvia" , 0.702804, "lat.", FALSE, ",", "" , 2 }, // jan. 2014 { 19, TRUE , "LTL", "Lithuania" , 3.45280 , "Lt" , FALSE, ",", "" , 2 }, // jan. 2015 { 9, TRUE , "LUF", "Luxembourg" , 40.3399 , "LU" , TRUE , ",", ".", 2 }, // LU 1.234.567,89 - { 15, TRUE , "MTL", "Malta" , 0.429300, "Lm" , TRUE , ",", "" , 2 }, // { 10, TRUE , "NLG", "Netherlands" , 2.20371 , "F" , TRUE , ",", ".", 2 }, // F 1.234.567,89- { 25, FALSE, "PLN", "Poland*" , 0.0 , "zł" , FALSE, ",", "" , 2 }, // non-fixé - No current target for euro { 11, TRUE , "PTE", "Portugal" , 200.482 , "Esc.", FALSE, "$", ".", 2 }, // -1.234.567$89 Esc. { 22, FALSE, "RON", "Romania*" , 0.0 , "Leu" , FALSE, ",", ".", 2 }, // non-fixé - 2015 target for euro earliest { 16, TRUE , "SKK", "Slovak Republic" , 30.12600, "Sk" , FALSE, ",", " ", 2 }, // { 13, TRUE , "SIT", "Slovenia" , 239.640 , "tol" , TRUE , ",", ".", 2 }, // { 12, TRUE , "ESP", "Spain" , 166.386 , "Pts" , TRUE , "" , ".", 0 }, // -Pts 1.234.567 { 27, FALSE, "SEK", "Sweden*" , 0.0 , "kr" , FALSE, ",", " ", 2 }, // non-fixé //United Kingdom // { " ", "" , 1.00000 , "" , "" , FALSE, ",", "", 2 }, }; guint nb_euro_params = G_N_ELEMENTS(euro_params); //European — €1.234.567,89 EUR EuroParams euro_params_euro = { // id, mceii, ISO , country , rate , symb , prfx , dec, grp, frac // --------------------------------------------------------------------- 0, TRUE , "EUR" , "Non MCEII" , 0.0 , "€" , TRUE, ",", ".", 2 , }; EuroParams *euro_country_get(guint ctryid) { DB( g_print("\n[pref-data] euro_country_get\n") ); for (guint i = 0; i < G_N_ELEMENTS (euro_params); i++) { if( euro_params[i].id == ctryid ) { return &euro_params[i]; } } return NULL; } gboolean euro_country_is_mceii(gint ctryid) { gboolean retval = FALSE; DB( g_print("\n[pref-data] euro_country_is_mceii\n") ); for (guint i = 0; i < G_N_ELEMENTS (euro_params); i++) { if( euro_params[i].id == ctryid ) { retval = euro_params[i].mceii; DB( g_print(" id (country)=%d => %d mceii %d\n", ctryid, i, euro_params[i].mceii) ); break; } } return retval; } gboolean euro_country_notmceii_rate_update(guint ctryid) { DB( g_print("\n[pref-data] euro_country_notmceii_rate_update\n") ); if( PREFS->euro_mceii == FALSE ) { Currency *base = da_cur_get (GLOBALS->kcur); EuroParams *ctry = euro_country_get(ctryid); if( base && ctry ) { DB( g_print(" check update minor rate: %s == %s ?\n", base->iso_code, ctry->iso ) ); if( !strcmp(base->iso_code, ctry->iso) ) { Currency *eur = da_cur_get_by_iso_code("EUR"); if( eur != NULL ) { PREFS->euro_value = eur->rate; DB( g_print(" >update euro minor rate to %.6f for %s\n", eur->rate, ctry->iso ) ); return TRUE; } } else { DB( g_print(" >skip: base is different\n" ) ); } } } return FALSE; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ LangName languagenames[] = { // af ar ast be bg ca cs cy da de el en_AU en_CA en_GB es et eu fa fi fr ga gl he hr hu id is it //ja ka ko lt lv ms nb nds nl oc pl pt_BR pt pt_PT ro ru si sk sl sr sv tr uk vi zh_CN zh_TW { "aa", "Afar" }, { "ab", "Abkhazian" }, { "ae", "Avestan" }, { "af", "Afrikaans" }, { "ak", "Akan" }, { "am", "Amharic" }, { "an", "Aragonese" }, { "ar", "Arabic" }, { "as", "Assamese" }, { "ast", "Asturian, Bable, Leonese, Asturleonese" }, { "av", "Avaric" }, { "ay", "Aymara" }, { "az", "Azerbaijani" }, { "ba", "Bashkir" }, { "be", "Belarusian" }, { "bg", "Bulgarian" }, { "bh", "Bihari" }, { "bi", "Bislama" }, { "bm", "Bambara" }, { "bn", "Bengali" }, { "bo", "Tibetan" }, { "br", "Breton" }, { "bs", "Bosnian" }, { "ca", "Catalan" }, { "ce", "Chechen" }, { "ch", "Chamorro" }, { "ckb", "Kurdish, Central" }, { "co", "Corsican" }, { "cr", "Cree" }, { "cs", "Czech" }, { "cu", "Old Church Slavonic" }, { "cv", "Chuvash" }, { "cy", "Welsh" }, { "da", "Danish" }, { "de", "German" }, { "dv", "Divehi" }, { "dz", "Dzongkha" }, { "ee", "Ewe" }, { "el", "Greek" }, { "en", "English" }, { "eo", "Esperanto" }, { "es", "Spanish" }, { "et", "Estonian" }, { "eu", "Basque" }, { "fa", "Persian" }, { "ff", "Fulah" }, { "fi", "Finnish" }, { "fj", "Fijian" }, { "fo", "Faroese" }, { "fr", "French" }, { "fy", "Western Frisian" }, { "ga", "Irish" }, { "gd", "Scottish Gaelic" }, { "gl", "Galician" }, { "gn", "Guarani" }, { "gu", "Gujarati" }, { "gv", "Manx" }, { "ha", "Hausa" }, { "he", "Hebrew" }, { "hi", "Hindi" }, { "ho", "Hiri Motu" }, { "hr", "Croatian" }, { "ht", "Haitian" }, { "hu", "Hungarian" }, { "hy", "Armenian" }, { "hz", "Herero" }, { "ia", "Interlingua" }, { "id", "Indonesian" }, { "ie", "Interlingue" }, { "ig", "Igbo" }, { "ii", "Sichuan Yi" }, { "ik", "Inupiaq" }, { "io", "Ido" }, { "is", "Icelandic" }, { "it", "Italian" }, { "iu", "Inuktitut" }, { "ja", "Japanese" }, { "jv", "Javanese" }, { "ka", "Georgian" }, { "kg", "Kongo" }, { "ki", "Kikuyu" }, { "kj", "Kwanyama" }, { "kk", "Kazakh" }, { "kl", "Kalaallisut" }, { "km", "Khmer" }, { "kn", "Kannada" }, { "ko", "Korean" }, { "kr", "Kanuri" }, { "ks", "Kashmiri" }, { "ku", "Kurdish" }, { "kv", "Komi" }, { "kw", "Cornish" }, { "ky", "Kirghiz" }, { "la", "Latin" }, { "lb", "Luxembourgish" }, { "lg", "Ganda" }, { "li", "Limburgish" }, { "ln", "Lingala" }, { "lo", "Lao" }, { "lt", "Lithuanian" }, { "lu", "Luba-Katanga" }, { "lv", "Latvian" }, { "mg", "Malagasy" }, { "mh", "Marshallese" }, { "mi", "Māori" }, { "mk", "Macedonian" }, { "ml", "Malayalam" }, { "mn", "Mongolian" }, { "mo", "Moldavian" }, { "mr", "Marathi" }, { "ms", "Malay" }, { "mt", "Maltese" }, { "my", "Burmese" }, { "na", "Nauru" }, { "nb", "Norwegian Bokmål" }, { "nd", "North Ndebele" }, { "nds", "Low German, Low Saxon" }, { "ne", "Nepali" }, { "ng", "Ndonga" }, { "nl", "Dutch" }, { "nn", "Norwegian Nynorsk" }, { "no", "Norwegian" }, { "nr", "South Ndebele" }, { "nv", "Navajo" }, { "ny", "Chichewa" }, { "oc", "Occitan" }, { "oj", "Ojibwa" }, { "om", "Oromo" }, { "or", "Oriya" }, { "os", "Ossetian" }, { "pa", "Panjabi" }, { "pi", "Pāli" }, { "pl", "Polish" }, { "ps", "Pashto" }, { "pt", "Portuguese" }, { "qu", "Quechua" }, { "rm", "Romansh" }, { "rn", "Kirundi" }, { "ro", "Romanian" }, { "ru", "Russian" }, { "rw", "Kinyarwanda" }, { "sa", "Sanskrit" }, { "sc", "Sardinian" }, { "sd", "Sindhi" }, { "se", "Northern Sami" }, { "sg", "Sango" }, { "si", "Sinhalese" }, { "sk", "Slovak" }, { "sl", "Slovene" }, { "sm", "Samoan" }, { "sn", "Shona" }, { "so", "Somali" }, { "sq", "Albanian" }, { "sr", "Serbian" }, { "ss", "Swati" }, { "st", "Sotho" }, { "su", "Sundanese" }, { "sv", "Swedish" }, { "sw", "Swahili" }, { "ta", "Tamil" }, { "te", "Telugu" }, { "tg", "Tajik" }, { "th", "Thai" }, { "ti", "Tigrinya" }, { "tk", "Turkmen" }, { "tl", "Tagalog" }, { "tn", "Tswana" }, { "to", "Tonga" }, { "tr", "Turkish" }, { "ts", "Tsonga" }, { "tt", "Tatar" }, { "tw", "Twi" }, { "ty", "Tahitian" }, { "ug", "Uighur" }, { "uk", "Ukrainian" }, { "ur", "Urdu" }, { "uz", "Uzbek" }, { "ve", "Venda" }, { "vi", "Viêt Namese" }, { "vo", "Volapük" }, { "wa", "Walloon" }, { "wo", "Wolof" }, { "xh", "Xhosa" }, { "yi", "Yiddish" }, { "yo", "Yoruba" }, { "za", "Zhuang" }, { "zh", "Chinese" }, { "zu", "Zulu" } }; gchar *languagename_get(const gchar *locale) { DB( g_print("\n[pref-data] languagename_get\n") ); for (guint i = 0; i < G_N_ELEMENTS (languagenames); i++) { if( g_ascii_strncasecmp(locale, languagenames[i].locale, -1) == 0 ) return languagenames[i].name; } return NULL; } homebank-5.9.1/src/hub-reptotal.c0000664000175000017500000004624415005625006012347 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "dsp-mainwindow.h" #include "hub-reptotal.h" #include "gtk-chart.h" #include "list-report.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; static gint list_topspending_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint sortcol = GPOINTER_TO_INT(userdata); gint pos1, pos2, retval = 0; gdouble val1, val2; gtk_tree_model_get(model, a, LST_TOPSPEND_POS, &pos1, LST_TOPSPEND_AMOUNT, &val1, -1); gtk_tree_model_get(model, b, LST_TOPSPEND_POS, &pos2, LST_TOPSPEND_AMOUNT, &val2, -1); //#1933164 should return // > 0 if a sorts before b // = 0 if a sorts with b // < 0 if a sorts after b switch(sortcol) { case LST_TOPSPEND_POS: retval = pos1 - pos2; //DB( g_print(" sort %3d = %3d :: %d\n", pos1, pos2, retval) ); break; case LST_TOPSPEND_AMOUNT: //retval = (ABS(val1) - ABS(val2)) > 0 ? -1 : 1; retval = (val1 - val2) > 0 ? -1 : 1; //DB( g_print(" sort %.2f = %.2f :: %d\n", val1, val2, retval) ); break; } return retval; } static GtkWidget *create_list_topspending(void) { GtkTreeStore *store; GtkWidget *view; /* create list store */ store = lst_report_new(); //treeview view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); //5.7 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_TOPSPEND_POS , list_topspending_compare_func, GINT_TO_POINTER(LST_TOPSPEND_POS), NULL); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_TOPSPEND_AMOUNT , list_topspending_compare_func, GINT_TO_POINTER(LST_TOPSPEND_AMOUNT), NULL); //gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), list_topspending_compare_func, NULL, NULL); return(view); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void ui_hub_reptotal_update(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; GtkTreeModel *model; gchar *title = NULL, *fmt; gchar strbuffer[G_ASCII_DTOSTR_BUF_SIZE]; DB( g_print("\n[hub-total] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //TODO: reuse this ? hb_strfmon(strbuffer, G_ASCII_DTOSTR_BUF_SIZE-1, data->hubtot_total, GLOBALS->kcur, GLOBALS->minor); switch( PREFS->hub_tot_view ) { //todo: rework this case HUB_TOT_VIEW_TOPCAT: fmt = _("Top %d Spending / Category"); if(PREFS->hub_tot_raw) fmt = _("Top %d Expense / Category"); title = g_strdup_printf(fmt, PREFS->rep_maxspenditems); break; case HUB_TOT_VIEW_TOPPAY: fmt = _("Top %d Spending / Payee"); if(PREFS->hub_tot_raw) fmt = _("Top %d Expense / Payee"); title = g_strdup_printf(fmt, PREFS->rep_maxspenditems); break; case HUB_TOT_VIEW_TOPACC: fmt = _("Top %d Spending / Account"); if(PREFS->hub_tot_raw) fmt = _("Top %d Expense / Account"); title = g_strdup_printf(fmt, PREFS->rep_maxspenditems); break; case HUB_TOT_VIEW_ACCBAL: title = g_strdup_printf(_("Account Balance")); break; case HUB_TOT_VIEW_GRPBAL: title = g_strdup_printf(_("Account Group Balance")); break; } gtk_chart_set_color_scheme(GTK_CHART(data->RE_hubtot_chart), PREFS->report_color_scheme); gtk_chart_set_smallfont (GTK_CHART(data->RE_hubtot_chart), PREFS->rep_smallfont); gtk_chart_set_currency(GTK_CHART(data->RE_hubtot_chart), GLOBALS->kcur); //set column1 != column2 will dual display model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_hubtot)); gtk_chart_set_datas_total(GTK_CHART(data->RE_hubtot_chart), model, LST_TOPSPEND_AMOUNT, LST_TOPSPEND_AMOUNT, title, strbuffer); g_free(title); } void ui_hub_reptotal_clear(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; GtkTreeModel *model; DB( g_print("\n[hub-total] clear\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_hubtot)); gtk_tree_store_clear (GTK_TREE_STORE(model)); } void ui_hub_reptotal_populate(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; GtkTreeModel *model; GtkTreeIter iter, parent, *tmpparent; DataTable *dt; gint range; gint tmpsrc; guint i, max_items, flags; gdouble total, other; gboolean tmpaccbal, valid; DB( g_print("\n[hub-total] populate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->hubtot_filter == NULL) return; tmpsrc = REPORT_GRPBY_CATEGORY; tmpaccbal = FALSE; switch( PREFS->hub_tot_view ) { case HUB_TOT_VIEW_TOPCAT: tmpsrc = REPORT_GRPBY_CATEGORY; break; case HUB_TOT_VIEW_TOPPAY: tmpsrc = REPORT_GRPBY_PAYEE; break; case HUB_TOT_VIEW_TOPACC: tmpsrc = REPORT_GRPBY_ACCOUNT; break; case HUB_TOT_VIEW_ACCBAL: tmpsrc = REPORT_GRPBY_ACCOUNT; tmpaccbal = TRUE; break; case HUB_TOT_VIEW_GRPBAL: tmpsrc = REPORT_GRPBY_ACCGROUP; tmpaccbal = TRUE; break; } //type = hbtk_radio_button_get_active(GTK_CONTAINER(data->RA_type)); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_hubtot_range)); PREFS->hub_tot_range = range; DB( g_print(" range=%d\n", range) ); //if(range == FLT_RANGE_MISC_CUSTOM) // return; filter_preset_daterange_set(data->hubtot_filter, range, 0); //#1989211 option to include xfer by default if(PREFS->stat_includexfer == FALSE) filter_preset_type_set(data->hubtot_filter, FLT_TYPE_INTXFER, FLT_EXCLUDE); else filter_preset_type_set(data->hubtot_filter, FLT_TYPE_ALL, FLT_INCLUDE); DB( hb_print_date(data->hubtot_filter->mindate, "min:") ); DB( hb_print_date(data->hubtot_filter->maxdate, "max:") ); total = 0.0; GQueue *txn_queue = hbfile_transaction_get_partial(data->hubtot_filter->mindate, data->hubtot_filter->maxdate); flags = REPORT_COMP_FLG_NONE; if(tmpaccbal) flags |= REPORT_COMP_FLG_BALANCE; if( !tmpaccbal ) { DB( g_print(" - rawamount=%d\n", PREFS->hub_tot_raw) ); if( PREFS->hub_tot_raw == FALSE ) flags |= REPORT_COMP_FLG_CATSIGN; //todo: future option flags |= REPORT_COMP_FLG_SPENDING; //flags |= REPORT_COMP_FLG_REVENUE; } dt = report_compute(tmpsrc, REPORT_INTVL_NONE, data->hubtot_filter, txn_queue, flags); g_queue_free (txn_queue); if(dt) { //todo: should use clear func model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_hubtot)); gtk_tree_store_clear (GTK_TREE_STORE(model)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_hubtot), NULL); /* Detach model from view */ DB( g_print(" rows=%d\n", dt->nbrows) ); // insert into the treeview for(i=0 ; inbrows ; i++) { DataRow *dr; gdouble value; guint32 reskey; //since 5.7 we use the dt-keylst here to insert cat before subcat reskey = dt->keylist[i]; dr = report_data_get_row(dt, reskey); DB( g_printf(" eval %d: %d '%s' %.2f %.2f = %.2f\n", i, reskey, dr->label, dr->rowexp, dr->rowinc, (dr->rowexp + dr->rowinc) ) ); //if( tmptype == REPORT_TYPE_EXPENSE && !dr->expense[0] ) continue; //if( tmptype == REPORT_TYPE_INCOME && !dr->income[1] ) continue; if( !dr->rowexp && !dr->rowinc ) { DB( g_printf(" >skip: no data\n") ); continue; } //if( tmpsrc == REPORT_GRPBY_ACCOUNT && (i == 0) ) // continue; //#2031245 /*if( tmpaccbal == TRUE ) value = dr->rowexp + dr->rowinc; else value = dr->rowexp;*/ //#2043523 always net value value = dr->rowexp + dr->rowinc; // manage the toplevel for category tmpparent = NULL; if( tmpsrc == REPORT_GRPBY_CATEGORY ) { Category *tmpcat = da_cat_get(reskey); if( tmpcat != NULL) { //if( list_topspending_get_top_level (GTK_TREE_MODEL(model), tmpcat->parent, &parent) == TRUE ) if( hbtk_tree_store_get_top_level(GTK_TREE_MODEL(model), LST_TOPSPEND_KEY, tmpcat->parent, &parent) ) { tmpparent = &parent; } //compute total if( tmpcat->parent == 0 ) { if(value < 0.0 ) total += value; } } } else { if(value < 0.0 || tmpaccbal == TRUE ) total += value; } if( value < 0.0 || tmpaccbal == TRUE ) { // append test gtk_tree_store_append (GTK_TREE_STORE(model), &iter, tmpparent); gtk_tree_store_set (GTK_TREE_STORE(model), &iter, LST_TOPSPEND_POS, i, LST_TOPSPEND_KEY, reskey, LST_TOPSPEND_NAME, dr->label, LST_TOPSPEND_AMOUNT, value, //LST_TOPSPEND_RATE, (gint)(((ABS(value)*100)/ABS(total)) + 0.5), -1); DB( g_printf(" >insert\n") ); } else { DB( g_printf(" >skip: no data balance mode\n") ); } } //sort by expense descending gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), LST_TOPSPEND_AMOUNT, GTK_SORT_DESCENDING); //5.7 order & limitation moved here if( tmpaccbal == FALSE ) { other = 0.0; i = 0; max_items = (guint)PREFS->rep_maxspenditems; { GtkTreeIter remiter, child; gdouble othamt; gboolean okchilditer, do_remove; gint cpos; DB( g_print(" aggregate items\n") ); valid = gtk_tree_model_get_iter_first(model, &iter); while( valid ) { DB( g_print(" freeze position %d\n", i) ); gtk_tree_store_set(GTK_TREE_STORE(model), &iter, LST_TOPSPEND_POS, i++, -1); //2063145 also store child position okchilditer = gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); cpos = 0; while( okchilditer ) { DB( g_print(" freeze child position %d\n", cpos) ); gtk_tree_store_set(GTK_TREE_STORE(model), &child, LST_TOPSPEND_POS, cpos++, -1); okchilditer = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } do_remove = (i > max_items ) ? TRUE : FALSE; remiter = iter; valid = gtk_tree_model_iter_next(model, &iter); if( do_remove ) { gtk_tree_model_get (GTK_TREE_MODEL(model), &remiter, LST_TOPSPEND_AMOUNT, &othamt, -1); if(othamt < 0.0) other += othamt; DB( g_print(" other += %.2f\n", othamt) ); hbtk_tree_store_remove_iter_with_child(model, &remiter); } } // append 'Others' if(ABS(other) > 0) { DB( g_print(" - %d : %s k='%d' v='%f'\n", max_items+1, "Other", 0, other) ); gtk_tree_store_append (GTK_TREE_STORE(model), &iter, NULL); gtk_tree_store_set (GTK_TREE_STORE(model), &iter, LST_TOPSPEND_POS, max_items+1, LST_TOPSPEND_KEY, 0, LST_TOPSPEND_NAME, _("Other"), LST_TOPSPEND_AMOUNT, other, //LST_TOPSPEND_RATE, (gint)(((ABS(other)*100)/ABS(total)) + 0.5), -1); } } //sort by pos to have Other at bottom gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), LST_TOPSPEND_POS, GTK_SORT_ASCENDING); } /* Re-attach model to view */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_hubtot), model); g_object_unref(model); // update chart and widgets { gchar *daterange; data->hubtot_total = total; ui_hub_reptotal_update(widget, data); daterange = filter_daterange_text_get(data->hubtot_filter); gtk_widget_set_tooltip_markup(GTK_WIDGET(data->CY_hubtot_range), daterange); g_free(daterange); } //TODO: later needs to keep this until dispose LV da_datatable_free (dt); } } static void ui_hub_reptotal_activate_radio (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GVariant *old_state, *new_state; old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_string (g_variant_get_string (parameter, NULL)); DB( g_print ("Radio action %s activated, state changes from %s to %s\n", g_action_get_name (G_ACTION (action)), g_variant_get_string (old_state, NULL), g_variant_get_string (new_state, NULL)) ); PREFS->hub_tot_view = HUB_TOT_VIEW_NONE; if( !strcmp("topcat", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tot_view = HUB_TOT_VIEW_TOPCAT; else if( !strcmp("toppay", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tot_view = HUB_TOT_VIEW_TOPPAY; else if( !strcmp("topacc", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tot_view = HUB_TOT_VIEW_TOPACC; else if( !strcmp("accbal", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tot_view = HUB_TOT_VIEW_ACCBAL; else if( !strcmp("grpbal", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tot_view = HUB_TOT_VIEW_GRPBAL; g_simple_action_set_state (action, new_state); g_variant_unref (old_state); ui_hub_reptotal_populate(GLOBALS->mainwindow, NULL); } static void ui_hub_reptotal_activate_toggle (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GVariant *old_state, *new_state; old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_boolean (!g_variant_get_boolean (old_state)); DB( g_print ("Toggle action %s activated, state changes from %d to %d\n", g_action_get_name (G_ACTION (action)), g_variant_get_boolean (old_state), g_variant_get_boolean (new_state)) ); g_simple_action_set_state (action, new_state); g_variant_unref (old_state); PREFS->hub_tot_raw = g_variant_get_boolean (new_state); ui_hub_reptotal_populate(GLOBALS->mainwindow, NULL); } static const GActionEntry actions[] = { // name, function(), type, state, { "view", ui_hub_reptotal_activate_radio , "s", "'topcat'", NULL, {0,0,0} }, { "raw" , ui_hub_reptotal_activate_toggle, NULL, "false" , NULL, {0,0,0} }, }; void ui_hub_reptotal_setup(struct hbfile_data *data) { GAction *action; GVariant *new_state; DB( g_print("\n[hub-total] setup\n") ); data->hubtot_filter = da_flt_malloc(); filter_reset(data->hubtot_filter); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_hubtot_range), PREFS->hub_tot_range); //#1989211 option to include xfer by default if(PREFS->stat_includexfer == FALSE) filter_preset_type_set(data->hubtot_filter, FLT_TYPE_INTXFER, FLT_EXCLUDE); if( !G_IS_SIMPLE_ACTION_GROUP(data->hubtot_action_group) ) return; action = g_action_map_lookup_action (G_ACTION_MAP (data->hubtot_action_group), "view"); if( action ) { const gchar *value = "cat"; switch( PREFS->hub_tot_view ) { case HUB_TOT_VIEW_TOPCAT: value = "topcat"; break; case HUB_TOT_VIEW_TOPPAY: value = "toppay"; break; case HUB_TOT_VIEW_TOPACC: value = "topacc"; break; case HUB_TOT_VIEW_ACCBAL: value = "accbal"; break; case HUB_TOT_VIEW_GRPBAL: value = "grpbal"; break; } new_state = g_variant_new_string (value); g_simple_action_set_state (G_SIMPLE_ACTION (action), new_state); } //#2066161 raw amount persist action = g_action_map_lookup_action (G_ACTION_MAP (data->hubtot_action_group), "raw"); if( action ) { GVariant *new_bool = g_variant_new_boolean(PREFS->hub_tot_raw); g_simple_action_set_state (G_SIMPLE_ACTION (action), new_bool); } } void ui_hub_reptotal_dispose(struct hbfile_data *data) { DB( g_print("\n[hub-total] dispose\n") ); gtk_chart_set_datas_none(GTK_CHART(data->RE_hubtot_chart)); da_flt_free(data->hubtot_filter); data->hubtot_filter = NULL; } GtkWidget *ui_hub_reptotal_create(struct hbfile_data *data) { GtkWidget *hub, *hbox, *bbox, *tbar; GtkWidget *label, *widget, *image; DB( g_print("\n[hub-total] create\n") ); // /!\ this widget has to be freed widget = (GtkWidget *)create_list_topspending(); data->LV_hubtot = widget; hub = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hb_widget_set_margins(GTK_WIDGET(hub), 0, SPACING_SMALL, SPACING_SMALL, SPACING_SMALL); data->GR_hubtot = hub; /* chart + listview */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hbtk_box_prepend (GTK_BOX (hub), hbox); widget = gtk_chart_new(CHART_TYPE_PIE); data->RE_hubtot_chart = widget; gtk_chart_set_minor_prefs(GTK_CHART(widget), PREFS->euro_value, PREFS->minor_cur.symbol); gtk_chart_set_currency(GTK_CHART(widget), GLOBALS->kcur); gtk_chart_show_legend(GTK_CHART(widget), TRUE, TRUE); hbtk_box_prepend (GTK_BOX (hbox), widget); //list toolbar tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (hub), tbar); label = make_label_group(_("Total chart")); data->LB_hubtot = label; gtk_box_prepend (GTK_BOX (tbar), label); /* total + date range */ bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = gtk_menu_button_new(); gtk_box_prepend (GTK_BOX (bbox), widget); gtk_menu_button_set_direction (GTK_MENU_BUTTON(widget), GTK_ARROW_UP); gtk_widget_set_halign (widget, GTK_ALIGN_END); image = hbtk_image_new_from_icon_name_16 (ICONNAME_EMBLEM_SYSTEM); g_object_set (widget, "image", image, NULL); GSimpleActionGroup *group = g_simple_action_group_new (); data->hubtot_action_group = group; g_action_map_add_action_entries (G_ACTION_MAP (group), actions, G_N_ELEMENTS (actions), data); gtk_widget_insert_action_group (widget, "actions", G_ACTION_GROUP(group)); //gmenu test (see test folder into gtk) GMenu *menu, *section; menu = g_menu_new (); section = g_menu_new (); g_menu_append_section(menu, _("Top by"), G_MENU_MODEL(section)); g_menu_append (section, _("Category") , "actions.view::topcat"); g_menu_append (section, _("Payee") , "actions.view::toppay"); g_menu_append (section, _("Account") , "actions.view::topacc"); //g_object_unref (section); //5.8 //section = g_menu_new (); //g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("Raw amount"), "actions.raw"); g_object_unref (section); section = g_menu_new (); g_menu_append_section (menu, _("Balance"), G_MENU_MODEL(section)); g_menu_append (section, _("Account"), "actions.view::accbal"); g_menu_append (section, _("Account group"), "actions.view::grpbal"); g_object_unref (section); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); data->CY_hubtot_range = make_daterange(NULL, DATE_RANGE_FLAG_CUSTOM_HIDDEN); gtk_box_append (GTK_BOX (tbar), data->CY_hubtot_range); //hbtk_radio_button_connect (GTK_CONTAINER(data->RA_type), "toggled", G_CALLBACK (ui_hub_reptotal_populate), NULL); g_signal_connect (data->CY_hubtot_range, "changed", G_CALLBACK (ui_hub_reptotal_populate), NULL); return hub; } homebank-5.9.1/src/hub-reptime.c0000664000175000017500000004045414761067663012200 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "dsp-mainwindow.h" #include "hub-reptime.h" #include "gtk-chart.h" #include "list-report.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; static gint list_reptime_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { //gint sortcol = GPOINTER_TO_INT(userdata); gint retval = 0; DataRow *dr1, *dr2; gtk_tree_model_get(model, a, LST_REPTIME_ROW, &dr1, -1); gtk_tree_model_get(model, b, LST_REPTIME_ROW, &dr2, -1); //total always at bottom if( dr1->pos == LST_REPORT_POS_TOTAL ) { retval = -1; } else { if( dr2->pos == LST_REPORT_POS_TOTAL ) { retval = 1; } else { retval = dr2->pos - dr1->pos; } } //DB( g_print(" sort %d=%d or %.2f=%.2f :: %d\n", pos1,pos2, val1, val2, ret) ); return retval; } static GtkWidget *create_list_reptime(void) { GtkTreeStore *store; GtkWidget *view; /* create list store */ store = lst_rep_time_new(); //treeview view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); //5.7 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REPTIME_POS , list_reptime_compare_func, GINT_TO_POINTER(LST_REPTIME_POS), NULL); //gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_REPTIME_AMOUNT , list_reptime_compare_func, GINT_TO_POINTER(LST_REPTIME_AMOUNT), NULL); //gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), list_reptime_compare_func, NULL, NULL); return(view); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void ui_hub_reptime_update(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; gchar *title = ""; gboolean showmono = TRUE; DB( g_print("\n[hub-time] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); switch( PREFS->hub_tim_view ) { case HUB_TIM_VIEW_SPENDING: title = _("Spending"); if(PREFS->hub_tim_raw) title = _("Expense"); break; case HUB_TIM_VIEW_REVENUE: title = _("Revenue"); if(PREFS->hub_tim_raw) title = _("Income"); break; case HUB_TIM_VIEW_SPEREV: title = _("Spending & Revenue"); if(PREFS->hub_tim_raw) title = _("Expense & Income"); break; case HUB_TIM_VIEW_ACCBALANCE: title = _("Account Balance"); showmono = FALSE; break; case HUB_TIM_VIEW_GRPBALANCE: title = _("Account Group Balance"); showmono = FALSE; break; case HUB_TIM_VIEW_ALLBALANCE: title = _("Global Balance"); break; } //time chart gtk_chart_set_showmono(GTK_CHART(data->RE_hubtim_chart), showmono); gtk_chart_show_legend(GTK_CHART(data->RE_hubtim_chart), FALSE, FALSE); gtk_chart_set_color_scheme(GTK_CHART(data->RE_hubtim_chart), PREFS->report_color_scheme); gtk_chart_set_smallfont (GTK_CHART(data->RE_hubtim_chart), PREFS->rep_smallfont); gtk_chart_set_currency(GTK_CHART(data->RE_hubtim_chart), GLOBALS->kcur); gtk_chart_show_xval(GTK_CHART(data->RE_hubtim_chart), TRUE); //5.7 trendrow is unused, we pass the treeview to get the column labels gtk_chart_set_datas_time(GTK_CHART(data->RE_hubtim_chart), GTK_TREE_VIEW(data->LV_hubtim), data->hubtim_dt, data->hubtim_rows , data->hubtim_cols, title, NULL); } void ui_hub_reptime_clear(GtkWidget *widget, gpointer user_data) { } void ui_hub_reptime_populate(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; GtkTreeModel *model; GtkTreeIter iter; DataTable *dt; gint range; gint tmpview, tmpsrc, tmpintvl; guint i, n_inserted, flags; DB( g_print("\n[hub-time] populate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->hubtim_filter == NULL) return; tmpview = PREFS->hub_tim_view; //default value tmpsrc = REPORT_GRPBY_TYPE; tmpintvl = REPORT_INTVL_MONTH; switch( tmpview ) { case HUB_TIM_VIEW_ACCBALANCE: tmpsrc = REPORT_GRPBY_ACCOUNT; break; case HUB_TIM_VIEW_GRPBALANCE: tmpsrc = REPORT_GRPBY_ACCGROUP; break; case HUB_TIM_VIEW_ALLBALANCE: tmpsrc = REPORT_GRPBY_NONE; break; } range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_hubtim_range)); PREFS->hub_tim_range = range; DB( g_print(" - range=%d\n", range) ); filter_preset_daterange_set(data->hubtim_filter, range, 0); filter_preset_type_set(data->hubtim_filter, FLT_TYPE_INTXFER, FLT_EXCLUDE); gtk_chart_set_datas_none(GTK_CHART(data->RE_hubtim_chart)); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_hubtim)); gtk_tree_store_clear (GTK_TREE_STORE(model)); if(data->hubtim_dt) { da_datatable_free (data->hubtim_dt); data->hubtim_dt = NULL; } GQueue *txn_queue = hbfile_transaction_get_partial(data->hubtim_filter->mindate, data->hubtim_filter->maxdate); flags = REPORT_COMP_FLG_NONE; DB( g_print(" - forecast=%d\n", PREFS->rep_forcast) ); if( PREFS->rep_forcast == TRUE ) flags |= REPORT_COMP_FLG_FORECAST; if( tmpview == HUB_TIM_VIEW_SPENDING || tmpview == HUB_TIM_VIEW_REVENUE || tmpview == HUB_TIM_VIEW_SPEREV ) { DB( g_print(" mode: spending/revenue\n") ); DB( g_print(" - rawamount=%d\n", PREFS->hub_tim_raw) ); if( PREFS->hub_tim_raw == FALSE ) flags |= REPORT_COMP_FLG_CATSIGN; flags |= REPORT_COMP_FLG_SPENDING; flags |= REPORT_COMP_FLG_REVENUE; if( tmpview == HUB_TIM_VIEW_SPENDING ) flags &= ~REPORT_COMP_FLG_REVENUE; if( tmpview == HUB_TIM_VIEW_REVENUE ) flags &= ~REPORT_COMP_FLG_SPENDING; //filter_preset_type_set(data->hubtim_filter, FLT_TYPE_EXPENSE, FLT_INCLUDE); dt = report_compute(tmpsrc, tmpintvl, data->hubtim_filter, txn_queue, flags); } else { DB( g_print(" mode: balance\n") ); filter_preset_type_set(data->hubtim_filter, FLT_TYPE_ALL, FLT_OFF); dt = report_compute(tmpsrc, tmpintvl, data->hubtim_filter, txn_queue, flags | REPORT_COMP_FLG_BALANCE); //dt = report_compute_balance(tmpsrc, tmpintvl, data->hubtim_filter); } g_queue_free (txn_queue); if(dt) { data->hubtim_dt = dt; DB( g_print(" rows=%d\n", dt->nbrows) ); // clear and detach our model g_object_ref(model); // Make sure the model stays with us after the tree view unrefs it gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_hubtim), NULL); // Detach model from view //tooltip get column label, so keep this lst_rep_time_renewcol(GTK_TREE_VIEW(data->LV_hubtim), model, dt, TRUE); n_inserted = 0; for(i=0; inbrows; i++) { DataRow *dr; guint32 reskey; reskey = dt->keylist[i]; dr = report_data_get_row(dt, reskey); DB( g_printf(" eval %d: %d '%s' %.2f\n", i, reskey, dr->label, dr->rowexp + dr->rowinc ) ); //#2024940 test on exp/inc individually if( (hb_amount_cmp(dr->rowexp, 0.0)==0) && (hb_amount_cmp(dr->rowinc, 0.0)==0) ) { DB( g_printf(" >skip: no data %.2f %2f\n", dr->rowexp, dr->rowinc) ); continue; } //if( tmpsrc == REPORT_GRPBY_ACCOUNT && (i == 0) ) // continue; n_inserted++; DB( g_printf(" >insert\n") ); gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &iter, NULL, -1, LST_REPTIME_POS, n_inserted, LST_REPTIME_KEY, reskey, LST_REPTIME_LABEL, dr->label, LST_REPTIME_ROW, dr, -1); } data->hubtim_rows = n_inserted; data->hubtim_cols = dt->nbcols; //add fake total row as chart will retrieve 1 !! if( n_inserted > 1 ) { DataRow *dr = dt->totrow; //TODO: crappy here dr->pos = LST_REPORT_POS_TOTAL; gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &iter, NULL, -1, LST_REPTIME_POS, LST_REPORT_POS_TOTAL, LST_REPTIME_KEY, -1, LST_REPTIME_LABEL, _("Total"), LST_REPTIME_ROW, dr, -1); } // Re-attach model to view gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_hubtim), model); g_object_unref(model); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), LST_REPTIME_POS, GTK_SORT_DESCENDING); //5.7.3 update chart and widgets { gchar *daterange; //data->hubtim_total = total; ui_hub_reptime_update(widget, data); daterange = filter_daterange_text_get(data->hubtim_filter); gtk_widget_set_tooltip_markup(GTK_WIDGET(data->CY_hubtim_range), daterange); g_free(daterange); } //we don't free dt here as it it used by graph } } static void ui_hub_reptime_activate_radio (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GVariant *old_state, *new_state; old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_string (g_variant_get_string (parameter, NULL)); DB( g_print ("Radio action %s activated, state changes from %s to %s\n", g_action_get_name (G_ACTION (action)), g_variant_get_string (old_state, NULL), g_variant_get_string (new_state, NULL)) ); PREFS->hub_tim_view = HUB_TIM_VIEW_NONE; if( !strcmp("expmon", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tim_view = HUB_TIM_VIEW_SPENDING; else if( !strcmp("incmon", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tim_view = HUB_TIM_VIEW_REVENUE; else if( !strcmp("expinc", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tim_view = HUB_TIM_VIEW_SPEREV; else if( !strcmp("accbal", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tim_view = HUB_TIM_VIEW_ACCBALANCE; else if( !strcmp("grpbal", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tim_view = HUB_TIM_VIEW_GRPBALANCE; else if( !strcmp("allbal", g_variant_get_string(new_state, NULL)) ) PREFS->hub_tim_view = HUB_TIM_VIEW_ALLBALANCE; g_simple_action_set_state (action, new_state); g_variant_unref (old_state); ui_hub_reptime_populate(GLOBALS->mainwindow, NULL); } static void ui_hub_reptime_activate_toggle (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GVariant *old_state, *new_state; old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_boolean (!g_variant_get_boolean (old_state)); DB( g_print ("Toggle action %s activated, state changes from %d to %d\n", g_action_get_name (G_ACTION (action)), g_variant_get_boolean (old_state), g_variant_get_boolean (new_state)) ); g_simple_action_set_state (action, new_state); g_variant_unref (old_state); PREFS->hub_tim_raw = g_variant_get_boolean (new_state); ui_hub_reptime_populate(GLOBALS->mainwindow, NULL); } static const GActionEntry actions[] = { // name, function(), type, state, { "view", ui_hub_reptime_activate_radio , "s", "'cat'", NULL, {0,0,0} }, { "raw" , ui_hub_reptime_activate_toggle, NULL, "false" , NULL, {0,0,0} }, }; void ui_hub_reptime_setup(struct hbfile_data *data) { GAction *action; GVariant *new_state; DB( g_print("\n[hub-time] setup\n") ); data->hubtim_filter = da_flt_malloc(); filter_reset(data->hubtim_filter); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_hubtim_range), PREFS->hub_tim_range); if( !G_IS_SIMPLE_ACTION_GROUP(data->hubtim_action_group) ) return; action = g_action_map_lookup_action (G_ACTION_MAP (data->hubtim_action_group), "view"); if( action ) { const gchar *value = "expmon"; switch( PREFS->hub_tim_view ) { case HUB_TIM_VIEW_SPENDING : value = "expmon"; break; case HUB_TIM_VIEW_REVENUE : value = "incmon"; break; case HUB_TIM_VIEW_SPEREV : value = "expinc"; break; case HUB_TIM_VIEW_ACCBALANCE: value = "accbal"; break; case HUB_TIM_VIEW_GRPBALANCE: value = "grpbal"; break; case HUB_TIM_VIEW_ALLBALANCE: value = "allbal"; break; } new_state = g_variant_new_string (value); g_simple_action_set_state (G_SIMPLE_ACTION (action), new_state); } //#2066161 raw amount persist action = g_action_map_lookup_action (G_ACTION_MAP (data->hubtim_action_group), "raw"); if( action ) { GVariant *new_bool = g_variant_new_boolean(PREFS->hub_tim_raw); g_simple_action_set_state (G_SIMPLE_ACTION (action), new_bool); } } void ui_hub_reptime_dispose(struct hbfile_data *data) { DB( g_print("\n[hub-time] dispose\n") ); DB( g_print(" set chart to none\n") ); gtk_chart_set_datas_none(GTK_CHART(data->RE_hubtim_chart)); da_flt_free(data->hubtim_filter); data->hubtim_filter = NULL; DB( g_print(" free dt %p\n", data->hubtim_dt) ); if(data->hubtim_dt) { da_datatable_free (data->hubtim_dt); data->hubtim_dt = NULL; } } GtkWidget *ui_hub_reptime_create(struct hbfile_data *data) { GtkWidget *hub, *hbox, *bbox, *tbar; GtkWidget *label, *widget, *image; DB( g_print("\n[hub-time] create\n") ); // /!\ this widget has to be freed widget = (GtkWidget *)create_list_reptime(); data->LV_hubtim = widget; hub = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hb_widget_set_margins(GTK_WIDGET(hub), 0, SPACING_SMALL, SPACING_SMALL, SPACING_SMALL); data->GR_hubtim = hub; /* chart + listview */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hbtk_box_prepend (GTK_BOX (hub), hbox); widget = gtk_chart_new(CHART_TYPE_STACK); data->RE_hubtim_chart = widget; gtk_chart_set_minor_prefs(GTK_CHART(widget), PREFS->euro_value, PREFS->minor_cur.symbol); gtk_chart_set_currency(GTK_CHART(widget), GLOBALS->kcur); gtk_chart_show_legend(GTK_CHART(widget), TRUE, FALSE); hbtk_box_prepend (GTK_BOX (hbox), widget); //list toolbar tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (hub), tbar); label = make_label_group(_("Time chart")); data->LB_hubtim = label; gtk_box_prepend (GTK_BOX (tbar), label); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = gtk_menu_button_new(); gtk_box_prepend (GTK_BOX (bbox), widget); gtk_menu_button_set_direction (GTK_MENU_BUTTON(widget), GTK_ARROW_UP); gtk_widget_set_halign (widget, GTK_ALIGN_END); image = hbtk_image_new_from_icon_name_16 (ICONNAME_EMBLEM_SYSTEM); g_object_set (widget, "image", image, NULL); //gmenu test (see test folder into gtk) GMenu *menu, *section; menu = g_menu_new (); section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("Spending") , "actions.view::expmon"); //5.7.5 g_menu_append (section, _("Revenue") , "actions.view::incmon"); g_menu_append (section, _("Spending & Revenue"), "actions.view::expinc"); //g_object_unref (section); //5.8 //section = g_menu_new (); //g_menu_append_section (menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("Raw amount"), "actions.raw"); g_object_unref (section); section = g_menu_new (); g_menu_append_section(menu, _("Balance"), G_MENU_MODEL(section)); g_menu_append (section, _("Account") , "actions.view::accbal"); g_menu_append (section, _("Account group"), "actions.view::grpbal"); g_menu_append (section, _("Global") , "actions.view::allbal"); g_object_unref (section); GSimpleActionGroup *group = g_simple_action_group_new (); data->hubtim_action_group = group; g_action_map_add_action_entries (G_ACTION_MAP (group), actions, G_N_ELEMENTS (actions), data); gtk_widget_insert_action_group (widget, "actions", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); data->CY_hubtim_range = make_daterange(NULL, DATE_RANGE_FLAG_CUSTOM_HIDDEN); gtk_box_append (GTK_BOX (tbar), data->CY_hubtim_range); //hbtk_radio_button_connect (GTK_CONTAINER(data->RA_type), "toggled", G_CALLBACK (ui_hub_reptime_populate), NULL); g_signal_connect (data->CY_hubtim_range, "changed", G_CALLBACK (ui_hub_reptime_populate), NULL); return hub; } homebank-5.9.1/src/hb-import.h0000644000175000017500000001342414736461415011653 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_IMPORT_H__ #define __HB_IMPORT_H__ #include "hb-split.h" typedef struct _generic_file GenFile; typedef struct _generic_acc GenAcc; typedef struct _generic_split GenSplit; typedef struct _generic_txn GenTxn; //those are guin32 special values #define DST_ACC_GLOBAL 100001 #define DST_ACC_NEW 100002 #define DST_ACC_SKIP 100010 /* csv format validator */ enum { CSV_STRING, CSV_DATE, CSV_INT, CSV_DOUBLE }; struct _generic_file { guint32 key; gchar *filepath; gint filetype; const gchar *encoding; gint datefmt; gboolean loaded; gboolean invaliddatefmt; }; struct _generic_acc { guint32 kfile; gint filetype; guint32 key; gchar *name; //maybe new user name gchar *number; guint32 kacc; //100001 = NEW, 100002 = SKIP gboolean is_dupcheck; //if target account was checked for duplicate gboolean is_ccard; gboolean is_unamed; //if src account has no name into file gdouble initial; guint n_txnall; //nb of txn total guint n_txnimp; //nb of txn to import guint n_txnbaddate; //nb of txn with bad date guint n_txnsimimp; //nb of txn similar import guint n_txnsimdst; //nb of txn similar dstacccount }; struct _generic_split { gchar *category; gdouble amount; gchar *memo; }; struct _generic_txn { guint32 kfile; //todo: remove this guint32 kacc; gchar *account; gchar *rawnumber; // ; check_number gchar *rawpayee; //P ; name gchar *rawmemo; //M ; memo gchar *fitid; // 5.5.1 add OFX fitid gchar *date; //D ; date_posted gchar *number; //N ; gchar *payee; gchar *memo; gchar *category; //L gchar *tags; // guint row; //5.8 #2063416 same date txn guint32 julian; gushort paymode; // ; transactiontype gdouble amount; //T ; amount gboolean togamount; gboolean reconciled; //R gboolean cleared; //C gboolean to_import; gboolean is_imp_similar; gboolean is_dst_similar; gint nb_splits; GenSplit splits[TXN_MAX_SPLIT]; GList *lst_existing; }; typedef struct _ImportContext ImportContext; struct _ImportContext { GList *gen_lst_file; GList *gen_lst_acc; GList *gen_lst_txn; guint32 gen_next_acckey; //to keep track of where we are guint32 curr_kfile; guint32 curr_kacc; // ofx stuff GenAcc *curr_acc; gboolean curr_acc_isnew; gint opt_dateorder; gint opt_daygap; gint opt_ofxname; gint opt_ofxmemo; gboolean opt_qifmemo; gboolean opt_qifswap; gboolean opt_ucfirst; gboolean opt_togamount; gboolean set_pending; gboolean do_auto_payee; gboolean do_auto_assign; //gboolean is_ccard; //GList *trans_list; // trn storage //gint next_acc_key; //max key account when start //gint datefmt; //const gchar *encoding; /*gint nb_src_acc, nb_new_acc; gint cnt_new_ope; gint cnt_new_pay; gint cnt_new_cat; gint cnt_err_date; gint nb_duplicate;*/ }; enum QIF_Type { QIF_NONE, QIF_HEADER, QIF_ACCOUNT, QIF_CATEGORY, QIF_CLASS, QIF_MEMORIZED, QIF_TRANSACTION, QIF_SECURITY, QIF_PRICES }; void da_import_context_new(ImportContext *ctx); void da_import_context_destroy(ImportContext *ctx); GenFile *da_gen_file_malloc(void); void da_gen_file_free(GenFile *genfile); GenFile *da_gen_file_get(GList *lst_file, guint32 key); GenFile *da_gen_file_append_from_filename(ImportContext *ictx, gchar *filename); GenAcc *da_gen_acc_malloc(void); void da_gen_acc_free(GenAcc *item); GenAcc *da_gen_acc_get_by_key(GList *lst_acc, guint32 key); GenTxn *da_gen_txn_malloc(void); void da_gen_txn_free(GenTxn *item); GList *da_gen_txn_sort(GList *list); void da_gen_txn_destroy(ImportContext *ctx); void da_gen_txn_new(ImportContext *ctx); void da_gen_txn_move(GenTxn *sitem, GenTxn *ditem); void da_gen_txn_append(ImportContext *ctx, GenTxn *item); gchar *hb_import_filetype_char_get(GenAcc *acc); GenAcc *hb_import_gen_acc_get_next(ImportContext *ictx, gint filetype, gchar *name, gchar *number); gint hb_import_gen_acc_count_txn(ImportContext *ictx, GenAcc *genacc); Transaction *hb_import_convert_txn(GenAcc *genacc, GenTxn *gentxn); void hb_import_load_all(ImportContext *ictx); gint hb_import_gen_txn_check_target_similar(ImportContext *ictx, GenAcc *genacc); gint hb_import_gen_txn_check_duplicate(ImportContext *ictx, GenAcc *genacc); gint hb_import_option_apply(ImportContext *ictx, GenAcc *genacc); Account *import_create_account(gchar *name, gchar *number); Account *hb_import_acc_find_existing(gchar *name, gchar *number); void hb_import_apply(ImportContext *ictx); GList *homebank_csv_import(ImportContext *ictx, GenFile *genfile); GList *homebank_ofx_import(ImportContext *ictx, GenFile *genfile); GList *homebank_qif_import(ImportContext *ictx, GenFile *genfile); GList *account_import_qif(gchar *filename, ImportContext *ictx); gdouble hb_qif_parser_get_amount(gchar *string); gboolean hb_csv_test_line(gchar *rawline); #if MYDEBUG void _import_context_debug_file_list(ImportContext *ctx); void _import_context_debug_acc_list(ImportContext *ctx); void _import_context_debug_txn_list(ImportContext *ctx); #endif #endif homebank-5.9.1/src/hub-reptime.h0000664000175000017500000000305614736461415012175 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HUB_REPTIME_H__ #define __HUB_REPTIME_H__ // /!\ prefs stored value enum { HUB_TIM_VIEW_NONE, HUB_TIM_VIEW_SPENDING, HUB_TIM_VIEW_ACCBALANCE, HUB_TIM_VIEW_ALLBALANCE, //5.7.3 HUB_TIM_VIEW_GRPBALANCE, //5.7.5 HUB_TIM_VIEW_REVENUE, HUB_TIM_VIEW_SPEREV, }; /* list top spending */ enum { LST_REPTIME_POS, LST_REPTIME_KEY, LST_REPTIME_LABEL, LST_REPTIME_ROW, NUM_LST_REPTIME }; void ui_hub_reptime_update(GtkWidget *widget, gpointer user_data); void ui_hub_reptime_clear(GtkWidget *widget, gpointer user_data); void ui_hub_reptime_populate(GtkWidget *widget, gpointer user_data); void ui_hub_reptime_setup(struct hbfile_data *data); void ui_hub_reptime_dispose(struct hbfile_data *data); GtkWidget *ui_hub_reptime_create(struct hbfile_data *data); #endif homebank-5.9.1/src/ui-hbfile.c0000644000175000017500000003103515005624200011566 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-widgets.h" #include "hbtk-switcher.h" #include "ui-hbfile.h" #include "ui-category.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; gchar *CYA_TXN_POSTMODE[] = { N_("Due Date"), N_("Next Payout"), N_("In Advance"), NULL }; /* = = = = = = = = = = = = = = = = */ static void defhbfile_cb_update_maxpostdate(GtkWidget *widget, gpointer user_data) { struct defhbfile_data *data; gint smode, weekday, nbdays, nbmonths; guint32 maxpostdate; gchar buffer[256], *newtext; GDate *date; DB( g_print("\n[ui-hbfile] update maxpostdate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); smode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_postmode)); nbdays = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NU_nbdays)); weekday = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NU_weekday)); nbmonths = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NU_nbmonths)); DB( g_print(" -> postmode=%d\n", smode) ); hb_widget_visible(data->GR_payout, smode == ARC_POSTMODE_PAYOUT ? TRUE : FALSE); hb_widget_visible(data->GR_advance, smode == ARC_POSTMODE_ADVANCE ? TRUE : FALSE); //fill in the max date evaluation maxpostdate = scheduled_date_get_post_max(GLOBALS->today, smode, nbdays, weekday, nbmonths); date = g_date_new_julian (maxpostdate); g_date_strftime (buffer, 256-1, PREFS->date_format, date); //#2102726 newtext = g_strdup_printf(_("Maximum post date is %s (included)"), buffer); gtk_label_set_text(GTK_LABEL(data->LB_maxpostdate), newtext); g_date_free(date); g_free(newtext); } /* ** get widgets contents from the selected account */ static void defhbfile_get(GtkWidget *widget, gpointer user_data) { struct defhbfile_data *data; gchar *owner; guint32 vehicle; gint smode, weekday, nbdays, nbmonths; gdouble earnbyh; DB( g_print("\n[ui-hbfile] get\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); // get values owner = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_owner)); //vehicle = ui_cat_comboboxentry_get_key(GTK_COMBO_BOX(data->PO_grp)); vehicle = ui_cat_entry_popover_get_key(GTK_BOX(data->PO_grp)); smode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_postmode)); weekday = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NU_weekday)); nbdays = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NU_nbdays)); nbmonths = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->NU_nbmonths)); earnbyh = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_earnbyh)); // check for changes if(strcasecmp(owner, GLOBALS->owner)) data->change++; if(smode != GLOBALS->auto_smode) data->change++; if(weekday != GLOBALS->auto_weekday) data->change++; if(nbmonths != GLOBALS->auto_nbmonths) data->change++; if(nbdays != GLOBALS->auto_nbdays) data->change++; if(earnbyh != GLOBALS->lifen_earnbyh) data->change++; if(vehicle != GLOBALS->vehicle_category) data->change++; // update if (owner && *owner) hbfile_change_owner(g_strdup(owner)); GLOBALS->vehicle_category = vehicle; GLOBALS->auto_smode = smode; GLOBALS->auto_weekday = weekday; GLOBALS->auto_nbmonths = nbmonths; GLOBALS->auto_nbdays = nbdays; GLOBALS->lifen_earnbyh = earnbyh; DB( g_print(" -> owner %s\n", GLOBALS->owner) ); DB( g_print(" -> ccgrp %d\n", GLOBALS->vehicle_category) ); DB( g_print(" -> smode %d\n", GLOBALS->auto_smode) ); DB( g_print(" -> weekday %d\n", GLOBALS->auto_weekday) ); DB( g_print(" -> nbmonths %d\n", GLOBALS->auto_nbmonths) ); DB( g_print(" -> nbdays %d\n", GLOBALS->auto_nbdays) ); } /* ** set widgets contents from the selected account */ static void defhbfile_set(GtkWidget *widget, gpointer user_data) { struct defhbfile_data *data; DB( g_print("\n[ui-hbfile] set\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print(" -> ccgrp %d\n", GLOBALS->vehicle_category) ); DB( g_print(" -> autoinsert %d\n", GLOBALS->auto_nbdays) ); if(GLOBALS->owner) gtk_entry_set_text(GTK_ENTRY(data->ST_owner), GLOBALS->owner); //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_grp), GLOBALS->vehicle_category); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_grp), GLOBALS->vehicle_category); hbtk_switcher_set_active (HBTK_SWITCHER(data->RA_postmode), GLOBALS->auto_smode); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NU_nbdays), GLOBALS->auto_nbdays); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NU_weekday), GLOBALS->auto_weekday); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NU_nbmonths), GLOBALS->auto_nbmonths); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_earnbyh), GLOBALS->lifen_earnbyh); defhbfile_cb_update_maxpostdate(widget, user_data); } static void defhbfile_cb_postmode_toggled(GtkWidget *radiobutton, gpointer user_data) { //struct defhbfile_data *data; //gint postmode; DB( g_print("\n[ui-hbfile] toggle postmode\n") ); defhbfile_cb_update_maxpostdate(radiobutton, NULL); } static gboolean defhbfile_cleanup(struct defhbfile_data *data, gint result) { gboolean doupdate = FALSE; DB( g_print("\n[ui-hbfile] cleanup\n") ); if(result == GTK_RESPONSE_ACCEPT) { defhbfile_get(data->ST_owner, NULL); DB( g_print(" -> GLOBAL change = %d\n", GLOBALS->changes_count) ); DB( g_print(" -> we update, change = %d\n", data->change) ); GLOBALS->changes_count += data->change; } return doupdate; } static void defhbfile_setup(struct defhbfile_data *data) { DB( g_print("\n[ui-hbfile] setup\n") ); data->change = 0; //5.5 done in popover //ui_cat_comboboxentry_populate(GTK_COMBO_BOX(data->PO_grp), GLOBALS->h_cat); defhbfile_set(data->ST_owner, NULL); } GtkWidget *create_defhbfile_dialog (void) { struct defhbfile_data *data; GtkWidget *dialog, *content_area, *hbox, *content_grid, *group_grid; GtkWidget *label, *widget; gint crow, row; DB( g_print("\n[ui-hbfile] new\n") ); data = g_malloc0(sizeof(struct defhbfile_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("File properties"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" - window=%p, inst_data=%p\n", dialog, data) ); gtk_window_set_resizable(GTK_WINDOW (dialog), FALSE); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); hb_widget_set_margin(GTK_WIDGET(content_grid), SPACING_LARGE); hbtk_box_prepend (GTK_BOX (content_area), content_grid); crow = 0; // group :: General group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(_("General")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_widget(_("_Title:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_string(label); data->ST_owner = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: Scheduled transactions group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(_("Scheduled transactions")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; //message of post date label = make_label(NULL, 0.0, 0.5); data->LB_maxpostdate = label; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(label)), GTK_STYLE_CLASS_DIM_LABEL); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 2, 1); row++; label = make_label_widget(_("Mode:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup(HBTK_SWITCHER(widget), CYA_TXN_POSTMODE, TRUE); data->RA_postmode = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); //next payout group row++; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); data->GR_payout = hbox; gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 1, 1); widget = make_numeric(NULL, 1, 28); data->NU_weekday = widget; gtk_box_prepend (GTK_BOX (hbox), widget); label = make_label(_("of each"), 0.0, 0.5); gtk_box_prepend (GTK_BOX (hbox), label); widget = make_numeric(NULL, 1, 12); data->NU_nbmonths = widget; gtk_box_prepend (GTK_BOX (hbox), widget); label = make_label(_("month"), 0.0, 0.5); gtk_box_prepend (GTK_BOX (hbox), label); //in advance group row++; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); data->GR_advance = hbox; gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 1, 1); widget = make_numeric(NULL, 1, 366); data->NU_nbdays = widget; gtk_box_prepend (GTK_BOX (hbox), widget); //TRANSLATORS: there is a spinner on the left of this label, and so you have 0....x days in advance the current date label = make_label(_("days"), 0.0, 0.5); gtk_box_prepend (GTK_BOX (hbox), label); // group :: life energy group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(_("Life Energy")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); label = make_label_widget(_("_Earn by hour:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); widget = make_amount_pos(label); data->ST_earnbyh = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); // group :: Vehicle cost group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(_("Vehicle cost")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = make_label_widget(_("_Category:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); //widget = ui_cat_comboboxentry_new(label); widget = ui_cat_entry_popover_new(label); data->PO_grp = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); gtk_widget_show_all (dialog); //setup, init and show window defhbfile_setup(data); //defhbfile_update(data->LV_arc, NULL); g_signal_connect (data->RA_postmode, "changed", G_CALLBACK (defhbfile_cb_postmode_toggled), &dialog); g_signal_connect (data->NU_nbdays, "value-changed", G_CALLBACK (defhbfile_cb_update_maxpostdate), NULL); g_signal_connect (data->NU_weekday, "value-changed", G_CALLBACK (defhbfile_cb_update_maxpostdate), NULL); g_signal_connect (data->NU_nbmonths, "value-changed", G_CALLBACK (defhbfile_cb_update_maxpostdate), NULL); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); // cleanup and destroy defhbfile_cleanup(data, result); gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return dialog; } homebank-5.9.1/src/ui-budget-tabview.h0000644000175000017500000000370214736461415013274 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 2018-2019 Adrien Dorsaz * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_BUD_TABVIEW_H__ #define __HB_BUD_TABVIEW_H__ //by default Maxime don't want table budget view to add/remove/rename categories #define HB_BUD_TABVIEW_EDIT_ENABLE 0 struct ui_bud_tabview_data { GtkWidget *dialog; GActionGroup * actions; // Number of changes to notify globally gint change; // Tree view with budget GtkWidget *TV_budget; GtkTreeViewColumn *TVC_category; GtkTreeSelection *TV_selection; // Radio buttons of view mode GtkWidget *RA_mode; // Tool bar #if HB_BUD_TABVIEW_EDIT_ENABLE GtkWidget *BT_category_add, *BT_category_delete, *BT_category_merge; #endif GtkWidget *BT_category_reset, *BT_category_force_monitoring; gulong HID_category_monitoring_toggle; GtkWidget *BT_expand, *BT_collapse; // Should the tree be collapsed gboolean TV_is_expanded; #if HB_BUD_TABVIEW_EDIT_ENABLE // Add Dialog GtkWidget *COMBO_add_parent, *EN_add_name, *BT_apply; // Merge Dialog GtkWidget *COMBO_merge_target, *CHECK_merge_delete; guint32 MERGE_source_category_key; #endif // Search GtkWidget *EN_search; }; typedef struct ui_bud_tabview_data ui_bud_tabview_data_t; GtkWidget *ui_bud_tabview_manage_dialog(void); #endif homebank-5.9.1/src/hb-tag.c0000644000175000017500000003476314773265341011121 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-tag.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; #if MYDEBUG static void da_tag_debug_array(guint32 *tags); #endif /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void da_tag_free(Tag *item) { DB( g_print("da_tag_free\n") ); if(item != NULL) { DB( g_print(" => %d, %s\n", item->key, item->name) ); g_free(item->name); g_free(item); } } Tag *da_tag_malloc(void) { DB( g_print("da_tag_malloc\n") ); return g_malloc0(sizeof(Tag)); } void da_tag_destroy(void) { DB( g_print("da_tag_destroy\n") ); g_hash_table_destroy(GLOBALS->h_tag); } void da_tag_new(void) { Tag *item; DB( g_print("da_tag_new\n") ); GLOBALS->h_tag = g_hash_table_new_full(g_int_hash, g_int_equal, (GDestroyNotify)g_free, (GDestroyNotify)da_tag_free); // insert our 'no tag' item = da_tag_malloc(); item->name = g_strdup(""); da_tag_insert(item); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void da_tag_max_key_ghfunc(gpointer key, Tag *item, guint32 *max_key) { *max_key = MAX(*max_key, item->key); } static gboolean da_tag_name_grfunc(gpointer key, Tag *item, gchar *name) { if( name && item->name ) { if(!strcasecmp(name, item->name)) return TRUE; } return FALSE; } /** * da_tag_length: * * Return value: the number of elements */ guint da_tag_length(void) { return g_hash_table_size(GLOBALS->h_tag); } /** * da_tag_delete: * * delete an tag from the GHashTable * * Return value: TRUE if the key was found and deleted * */ gboolean da_tag_delete(guint32 key) { DB( g_print("da_tag_delete %d\n", key) ); return g_hash_table_remove(GLOBALS->h_tag, &key); } /** * da_tag_insert: * * insert an tag into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_tag_insert(Tag *item) { guint32 *new_key; DB( g_print("da_tag_insert\n") ); new_key = g_new0(guint32, 1); *new_key = item->key; g_hash_table_insert(GLOBALS->h_tag, new_key, item); return TRUE; } /** * da_tag_append: * * append a new tag into the GHashTable * * Return value: TRUE if inserted * */ gboolean da_tag_append(Tag *item) { Tag *existitem; guint32 *new_key; DB( g_print("da_tag_append\n") ); if( item->name != NULL ) { /* ensure no duplicate */ //g_strstrip(item->name); existitem = da_tag_get_by_name( item->name ); if( existitem == NULL ) { new_key = g_new0(guint32, 1); *new_key = da_tag_get_max_key() + 1; item->key = *new_key; DB( g_print(" -> append id: %d\n", *new_key) ); g_hash_table_insert(GLOBALS->h_tag, new_key, item); return TRUE; } } DB( g_print(" -> %s already exist: %d\n", item->name, item->key) ); return FALSE; } Tag * da_tag_append_if_new(gchar *rawname) { Tag *retval = NULL; retval = da_tag_get_by_name(rawname); if(retval == NULL) { retval = da_tag_malloc(); retval->key = da_tag_get_max_key() + 1; retval->name = g_strdup(rawname); g_strstrip(retval->name); da_tag_insert(retval); } return retval; } /** * da_tag_get_max_key: * * Get the biggest key from the GHashTable * * Return value: the biggest key value * */ guint32 da_tag_get_max_key(void) { guint32 max_key = 0; g_hash_table_foreach(GLOBALS->h_tag, (GHFunc)da_tag_max_key_ghfunc, &max_key); return max_key; } /** * da_tag_get_by_name: * * Get an tag structure by its name * * Return value: Tag * or NULL if not found * */ Tag *da_tag_get_by_name(gchar *name) { DB( g_print("da_tag_get_by_name\n") ); return g_hash_table_find(GLOBALS->h_tag, (GHRFunc)da_tag_name_grfunc, name); } /** * da_tag_get: * * Get an tag structure by key * * Return value: Tag * or NULL if not found * */ Tag *da_tag_get(guint32 key) { DB( g_print("da_tag_get_tag\n") ); return g_hash_table_lookup(GLOBALS->h_tag, &key); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ gboolean tags_equal(guint32 *stags, guint32 *dtags) { guint count = 0; DB( g_print("\n[tags] compare\n") ); if( stags == NULL && dtags == NULL ) return TRUE; if( stags == NULL || dtags == NULL ) return FALSE; while(*stags != 0 && *dtags != 0 && count < 32) { if(*stags++ != *dtags++) return FALSE; } // both should be 0 if(*stags != *dtags) return FALSE; return TRUE; } guint tags_count(guint32 *tags) { guint count = 0; DB( g_print("\n[tags] count\n") ); if( tags == NULL ) return 0; while(*tags++ != 0 && count < 32) count++; return count; } guint32 *tags_clone(guint32 *tags) { guint32 *newtags = NULL; guint count; DB( g_print("\n[tags] clone %p\n", tags) ); if( tags == NULL ) return NULL; count = tags_count(tags); if(count > 0) { //1501962: we must also copy the final 0 newtags = g_memdup(tags, (count+1)*sizeof(guint32)); } return newtags; } static gboolean tags_key_exists(guint32 *tags, guint32 key) { guint count = 0; if( tags == NULL ) return FALSE; while(*tags != 0 && count < 32) { if( *tags == key ) return TRUE; tags++; count++; } return FALSE; } static void tags_deduplicate(guint32 *tags) { guint32 *tmp, *s, *d; guint count = 0; DB( g_print("\n[tags] deduplicate\n") ); if( tags == NULL ) return; DB( g_print(" tags %p\n", tags) ); tmp = s = tags_clone(tags); d = tags; DB( g_print(" tmp %p\n", tmp) ); DB( g_print(" s %p\n", s) ); *d = 0; while(*s != 0 && count < 32) { DB( g_print(" - tst %d\n", *s) ); if( tags_key_exists(tags, *s) == FALSE ) { *d = *s; d++; *d = 0; DB( g_print(" - add %d\n", *s) ); } else { DB( g_print(" - skip %d\n", *s) ); } s++; count++; } g_free(tmp); } gint tags_delete_unused(void) { GList *ltag, *list; gint count = 0; ltag = list = g_hash_table_get_values(GLOBALS->h_tag); while (list != NULL) { Tag *entry = list->data; if(entry->nb_use_all <= 0 && entry->key > 0) { da_tag_delete (entry->key); count++; } list = g_list_next(list); } g_list_free(ltag); return count; } static void _tags_fill_usage(guint32 *tags, gboolean txn) { guint count = 0; if(tags != NULL) { while(*tags != 0 && count < 32) { Tag *tag = da_tag_get(*tags); //#2106027 crash if( tag != NULL ) { tag->nb_use_all++; if( txn == TRUE ) tag->nb_use_txn++; } tags++; count++; } } } void tags_fill_usage(void) { GList *ltag; GList *lst_acc, *lnk_acc; GList *lnk_txn; GList *list; DB( g_print("[tags] fill usage\n") ); ltag = list = g_hash_table_get_values(GLOBALS->h_tag); while (list != NULL) { Tag *entry = list->data; entry->nb_use_all = 0; entry->nb_use_txn = 0; list = g_list_next(list); } g_list_free(ltag); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; _tags_fill_usage(txn->tags, TRUE); lnk_txn = g_list_next(lnk_txn); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; _tags_fill_usage(entry->tags, FALSE); list = g_list_next(list); } //future assign } static void tags_move(guint32 *tags, guint32 key1, guint32 key2) { guint count = 0; guint countdup = 0; guint32 *p; if( tags == NULL ) return; DB( g_print("\n[tags] move\n") ); p = tags; while(*p != 0 && count < 32) { if( *p == key1 ) { DB( g_print(" change %d to %d\n", key1, key2) ); *p = key2; } //count potential duplicate if( *p == key2 ) countdup++; p++; count++; } //TODO: ensure no duplicate on key2 if( countdup ) tags_deduplicate(tags); } guint32 * tags_parse(const gchar *tagstring) { gchar **str_array; guint32 *tags = NULL; guint32 *ptags; guint count, i; Tag *tag; DB( g_print("\n[tags] parse\n") ); if( tagstring ) { str_array = g_strsplit (tagstring, " ", 0); count = g_strv_length( str_array ); DB( g_print("- %d tags '%s'\n", count, tagstring) ); if( count > 0 ) { tags = g_new0(guint32, count + 1); ptags = tags; for(i=0;iname = g_strdup(str_array[i]); da_tag_append(newtag); tag = da_tag_get_by_name(str_array[i]); } DB( g_print("- array add %d '%s'\n", tag->key, tag->name) ); //5.3 fixed duplicate tag in same tags if( tags_key_exists(tags, tag->key) == FALSE ) *ptags++ = tag->key; } *ptags = 0; } g_strfreev (str_array); } return tags; } gchar * tags_tostring(guint32 *tags) { guint count, i; gchar **str_array, **tptr; gchar *tagstring; Tag *tag; DB( g_print("\n[tags] tostring\n") ); if( tags == NULL ) { return NULL; } else { count = tags_count(tags); str_array = g_new0(gchar*, count+1); tptr = str_array; for(i=0;iname; } } *tptr = NULL; tagstring = g_strjoinv(" ", str_array); g_free (str_array); } return tagstring; } void da_tag_consistency(Tag *item) { //#2018414 replace any space by - hb_string_replace_char(' ', '-', item->name); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if MYDEBUG static void da_tag_debug_array(guint32 *tags) { guint32 count = 0; if( tags == NULL ) { DB( g_print(" dbg: no tags\n") ); return; } while(*tags != 0 && count < 32) { DB( g_print(" [%d]=%d\n", count, *tags) ); tags++; count++; } DB( g_print(" [%d]=%d\n", count, *tags) ); return; } static void da_tag_debug_list_ghfunc(gpointer key, gpointer value, gpointer user_data) { guint32 *id = key; Tag *item = value; DB( g_print(" %d :: %s\n", *id, item->name) ); } static void da_tag_debug_list(void) { DB( g_print("\n** debug **\n") ); g_hash_table_foreach(GLOBALS->h_tag, da_tag_debug_list_ghfunc, NULL); DB( g_print("\n** end debug **\n") ); } #endif /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void tag_move(guint32 key1, guint32 key2) { GList *lst_acc, *lnk_acc; GList *lnk_txn; DB( g_print("\n[tag] move %d => %d\n", key1, key2) ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; tags_move(txn->tags, key1, key2); lnk_txn = g_list_next(lnk_txn); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } gboolean tag_rename(Tag *item, const gchar *newname) { Tag *existitem; gchar *stripname; gboolean retval = FALSE; DB( g_print("\n[tag] rename\n") ); stripname = g_strdup(newname); g_strstrip(stripname); //#2018414 replace any space by - hb_string_replace_char(' ', '-', stripname); existitem = da_tag_get_by_name(stripname); if( existitem != NULL && existitem->key != item->key) { DB( g_print("- error, same name already exist with other key %d <> %d\n",existitem->key, item->key) ); g_free(stripname); } else { DB( g_print("- renaming\n") ); g_free(item->name); item->name = stripname; retval = TRUE; } return retval; } static gint tag_glist_name_compare_func(Tag *a, Tag *b) { return hb_string_utf8_compare(a->name, b->name); } static gint tag_glist_key_compare_func(Tag *a, Tag *b) { return a->key - b->key; } GList *tag_glist_sorted(gint column) { GList *list = g_hash_table_get_values(GLOBALS->h_tag); switch(column) { case HB_GLIST_SORT_NAME: return g_list_sort(list, (GCompareFunc)tag_glist_name_compare_func); break; //case HB_GLIST_SORT_KEY: default: return g_list_sort(list, (GCompareFunc)tag_glist_key_compare_func); } } gboolean tag_load_csv(gchar *filename, gchar **error) { gboolean retval; GIOChannel *io; gchar *tmpstr; gint io_stat; const gchar *encoding; encoding = homebank_file_getencoding(filename); DB( g_print(" -> encoding should be %s\n", encoding) ); retval = TRUE; *error = NULL; io = g_io_channel_new_file(filename, "r", NULL); if(io != NULL) { if( encoding != NULL ) { g_io_channel_set_encoding(io, encoding, NULL); } for(;;) { io_stat = g_io_channel_read_line(io, &tmpstr, NULL, NULL, NULL); if( io_stat == G_IO_STATUS_EOF) break; if( io_stat == G_IO_STATUS_NORMAL) { if( tmpstr != NULL) { Tag *tag; DB( g_print("\n + strip\n") ); hb_string_strip_crlf(tmpstr); //#2018414 replace any space by - hb_string_replace_char(' ', '-', tmpstr); DB( g_print(" add tag:'%s' ?\n", tmpstr) ); tag = da_tag_append_if_new(tmpstr); if( tag != NULL ) { GLOBALS->changes_count++; } } g_free(tmpstr); } } g_io_channel_unref (io); } return retval; } void tag_save_csv(gchar *filename) { GIOChannel *io; GList *ltag, *list; gchar *outstr; io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { ltag = list = tag_glist_sorted(HB_GLIST_SORT_NAME); while (list != NULL) { Tag *item = list->data; if(item->key != 0) { outstr = g_strdup_printf("%s\n", item->name); DB( g_print(" + export %s\n", outstr) ); g_io_channel_write_chars(io, outstr, -1, NULL, NULL); g_free(outstr); } list = g_list_next(list); } g_list_free(ltag); g_io_channel_unref (io); } } homebank-5.9.1/src/homebank.c0000644000175000017500000007766715006355010011534 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "dsp-mainwindow.h" #include "hb-preferences.h" #include "language.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include #ifdef G_OS_WIN32 #include #endif #define APPLICATION_NAME "HomeBank" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ struct HomeBank *GLOBALS; struct Preferences *PREFS; /* installation paths */ static gchar *config_dir = NULL; static gchar *images_dir = NULL; static gchar *pixmaps_dir = NULL; static gchar *locale_dir = NULL; static gchar *help_dir = NULL; static gchar *datas_dir = NULL; //#define MARKUP_STRING "%s" /* Application arguments */ static gchar *arg_filepath = NULL; static const GOptionEntry option_entries[] = { /* Version */ { "version", 'V', 0, G_OPTION_ARG_NONE, NULL, N_("Show the application’s version"), NULL }, /* collects file arguments */ { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_FILENAME_ARRAY, NULL, NULL, N_("[FILE]") }, { NULL } }; /* = = = = = = = = = = = = = = = = = = = = */ /* ** ensure the filename ends with '.xhb' */ void homebank_file_ensure_xhb(gchar *filename) { DB( g_print("\n[homebank] file_ensure_xhb\n") ); filename = (filename == NULL) ? g_strdup(GLOBALS->xhb_filepath) : filename; DB( g_print(" in filepath: '%s'\n", GLOBALS->xhb_filepath) ); if( g_str_has_suffix (filename, ".xhb") == FALSE ) { gchar *newfilename; newfilename = hb_filename_new_with_extension(filename, "xhb"); hbfile_change_filepath(newfilename); } //#1460390 else { hbfile_change_filepath(filename); } DB( g_print(" out filepath: '%s'\n", GLOBALS->xhb_filepath) ); } static gboolean homebank_file_copy(gchar *srcfile, gchar *dstfile) { gchar *buffer; gsize length; //GError *error = NULL; gboolean retval = FALSE; DB( g_print("\n[homebank] file copy\n") ); if (g_file_get_contents (srcfile, &buffer, &length, NULL)) { if(g_file_set_contents(dstfile, buffer, length, NULL)) { retval = TRUE; } g_free(buffer); } DB( g_print(" - copied '%s' => '%s' :: %d\n", srcfile, dstfile, retval) ); return retval; } static gboolean homebank_file_delete_existing(gchar *filepath) { gboolean retval = FALSE; DB( g_print("\n[homebank] file delete existing\n") ); if( g_file_test(filepath, G_FILE_TEST_EXISTS) ) { DB( g_print(" - deleting: '%s'\n", filepath) ); g_remove(filepath); retval = TRUE; } else { DB( g_print(" - cannot delete: '%s'\n", filepath) ); } return retval; } void homebank_backup_current_file(void) { gchar *bakfilename; GPtrArray *array; gint i; DB( g_print("\n[homebank] backup_current_file\n") ); //do normal linux backup file DB( g_print(" normal backup with ~\n") ); bakfilename = hb_filename_new_with_extension (GLOBALS->xhb_filepath, "xhb~"); homebank_file_delete_existing(bakfilename); //#512046 copy file not to broke potential links //retval = g_rename(pathname, newname); homebank_file_copy (GLOBALS->xhb_filepath, bakfilename); g_free(bakfilename); //do safe backup according to user preferences DB( g_print(" user pref backup\n") ); if( PREFS->bak_is_automatic == TRUE ) { bakfilename = hb_filename_new_for_backup(GLOBALS->xhb_filepath); if( g_file_test(bakfilename, G_FILE_TEST_EXISTS) == FALSE ) { homebank_file_copy (GLOBALS->xhb_filepath, bakfilename); } g_free(bakfilename); //delete any offscale backup DB( g_print(" clean old backup\n") ); array = hb_filename_backup_list(GLOBALS->xhb_filepath); DB( g_print(" found %d match\n", array->len) ); //#1847645 //gchar *dirname = g_path_get_dirname(GLOBALS->xhb_filepath); gchar *dirname = PREFS->path_hbbak; for(i=0;i<(gint)array->len;i++) { gchar *offscalefilename = g_ptr_array_index(array, i); DB( g_print(" %d : '%s'\n", i, offscalefilename) ); if( i >= PREFS->bak_max_num_copies ) { gchar *bakdelfilepath = g_build_filename(dirname, offscalefilename, NULL); DB( g_print(" - should delete '%s'\n", bakdelfilepath) ); homebank_file_delete_existing(bakdelfilepath); g_free(bakdelfilepath); } } g_ptr_array_free(array, TRUE); //g_free(dirname); } } /* = = = = = = = = = = = = = = = = = = = = */ //5.7 test check update online /* static gint homebank_util_check_update(GtkWindow *parent) { SoupSession *session; SoupMessage *msg; GCancellable *cancellable; GBytes *body; gchar *query; guint status; gboolean retval = TRUE; DB( g_printf("\n[homebank] check version update\n") ); query = HOMEBANK_URL_BASE "/tools/updates.php?h=d1ea6a421b5ab0d451eead9de647c22e"; DB( g_printf("query: '%s'\n", query) ); session = soup_session_new_with_options ( SOUP_SESSION_USER_AGENT, "HomeBankProgram", NULL ); msg = soup_message_new ("GET", query); if(msg != NULL) { //soup_session_send_message (session, msg); body = soup_session_send_and_read (session, msg, cancellable, error); status = soup_message_get_status (msg); DB( g_print("status_code: %d %d\n", msg->status_code, SOUP_STATUS_IS_SUCCESSFUL(status) ) ); DB( g_print("reason: %s\n", msg->reason_phrase) ); DB( g_print("datas: %s\n", msg->response_body->data) ); if( SOUP_STATUS_IS_SUCCESSFUL(status) == TRUE ) { //#1750426 ignore the retval here (false when no rate was found, as we don't care) DB( g_print("datas ok: %s\n", msg->response_body->data) ); } else { *error = g_error_new_literal(1, status, soup_message_get_reason_phrase(msg) ); } g_object_unref(msg); } else { error = g_error_new_literal(1, 0, "cannot parse URI"); } soup_session_abort (session); g_object_unref(session); if( error ) { DB( g_print("error: %s\n", error->message) ); g_error_free (error); } return 0; } */ /* = = = = = = = = = = = = = = = = = = = = */ /* url open */ #ifdef G_OS_WIN32 #define SW_NORMAL 1 static gboolean homebank_util_url_show_win32 (const gchar *url) { int retval; gchar *errmsg; /* win32 API call */ retval = ShellExecuteA (NULL, "open", url, NULL, NULL, SW_NORMAL); if (retval < 0 || retval > 32) return TRUE; errmsg = g_win32_error_message(retval); DB( g_print ("%s\n", errmsg) ); g_free(errmsg); return FALSE; } #else static gboolean homebank_util_url_show_unix (const gchar *url) { gboolean retval; GError *err = NULL; #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION >= 22) ) retval = gtk_show_uri_on_window (GTK_WINDOW(GLOBALS->mainwindow), url, GDK_CURRENT_TIME, &err); #else retval = gtk_show_uri (gtk_widget_get_screen (GTK_WIDGET (GLOBALS->mainwindow)), url, GDK_CURRENT_TIME, &err); #endif if (!retval) { ui_dialog_msg_infoerror(GTK_WINDOW(GLOBALS->mainwindow), GTK_MESSAGE_ERROR, _("Browser error."), _("Could not display the URL '%s'"), url ); } if(err != NULL) { g_print ("%s\n", err->message); g_error_free (err); } return retval; } #endif gboolean homebank_util_url_show (const gchar *url) { if(url == NULL) return FALSE; #ifdef G_OS_WIN32 return homebank_util_url_show_win32 (url); #else return homebank_util_url_show_unix (url); #endif } /* = = = = = = = = = = = = = = = = = = = = */ /* lastopenedfiles */ /* ** load lastopenedfiles from homedir/.homebank */ gchar *homebank_lastopenedfiles_load(void) { GKeyFile *keyfile; gchar *group, *filename, *tmpfilename; gchar *lastfilename = NULL; GError *error = NULL; DB( g_print("\n[homebank] lastopenedfiles load\n") ); keyfile = g_key_file_new(); if(keyfile) { filename = g_build_filename(homebank_app_get_config_dir(), "lastopenedfiles", NULL ); if(g_key_file_load_from_file (keyfile, filename, G_KEY_FILE_NONE, &error)) { group = "HomeBank"; if(g_key_file_has_key(keyfile, group, "LastOpenedFile", NULL)) { tmpfilename = g_key_file_get_string (keyfile, group, "LastOpenedFile", NULL); // #593082 if (g_file_test (tmpfilename, G_FILE_TEST_EXISTS) != FALSE) { lastfilename = tmpfilename; } } } if( error ) { g_print("failed: %s\n", error->message); g_error_free (error); } g_free(filename); g_key_file_free (keyfile); } return lastfilename; } /* ** save lastopenedfiles to homedir/.homebank (HB_DATA_PATH) */ gboolean homebank_lastopenedfiles_save(void) { GKeyFile *keyfile; gboolean retval = FALSE; gchar *group, *filename; gsize length; GError *error = NULL; DB( g_print("\n[homebank] lastopenedfiles save\n") ); if( GLOBALS->xhb_filepath != NULL ) { //don't save bakup files if( hbfile_file_isbackup(GLOBALS->xhb_filepath) == FALSE ) { keyfile = g_key_file_new(); if(keyfile ) { DB( g_print(" - saving '%s'\n", GLOBALS->xhb_filepath) ); group = "HomeBank"; g_key_file_set_string (keyfile, group, "LastOpenedFile", GLOBALS->xhb_filepath); gchar *contents = g_key_file_to_data( keyfile, &length, NULL); //DB( g_print(" keyfile:\n%s\nlen=%d\n", contents, length) ); filename = g_build_filename(homebank_app_get_config_dir(), "lastopenedfiles", NULL ); g_file_set_contents(filename, contents, length, &error); g_free(filename); if( error ) { g_print("failed: %s\n", error->message); g_error_free (error); } g_free(contents); g_key_file_free (keyfile); } } } return retval; } /* = = = = = = = = = = = = = = = = = = = = */ /* Main homebank */ #ifdef G_OS_WIN32 static GtkCssProvider *provider; static void homebank_theme_changed (GtkSettings *settings, GParamSpec *pspec, gpointer data) { if (pspec == NULL || g_str_equal (pspec->name, "gtk-theme-name")) { gchar *theme; GdkScreen *screen; g_object_get (settings, "gtk-theme-name", &theme, NULL); screen = gdk_screen_get_default (); DB( g_print("theme %s\n", theme) ); if (g_str_equal (theme, "gtk-win32")) { if (provider == NULL) { gchar *filename; filename = g_build_filename(homebank_app_get_datas_dir(), "homebank-gtk-win32.css", NULL ); DB( g_print("tweak file %s\n", filename) ); if( g_file_test(filename, G_FILE_TEST_EXISTS) ) { provider = gtk_css_provider_new (); gtk_css_provider_load_from_path (provider, filename, NULL); } g_free (filename); } if(provider != NULL) { DB( g_print(" assign provider %p to screen %p\n", provider, screen) ); gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } } else if (provider != NULL) { gtk_style_context_remove_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider)); g_clear_object (&provider); } g_free (theme); } } static void homebank_setup_theme_extensions (void) { GtkSettings *settings; settings = gtk_settings_get_default (); provider = NULL; g_signal_connect (settings, "notify", G_CALLBACK (homebank_theme_changed), NULL); homebank_theme_changed (settings, NULL, NULL); } #endif static void homebank_icon_theme_setup() { DB( g_print("\n[homebank] icon_theme_setup\n") ); //TODO: never used GLOBALS->icontheme = gtk_icon_theme_get_default(); DB( g_print(" - prepend theme search path: %s\n", homebank_app_get_pixmaps_dir()) ); gtk_icon_theme_prepend_search_path (GLOBALS->icontheme, homebank_app_get_pixmaps_dir()); //DB( g_print(" - append theme search path: %s\n", homebank_app_get_pixmaps_dir()) ); //gtk_icon_theme_append_search_path (GLOBALS->icontheme, homebank_app_get_pixmaps_dir()); #if MYDEBUG == 1 GtkIconTheme *ic = gtk_icon_theme_get_default(); guint i; gchar **paths; DB( g_print(" - get default icon theme\n") ); gtk_icon_theme_get_search_path(ic, &paths, NULL); for(i=0;i PREFER_LIGHT) color_scheme = DEFAULT; GLOBALS->color_scheme = color_scheme; DB( g_print(" set color-scheme: %d\n", color_scheme) ); homebank_pref_apply_scheme(); } static void _settings_portal_changed_cb (GDBusProxy *proxy, const char *sender_name, const char *signal_name, GVariant *parameters, gpointer *user_data) { const char *namespace; const char *name; g_autoptr (GVariant) value = NULL; if (g_strcmp0 (signal_name, "SettingChanged")) return; g_variant_get (parameters, "(&s&sv)", &namespace, &name, &value); if (g_strcmp0 (namespace, "org.freedesktop.appearance") || g_strcmp0 (name, "color-scheme")) return; _color_scheme_set (value); } static gboolean _color_scheme_read (GDBusProxy *proxy, GVariant **out) { g_autoptr (GError) error = NULL; g_autoptr (GVariant) ret = NULL; g_autoptr (GVariant) child = NULL; ret = g_dbus_proxy_call_sync (proxy, "Read", g_variant_new ("(ss)", "org.freedesktop.appearance", "color-scheme"), G_DBUS_CALL_FLAGS_NONE, G_MAXINT, NULL, &error); if (error) { if (error->domain == G_DBUS_ERROR && error->code == G_DBUS_ERROR_SERVICE_UNKNOWN) { g_debug ("Portal not found: %s", error->message); return FALSE; } if (error->domain == G_DBUS_ERROR && error->code == G_DBUS_ERROR_UNKNOWN_METHOD) { g_debug ("Portal doesn't provide settings: %s", error->message); return FALSE; } g_critical ("Couldn't read the color-scheme setting: %s", error->message); return FALSE; } g_variant_get (ret, "(v)", &child); g_variant_get (child, "v", out); return TRUE; } static void init_portal (void) { g_autoptr (GError) error = NULL; g_autoptr (GVariant) value = NULL; GLOBALS->settings_portal = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, NULL, "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop", "org.freedesktop.portal.Settings", NULL, &error); if (error) { g_debug ("Settings portal not found: %s", error->message); return; } if (!_color_scheme_read (GLOBALS->settings_portal, &value)) return; _color_scheme_set (value); g_signal_connect (GLOBALS->settings_portal, "g-signal", G_CALLBACK (_settings_portal_changed_cb), NULL); } #endif /* = = = = = = = = = = = = = = = = = = = = */ const gchar * homebank_app_get_config_dir (void) { return config_dir; } const gchar * homebank_app_get_images_dir (void) { return images_dir; } const gchar * homebank_app_get_pixmaps_dir (void) { return pixmaps_dir; } const gchar * homebank_app_get_locale_dir (void) { return locale_dir; } const gchar * homebank_app_get_help_dir (void) { return help_dir; } const gchar * homebank_app_get_datas_dir (void) { return datas_dir; } /* build package paths at runtime */ static void build_package_paths (void) { DB( g_print("\n[homebank] build_package_paths\n") ); #ifdef G_OS_WIN32 gchar *prefix; prefix = g_win32_get_package_installation_directory_of_module (NULL); locale_dir = g_build_filename (prefix, "share", "locale", NULL); images_dir = g_build_filename (prefix, "share", PACKAGE, "images", NULL); pixmaps_dir = g_build_filename (prefix, "share", PACKAGE, "icons", NULL); help_dir = g_build_filename (prefix, "share", PACKAGE, "help", NULL); datas_dir = g_build_filename (prefix, "share", PACKAGE, "datas", NULL); #ifdef PORTABLE_APP DB( g_print(" - app is portable under windows\n") ); config_dir = g_build_filename(prefix, "config", NULL); #else config_dir = g_build_filename(g_get_user_config_dir(), HB_DATA_PATH, NULL); #endif g_free (prefix); #else locale_dir = g_build_filename (DATA_DIR, "locale", NULL); images_dir = g_build_filename (SHARE_DIR, "images", NULL); pixmaps_dir = g_build_filename (DATA_DIR, PACKAGE, "icons", NULL); help_dir = g_build_filename (DATA_DIR, PACKAGE, "help", NULL); datas_dir = g_build_filename (DATA_DIR, PACKAGE, "datas", NULL); config_dir = g_build_filename(g_get_user_config_dir(), HB_DATA_PATH, NULL); //#870023 Ubuntu packages the help files in "/usr/share/doc/homebank-data/help/" for some strange reason if(! g_file_test(help_dir, (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) { g_free (help_dir); help_dir = g_build_filename ("/usr", "share", "doc", "homebank-data", "help", NULL); } #endif DB( g_print(" - config_dir : %s\n", config_dir) ); DB( g_print(" - images_dir : %s\n", images_dir) ); DB( g_print(" - pixmaps_dir: %s\n", pixmaps_dir) ); DB( g_print(" - locale_dir : %s\n", locale_dir) ); DB( g_print(" - help_dir : %s\n", help_dir) ); DB( g_print(" - datas_dir : %s\n", datas_dir) ); } guint32 homebank_app_date_get_julian(void) { GDate *date; //init global default value date = g_date_new(); g_date_set_time_t(date, time(NULL)); GLOBALS->today = g_date_get_julian(date); g_date_free(date); return GLOBALS->today; } static gboolean homebank_check_app_dir_migrate_file(gchar *srcdir, gchar *dstdir, gchar *filename) { gchar *srcpath; gchar *dstpath; gchar *buffer; gsize length; //GError *error = NULL; gboolean retval = FALSE; DB( g_print("\n[homebank] check_app_dir_migrate_file\n") ); srcpath = g_build_filename(srcdir, filename, NULL ); dstpath = g_build_filename(dstdir, filename, NULL ); if (g_file_get_contents (srcpath, &buffer, &length, NULL)) { if(g_file_set_contents(dstpath, buffer, length, NULL)) { //g_print("sould delete %s\n", srcpath); g_remove(srcpath); retval = TRUE; } } g_free(dstpath); g_free(srcpath); return retval; } /* * check/create user home directory for .homebank (HB_DATA_PATH) directory */ static void homebank_check_app_dir() { gchar *homedir; const gchar *configdir; gboolean exists; DB( g_print("\n[homebank] check_app_dir\n") ); /* check if /.config exist */ #ifndef G_OS_WIN32 configdir = g_get_user_config_dir(); DB( g_print(" - check '%s' exists\n", configdir) ); if(!g_file_test(configdir, G_FILE_TEST_IS_DIR)) { DB( g_print(" - creating dir\n") ); g_mkdir(configdir, 0755); } #endif /* check for XDG .config/homebank */ configdir = homebank_app_get_config_dir(); DB( g_print(" - config_dir is: '%s'\n", configdir) ); exists = g_file_test(configdir, G_FILE_TEST_IS_DIR); if(exists) { /* just update folder security */ DB( g_print(" - chmod 0700\n") ); g_chmod(configdir, 0700); GLOBALS->first_run = FALSE; } else { /* create the config dir */ DB( g_print(" - create config_dir\n") ); g_mkdir(configdir, 0755); g_chmod(configdir, 0700); /* any old homedir configuration out there ? */ homedir = g_build_filename(g_get_home_dir (), ".homebank", NULL ); DB( g_print(" - homedir is: '%s'\n", homedir) ); exists = g_file_test(homedir, G_FILE_TEST_IS_DIR); if(exists) { gboolean f1, f2; /* we must do the migration properly */ DB( g_print(" - migrate old 2 files\n") ); f1 = homebank_check_app_dir_migrate_file(homedir, config_dir, "preferences"); f2 = homebank_check_app_dir_migrate_file(homedir, config_dir, "lastopenedfiles"); if(f1 && f2) { DB( g_print(" - removing old dir\n") ); g_rmdir(homedir); } } g_free(homedir); GLOBALS->first_run = TRUE; } } static void free_package_paths(void) { DB( g_print("\n[homebank] free package paths\n") ); g_free (config_dir); g_free (images_dir); g_free (pixmaps_dir); g_free (locale_dir); g_free (help_dir); } /* ** application cleanup: icons, GList, memory */ static void homebank_cleanup(void) { DB( g_print("\n[homebank] app cleanup\n") ); //v3.4 save windows size/position homebank_pref_save(); hbfile_cleanup(TRUE); } /* ** application setup: icons, GList, memory */ static gboolean homebank_setup() { DB( g_print("\n[homebank] app setup\n") ); // check homedir for .homebank dir homebank_check_app_dir(); homebank_pref_setdefault(); homebank_pref_load(); homebank_pref_apply(); hbfile_setup(TRUE); homebank_icon_theme_setup(); #ifdef G_OS_WIN32 homebank_setup_theme_extensions(); #endif homebank_app_date_get_julian(); #if MYDEBUG == 1 g_print(" - user_name: %s\n", g_get_user_name ()); g_print(" - real_name: %s\n", g_get_real_name ()); g_print(" - user_cache_dir: %s\n", g_get_user_cache_dir()); g_print(" - user_data_dir: %s\n", g_get_user_data_dir ()); g_print(" - user_config_dir: %s\n", g_get_user_config_dir ()); //g_print(" - system_data_dirs: %s\n", g_get_system_data_dirs ()); //g_print(" - system_config_dirs: %s\n", g_get_system_config_dirs ()); g_print(" - home_dir: %s\n", g_get_home_dir ()); g_print(" - tmp_dir: %s\n", g_get_tmp_dir ()); g_print(" - current_dir: %s\n", g_get_current_dir ()); #endif return TRUE; } /* = = = = = = = = = = = = = = = = = = = = */ /* Main homebank */ static void homebank_app_splash_hide(GtkWidget *splash) { DB( g_print("\n[homebank] splash hide\n") ); if( PREFS->showsplash == TRUE ) { gtk_widget_hide (splash); gtk_window_destroy (GTK_WINDOW(splash)); /* make sure splash is gone */ hb_window_run_pending(); } } static GtkWidget * homebank_app_splash_show(void) { GtkWidget *window = NULL; GtkWidget *frame, *vbox, *image; //gchar *ver_string, *markup, *version; gchar *pathfilename; DB( g_print("\n[homebank] splash show \n") ); if( PREFS->showsplash == TRUE ) { window = gtk_window_new(GTK_WINDOW_POPUP); //TOPLEVEL DONT WORK gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_SPLASHSCREEN); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE); gtk_window_set_title (GTK_WINDOW (window), "HomeBank"); gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER); pathfilename = g_build_filename(homebank_app_get_images_dir(), "splash.png", NULL); image = gtk_image_new_from_file((const gchar *)pathfilename); g_free(pathfilename); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); gtk_window_set_child(GTK_WINDOW(window), frame); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_frame_set_child(GTK_FRAME(frame), vbox); /* ver_string = g_strdup_printf(_("Version: HomeBank-%s"), VERSION); version = gtk_label_new(NULL); markup = g_markup_printf_escaped(MARKUP_STRING, ver_string); gtk_label_set_markup(GTK_LABEL(version), markup); g_free(markup); g_free(ver_string); */ gtk_box_prepend (GTK_BOX (vbox), image); gtk_window_set_auto_startup_notification (FALSE); gtk_widget_show_all (window); gtk_window_set_auto_startup_notification (TRUE); // make sure splash is up hb_window_run_pending(); DB( g_print(" splash screen %p\n", gtk_window_get_screen(GTK_WINDOW(window))) ); g_usleep( G_USEC_PER_SEC * 1 ); } return window; } static void homebank_init_i18n (void) { /* We may change the locale later if the user specifies a language * in the gimprc file. Here we are just initializing the locale * according to the environment variables and set up the paths to * the message catalogs. */ setlocale (LC_ALL, ""); //#1842292 as indicated in gtk+ win32 gtk_get_localedir [1], bindtextdomain() is not // UTF-8 aware on win32, so it needs a filename in locale encoding #ifdef G_OS_WIN32 gchar *localedir = g_win32_locale_filename_from_utf8 (homebank_app_get_locale_dir ()); bindtextdomain (GETTEXT_PACKAGE, localedir); g_free(localedir); #else bindtextdomain (GETTEXT_PACKAGE, homebank_app_get_locale_dir ()); #endif //#ifdef HAVE_BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); //#endif textdomain (GETTEXT_PACKAGE); /*#ifdef G_OS_WIN32 gchar *wl = g_win32_getlocale (); DB( g_print(" - win32 locale is '%s'\n", wl) ); g_free(wl); #endif*/ } GtkWindow * homebank_app_find_window(gint needle_key) { GList *l = gtk_application_get_windows(GLOBALS->application); GtkWindow *window = NULL; gint key; DB( g_print("\n[homebank] app find window %d\n", needle_key) ); g_return_val_if_fail(needle_key != 0, NULL); while (l != NULL) { GtkWindow *tmpwin = l->data; key = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(tmpwin), "key")); DB( g_print(" window: %p: key=%d '%s' \n", tmpwin, key, gtk_window_get_title(tmpwin)) ); if( key == needle_key ) { DB( g_print(" >found\n") ); window = tmpwin; break; } l = g_list_next(l); } //no need to free glist return window; } //#2080864 handle version static gint homebank_app_handle_local_options (GApplication *application, GVariantDict *options) { if (g_variant_dict_contains (options, "version")) { g_print ("%s - Version %s\n", g_get_application_name (), VERSION); return 0; } return -1; } static gint homebank_app_commandline(GApplication *application, GApplicationCommandLine *cmdline, gpointer user_data) { GVariantDict *options; gchar **remaining_args; DB( g_print("\n[homebank] app commandline\n") ); options = g_application_command_line_get_options_dict (cmdline); /* Parse filenames */ if (g_variant_dict_lookup (options, G_OPTION_REMAINING, "^a&ay", &remaining_args)) { guint i = g_strv_length(remaining_args); if( i > 0 ) { arg_filepath = g_strdup(remaining_args[0]); DB( g_print(" %s\n", arg_filepath) ); } /*for (i = 0; remaining_args[i]; i++) { g_print(" args[%d] ='%s'\n", i, remaining_args[i]); }*/ g_free (remaining_args); } g_application_activate (application); return 0; } static void homebank_app_activate (GtkApplication *app, gpointer user_data) { GtkWidget *mainwin; GtkWidget *splash = NULL; DB( g_print("\n[homebank] app activate\n") ); //check if already a window opened if( GLOBALS->mainwindow != NULL ) { //TODO change here to enable multiple ? gtk_window_present (GTK_WINDOW (GLOBALS->mainwindow)); } else //if( homebank_app_commandline(app) == TRUE ) { /* Pass NULL here since we parsed the gtk+ args already... * from this point all we need a DISPLAY variable to be set. */ //gtk_init (NULL, NULL); //todo: sanity check gtk version here ? if( homebank_setup() ) { GLOBALS->application = app; splash = homebank_app_splash_show(); // change language to the user #if HB_PRIV_FORCE_ENUS == FALSE language_init (PREFS->language); #else // but not for unstable, to always get native app text language_init ("en-US"); #endif g_set_application_name (APPLICATION_NAME); gtk_window_set_default_icon_name ("homebank"); DB( g_print(" app creating window\n" ) ); mainwin = (GtkWidget *)ui_wallet_window_new (NULL); if(mainwin) { gchar *rawfilepath = NULL; gtk_application_add_window(app, GTK_WINDOW(mainwin)); // make sure mainwin is up hb_window_run_pending(); DB( g_print(" mainwin screen %p\n", gtk_window_get_screen(GTK_WINDOW(mainwin))) ); DB( g_print(" - app win should be visible\n" ) ); //g_usleep( G_USEC_PER_SEC * 2 ); homebank_app_splash_hide(splash); //priority here: // - command line file // - welcome dialog // - last opened file, if welcome dialog was not opened if( arg_filepath != NULL ) { DB( g_print(" command line open '%s'\n", arg_filepath ) ); rawfilepath = g_strdup(arg_filepath); g_free (arg_filepath); ui_wallet_open_check(mainwin, rawfilepath); } else if( PREFS->showwelcome ) { ui_wallet_update(mainwin, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_VISUAL)); ui_wallet_action_help_welcome(); } else if( PREFS->loadlast ) { rawfilepath = homebank_lastopenedfiles_load(); ui_wallet_open_check(mainwin, rawfilepath); } else /* update the mainwin display */ ui_wallet_update(mainwin, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_VISUAL)); //5.7 test //homebank_util_check_update(mainwin); /* -- start: hack here to generate a big file -- */ /* -- end: hack here to generate a big file -- */ DB( g_print(" app gtk_main()\n" ) ); gtk_main (); //DB( g_print(" app call destroy mainwin\n" ) ); //gtk_window_destroy (GTK_WINDOW(mainwin)); } } homebank_cleanup(); } } static void homebank_app_open (GApplication *application, GFile **files, gint n_files, const gchar *hint) { DB( g_print("\n[homebank] app open\n") ); } static void homebank_app_startup (GApplication *application) { DB( g_print("\n[homebank] app startup\n") ); //#2043886 //#ifdef PORTABLE_APP //g_object_set (gtk_settings_get_default (), "gtk-recent-files-enabled", FALSE, NULL); //#endif GLOBALS->color_scheme = DEFAULT; #ifdef G_OS_UNIX init_portal(); #endif } static void homebank_app_shutdown (GApplication *app) { DB( g_print("\n[homebank] app shutdown\n") ); } //gtk4 future application id // fr.free.mdoyen.HomeBank //g_set_prgname("fr.free.mdoyen.HomeBank"); int main (int argc, char *argv[]) { GtkApplication *app; int exit_code = EXIT_FAILURE; DB( g_print("\n--------------------------------" ) ); DB( g_print("\n[homebank] main starting\n") ); GLOBALS = g_malloc0(sizeof(struct HomeBank)); PREFS = g_malloc0(sizeof(struct Preferences)); if( GLOBALS != NULL && PREFS != NULL ) { build_package_paths(); homebank_init_i18n(); app = gtk_application_new ("fr.free.mdoyen.HomeBank", G_APPLICATION_HANDLES_COMMAND_LINE); //app = gtk_application_new ("fr.free.mdoyen.HomeBank", G_APPLICATION_FLAGS_NONE); g_application_add_main_option_entries (G_APPLICATION (app), option_entries); g_signal_connect (app, "startup" , G_CALLBACK (homebank_app_startup) , NULL); g_signal_connect (app, "command-line" , G_CALLBACK (homebank_app_commandline) , NULL); g_signal_connect (app, "handle-local-options" , G_CALLBACK (homebank_app_handle_local_options) , NULL); g_signal_connect (app, "activate" , G_CALLBACK (homebank_app_activate) , NULL); g_signal_connect (app, "open" , G_CALLBACK (homebank_app_open) , NULL); g_signal_connect (app, "shutdown" , G_CALLBACK (homebank_app_shutdown) , NULL); exit_code = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); free_package_paths(); exit_code = EXIT_SUCCESS; } /* free our global datas */ if( PREFS ) { homebank_pref_free(); g_free(PREFS); } if( GLOBALS ) { g_free(GLOBALS); } return exit_code; } #ifdef G_OS_WIN32 /* In case we build this as a windows application */ #ifdef __GNUC__ #define _stdcall __attribute__((stdcall)) #endif int _stdcall WinMain (struct HINSTANCE__ *hInstance, struct HINSTANCE__ *hPrevInstance, char *lpszCmdLine, int nCmdShow) { return main (__argc, __argv); } #endif homebank-5.9.1/src/hb-encoding.h0000644000175000017500000000575714736461415012141 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_ENCODING_H__ #define __HB_ENCODING_H__ struct _GeditEncoding { gint index; const gchar *charset; const gchar *name; }; typedef struct _GeditEncoding GeditEncoding; typedef enum { GEDIT_ENCODING_ISO_8859_1, GEDIT_ENCODING_ISO_8859_2, GEDIT_ENCODING_ISO_8859_3, GEDIT_ENCODING_ISO_8859_4, GEDIT_ENCODING_ISO_8859_5, GEDIT_ENCODING_ISO_8859_6, GEDIT_ENCODING_ISO_8859_7, GEDIT_ENCODING_ISO_8859_8, GEDIT_ENCODING_ISO_8859_8_I, GEDIT_ENCODING_ISO_8859_9, GEDIT_ENCODING_ISO_8859_10, GEDIT_ENCODING_ISO_8859_13, GEDIT_ENCODING_ISO_8859_14, GEDIT_ENCODING_ISO_8859_15, GEDIT_ENCODING_ISO_8859_16, GEDIT_ENCODING_UTF_7, GEDIT_ENCODING_UTF_16, GEDIT_ENCODING_UTF_16_BE, GEDIT_ENCODING_UTF_16_LE, GEDIT_ENCODING_UTF_32, GEDIT_ENCODING_UCS_2, GEDIT_ENCODING_UCS_4, GEDIT_ENCODING_ARMSCII_8, GEDIT_ENCODING_BIG5, GEDIT_ENCODING_BIG5_HKSCS, GEDIT_ENCODING_CP_866, GEDIT_ENCODING_EUC_JP, GEDIT_ENCODING_EUC_JP_MS, GEDIT_ENCODING_CP932, GEDIT_ENCODING_EUC_KR, GEDIT_ENCODING_EUC_TW, GEDIT_ENCODING_GB18030, GEDIT_ENCODING_GB2312, GEDIT_ENCODING_GBK, GEDIT_ENCODING_GEOSTD8, GEDIT_ENCODING_HZ, GEDIT_ENCODING_IBM_850, GEDIT_ENCODING_IBM_852, GEDIT_ENCODING_IBM_855, GEDIT_ENCODING_IBM_857, GEDIT_ENCODING_IBM_862, GEDIT_ENCODING_IBM_864, GEDIT_ENCODING_ISO_2022_JP, GEDIT_ENCODING_ISO_2022_KR, GEDIT_ENCODING_ISO_IR_111, GEDIT_ENCODING_JOHAB, GEDIT_ENCODING_KOI8_R, GEDIT_ENCODING_KOI8__R, GEDIT_ENCODING_KOI8_U, GEDIT_ENCODING_SHIFT_JIS, GEDIT_ENCODING_TCVN, GEDIT_ENCODING_TIS_620, GEDIT_ENCODING_UHC, GEDIT_ENCODING_VISCII, GEDIT_ENCODING_WINDOWS_1250, GEDIT_ENCODING_WINDOWS_1251, GEDIT_ENCODING_WINDOWS_1252, GEDIT_ENCODING_WINDOWS_1253, GEDIT_ENCODING_WINDOWS_1254, GEDIT_ENCODING_WINDOWS_1255, GEDIT_ENCODING_WINDOWS_1256, GEDIT_ENCODING_WINDOWS_1257, GEDIT_ENCODING_WINDOWS_1258, GEDIT_ENCODING_LAST, GEDIT_ENCODING_UTF_8, GEDIT_ENCODING_UNKNOWN } GeditEncodingIndex; const GeditEncoding *gedit_encoding_get_from_index (gint index); const GeditEncoding *gedit_encoding_get_utf8 (void); const gchar *homebank_file_getencoding(gchar *filename); gchar *homebank_utf8_ensure(gchar *buffer); #endif homebank-5.9.1/src/list-scheduled.h0000644000175000017500000000356314736461415012666 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __LIST_SCHEDULED__H__ #define __LIST_SCHEDULED__H__ enum { LIST_SCH_TYPE_MANAGE = 0, LIST_SCH_TYPE_DISPLAY }; enum { LST_DSPUPC_DATAS, //shared LST_DSPUPC_NEXT, LST_DSPUPC_MEMO, LST_DSPUPC_EXPENSE, LST_DSPUPC_INCOME, LST_DSPUPC_NB_LATE, NUM_LST_DSPUPC }; // UID are used to save column position enum { COL_SCH_UID_LATE = 1, COL_SCH_UID_STILL, //-- last fixed COL_SCH_UID_NEXTDATE = 9, //-- allow reorder start here -- COL_SCH_UID_PAYNUMBER = 10, COL_SCH_UID_PAYEE, COL_SCH_UID_CATEGORY, COL_SCH_UID_CLR, COL_SCH_UID_AMOUNT, COL_SCH_UID_EXPENSE, COL_SCH_UID_INCOME, COL_SCH_UID_MEMO, COL_SCH_UID_ACCOUNT }; #define NUM_COL_SCH_UID 9 struct lst_sch_data { GtkWidget *treeview; GtkWidget *menu; }; gchar *ui_arc_listview_get_freq_label(gint index); void ui_arc_listview_widget_columns_order_load(GtkTreeView *treeview); void ui_arc_listview_widget_columns_order_save(GtkTreeView *treeview); GString *lst_sch_widget_to_string(GtkTreeView *treeview, ToStringMode mode); GtkWidget *lst_sch_widget_new(gint listtype); GtkWidget *ui_arc_listview_widget_new(void); #endif homebank-5.9.1/src/ui-assign.h0000644000175000017500000000566214736461415011656 /* HomeBank -- Free, easy, personal rulounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_ASSIGN_GTK_H__ #define __HB_ASSIGN_GTK_H__ enum { LST_DEFASG_SORT_POS = 1, LST_DEFASG_SORT_SEARCH, LST_DEFASG_SORT_PAYEE, LST_DEFASG_SORT_CATEGORY, LST_DEFASG_SORT_PAYMENT, LST_DEFASG_SORT_TAGS, LST_DEFASG_SORT_NOTES }; enum { LST_DEFASG_TOGGLE, LST_DEFASG_DATAS, NUM_LST_DEFASG }; struct ui_asg_dialog_data { //GList *tmp_list; Assign *asgitem; gint change; GtkWidget *dialog; GtkWidget *GR_condition; GtkWidget *CY_field; GtkWidget *ST_search; GtkWidget *GR_wrntxt, *LB_wrntxt; GtkWidget *CM_exact; GtkWidget *CM_re; GtkWidget *CM_amount, *LB_amount, *ST_amount; GtkWidget *CM_pay, *CM_payovw; GtkWidget *LB_pay, *PO_pay; GtkWidget *CM_cat, *CM_catovw; GtkWidget *LB_cat, *PO_cat; GtkWidget *CM_mod, *CM_modovw; GtkWidget *LB_mod, *NU_mod; GtkWidget *CM_tags, *CM_tagsovw; GtkWidget *LB_tags, *ST_tags, *CY_tags; GtkWidget *GR_misc; GtkWidget *ST_notes; }; struct ui_asg_manage_data { GList *tmp_list; gint change; GtkWidget *dialog; gboolean mapped_done; GtkWidget *ST_search; GtkWidget *LV_rul; GtkWidget *BT_add, *BT_rem, *BT_edit, *BT_dup, *BT_up, *BT_down, *BT_move; GtkWidget *MB_moveto, *ST_poppos, *BT_popmove; }; struct rulPopContext { GtkTreeModel *model; guint except_key; }; gchar *ui_asg_comboboxentry_get_name(GtkComboBox *entry_box); guint32 ui_asg_comboboxentry_get_key(GtkComboBox *entry_box); gboolean ui_asg_comboboxentry_set_active(GtkComboBox *entry_box, guint32 key); void ui_asg_comboboxentry_add(GtkComboBox *entry_box, Assign *asg); void ui_asg_comboboxentry_populate(GtkComboBox *entry_box, GHashTable *hash); void ui_asg_comboboxentry_populate_except(GtkComboBox *entry_box, GHashTable *hash, guint except_key); GtkWidget *ui_asg_comboboxentry_new(GtkWidget *label); /* = = = = = = = = = = */ void ui_asg_listview_add(GtkTreeView *treeview, Assign *item); guint32 ui_asg_listview_get_selected_key(GtkTreeView *treeview); void ui_asg_listview_remove_selected(GtkTreeView *treeview); void ui_asg_listview_populate(GtkWidget *view, gchar *needle); GtkWidget *ui_asg_listview_new(gboolean withtoggle); /* = = = = = = = = = = */ GtkWidget *ui_asg_manage_dialog (void); #endif homebank-5.9.1/src/hb-hbfile.c0000644000175000017500000003265614736461407011576 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-hbfile.h" #include "hb-archive.h" #include "hb-transaction.h" #include "ui-flt-widget.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ gboolean hbfile_file_isbackup(gchar *filepath) { gboolean retval = FALSE; if( filepath == NULL ) return FALSE; if( g_str_has_suffix(filepath, "xhb~") || g_str_has_suffix(filepath, "bak") ) retval = TRUE; return retval; } gboolean hbfile_file_hasrevert(gchar *filepath) { gchar *bakfilepath; bakfilepath = hb_filename_new_with_extension(GLOBALS->xhb_filepath, "xhb~"); DB( g_print(" test bak exists '%s'\n", bakfilepath) ); GLOBALS->xhb_hasrevert = g_file_test(bakfilepath, G_FILE_TEST_EXISTS); g_free(bakfilepath); //todo check here if need to return something return GLOBALS->xhb_hasrevert; } //#1750161 guint64 hbfile_file_get_time_modified(gchar *filepath) { guint64 retval = 0ULL; GFile *gfile; GFileInfo *gfileinfo; DB( g_print("\n[hbfile] get time modified\n") ); gfile = g_file_new_for_path(filepath); gfileinfo = g_file_query_info (gfile, G_FILE_ATTRIBUTE_TIME_MODIFIED, 0, NULL, NULL); if( gfileinfo ) { retval = g_file_info_get_attribute_uint64 (gfileinfo, G_FILE_ATTRIBUTE_TIME_MODIFIED); DB( g_print(" '%s' last access = %lu\n", filepath, retval) ); //add 5.6.2 if file opened more than 24h, currencies are obsolete GDateTime *dtf = g_file_info_get_modification_date_time(gfileinfo); gchar *dts = g_date_time_format_iso8601(dtf); GDateTime *dtn = g_date_time_new_now_local(); GTimeSpan ts = g_date_time_difference(dtn, dtf); DB( g_print(" modif datetime='%s' since %ld, %ld hours\n", dts, ts, ts/G_TIME_SPAN_HOUR) ); GLOBALS->xhb_obsoletecurr = ((ts/G_TIME_SPAN_HOUR) > 24) ? TRUE : FALSE; g_free(dts); g_date_time_unref(dtf); g_date_time_unref(dtn); g_object_unref(gfileinfo); } g_object_unref(gfile); return retval; } void hbfile_file_default(void) { DB( g_print("\n[hbfile] default\n") ); //todo: maybe translate this also hbfile_change_filepath(g_build_filename(PREFS->path_hbfile, "untitled.xhb", NULL)); GLOBALS->hbfile_is_new = TRUE; GLOBALS->hbfile_is_bak = FALSE; GLOBALS->xhb_timemodified = 0ULL; DB( g_print("- path_hbfile is '%s'\n", PREFS->path_hbfile) ); DB( g_print("- xhb_filepath is '%s'\n", GLOBALS->xhb_filepath) ); } /* static gint hbfile_file_load_xhb(gchar *filepath) { } static void hbfile_file_load_backup_xhb(void) { //todo: get from dialog.c, and split between dilaog.c/hbfile.c } */ void hbfile_replace_basecurrency(Currency4217 *curfmt) { Currency *item; guint32 oldkcur; DB( g_print("\n[hbfile] replace base currency\n") ); oldkcur = GLOBALS->kcur; da_cur_delete(oldkcur); item = currency_add_from_user(curfmt); GLOBALS->kcur = item->key; DB( g_print(" %d ==> %d %s\n", oldkcur, GLOBALS->kcur, item->iso_code) ); } void hbfile_change_basecurrency(guint32 key) { GList *list; //guint32 oldkcur; // set every rate to 0 list = g_hash_table_get_values(GLOBALS->h_cur); while (list != NULL) { Currency *entry = list->data; if(entry->key != GLOBALS->kcur) { entry->rate = 0.0; entry->mdate = 0; } list = g_list_next(list); } g_list_free(list); //oldkcur = GLOBALS->kcur; GLOBALS->kcur = key; //#1851103: absolutely no reason to do that // update account with old base currency /*list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { Account *acc = list->data; if( acc->kcur == oldkcur ) acc->kcur = key; list = g_list_next(list); } g_list_free(list); */ GLOBALS->changes_count++; } static GQueue *hbfile_transaction_get_partial_internal(guint32 minjulian, guint32 maxjulian, gushort exclusionflags) { GList *lst_acc, *lnk_acc; GList *lnk_txn; GQueue *txn_queue; txn_queue = g_queue_new (); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; if( (acc->flags & exclusionflags) ) goto next_acc; lnk_txn = g_queue_peek_tail_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; if( txn->date < minjulian ) //no need to go below mindate break; //#1886123 include remind based on user prefs if( !transaction_is_balanceable(txn) ) goto prev_txn; if( (txn->date >= minjulian) && (txn->date <= maxjulian) ) { g_queue_push_head (txn_queue, txn); } prev_txn: lnk_txn = g_list_previous(lnk_txn); } next_acc: lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); return txn_queue; } GQueue *hbfile_transaction_get_partial(guint32 minjulian, guint32 maxjulian) { //#1674045 only rely on nosummary //return hbfile_transaction_get_partial_internal(minjulian, maxjulian, (AF_CLOSED|AF_NOREPORT)); return hbfile_transaction_get_partial_internal(minjulian, maxjulian, (AF_NOREPORT)); } GQueue *hbfile_transaction_get_partial_budget(guint32 minjulian, guint32 maxjulian) { //#1674045 only rely on nosummary //return hbfile_transaction_get_partial_internal(minjulian, maxjulian, (AF_CLOSED|AF_NOREPORT|AF_NOBUDGET)); return hbfile_transaction_get_partial_internal(minjulian, maxjulian, (AF_NOREPORT|AF_NOBUDGET)); } void hbfile_sanity_check(void) { GList *lst_acc, *lnk_acc; GList *lnk_txn; GList *lxxx, *list; DB( g_print("\n[hbfile] !! full sanity check !! \n") ); DB( g_print(" - transaction\n") ); lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; da_transaction_consistency(txn); lnk_txn = g_list_next(lnk_txn); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); DB( g_print(" - scheduled/template\n") ); list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *entry = list->data; da_archive_consistency(entry); list = g_list_next(list); } DB( g_print(" - account\n") ); lxxx = list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { Account *item = list->data; da_acc_consistency(item); list = g_list_next(list); } g_list_free(lxxx); DB( g_print(" - payee\n") ); lxxx = list = g_hash_table_get_values(GLOBALS->h_pay); while (list != NULL) { Payee *item = list->data; da_pay_consistency(item); list = g_list_next(list); } g_list_free(lxxx); DB( g_print(" - category\n") ); lxxx = list = g_hash_table_get_values(GLOBALS->h_cat); while (list != NULL) { Category *item = list->data; da_cat_consistency(item); list = g_list_next(list); } g_list_free(lxxx); DB( g_print(" - assignments\n") ); lxxx = list = g_hash_table_get_values(GLOBALS->h_rul); while (list != NULL) { Assign *item = list->data; da_asg_consistency(item); list = g_list_next(list); } g_list_free(lxxx); //#2018414 replace any space by - DB( g_print(" - tags\n") ); lxxx = list = g_hash_table_get_values(GLOBALS->h_tag); while (list != NULL) { Tag *item = list->data; da_tag_consistency(item); list = g_list_next(list); } g_list_free(lxxx); } void hbfile_anonymize(void) { GList *lst_acc, *lnk_acc; GList *lnk_txn; GList *lxxx, *list; guint cnt; DB( g_print("\n[hbfile] anonymize\n") ); // owner hbfile_change_owner(g_strdup("An0nym0us")); GLOBALS->changes_count++; GLOBALS->hbfile_is_new = TRUE; // filename hbfile_change_filepath(g_build_filename(PREFS->path_hbfile, "anonymized.xhb", NULL)); // accounts lxxx = list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { //#2026641 da_acc_anonymize(list->data); GLOBALS->changes_count++; list = g_list_next(list); } g_list_free(lxxx); //payees lxxx = list = g_hash_table_get_values(GLOBALS->h_pay); while (list != NULL) { Payee *item = list->data; if(item->key != 0) { g_free(item->name); item->name = g_strdup_printf("payee %d", item->key); GLOBALS->changes_count++; } list = g_list_next(list); } g_list_free(lxxx); //categories //lxxx = list = g_hash_table_get_values(GLOBALS->h_cat); lxxx = list = category_glist_sorted(HB_GLIST_SORT_KEY); while (list != NULL) { Category *item = list->data; if(item->key != 0) { //#2026641 da_cat_anonymize(item); GLOBALS->changes_count++; } list = g_list_next(list); } g_list_free(lxxx); //tags lxxx = list = g_hash_table_get_values(GLOBALS->h_tag); while (list != NULL) { Tag *item = list->data; if(item->key != 0) { g_free(item->name); item->name = g_strdup_printf("tag %d", item->key); GLOBALS->changes_count++; } list = g_list_next(list); } g_list_free(lxxx); //assigns lxxx = list = g_hash_table_get_values(GLOBALS->h_rul); while (list != NULL) { Assign *item = list->data; if(item->key != 0) { g_free(item->search); item->search = g_strdup_printf("assign %d", item->key); //#2026641 assignment notes g_free(item->notes); item->notes = NULL; GLOBALS->changes_count++; } list = g_list_next(list); } g_list_free(lxxx); //archives cnt = 0; list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *item = list->data; g_free(item->memo); item->memo = g_strdup_printf("archive %d", cnt++); GLOBALS->changes_count++; //#2026641 splits memo as well if(item->flags & OF_SPLIT) { cnt = da_splits_anonymize(item->splits); GLOBALS->changes_count += cnt; } list = g_list_next(list); } //transaction lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *item = lnk_txn->data; g_free(item->number); item->number = NULL; g_free(item->memo); item->memo = g_strdup_printf("memo %d", item->date); GLOBALS->changes_count++; if(item->flags & OF_SPLIT) { //#2026641 cnt = da_splits_anonymize(item->splits); GLOBALS->changes_count += cnt; } lnk_txn = g_list_next(lnk_txn); } lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ void hbfile_change_owner(gchar *owner) { g_free(GLOBALS->owner); GLOBALS->owner = (owner != NULL) ? owner : NULL; } void hbfile_change_filepath(gchar *filepath) { g_free(GLOBALS->xhb_filepath); GLOBALS->xhb_filepath = (filepath != NULL) ? filepath : NULL; } void hbfile_cleanup(gboolean file_clear) { GSList *list; //Transaction *txn; DB( g_print("\n[hbfile] cleanup\n") ); DB( g_print("- file clear is %d\n", file_clear) ); // Free data storage /*txn = g_trash_stack_pop(&GLOBALS->txn_stk); while( txn != NULL ) { da_transaction_free (txn); txn = g_trash_stack_pop(&GLOBALS->txn_stk); }*/ list = GLOBALS->deltxn_list; while(list != NULL) { da_transaction_free (list->data); list = g_slist_next(list); } g_slist_free(GLOBALS->deltxn_list); g_slist_free(GLOBALS->openwindows); da_transaction_destroy(); da_archive_destroy(GLOBALS->arc_list); g_hash_table_destroy(GLOBALS->h_memo); da_flt_destroy(); g_object_unref(GLOBALS->fltmodel); da_asg_destroy(); da_tag_destroy(); da_cat_destroy(); da_pay_destroy(); da_acc_destroy(); da_grp_destroy(); da_cur_destroy(); hbfile_change_owner(NULL); if(file_clear) hbfile_change_filepath(NULL); } void hbfile_setup(gboolean file_clear) { DB( g_print("\n[hbfile] setup\n") ); DB( g_print("- file clear is %d\n", file_clear) ); // Allocate data storage da_cur_new(); da_grp_new(); da_acc_new(); //txn queue is alloc/free into account da_pay_new(); da_cat_new(); da_tag_new(); da_asg_new(); GLOBALS->fltmodel = lst_lst_favfilter_model_new(); da_flt_new(); GLOBALS->h_memo = g_hash_table_new_full(g_str_hash, g_str_equal, (GDestroyNotify)g_free, NULL); GLOBALS->arc_list = NULL; //5.5.1 list of opened windows GLOBALS->openwindows = NULL; //#1419304 we keep the deleted txn to a trash stack //GLOBALS->txn_stk = NULL; GLOBALS->deltxn_list = NULL; if(file_clear == TRUE) { hbfile_file_default(); } else { GLOBALS->hbfile_is_new = FALSE; } hbfile_change_owner(g_strdup(_("Unknown"))); GLOBALS->kcur = 1; GLOBALS->vehicle_category = 0; GLOBALS->auto_smode = ARC_POSTMODE_DUEDATE; GLOBALS->auto_weekday = 1; GLOBALS->auto_nbmonths = 1; GLOBALS->auto_nbdays = 0; GLOBALS->changes_count = 0; GLOBALS->xhb_hasrevert = FALSE; } homebank-5.9.1/src/hb-split.h0000664000175000017500000000341214736461415011472 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_SPLIT_H__ #define __HB_SPLIT_H__ //for the record, quicken is limited to 250 #define TXN_MAX_SPLIT 62 #include "hb-types.h" struct _split { guint32 kcat; gdouble amount; gchar *memo; //unsaved data gushort pos; }; void da_split_free(Split *item); Split *da_split_malloc(void); void da_split_destroy(GPtrArray *splits); GPtrArray *da_split_new(void); void da_splits_sort(GPtrArray *splits); guint da_splits_length(GPtrArray *splits); gboolean da_splits_delete(GPtrArray *splits, Split *item); void da_splits_append(GPtrArray *splits, Split *item); Split *da_split_duplicate(Split *src); Split *da_splits_get(GPtrArray *splits, guint index); GPtrArray *da_splits_clone(GPtrArray *src_splits); guint da_splits_parse(GPtrArray *splits, gchar *cats, gchar *amounts, gchar *memos); guint da_splits_tostring(GPtrArray *splits, gchar **cats, gchar **amounts, gchar **memos); guint da_splits_consistency (GPtrArray *splits); guint da_splits_anonymize (GPtrArray *splits); #endif homebank-5.9.1/src/Makefile.in0000664000175000017500000010641015006363044011634 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = homebank$(EXEEXT) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_homebank_OBJECTS = dsp-account.$(OBJEXT) dsp-mainwindow.$(OBJEXT) \ gtk-chart.$(OBJEXT) gtk-chart-colors.$(OBJEXT) \ gtk-chart-progress.$(OBJEXT) gtk-dateentry.$(OBJEXT) \ hb-account.$(OBJEXT) hb-archive.$(OBJEXT) hb-assign.$(OBJEXT) \ hb-category.$(OBJEXT) hb-currency.$(OBJEXT) \ hb-encoding.$(OBJEXT) hb-export.$(OBJEXT) hb-filter.$(OBJEXT) \ hb-hbfile.$(OBJEXT) hb-import.$(OBJEXT) \ hb-import-ofx.$(OBJEXT) hb-import-qif.$(OBJEXT) \ hb-import-csv.$(OBJEXT) hb-misc.$(OBJEXT) hb-payee.$(OBJEXT) \ hb-group.$(OBJEXT) hb-preferences.$(OBJEXT) \ hb-pref-data.$(OBJEXT) hb-report.$(OBJEXT) hb-tag.$(OBJEXT) \ hb-split.$(OBJEXT) hbtk-decimalentry.$(OBJEXT) \ hb-transaction.$(OBJEXT) hb-xml.$(OBJEXT) \ hbtk-switcher.$(OBJEXT) homebank.$(OBJEXT) \ hub-account.$(OBJEXT) hub-reptime.$(OBJEXT) \ hub-reptotal.$(OBJEXT) hub-scheduled.$(OBJEXT) \ hub-transaction.$(OBJEXT) language.$(OBJEXT) \ list-account.$(OBJEXT) list-operation.$(OBJEXT) \ list-report.$(OBJEXT) list-scheduled.$(OBJEXT) \ rep-balance.$(OBJEXT) rep-budget.$(OBJEXT) rep-stats.$(OBJEXT) \ rep-time.$(OBJEXT) rep-vehicle.$(OBJEXT) ui-account.$(OBJEXT) \ ui-archive.$(OBJEXT) ui-assign.$(OBJEXT) \ ui-assist-import.$(OBJEXT) ui-assist-start.$(OBJEXT) \ ui-budget.$(OBJEXT) ui-budget-tabview.$(OBJEXT) \ ui-category.$(OBJEXT) ui-currency.$(OBJEXT) \ ui-dialogs.$(OBJEXT) ui-filter.$(OBJEXT) \ ui-flt-widget.$(OBJEXT) ui-hbfile.$(OBJEXT) ui-group.$(OBJEXT) \ ui-payee.$(OBJEXT) ui-pref.$(OBJEXT) ui-tag.$(OBJEXT) \ ui-transaction.$(OBJEXT) ui-txn-multi.$(OBJEXT) \ ui-txn-split.$(OBJEXT) ui-widgets-data.$(OBJEXT) \ ui-widgets.$(OBJEXT) homebank_OBJECTS = $(am_homebank_OBJECTS) am__DEPENDENCIES_1 = homebank_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/dsp-account.Po \ ./$(DEPDIR)/dsp-mainwindow.Po ./$(DEPDIR)/gtk-chart-colors.Po \ ./$(DEPDIR)/gtk-chart-progress.Po ./$(DEPDIR)/gtk-chart.Po \ ./$(DEPDIR)/gtk-dateentry.Po ./$(DEPDIR)/hb-account.Po \ ./$(DEPDIR)/hb-archive.Po ./$(DEPDIR)/hb-assign.Po \ ./$(DEPDIR)/hb-category.Po ./$(DEPDIR)/hb-currency.Po \ ./$(DEPDIR)/hb-encoding.Po ./$(DEPDIR)/hb-export.Po \ ./$(DEPDIR)/hb-filter.Po ./$(DEPDIR)/hb-group.Po \ ./$(DEPDIR)/hb-hbfile.Po ./$(DEPDIR)/hb-import-csv.Po \ ./$(DEPDIR)/hb-import-ofx.Po ./$(DEPDIR)/hb-import-qif.Po \ ./$(DEPDIR)/hb-import.Po ./$(DEPDIR)/hb-misc.Po \ ./$(DEPDIR)/hb-payee.Po ./$(DEPDIR)/hb-pref-data.Po \ ./$(DEPDIR)/hb-preferences.Po ./$(DEPDIR)/hb-report.Po \ ./$(DEPDIR)/hb-split.Po ./$(DEPDIR)/hb-tag.Po \ ./$(DEPDIR)/hb-transaction.Po ./$(DEPDIR)/hb-xml.Po \ ./$(DEPDIR)/hbtk-decimalentry.Po ./$(DEPDIR)/hbtk-switcher.Po \ ./$(DEPDIR)/homebank.Po ./$(DEPDIR)/hub-account.Po \ ./$(DEPDIR)/hub-reptime.Po ./$(DEPDIR)/hub-reptotal.Po \ ./$(DEPDIR)/hub-scheduled.Po ./$(DEPDIR)/hub-transaction.Po \ ./$(DEPDIR)/language.Po ./$(DEPDIR)/list-account.Po \ ./$(DEPDIR)/list-operation.Po ./$(DEPDIR)/list-report.Po \ ./$(DEPDIR)/list-scheduled.Po ./$(DEPDIR)/rep-balance.Po \ ./$(DEPDIR)/rep-budget.Po ./$(DEPDIR)/rep-stats.Po \ ./$(DEPDIR)/rep-time.Po ./$(DEPDIR)/rep-vehicle.Po \ ./$(DEPDIR)/ui-account.Po ./$(DEPDIR)/ui-archive.Po \ ./$(DEPDIR)/ui-assign.Po ./$(DEPDIR)/ui-assist-import.Po \ ./$(DEPDIR)/ui-assist-start.Po \ ./$(DEPDIR)/ui-budget-tabview.Po ./$(DEPDIR)/ui-budget.Po \ ./$(DEPDIR)/ui-category.Po ./$(DEPDIR)/ui-currency.Po \ ./$(DEPDIR)/ui-dialogs.Po ./$(DEPDIR)/ui-filter.Po \ ./$(DEPDIR)/ui-flt-widget.Po ./$(DEPDIR)/ui-group.Po \ ./$(DEPDIR)/ui-hbfile.Po ./$(DEPDIR)/ui-payee.Po \ ./$(DEPDIR)/ui-pref.Po ./$(DEPDIR)/ui-tag.Po \ ./$(DEPDIR)/ui-transaction.Po ./$(DEPDIR)/ui-txn-multi.Po \ ./$(DEPDIR)/ui-txn-split.Po ./$(DEPDIR)/ui-widgets-data.Po \ ./$(DEPDIR)/ui-widgets.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(homebank_SOURCES) DIST_SOURCES = $(homebank_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ common_defines = \ -DSHARE_DIR=\""$(pkgdatadir)"\" \ -DDATA_DIR=\""$(datadir)"\" HOMEBANK_CORE = USER_INTERFACE = homebank_SOURCES = \ dsp-account.c \ dsp-account.h \ dsp-mainwindow.c \ dsp-mainwindow.h \ enums.h \ hb-types.h \ gtk-chart.c \ gtk-chart.h \ gtk-chart-colors.c \ gtk-chart-colors.h \ gtk-chart-progress.c \ gtk-chart-progress.h \ gtk-dateentry.c \ gtk-dateentry.h \ hb-account.c \ hb-account.h \ hb-archive.c \ hb-archive.h \ hb-assign.c \ hb-assign.h \ hb-category.c \ hb-category.h \ hb-currency.c \ hb-currency.h \ hb-encoding.c \ hb-encoding.h \ hb-export.c \ hb-export.h \ hb-filter.c \ hb-filter.h \ hb-hbfile.c \ hb-hbfile.h \ hb-import.c \ hb-import.h \ hb-import-ofx.c \ hb-import-qif.c \ hb-import-csv.c \ hb-misc.c \ hb-misc.h \ hb-payee.c \ hb-payee.h \ hb-group.c \ hb-group.h \ hb-preferences.c \ hb-preferences.h \ hb-pref-data.c \ hb-pref-data.h \ hb-report.c \ hb-report.h \ hb-tag.c \ hb-tag.h \ hb-split.c \ hb-split.h \ hbtk-decimalentry.c \ hbtk-decimalentry.h \ hb-transaction.c \ hb-transaction.h \ hb-xml.c \ hb-xml.h \ hbtk-switcher.c \ hbtk-switcher.h \ homebank.c \ homebank.h \ icon-names.h \ hub-account.c \ hub-account.h \ hub-reptime.c \ hub-reptime.h \ hub-reptotal.c \ hub-reptotal.h \ hub-scheduled.c \ hub-scheduled.h \ hub-transaction.c \ hub-transaction.h \ language.c \ language.h \ list-account.c \ list-account.h \ list-operation.c \ list-operation.h \ list-report.c \ list-report.h \ list-scheduled.c \ list-scheduled.h \ rep-balance.c \ rep-balance.h \ rep-budget.c \ rep-budget.h \ rep-stats.c \ rep-stats.h \ rep-time.c \ rep-time.h \ rep-vehicle.c \ rep-vehicle.h \ ui-account.c \ ui-account.h \ ui-archive.c \ ui-archive.h \ ui-assign.c \ ui-assign.h \ ui-assist-import.c \ ui-assist-import.h \ ui-assist-start.c \ ui-assist-start.h \ ui-budget.c \ ui-budget.h \ ui-budget-tabview.c \ ui-budget-tabview.h \ ui-category.c \ ui-category.h \ ui-currency.c \ ui-currency.h \ ui-dialogs.c \ ui-dialogs.h \ ui-filter.c \ ui-filter.h \ ui-flt-widget.c \ ui-flt-widget.h \ ui-hbfile.c \ ui-hbfile.h \ ui-group.c \ ui-group.h \ ui-payee.c \ ui-payee.h \ ui-pref.c \ ui-pref.h \ ui-tag.c \ ui-tag.h \ ui-transaction.c \ ui-transaction.h \ ui-txn-multi.c \ ui-txn-multi.h \ ui-txn-split.c \ ui-txn-split.h \ ui-widgets-data.c \ ui-widgets.c \ ui-widgets.h homebank_LDADD = $(DEPS_LIBS) \ $(LIBSOUP_LIBS) AM_CPPFLAGS = \ $(DEPS_CFLAGS) \ $(LIBSOUP_CFLAGS) \ $(common_defines) all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) homebank$(EXEEXT): $(homebank_OBJECTS) $(homebank_DEPENDENCIES) $(EXTRA_homebank_DEPENDENCIES) @rm -f homebank$(EXEEXT) $(AM_V_CCLD)$(LINK) $(homebank_OBJECTS) $(homebank_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsp-account.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsp-mainwindow.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-chart-colors.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-chart-progress.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-chart.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-dateentry.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-account.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-archive.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-assign.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-category.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-currency.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-encoding.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-export.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-filter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-group.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-hbfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-import-csv.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-import-ofx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-import-qif.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-import.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-misc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-payee.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-pref-data.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-preferences.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-report.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-split.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-tag.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-transaction.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-xml.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hbtk-decimalentry.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hbtk-switcher.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/homebank.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hub-account.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hub-reptime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hub-reptotal.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hub-scheduled.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hub-transaction.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/language.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list-account.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list-operation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list-report.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list-scheduled.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rep-balance.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rep-budget.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rep-stats.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rep-time.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rep-vehicle.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-account.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-archive.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-assign.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-assist-import.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-assist-start.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-budget-tabview.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-budget.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-category.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-currency.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-dialogs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-filter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-flt-widget.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-group.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-hbfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-payee.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-pref.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-tag.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-transaction.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-txn-multi.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-txn-split.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-widgets-data.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-widgets.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/dsp-account.Po -rm -f ./$(DEPDIR)/dsp-mainwindow.Po -rm -f ./$(DEPDIR)/gtk-chart-colors.Po -rm -f ./$(DEPDIR)/gtk-chart-progress.Po -rm -f ./$(DEPDIR)/gtk-chart.Po -rm -f ./$(DEPDIR)/gtk-dateentry.Po -rm -f ./$(DEPDIR)/hb-account.Po -rm -f ./$(DEPDIR)/hb-archive.Po -rm -f ./$(DEPDIR)/hb-assign.Po -rm -f ./$(DEPDIR)/hb-category.Po -rm -f ./$(DEPDIR)/hb-currency.Po -rm -f ./$(DEPDIR)/hb-encoding.Po -rm -f ./$(DEPDIR)/hb-export.Po -rm -f ./$(DEPDIR)/hb-filter.Po -rm -f ./$(DEPDIR)/hb-group.Po -rm -f ./$(DEPDIR)/hb-hbfile.Po -rm -f ./$(DEPDIR)/hb-import-csv.Po -rm -f ./$(DEPDIR)/hb-import-ofx.Po -rm -f ./$(DEPDIR)/hb-import-qif.Po -rm -f ./$(DEPDIR)/hb-import.Po -rm -f ./$(DEPDIR)/hb-misc.Po -rm -f ./$(DEPDIR)/hb-payee.Po -rm -f ./$(DEPDIR)/hb-pref-data.Po -rm -f ./$(DEPDIR)/hb-preferences.Po -rm -f ./$(DEPDIR)/hb-report.Po -rm -f ./$(DEPDIR)/hb-split.Po -rm -f ./$(DEPDIR)/hb-tag.Po -rm -f ./$(DEPDIR)/hb-transaction.Po -rm -f ./$(DEPDIR)/hb-xml.Po -rm -f ./$(DEPDIR)/hbtk-decimalentry.Po -rm -f ./$(DEPDIR)/hbtk-switcher.Po -rm -f ./$(DEPDIR)/homebank.Po -rm -f ./$(DEPDIR)/hub-account.Po -rm -f ./$(DEPDIR)/hub-reptime.Po -rm -f ./$(DEPDIR)/hub-reptotal.Po -rm -f ./$(DEPDIR)/hub-scheduled.Po -rm -f ./$(DEPDIR)/hub-transaction.Po -rm -f ./$(DEPDIR)/language.Po -rm -f ./$(DEPDIR)/list-account.Po -rm -f ./$(DEPDIR)/list-operation.Po -rm -f ./$(DEPDIR)/list-report.Po -rm -f ./$(DEPDIR)/list-scheduled.Po -rm -f ./$(DEPDIR)/rep-balance.Po -rm -f ./$(DEPDIR)/rep-budget.Po -rm -f ./$(DEPDIR)/rep-stats.Po -rm -f ./$(DEPDIR)/rep-time.Po -rm -f ./$(DEPDIR)/rep-vehicle.Po -rm -f ./$(DEPDIR)/ui-account.Po -rm -f ./$(DEPDIR)/ui-archive.Po -rm -f ./$(DEPDIR)/ui-assign.Po -rm -f ./$(DEPDIR)/ui-assist-import.Po -rm -f ./$(DEPDIR)/ui-assist-start.Po -rm -f ./$(DEPDIR)/ui-budget-tabview.Po -rm -f ./$(DEPDIR)/ui-budget.Po -rm -f ./$(DEPDIR)/ui-category.Po -rm -f ./$(DEPDIR)/ui-currency.Po -rm -f ./$(DEPDIR)/ui-dialogs.Po -rm -f ./$(DEPDIR)/ui-filter.Po -rm -f ./$(DEPDIR)/ui-flt-widget.Po -rm -f ./$(DEPDIR)/ui-group.Po -rm -f ./$(DEPDIR)/ui-hbfile.Po -rm -f ./$(DEPDIR)/ui-payee.Po -rm -f ./$(DEPDIR)/ui-pref.Po -rm -f ./$(DEPDIR)/ui-tag.Po -rm -f ./$(DEPDIR)/ui-transaction.Po -rm -f ./$(DEPDIR)/ui-txn-multi.Po -rm -f ./$(DEPDIR)/ui-txn-split.Po -rm -f ./$(DEPDIR)/ui-widgets-data.Po -rm -f ./$(DEPDIR)/ui-widgets.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/dsp-account.Po -rm -f ./$(DEPDIR)/dsp-mainwindow.Po -rm -f ./$(DEPDIR)/gtk-chart-colors.Po -rm -f ./$(DEPDIR)/gtk-chart-progress.Po -rm -f ./$(DEPDIR)/gtk-chart.Po -rm -f ./$(DEPDIR)/gtk-dateentry.Po -rm -f ./$(DEPDIR)/hb-account.Po -rm -f ./$(DEPDIR)/hb-archive.Po -rm -f ./$(DEPDIR)/hb-assign.Po -rm -f ./$(DEPDIR)/hb-category.Po -rm -f ./$(DEPDIR)/hb-currency.Po -rm -f ./$(DEPDIR)/hb-encoding.Po -rm -f ./$(DEPDIR)/hb-export.Po -rm -f ./$(DEPDIR)/hb-filter.Po -rm -f ./$(DEPDIR)/hb-group.Po -rm -f ./$(DEPDIR)/hb-hbfile.Po -rm -f ./$(DEPDIR)/hb-import-csv.Po -rm -f ./$(DEPDIR)/hb-import-ofx.Po -rm -f ./$(DEPDIR)/hb-import-qif.Po -rm -f ./$(DEPDIR)/hb-import.Po -rm -f ./$(DEPDIR)/hb-misc.Po -rm -f ./$(DEPDIR)/hb-payee.Po -rm -f ./$(DEPDIR)/hb-pref-data.Po -rm -f ./$(DEPDIR)/hb-preferences.Po -rm -f ./$(DEPDIR)/hb-report.Po -rm -f ./$(DEPDIR)/hb-split.Po -rm -f ./$(DEPDIR)/hb-tag.Po -rm -f ./$(DEPDIR)/hb-transaction.Po -rm -f ./$(DEPDIR)/hb-xml.Po -rm -f ./$(DEPDIR)/hbtk-decimalentry.Po -rm -f ./$(DEPDIR)/hbtk-switcher.Po -rm -f ./$(DEPDIR)/homebank.Po -rm -f ./$(DEPDIR)/hub-account.Po -rm -f ./$(DEPDIR)/hub-reptime.Po -rm -f ./$(DEPDIR)/hub-reptotal.Po -rm -f ./$(DEPDIR)/hub-scheduled.Po -rm -f ./$(DEPDIR)/hub-transaction.Po -rm -f ./$(DEPDIR)/language.Po -rm -f ./$(DEPDIR)/list-account.Po -rm -f ./$(DEPDIR)/list-operation.Po -rm -f ./$(DEPDIR)/list-report.Po -rm -f ./$(DEPDIR)/list-scheduled.Po -rm -f ./$(DEPDIR)/rep-balance.Po -rm -f ./$(DEPDIR)/rep-budget.Po -rm -f ./$(DEPDIR)/rep-stats.Po -rm -f ./$(DEPDIR)/rep-time.Po -rm -f ./$(DEPDIR)/rep-vehicle.Po -rm -f ./$(DEPDIR)/ui-account.Po -rm -f ./$(DEPDIR)/ui-archive.Po -rm -f ./$(DEPDIR)/ui-assign.Po -rm -f ./$(DEPDIR)/ui-assist-import.Po -rm -f ./$(DEPDIR)/ui-assist-start.Po -rm -f ./$(DEPDIR)/ui-budget-tabview.Po -rm -f ./$(DEPDIR)/ui-budget.Po -rm -f ./$(DEPDIR)/ui-category.Po -rm -f ./$(DEPDIR)/ui-currency.Po -rm -f ./$(DEPDIR)/ui-dialogs.Po -rm -f ./$(DEPDIR)/ui-filter.Po -rm -f ./$(DEPDIR)/ui-flt-widget.Po -rm -f ./$(DEPDIR)/ui-group.Po -rm -f ./$(DEPDIR)/ui-hbfile.Po -rm -f ./$(DEPDIR)/ui-payee.Po -rm -f ./$(DEPDIR)/ui-pref.Po -rm -f ./$(DEPDIR)/ui-tag.Po -rm -f ./$(DEPDIR)/ui-transaction.Po -rm -f ./$(DEPDIR)/ui-txn-multi.Po -rm -f ./$(DEPDIR)/ui-txn-split.Po -rm -f ./$(DEPDIR)/ui-widgets-data.Po -rm -f ./$(DEPDIR)/ui-widgets.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: homebank-5.9.1/src/hb-xml.h0000644000175000017500000000230514736461415011135 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_XML_H__ #define __HB_XML_H__ enum { XML_UNSET, XML_OK, XML_IO_ERROR, XML_FILE_ERROR, XML_VERSION_ERROR, XML_NOT_WRITABLE, }; typedef struct _ParseContext ParseContext; struct _ParseContext { gdouble file_version; //version of the xml structure gint data_version; //last hb version file was saved with }; gint homebank_load_xml(gchar *filename); gint homebank_save_xml(gchar *filename); #endif homebank-5.9.1/src/ui-filter.c0000644000175000017500000013643315005624256011645 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-widgets.h" #include "ui-filter.h" #include "ui-account.h" #include "ui-payee.h" #include "ui-category.h" #include "ui-tag.h" #include "hbtk-switcher.h" #include "gtk-dateentry.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern gchar *CYA_FLT_TYPE[]; extern gchar *CYA_FLT_STATUS[]; extern gchar *CYA_SELECT[]; extern gchar *RA_FILTER_MODE[]; extern HbKivData CYA_TXN_PAYMODE[NUM_PAYMODE_MAX]; /* = = = = = = = = = = = = = = = = = = = = */ static void ui_flt_manage_cb_range_change(GtkWidget *widget, gpointer user_data); static guint _gtkentry_to_filter(GtkEntry *entry, gchar **storage) { const gchar *txt; guint change = 0; if(!GTK_IS_ENTRY(entry)) return 0; txt = gtk_entry_get_text(GTK_ENTRY(entry)); if( g_strcmp0(txt, *storage) != 0 ) { change++; g_free(*storage); *storage = g_strdup(txt); } return change; } /* = = = = = = = = = = = = = = = = = = = = */ static void ui_flt_hub_tag_set(Filter *flt, struct ui_flt_manage_data *data) { DB( g_print("(ui_flt_hub_tag) set\n") ); if(data->filter != NULL) { GtkTreeModel *model; //GtkTreeSelection *selection; GtkTreeIter iter; gboolean valid; gint i; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_tag)); //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_tag)); i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Tag *tagitem; gboolean status; gtk_tree_model_get (model, &iter, LST_DEFTAG_DATAS, &tagitem, -1); status = da_flt_status_tag_get(flt, tagitem->key); DB( g_print(" set tag k:%3d = %d (%s)\n", tagitem->key, status, tagitem->name) ); gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFTAG_TOGGLE, status, -1); /* Make iter point to the next row in the list store */ i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } } static gboolean ui_flt_hub_tag_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { DB( g_print("(ui_flt_hub_tag) activate_link\n") ); g_return_val_if_fail(GTK_IS_TREE_VIEW(user_data), TRUE); ui_tag_listview_quick_select(user_data, uri ); return TRUE; } /* = = = = = = = = = = = = = = = = = = = = */ //#1828732 add expand/collapse all for categories in edit filter static void ui_flt_hub_category_expand_all(GtkWidget *widget, gpointer user_data) { struct ui_flt_manage_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n(ui_flt_hub_category) expand all (data=%p)\n", data) ); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_cat)); } static void ui_flt_hub_category_collapse_all(GtkWidget *widget, gpointer user_data) { struct ui_flt_manage_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n(ui_flt_hub_category) collapse all (data=%p)\n", data) ); gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_cat)); } static void ui_flt_hub_category_set(Filter *flt, struct ui_flt_manage_data *data) { DB( g_print("(ui_flt_hub_category) set\n") ); if(data->filter != NULL) { GtkTreeModel *model; //GtkTreeSelection *selection; GtkTreeIter iter, child; gint n_child; gboolean valid; gint i; // category DB( g_print(" category\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat)); //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)); i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Category *catitem; gboolean status; gtk_tree_model_get (model, &iter, LST_DEFCAT_DATAS, &catitem, -1); status = da_flt_status_cat_get(flt, catitem->key); gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, status, -1); DB( g_print(" set %d to '%s' %d\n", status, catitem->name, catitem->key) ); n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter); gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while(n_child > 0) { i++; gtk_tree_model_get (model, &child, LST_DEFCAT_DATAS, &catitem, -1); status = da_flt_status_cat_get(flt, catitem->key); gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, status, -1); DB( g_print(" set %d to '%s' %d\n", status, catitem->name, catitem->key) ); n_child--; gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } /* Make iter point to the next row in the list store */ i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } } static gboolean ui_flt_hub_category_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { DB( g_print("(ui_flt_hub_category) activate_link\n") ); g_return_val_if_fail(GTK_IS_TREE_VIEW(user_data), TRUE); ui_cat_listview_quick_select(user_data, uri ); return TRUE; } /* = = = = = = = = = = = = = = = = */ static void ui_flt_hub_payee_set(Filter *flt, struct ui_flt_manage_data *data) { DB( g_print("(ui_flt_hub_payee) set\n") ); if(data->filter != NULL) { GtkTreeModel *model; //GtkTreeSelection *selection; GtkTreeIter iter; gboolean valid; gint i; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_pay)); //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_pay)); i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Payee *payitem; gboolean status; gtk_tree_model_get (model, &iter, LST_DEFPAY_DATAS, &payitem, -1); status = da_flt_status_pay_get(flt, payitem->key); gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFPAY_TOGGLE, status, -1); DB( g_print(" set %d to '%s' %d\n", status, payitem->name, payitem->key) ); /* Make iter point to the next row in the list store */ i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } } static gboolean ui_flt_hub_payee_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { DB( g_print("(ui_flt_hub_payee) activate_link\n") ); g_return_val_if_fail(GTK_IS_TREE_VIEW(user_data), TRUE); ui_pay_listview_quick_select(user_data, uri ); return TRUE; } /* = = = = = = = = = = = = = = = = */ static void ui_flt_hub_account_set(Filter *flt, struct ui_flt_manage_data *data) { GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gint i; DB( g_print("(ui_flt_hub_account) set\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_acc)); //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)); i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Account *accitem; gboolean status; gtk_tree_model_get (model, &iter, LST_DEFACC_DATAS, &accitem, -1); status = da_flt_status_acc_get(flt, accitem->key); gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, status, -1); /* Make iter point to the next row in the list store */ i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } static gboolean ui_flt_hub_account_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { DB( g_print("(ui_flt_hub_account) activate_link\n") ); g_return_val_if_fail(GTK_IS_TREE_VIEW(user_data), TRUE); ui_acc_listview_quick_select(GTK_TREE_VIEW(user_data), uri); return TRUE; } /* = = = = = = = = = = = = = = = = */ static void ui_flt_manage_update_page(gint pageidx, const gchar *pagename, struct ui_flt_manage_data *data) { GtkWidget *child; GValue gvalue = G_VALUE_INIT; gboolean visible; g_value_init (&gvalue, G_TYPE_BOOLEAN); visible = (!gtk_switch_get_active(GTK_SWITCH(data->SW_enabled[pageidx]))) ? FALSE : TRUE; gtk_widget_set_sensitive(data->RA_matchmode[pageidx], visible); gtk_widget_set_sensitive(data->GR_page[pageidx], visible); g_value_set_boolean (&gvalue, visible); child = gtk_stack_get_child_by_name(GTK_STACK(data->stack), pagename); gtk_container_child_set_property(GTK_CONTAINER(data->stack), child, "needs-attention", &gvalue); } static void ui_flt_manage_update(GtkWidget *widget, gpointer user_data) { struct ui_flt_manage_data *data; gboolean sensitive, visible, v1, v2; GtkWidget *child; GValue gvalue = G_VALUE_INIT; gint range; DB( g_print("\n[ui_flt_manage] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); g_value_init (&gvalue, G_TYPE_BOOLEAN); // date gtk_widget_set_sensitive(data->SW_enabled[FLT_GRP_DATE], FALSE); ui_flt_manage_update_page(FLT_GRP_DATE, FLT_PAGE_NAME_DAT, data); sensitive = (range == FLT_RANGE_MISC_CUSTOM) ? TRUE : FALSE; gtk_widget_set_sensitive(GTK_WIDGET(data->LB_mindate), sensitive); gtk_widget_set_sensitive(GTK_WIDGET(data->LB_maxdate), sensitive); gtk_widget_set_sensitive(GTK_WIDGET(data->PO_mindate), sensitive); gtk_widget_set_sensitive(GTK_WIDGET(data->PO_maxdate), sensitive); // type visible = (!gtk_switch_get_active(GTK_SWITCH(data->SW_enabled[FLT_GRP_TYPE]))) ? FALSE : TRUE; gtk_widget_set_sensitive(data->RA_matchmode[FLT_GRP_TYPE], visible); gtk_widget_set_sensitive(data->GR_page[FLT_GRP_TYPE], visible); g_value_set_boolean (&gvalue, visible); child = gtk_stack_get_child_by_name(GTK_STACK(data->stack), FLT_PAGE_NAME_TYP); gtk_container_child_set_property(GTK_CONTAINER(data->stack), child, "needs-attention", &gvalue); // status visible = (!gtk_switch_get_active(GTK_SWITCH(data->SW_enabled[FLT_GRP_STATUS]))) ? FALSE : TRUE; gtk_widget_set_sensitive(data->RA_matchmode[FLT_GRP_STATUS], visible); gtk_widget_set_sensitive(data->GR_page[FLT_GRP_STATUS], visible); g_value_set_boolean (&gvalue, visible); child = gtk_stack_get_child_by_name(GTK_STACK(data->stack), FLT_PAGE_NAME_STA); gtk_container_child_set_property(GTK_CONTAINER(data->stack), child, "needs-attention", &gvalue); // account if(data->show_account == TRUE) ui_flt_manage_update_page(FLT_GRP_ACCOUNT, FLT_PAGE_NAME_ACC, data); // amount/text v1 = (!gtk_switch_get_active(GTK_SWITCH(data->SW_enabled[FLT_GRP_AMOUNT]))) ? FALSE : TRUE; gtk_widget_set_sensitive(data->RA_matchmode[FLT_GRP_AMOUNT], v1); gtk_widget_set_sensitive(data->GR_page[FLT_GRP_AMOUNT], v1); v2 = (!gtk_switch_get_active(GTK_SWITCH(data->SW_enabled[FLT_GRP_TEXT]))) ? FALSE : TRUE; gtk_widget_set_sensitive(data->RA_matchmode[FLT_GRP_TEXT], v2); gtk_widget_set_sensitive(data->GR_page[FLT_GRP_TEXT], v2); visible = v1 | v2; g_value_set_boolean (&gvalue, visible); child = gtk_stack_get_child_by_name(GTK_STACK(data->stack), FLT_PAGE_NAME_TXT); gtk_container_child_set_property(GTK_CONTAINER(data->stack), child, "needs-attention", &gvalue); // payee ui_flt_manage_update_page(FLT_GRP_PAYEE, FLT_PAGE_NAME_PAY, data); // category ui_flt_manage_update_page(FLT_GRP_CATEGORY, FLT_PAGE_NAME_CAT, data); // tag ui_flt_manage_update_page(FLT_GRP_TAG, FLT_PAGE_NAME_TAG, data); // payment ui_flt_manage_update_page(FLT_GRP_PAYMODE, FLT_PAGE_NAME_PMT, data); //v1 = (!gtk_switch_get_active(GTK_SWITCH(data->SW_enabled[FLT_GRP_PAYMODE]))) ? FALSE : TRUE; //gtk_widget_set_sensitive(data->GR_page[FLT_GRP_PAYMODE], v1); } static void ui_flt_manage_get_option(struct ui_flt_manage_data *data, gint index) { gint newoption = gtk_switch_get_active(GTK_SWITCH(data->SW_enabled[index])); //option should be set: 0=off, 1=include, 2=exclude if( newoption == 1 ) { if( hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_matchmode[index])) == 1) newoption++; } data->filter->option[index] = newoption; } static void ui_flt_manage_get(struct ui_flt_manage_data *data) { Filter *flt = data->filter; gchar *olddigest, *newdigest; guint i, length; gboolean active; DB( g_print("\n[ui_flt_manage] get\n") ); if(flt != NULL) { //TODO: 5.8 we should count changes into flt->nbchanges length = offsetof(Filter, exact); DB( g_print(" length: %d\n", length) ); //use a checksum for non-pointer data olddigest = g_compute_checksum_for_data (G_CHECKSUM_MD5, (const guchar *)flt, length); DB( g_print(" option\n") ); ui_flt_manage_get_option(data, FLT_GRP_DATE); ui_flt_manage_get_option(data, FLT_GRP_TYPE); ui_flt_manage_get_option(data, FLT_GRP_STATUS); ui_flt_manage_get_option(data, FLT_GRP_PAYEE); ui_flt_manage_get_option(data, FLT_GRP_CATEGORY); ui_flt_manage_get_option(data, FLT_GRP_TAG); if(data->show_account == TRUE) ui_flt_manage_get_option(data, FLT_GRP_ACCOUNT); ui_flt_manage_get_option(data, FLT_GRP_TEXT); ui_flt_manage_get_option(data, FLT_GRP_AMOUNT); ui_flt_manage_get_option(data, FLT_GRP_PAYMODE); //date DB( g_print(" date\n") ); //5.8 date off means show all date if( data->filter->option[FLT_GRP_DATE] == 0 ) { data->filter->option[FLT_GRP_DATE] = 1; data->filter->range = FLT_RANGE_MISC_ALLDATE; } flt->range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); flt->mindate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_mindate)); flt->maxdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_maxdate)); //type DB( g_print(" type\n") ); flt->typ_nexp = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_typnexp)); flt->typ_ninc = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_typninc)); flt->typ_xexp = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_typxexp)); flt->typ_xinc = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_typxinc)); //status DB( g_print(" status\n") ); flt->sta_non = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_stanon)); flt->sta_clr = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_staclr)); flt->sta_rec = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_starec)); flt->forceadd = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_forceadd)); flt->forcechg = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_forcechg)); flt->forceremind = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_forceremind)); flt->forcevoid = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_forcevoid)); //paymode DB( g_print(" paymode\n") ); for(i=0;iCM_paymode[i] )) continue; uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(data->CM_paymode[i]), "uid")); flt->paymode[uid] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_paymode[i])); } //amount flt->minamount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_minamount)); flt->maxamount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_maxamount)); //5.8 we compute new checksum here to detect changes newdigest = g_compute_checksum_for_data (G_CHECKSUM_MD5, (const guchar *)flt, length); DB( g_print(" checksum: '%s'\n", olddigest) ); DB( g_print(" checksum: '%s'\n", newdigest) ); if (strcmp(olddigest, newdigest) ) { flt->nbchanges++; DB( g_print(" > checksum differs\n") ); } DB( g_print(" changes: %d (post checksum)\n", flt->nbchanges) ); g_free (olddigest); g_free (newdigest); // data below need to detect/count change on their own //text:memo //text:info flt->nbchanges += _gtkentry_to_filter(GTK_ENTRY(data->ST_memo), &flt->memo); flt->nbchanges += _gtkentry_to_filter(GTK_ENTRY(data->ST_number), &flt->number); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_exact)); if( flt->exact != active ) { flt->nbchanges++; flt->exact = active; } DB( g_print(" changes: %d (post memo/info)\n", flt->nbchanges) ); // account if(data->show_account == TRUE) { flt->nbchanges += ui_acc_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_acc), flt); DB( g_print(" changes: %d (post acc)\n", flt->nbchanges) ); } // payee flt->nbchanges += ui_pay_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_pay), flt); DB( g_print(" changes: %d (post pay)\n", flt->nbchanges) ); // category flt->nbchanges += ui_cat_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_cat), flt); DB( g_print(" changes: %d (post cat)\n", flt->nbchanges) ); // tag flt->nbchanges += ui_tag_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_tag), flt); DB( g_print(" changes: %d (post tag)\n", flt->nbchanges) ); // active tab g_strlcpy(flt->last_tab, gtk_stack_get_visible_child_name(GTK_STACK(data->stack)), 8); DB( g_print(" page is '%s'\n", flt->last_tab) ); } } static void ui_flt_manage_set_option(struct ui_flt_manage_data *data, gint index) { //option: 0=off, 1=include, 2=exclude gint tmpoption = data->filter->option[index]; gtk_switch_set_active(GTK_SWITCH(data->SW_enabled[index]), tmpoption); if( tmpoption == 2 ) { hbtk_switcher_set_active (HBTK_SWITCHER(data->RA_matchmode[index]), 1); } } static void ui_flt_manage_set(struct ui_flt_manage_data *data) { Filter *flt = data->filter; DB( g_print("\n[ui_flt_manage] set\n") ); if(flt != NULL) { gint i; DB( g_print(" options\n") ); ui_flt_manage_set_option(data, FLT_GRP_DATE); ui_flt_manage_set_option(data, FLT_GRP_TYPE); ui_flt_manage_set_option(data, FLT_GRP_STATUS); ui_flt_manage_set_option(data, FLT_GRP_PAYEE); ui_flt_manage_set_option(data, FLT_GRP_CATEGORY); ui_flt_manage_set_option(data, FLT_GRP_TAG); if(data->show_account == TRUE) ui_flt_manage_set_option(data, FLT_GRP_ACCOUNT); ui_flt_manage_set_option(data, FLT_GRP_TEXT); ui_flt_manage_set_option(data, FLT_GRP_AMOUNT); ui_flt_manage_set_option(data, FLT_GRP_PAYMODE); //DB( g_print(" setdate %d to %x\n", flt->mindate, data->PO_mindate) ); //DB( g_print(" setdate %d to %x\n", 0, data->PO_mindate) ); //date DB( g_print(" date\n") ); //g_signal_handler_block(data->CY_range, data->handler_id[HID_REPDIST_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), flt->range); //g_signal_handler_unblock(data->CY_range, data->handler_id[HID_REPDIST_RANGE]); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_mindate), flt->mindate); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_maxdate), flt->maxdate); //type DB( g_print(" type\n") ); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_typnexp), flt->typ_nexp); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_typninc), flt->typ_ninc); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_typxexp), flt->typ_xexp); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_typxinc), flt->typ_xinc); //status DB( g_print(" status/type\n") ); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_stanon), flt->sta_non); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_staclr), flt->sta_clr); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_starec), flt->sta_rec); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_forceadd), flt->forceadd); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_forcechg), flt->forcechg); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_forceremind), flt->forceremind); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_forcevoid), flt->forcevoid); //paymode DB( g_print(" paymode\n") ); for(i=0;iCM_paymode[i] )) continue; uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(data->CM_paymode[i]), "uid")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_paymode[i]), flt->paymode[uid]); } //amount gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_minamount), flt->minamount); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_maxamount), flt->maxamount); //text gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_exact), flt->exact); gtk_entry_set_text(GTK_ENTRY(data->ST_number), (flt->number != NULL) ? flt->number : ""); gtk_entry_set_text(GTK_ENTRY(data->ST_memo), (flt->memo != NULL) ? flt->memo : ""); //account if(data->show_account == TRUE) { DB( g_print(" account\n") ); ui_flt_hub_account_set(flt, data); } // payee ui_flt_hub_payee_set(flt, data); // category ui_flt_hub_category_set(flt, data); // tag ui_flt_hub_tag_set(flt, data); } } static void ui_flt_manage_setup(struct ui_flt_manage_data *data) { DB( g_print("\n[ui_flt_manage] setup\n") ); if(data->show_account == TRUE && data->LV_acc != NULL) { //gtk_tree_selection_set_mode(GTK_TREE_SELECTION(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc))), GTK_SELECTION_MULTIPLE); ui_acc_listview_populate(data->LV_acc, ACC_LST_INSERT_REPORT, NULL); //populate_view_acc(data->LV_acc, GLOBALS->acc_list, FALSE); } if(data->LV_pay) { //gtk_tree_selection_set_mode(GTK_TREE_SELECTION(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_pay))), GTK_SELECTION_MULTIPLE); ui_pay_listview_populate(data->LV_pay, NULL, TRUE); //populate_view_pay(data->LV_pay, GLOBALS->pay_list, FALSE); } if(data->LV_cat) { //gtk_tree_selection_set_mode(GTK_TREE_SELECTION(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat))), GTK_SELECTION_MULTIPLE); //populate_view_cat(data->LV_cat, GLOBALS->cat_list, FALSE); ui_cat_listview_populate(data->LV_cat, CAT_TYPE_ALL, NULL, TRUE); gtk_tree_view_expand_all (GTK_TREE_VIEW(data->LV_cat)); } if(data->LV_tag) { ui_tag_listview_populate(data->LV_tag, 0); } } static gboolean ui_flt_page_paymode_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { struct ui_flt_manage_data *data; gint i; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(label, GTK_TYPE_WINDOW)), "inst_data"); for(i=0;iCM_paymode[i] )) continue; if (g_strcmp0 (uri, "all") == 0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_paymode[i]), TRUE); } else if (g_strcmp0 (uri, "non") == 0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_paymode[i]), FALSE); } else if (g_strcmp0 (uri, "inv") == 0) { gboolean act = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_paymode[i])); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_paymode[i]), !act); } } return TRUE; } static void _checkdate_valid(struct ui_flt_manage_data *data) { gboolean valid = (data->filter->mindate <= data->filter->maxdate) ? TRUE : FALSE; //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), !valid); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), !valid); //disable use if invalid date gtk_dialog_set_response_sensitive(GTK_DIALOG(data->dialog), GTK_RESPONSE_ACCEPT, valid); } static void ui_flt_manage_cb_date_change(GtkWidget *widget, gpointer user_data) { struct ui_flt_manage_data *data; DB( g_print("\n[ui_flt_manage] min/max/date change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); g_signal_handlers_block_by_func(data->CY_range, G_CALLBACK(ui_flt_manage_cb_range_change), NULL); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_CUSTOM); g_signal_handlers_unblock_by_func(data->CY_range, G_CALLBACK(ui_flt_manage_cb_range_change), NULL); data->filter->mindate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_mindate)); data->filter->maxdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_maxdate)); //5.8 check for error _checkdate_valid(data); } static void ui_flt_manage_cb_range_change(GtkWidget *widget, gpointer user_data) { struct ui_flt_manage_data *data; gint range; //DB( g_print("\n[repdist] range change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); if(range != FLT_RANGE_MISC_CUSTOM) { filter_preset_daterange_set(data->filter, range, 0); g_signal_handlers_block_by_func(data->PO_mindate, G_CALLBACK(ui_flt_manage_cb_date_change), NULL); g_signal_handlers_block_by_func(data->PO_maxdate, G_CALLBACK(ui_flt_manage_cb_date_change), NULL); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_mindate), data->filter->mindate); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_maxdate), data->filter->maxdate); g_signal_handlers_unblock_by_func(data->PO_mindate, G_CALLBACK(ui_flt_manage_cb_date_change), NULL); g_signal_handlers_unblock_by_func(data->PO_maxdate, G_CALLBACK(ui_flt_manage_cb_date_change), NULL); //#2046032 set min/max date for both widget _checkdate_valid(data); } ui_flt_manage_update(widget, NULL); } /* = = = = = = = = = = = = = = = = */ static GtkWidget *ui_flt_page_misc_header(gchar *title, gint index, struct ui_flt_manage_data *data) { GtkWidget *grid, *label, *widget; gint row; //header grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); row = 0; label = make_label_group(title); gtk_grid_attach (GTK_GRID (grid), label, 1, row, 2, 1); row++; widget = gtk_switch_new(); //gtk_widget_set_halign(widget, GTK_ALIGN_START); data->SW_enabled[index] = widget; gtk_grid_attach (GTK_GRID (grid), widget, 1, row, 1, 1); widget = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup(HBTK_SWITCHER(widget), RA_FILTER_MODE, FALSE); data->RA_matchmode[index] = widget; //gtk_widget_set_halign(widget, GTK_ALIGN_CENTER); gtk_grid_attach (GTK_GRID (grid), widget, 2, row, 1, 1); return grid; } static GtkWidget *ui_flt_page_widget_toolbar(struct ui_flt_list_data *data) { GtkWidget *treebox, *label; treebox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_widget_set_margin_bottom(treebox, SPACING_SMALL); label = make_label (_("Select:"), 0, 0.5); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("all", _("All")); data->bt_all = label; gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("non", _("None")); data->bt_non = label; gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("inv", _("Invert")); data->bt_inv = label; gtk_box_prepend (GTK_BOX (treebox), label); return treebox; } static GtkWidget *ui_flt_page_list_generic (gchar *title, GtkWidget *treeview, struct ui_flt_list_data *data) { GtkWidget *vbox, *treebox, *scrollwin; vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); data->gr_criteria = vbox; treebox = ui_flt_page_widget_toolbar(data); gtk_box_prepend (GTK_BOX (vbox), treebox); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(treeview), GTK_TREE_VIEW_GRID_LINES_NONE); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); return vbox; } static GtkWidget *ui_flt_page_account (struct ui_flt_manage_data *data) { struct ui_flt_list_data tmp; GtkWidget *part, *grid; GtkWidget *treeview; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); //header grid = ui_flt_page_misc_header(_("Account"), FLT_GRP_ACCOUNT, data); gtk_box_prepend (GTK_BOX (part), grid); treeview = ui_acc_listview_new(TRUE); grid = ui_flt_page_list_generic(_("Account"), treeview, &tmp); hbtk_box_prepend (GTK_BOX (part), grid); //data->SW_enabled[FLT_GRP_ACCOUNT] = tmp.sw_enabled; data->GR_page[FLT_GRP_ACCOUNT] = tmp.gr_criteria; //data->RA_matchmode[FLT_GRP_ACCOUNT] = tmp.ra_mode; data->LV_acc = treeview; g_signal_connect (tmp.bt_all, "activate-link", G_CALLBACK (ui_flt_hub_account_activate_link), treeview); g_signal_connect (tmp.bt_non, "activate-link", G_CALLBACK (ui_flt_hub_account_activate_link), treeview); g_signal_connect (tmp.bt_inv, "activate-link", G_CALLBACK (ui_flt_hub_account_activate_link), treeview); return(part); } static GtkWidget *ui_flt_page_category (struct ui_flt_manage_data *data) { struct ui_flt_list_data tmp; GtkWidget *part, *grid, *widget, *tbar, *bbox; GtkWidget *treeview; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); //header grid = ui_flt_page_misc_header(_("Category"), FLT_GRP_CATEGORY, data); gtk_box_prepend (GTK_BOX (part), grid); treeview = ui_cat_listview_new(TRUE, FALSE); grid = ui_flt_page_list_generic(_("Category"), treeview, &tmp); hbtk_box_prepend (GTK_BOX (part), grid); //data->SW_enabled[FLT_GRP_CATEGORY] = tmp.sw_enabled; data->GR_page[FLT_GRP_CATEGORY] = tmp.gr_criteria; //data->RA_matchmode[FLT_GRP_CATEGORY] = tmp.ra_mode; data->LV_cat = treeview; g_signal_connect (tmp.bt_all, "activate-link", G_CALLBACK (ui_flt_hub_category_activate_link), treeview); g_signal_connect (tmp.bt_non, "activate-link", G_CALLBACK (ui_flt_hub_category_activate_link), treeview); g_signal_connect (tmp.bt_inv, "activate-link", G_CALLBACK (ui_flt_hub_category_activate_link), treeview); // expand/colapse tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (grid), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_EXPAND, _("Expand all")); data->BT_expand = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_button(ICONNAME_HB_BUTTON_COLLAPSE, _("Collapse all")); data->BT_collapse = widget; gtk_box_prepend (GTK_BOX (bbox), widget); g_signal_connect (G_OBJECT (data->BT_expand), "clicked", G_CALLBACK (ui_flt_hub_category_expand_all), NULL); g_signal_connect (G_OBJECT (data->BT_collapse), "clicked", G_CALLBACK (ui_flt_hub_category_collapse_all), NULL); return(part); } static GtkWidget *ui_flt_page_payee (struct ui_flt_manage_data *data) { struct ui_flt_list_data tmp; GtkWidget *part, *grid; GtkWidget *treeview; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); //header grid = ui_flt_page_misc_header(_("Payee"), FLT_GRP_PAYEE, data); gtk_box_prepend (GTK_BOX (part), grid); treeview = ui_pay_listview_new(TRUE, FALSE); grid = ui_flt_page_list_generic(_("Payee"), treeview, &tmp); hbtk_box_prepend (GTK_BOX (part), grid); //data->SW_enabled[FLT_GRP_PAYEE] = tmp.sw_enabled; data->GR_page[FLT_GRP_PAYEE] = tmp.gr_criteria; //data->RA_matchmode[FLT_GRP_PAYEE] = tmp.ra_mode; data->LV_pay = treeview; g_signal_connect (tmp.bt_all, "activate-link", G_CALLBACK (ui_flt_hub_payee_activate_link), treeview); g_signal_connect (tmp.bt_non, "activate-link", G_CALLBACK (ui_flt_hub_payee_activate_link), treeview); g_signal_connect (tmp.bt_inv, "activate-link", G_CALLBACK (ui_flt_hub_payee_activate_link), treeview); return part; } static GtkWidget *ui_flt_page_tag (struct ui_flt_manage_data *data) { struct ui_flt_list_data tmp; GtkWidget *part, *grid; GtkWidget *treeview; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); //header grid = ui_flt_page_misc_header(_("Tag"), FLT_GRP_TAG, data); gtk_box_prepend (GTK_BOX (part), grid); treeview = ui_tag_listview_new(TRUE, FALSE); grid = ui_flt_page_list_generic(_("Tag"), treeview, &tmp); hbtk_box_prepend (GTK_BOX (part), grid); //data->SW_enabled[FLT_GRP_TAG] = tmp.sw_enabled; data->GR_page[FLT_GRP_TAG] = tmp.gr_criteria; //data->RA_matchmode[FLT_GRP_TAG] = tmp.ra_mode; data->LV_tag = treeview; g_signal_connect (tmp.bt_all, "activate-link", G_CALLBACK (ui_flt_hub_tag_activate_link), treeview); g_signal_connect (tmp.bt_non, "activate-link", G_CALLBACK (ui_flt_hub_tag_activate_link), treeview); g_signal_connect (tmp.bt_inv, "activate-link", G_CALLBACK (ui_flt_hub_tag_activate_link), treeview); return part; } static GtkWidget *ui_flt_page_date(struct ui_flt_manage_data *data) { GtkWidget *part, *grid, *label, *widget; gint row; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); //header grid = ui_flt_page_misc_header(_("Date"), FLT_GRP_DATE, data); gtk_box_prepend (GTK_BOX (part), grid); // criteria grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); data->GR_page[FLT_GRP_DATE] = grid; gtk_box_prepend (GTK_BOX (part), grid); row = 0; label = make_label_widget(_("_Range:")); gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); data->CY_range = make_daterange(label, DATE_RANGE_FLAG_NONE); gtk_grid_attach (GTK_GRID (grid), data->CY_range, 1, row, 1, 1); gtk_widget_set_margin_bottom(label, SPACING_MEDIUM); gtk_widget_set_margin_bottom(data->CY_range, SPACING_MEDIUM); row++; label = make_label_widget(_("_From:")); data->LB_mindate = label; gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); widget = gtk_date_entry_new(label); data->PO_mindate = widget; gtk_grid_attach (GTK_GRID (grid), widget, 1, row, 1, 1); row++; label = make_label_widget(_("_To:")); data->LB_maxdate = label; gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); widget = gtk_date_entry_new(label); data->PO_maxdate = widget; gtk_grid_attach (GTK_GRID (grid), widget, 1, row, 1, 1); return part; } static GtkWidget *ui_flt_page_amounttext(struct ui_flt_manage_data *data) { GtkWidget *part, *grid, *hbox, *widget, *label; gint row; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); // header grid = ui_flt_page_misc_header(_("Amount"), FLT_GRP_AMOUNT, data); gtk_box_prepend (GTK_BOX (part), grid); // criteria grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); data->GR_page[FLT_GRP_AMOUNT] = grid; gtk_box_prepend (GTK_BOX (part), grid); row = 0; label = make_label_widget(_("_From:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); data->ST_minamount = make_amount(label); gtk_grid_attach (GTK_GRID (grid), data->ST_minamount, 1, row, 1, 1); row++; label = make_label_widget(_("_To:")); gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); data->ST_maxamount = make_amount(label); gtk_grid_attach (GTK_GRID (grid), data->ST_maxamount, 1, row, 1, 1); //#2051758 idiot-proof input help row++; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); //gtk_widget_set_hexpand (hbox, TRUE); gtk_grid_attach (GTK_GRID (grid), hbox, 1, row, 2, 1); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); gtk_box_prepend (GTK_BOX (hbox), widget); label = make_label_widget(_("Input From -30 To -15 to filter on expense")); gtk_box_prepend (GTK_BOX (hbox), label); // header grid = ui_flt_page_misc_header(_("Text"), FLT_GRP_TEXT, data); gtk_box_prepend (GTK_BOX (part), grid); // criteria grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); data->GR_page[FLT_GRP_TEXT] = grid; gtk_box_prepend (GTK_BOX (part), grid); row = 0; label = make_label_widget(_("_Memo:")); gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); data->ST_memo = make_string(label); gtk_widget_set_hexpand (data->ST_memo, TRUE); gtk_grid_attach (GTK_GRID (grid), data->ST_memo, 1, row, 1, 1); row++; label = make_label_widget(_("_Number:")); //----------------------------------------- l, r, t, b gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); data->ST_number = make_string(label); gtk_widget_set_hexpand (data->ST_number, TRUE); gtk_grid_attach (GTK_GRID (grid), data->ST_number, 1, row, 1, 1); row++; data->CM_exact = gtk_check_button_new_with_mnemonic (_("Case _sensitive")); gtk_grid_attach (GTK_GRID (grid), data->CM_exact, 1, row, 1, 1); return part; } static GtkWidget *ui_flt_page_payment(struct ui_flt_manage_data *data) { struct ui_flt_list_data tmp; GtkWidget *part, *grid, *widget, *image, *vbox2, *tbar; HbKivData *tmpkv, *kvdata = CYA_TXN_PAYMODE; gint i, row; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); // header grid = ui_flt_page_misc_header(_("Payment"), FLT_GRP_PAYMODE, data); gtk_box_prepend (GTK_BOX (part), grid); vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); data->GR_page[FLT_GRP_PAYMODE] = vbox2; gtk_box_prepend (GTK_BOX (part), vbox2); tbar = ui_flt_page_widget_toolbar(&tmp); hbtk_box_prepend (GTK_BOX (vbox2), tbar); GtkWidget *frame = gtk_frame_new(NULL); gtk_box_prepend (GTK_BOX (vbox2), frame); grid = gtk_grid_new (); //gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_frame_set_child(GTK_FRAME(frame), grid); hb_widget_set_margin(grid, 4); gtk_style_context_add_class (gtk_widget_get_style_context (frame), GTK_STYLE_CLASS_VIEW); for(i=0;iname == NULL ) break; row = i; image = hbtk_image_new_from_icon_name_16( tmpkv->iconname); gtk_grid_attach (GTK_GRID (grid), image, 0, row, 1, 1); widget = gtk_check_button_new_with_mnemonic(_(tmpkv->name)); data->CM_paymode[i] = widget; g_object_set_data(G_OBJECT(widget), "uid", GUINT_TO_POINTER(tmpkv->key)); gtk_grid_attach (GTK_GRID (grid), data->CM_paymode[i], 1, row, 1, 1); } g_signal_connect (tmp.bt_all, "activate-link", G_CALLBACK (ui_flt_page_paymode_activate_link), NULL); g_signal_connect (tmp.bt_non, "activate-link", G_CALLBACK (ui_flt_page_paymode_activate_link), NULL); g_signal_connect (tmp.bt_inv, "activate-link", G_CALLBACK (ui_flt_page_paymode_activate_link), NULL); return part; } static GtkWidget *ui_flt_page_type(struct ui_flt_manage_data *data) { GtkWidget *part, *grid, *widget; gint row; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); //header grid = ui_flt_page_misc_header(_("Type"), FLT_GRP_TYPE, data); gtk_box_prepend (GTK_BOX (part), grid); // criteria grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); data->GR_page[FLT_GRP_TYPE] = grid; gtk_box_prepend (GTK_BOX (part), grid); row = 0; widget = gtk_toggle_button_new_with_label(_("Expense")); data->CM_typnexp = widget; gtk_grid_attach (GTK_GRID (grid), widget, 0, row, 1, 1); row++; widget = gtk_toggle_button_new_with_label(_("Income")); data->CM_typninc = widget; gtk_grid_attach (GTK_GRID (grid), widget, 0, row, 1, 1); row++; widget = gtk_toggle_button_new_with_label(_("Expense Transfer")); data->CM_typxexp = widget; gtk_grid_attach (GTK_GRID (grid), widget, 0, row, 1, 1); row++; widget = gtk_toggle_button_new_with_label(_("Income Transfer")); data->CM_typxinc = widget; gtk_grid_attach (GTK_GRID (grid), widget, 0, row, 1, 1); return part; } static GtkWidget *ui_flt_page_status(struct ui_flt_manage_data *data) { GtkWidget *part, *grid, *widget; gint row; part = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_LARGE); // header grid = ui_flt_page_misc_header(_("Status"), FLT_GRP_STATUS, data); gtk_box_prepend (GTK_BOX (part), grid); // criteria grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (grid), SPACING_MEDIUM); data->GR_page[FLT_GRP_STATUS] = grid; gtk_box_prepend (GTK_BOX (part), grid); row = 0;; widget = gtk_toggle_button_new_with_label(_("None")); data->CM_stanon = widget; gtk_grid_attach (GTK_GRID (grid), widget, 0, row, 1, 1); row++; widget = gtk_toggle_button_new_with_label(_("Cleared")); data->CM_staclr = widget; gtk_grid_attach (GTK_GRID (grid), widget, 0, row, 1, 1); row++; widget = gtk_toggle_button_new_with_label(_("Reconciled")); data->CM_starec = widget; gtk_grid_attach (GTK_GRID (grid), widget, 0, row, 1, 1); return part; } gint ui_flt_manage_dialog_new(GtkWindow *parentwindow, Filter *filter, gboolean show_account, gboolean txnmode) { struct ui_flt_manage_data *data; GtkWidget *dialog, *content, *mainbox, *sidebar, *stack, *grid, *page, *label, *widget; gchar *wintitle; gint w, h, dw, dh; DB( g_print("\n\n------------------------\n") ); DB( g_print("\n[ui-filter] new\n") ); data = g_malloc0(sizeof(struct ui_flt_manage_data)); DB( g_print(" key;%d name: '%s'\n", filter->key, filter->name) ); DB( g_print(" show_account:%d, txnmode:%d\n", show_account, txnmode) ); data->filter = filter; data->saveable = filter->key > 0 ? TRUE : FALSE; data->dialog = dialog = gtk_dialog_new_with_buttons (NULL, GTK_WINDOW (parentwindow), 0, //no flags NULL, //no buttons NULL); if(!txnmode) { widget = gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Reset"), HB_RESPONSE_FLT_RESET); gtk_widget_set_margin_end(widget, SPACING_LARGE); } gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Cancel"), GTK_RESPONSE_REJECT); if( data->saveable ) gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Save & Use"), HB_RESPONSE_FLT_SAVE_USE); gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Use"), GTK_RESPONSE_ACCEPT); //window title wintitle = g_strdup_printf("%s - %s", _("Edit filter"), data->saveable ? filter->name : _("default") ); gtk_window_set_title(GTK_WINDOW(dialog), wintitle ); g_free(wintitle); //set a nice dialog size gtk_window_get_size(GTK_WINDOW(parentwindow), &w, &h); dh = (h*1.33/PHI); //ratio 2:3 dw = (dh * 2) / 3; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, -1); //store our window private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" - window=%p, inst_data=%p\n", dialog, data) ); content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hbtk_box_prepend (GTK_BOX (content), mainbox); sidebar = gtk_stack_sidebar_new (); gtk_widget_set_margin_bottom(sidebar, SPACING_LARGE); gtk_box_prepend (GTK_BOX (mainbox), sidebar); stack = gtk_stack_new (); gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN); //gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_CROSSFADE); gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), GTK_STACK (stack)); hb_widget_set_margin(GTK_WIDGET(stack), SPACING_LARGE); data->stack = stack; hbtk_box_prepend (GTK_BOX (mainbox), stack); //TODO: needs to keep this until we enable from/to into ledger page = ui_flt_page_date(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_DAT, _("Date")); page = ui_flt_page_type(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_TYP, _("Type")); page = ui_flt_page_status(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_STA, _("Status")); data->show_account = show_account; if(show_account == TRUE) { page = ui_flt_page_account(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_ACC, _("Account")); } page = ui_flt_page_payee(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_PAY, _("Payee")); page = ui_flt_page_category(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_CAT, _("Category")); page = ui_flt_page_tag(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_TAG, _("Tag")); page = ui_flt_page_payment(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_PMT, _("Payment")); page = ui_flt_page_amounttext(data); gtk_stack_add_titled (GTK_STACK (stack), page, FLT_PAGE_NAME_TXT, _("Amount/Text")); //#xxxxxxx widget = gtk_separator_new(GTK_ORIENTATION_VERTICAL); gtk_widget_set_margin_top(widget, SPACING_LARGE); gtk_widget_set_margin_bottom(widget, SPACING_LARGE); gtk_box_prepend (GTK_BOX (mainbox), widget); // force display grid = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); data->GR_force = grid; hb_widget_set_margin(grid, SPACING_LARGE); gtk_widget_set_valign(grid, GTK_ALIGN_END); gtk_box_prepend (GTK_BOX (mainbox), grid); label = make_label_group(_("Always show")); gtk_box_prepend (GTK_BOX (grid), label); widget = gtk_check_button_new_with_mnemonic (_("Remind")); data->CM_forceremind = widget; gtk_box_prepend (GTK_BOX (grid), widget); widget = gtk_check_button_new_with_mnemonic (_("Void")); data->CM_forcevoid = widget; gtk_box_prepend (GTK_BOX (grid), widget); widget = gtk_check_button_new_with_mnemonic (_("Added")); data->CM_forceadd = widget; gtk_box_prepend (GTK_BOX (grid), widget); widget = gtk_check_button_new_with_mnemonic (_("Edited")); data->CM_forcechg = widget; gtk_box_prepend (GTK_BOX (grid), widget); //setup, init and show window ui_flt_manage_setup(data); ui_flt_manage_set(data); /* signal connect */ //g_signal_connect (data->SW_enabled[FLT_GRP_DATE] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->SW_enabled[FLT_GRP_TYPE] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->SW_enabled[FLT_GRP_STATUS] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->SW_enabled[FLT_GRP_PAYEE] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->SW_enabled[FLT_GRP_CATEGORY], "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->SW_enabled[FLT_GRP_TAG] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); if(show_account == TRUE) g_signal_connect (data->SW_enabled[FLT_GRP_ACCOUNT] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->SW_enabled[FLT_GRP_TEXT] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->SW_enabled[FLT_GRP_AMOUNT] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->SW_enabled[FLT_GRP_PAYMODE] , "notify::active", G_CALLBACK (ui_flt_manage_update), NULL); g_signal_connect (data->CY_range , "changed", G_CALLBACK (ui_flt_manage_cb_range_change), NULL); g_signal_connect (data->PO_mindate, "changed", G_CALLBACK (ui_flt_manage_cb_date_change), NULL); g_signal_connect (data->PO_maxdate, "changed", G_CALLBACK (ui_flt_manage_cb_date_change), NULL); gtk_widget_show_all (dialog); //gtk_widget_grab_focus(sidebar); ui_flt_manage_update(dialog, NULL); if(!txnmode) { hb_widget_visible (data->GR_force, FALSE); } if( *data->filter->last_tab != '\0' ) gtk_stack_set_visible_child_name (GTK_STACK(data->stack), data->filter->last_tab); DB( g_print(" set page '%s'\n", data->filter->last_tab) ); //wait for the user gint retval; // = 55; //while( result == 55 ) //{ retval = gtk_dialog_run (GTK_DIALOG (dialog)); switch (retval) { case HB_RESPONSE_FLT_SAVE_USE: case GTK_RESPONSE_ACCEPT: //do_application_specific_something (); ui_flt_manage_get(data); da_flt_count_item(filter); break; //case 55: reset will be treated in calling window } //} // cleanup and destroy //ui_flt_manage_cleanup(&data, result); DB( g_print(" destroy\n") ); gtk_window_destroy (GTK_WINDOW(dialog)); DB( g_print(" free\n") ); g_free(data); DB( g_print(" end dialog filter all ok\n") ); return retval; } homebank-5.9.1/src/ui-txn-multi.c0000664000175000017500000005523315006223142012307 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-txn-multi.h" #include "ui-account.h" #include "ui-payee.h" #include "ui-category.h" #include "gtk-dateentry.h" #include "list-operation.h" #include "ui-tag.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; void ui_multipleedit_dialog_prefill( GtkWidget *widget, Transaction *ope, gint column_id ) { struct ui_multipleedit_dialog_data *data; gchar *tagstr; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print ("\n[ui-multipleedit] prefill\n") ); if(ope != NULL) //if(col_id >= LST_DSPOPE_DATE && col_id != LST_DSPOPE_BALANCE) { switch( column_id ) { case LST_DSPOPE_DATE: gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_date), (guint)ope->date); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_date), TRUE); break; case LST_DSPOPE_AMOUNT: case LST_DSPOPE_EXPENSE: case LST_DSPOPE_INCOME: gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_amount), ope->amount); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_amount), TRUE); break; case LST_DSPOPE_PAYNUMBER: paymode_combo_box_set_active(GTK_COMBO_BOX(data->NU_mode), ope->paymode); gtk_entry_set_text(GTK_ENTRY(data->ST_number), (ope->number != NULL) ? ope->number : ""); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_mode), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_number), TRUE); break; case LST_DSPOPE_PAYEE: //ui_pay_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_pay), ope->kpay); ui_pay_entry_popover_set_active(GTK_BOX(data->PO_pay), ope->kpay); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_pay), TRUE); break; case LST_DSPOPE_MEMO: gtk_entry_set_text(GTK_ENTRY(data->ST_memo), (ope->memo != NULL) ? ope->memo : ""); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_memo), TRUE); break; case LST_DSPOPE_CATEGORY: //ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), ope->kcat); ui_cat_entry_popover_set_active(GTK_BOX(data->PO_cat), ope->kcat); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_cat), TRUE); break; case LST_DSPOPE_TAGS: tagstr = tags_tostring(ope->tags); gtk_entry_set_text(GTK_ENTRY(data->ST_tags), (tagstr != NULL) ? tagstr : ""); g_free(tagstr); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data->CM_tags), TRUE); break; } } } static void ui_multipleedit_dialog_update( GtkWidget *widget, gpointer user_data ) { struct ui_multipleedit_dialog_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print ("\n[ui-multipleedit] update\n") ); if(data->PO_date) gtk_widget_set_sensitive (data->PO_date, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_date)) ); if(data->ST_amount) gtk_widget_set_sensitive (data->ST_amount , gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_amount )) ); if(data->NU_mode && data->ST_number) { gtk_widget_set_sensitive (data->NU_mode, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_mode)) ); gtk_widget_set_sensitive (data->ST_number, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_number)) ); } if(data->PO_acc) gtk_widget_set_sensitive (data->PO_acc , gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_acc )) ); if(data->PO_pay) gtk_widget_set_sensitive (data->PO_pay , gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_pay )) ); if(data->PO_cat) gtk_widget_set_sensitive (data->PO_cat , gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_cat )) ); if(data->ST_tags) gtk_widget_set_sensitive (data->ST_tags, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_tags)) ); if(data->ST_memo) gtk_widget_set_sensitive (data->ST_memo, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_memo)) ); if(data->PO_accto) { gboolean sensitive = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_xfer)); if(data->PO_acc && sensitive) { //g_signal_handlers_block_by_func(data->CM_acc, ui_multipleedit_dialog_update, NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_acc), FALSE); //ui_acc_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_acc), 0); ui_acc_entry_popover_set_active(GTK_BOX(data->PO_acc), 0); //g_signal_handlers_unblock_by_func(data->CM_acc, ui_multipleedit_dialog_update, NULL); } gtk_widget_set_sensitive (data->LB_acc, !sensitive ); gtk_widget_set_sensitive (data->CM_acc, !sensitive ); gtk_widget_set_sensitive (data->PO_accto, sensitive ); } } static void ui_multipleedit_dialog_init( GtkWidget *widget, gpointer user_data ) { struct ui_multipleedit_dialog_data *data; GtkTreeModel *model; GList *selection, *list; guint32 kcur; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print ("\n[ui-multipleedit] init\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->treeview)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview)), &model); data->has_xfer = FALSE; data->kacc = kcur = 0; list = g_list_last(selection); while(list != NULL) { Transaction *entry; GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &entry, -1); if((entry->flags & OF_INTXFER)) data->has_xfer = TRUE; //#1812630 manage change to internal xfer if( kcur == 0 ) //store first { kcur = entry->kcur; data->kacc = entry->kacc; } else if( entry->kcur != kcur ) { data->kacc = 0; } list = g_list_previous(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); DB( g_print(" has_xfer = %d\n", data->has_xfer) ); DB( g_print(" kacc = %d\n", data->kacc) ); } gint ui_multipleedit_dialog_apply( GtkWidget *widget, gboolean *do_sort ) { struct ui_multipleedit_dialog_data *data; GtkTreeModel *model; GList *selection, *list; gboolean tmp_sort = FALSE; guint changes; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print ("\n[ui-multipleedit] apply\n") ); changes = GLOBALS->changes_count; model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->treeview)); selection = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview)), &model); list = g_list_last(selection); while(list != NULL) { Transaction *txn; GtkTreeIter iter; const gchar *txt; gboolean change = FALSE; gtk_tree_model_get_iter(model, &iter, list->data); gtk_tree_model_get(model, &iter, MODEL_TXN_POINTER, &txn, -1); DB( g_print(" modifying %s %.2f\n", txn->memo, txn->amount) ); //TODO: this is always true if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_DATE) == TRUE ) { if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_date)) ) { guint32 olddate = txn->date; txn->date = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_date)); DB( g_print(" -> date: '%d'\n", txn->date) ); //#1270687/1792808: sort if date changed if(olddate != txn->date) tmp_sort = TRUE; change = TRUE; } } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_AMOUNT) == TRUE || list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_EXPENSE) == TRUE || list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_INCOME) == TRUE ) { if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_amount)) ) { //#1874548 update the balances as well account_balances_sub(txn); txn->amount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_amount)); account_balances_add(txn); //5.4.2 income flag fix da_transaction_set_flag(txn); change = TRUE; } } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_PAYNUMBER) == TRUE ) { if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_mode)) ) { txn->paymode = paymode_combo_box_get_active(GTK_COMBO_BOX(data->NU_mode)); change = TRUE; } if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_number)) ) { if(txn->number) { g_free(txn->number); txn->number = NULL; change = TRUE; } txt = gtk_entry_get_text(GTK_ENTRY(data->ST_number)); if (txt && *txt) { txn->number = g_strdup(txt); change = TRUE; } } } if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_acc)) ) { //guint32 nkacc = ui_acc_comboboxentry_get_key(GTK_COMBO_BOX(data->PO_acc)); guint32 nkacc = ui_acc_entry_popover_get_key(GTK_BOX(data->PO_acc)); if( transaction_acc_move(txn, txn->kacc, nkacc) ) { GtkTreeIter iter; DB( g_print(" -> acc: '%d'\n", nkacc) ); gtk_tree_model_get_iter(model, &iter, list->data); gtk_list_store_remove(GTK_LIST_STORE(model), &iter); change = TRUE; } } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_PAYEE) == TRUE ) { if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_pay)) ) { //txn->kpay = ui_pay_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_pay)); txn->kpay = ui_pay_entry_popover_get_key_add_new(GTK_BOX(data->PO_pay)); DB( g_print(" -> payee: '%d'\n", txn->kpay) ); change = TRUE; } } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_CATEGORY) == TRUE ) { if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_cat)) ) { if(!(txn->flags & OF_SPLIT)) { //txn->kcat = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_cat)); txn->kcat = ui_cat_entry_popover_get_key_add_new(GTK_BOX(data->PO_cat)); DB( g_print(" -> category: '%d'\n", txn->kcat) ); change = TRUE; } } } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_TAGS) == TRUE ) { if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_tags)) ) { //#2009277 if(txn->tags) { g_free(txn->tags); txn->tags = NULL; change = TRUE; } txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_tags)); if (txt && *txt) { txn->tags = tags_parse(txt); DB( g_print(" -> tags: '%s'\n", txt) ); change = TRUE; } } } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_MEMO) == TRUE ) { if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_memo)) ) { if(txn->memo) { g_free(txn->memo); txn->memo = NULL; change = TRUE; } txt = gtk_entry_get_text(GTK_ENTRY(data->ST_memo)); if (txt && *txt) { txn->memo = g_strdup(txt); change = TRUE; } } } //TODO: not sure this ever happen, to check if( data->has_xfer && (txn->flags & OF_INTXFER) ) { Transaction *child; child = transaction_xfer_child_strong_get(txn); transaction_xfer_child_sync(txn, child); } //#1812630 manage change to internal xfer if( data->has_xfer == FALSE && data->kacc > 0 ) { if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(data->CM_xfer)) ) { //guint32 dstkey = ui_acc_comboboxentry_get_key(GTK_COMBO_BOX(data->PO_accto)); guint32 dstkey = ui_acc_entry_popover_get_key(GTK_BOX(data->PO_accto)); //5.9.1 forbid split to go xfer if( (dstkey > 0) && !(txn->flags & (OF_SPLIT)) ) { txn->kxferacc = dstkey; transaction_xfer_search_or_add_child(GTK_WINDOW(data->dialog), FALSE, txn, dstkey); //#2087750 change = TRUE; } } } //#2087750 moved if( change == TRUE ) { txn->dspflags |= FLAG_TMP_EDITED; GLOBALS->changes_count++; } list = g_list_previous(list); } g_list_foreach(selection, (GFunc)gtk_tree_path_free, NULL); g_list_free(selection); if( do_sort != NULL ) *do_sort = tmp_sort; return GLOBALS->changes_count - changes; } static gboolean ui_multipleedit_dialog_destroy( GtkWidget *widget, gpointer user_data ) { struct ui_multipleedit_dialog_data *data; data = g_object_get_data(G_OBJECT(widget), "inst_data"); DB( g_print ("\n[ui-multipleedit] destroy event occurred\n") ); g_free(data); return FALSE; } GtkWidget *ui_multipleedit_dialog_new(GtkWindow *parent, GtkTreeView *treeview) { struct ui_multipleedit_dialog_data *data; struct WinGeometry *wg; GtkWidget *dialog, *content; GtkWidget *group_grid, *label, *widget, *toggle, *hbox; gint row; DB( g_print ("\n[ui-multipleedit] new\n") ); data = g_malloc0(sizeof(struct ui_multipleedit_dialog_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (NULL, GTK_WINDOW (parent), 0, _("_Cancel"), GTK_RESPONSE_REJECT, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); g_signal_connect (dialog, "destroy", G_CALLBACK (ui_multipleedit_dialog_destroy), (gpointer)data); //store our window private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print(" - new window=%p, inst_data=%p\n", dialog, data) ); data->dialog = dialog; data->treeview = treeview; ui_multipleedit_dialog_init(dialog, NULL); gtk_window_set_title (GTK_WINDOW (data->dialog), _("Multiple edit transactions")); content = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(group_grid), SPACING_LARGE); gtk_box_prepend (GTK_BOX (content), group_grid); row = -1; if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_DATE) == TRUE ) { row++; label = make_label_widget(_("_Date:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_date = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); widget = gtk_date_entry_new(label); data->PO_date = widget; gtk_widget_set_halign (widget, GTK_ALIGN_START); //gtk_widget_set_hexpand (widget, FALSE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); g_signal_connect (data->CM_date , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_AMOUNT) == TRUE || list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_EXPENSE) == TRUE || list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_INCOME) == TRUE ) { row++; label = make_label_widget(_("Amou_nt:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_amount = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); widget = make_amount(label); data->ST_amount = widget; gtk_widget_set_halign (widget, GTK_ALIGN_START); //gtk_widget_set_hexpand (widget, FALSE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); g_signal_connect (data->CM_amount , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); } row++; label = make_label_widget(_("A_ccount:")); data->LB_acc = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_acc = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); //widget = ui_acc_comboboxentry_new(label); widget = ui_acc_entry_popover_new(label); data->PO_acc = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 4, 1); g_signal_connect (data->CM_acc , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); //gtk_widget_set_margin_top(label, SPACING_MEDIUM); //gtk_widget_set_margin_top(widget, SPACING_MEDIUM); if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_PAYNUMBER) == TRUE ) { row++; label = make_label_widget(_("Pa_yment:")); data->LB_mode = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); toggle = gtk_check_button_new(); data->CM_mode = toggle; gtk_grid_attach (GTK_GRID (group_grid), toggle, 1, row, 1, 1); widget = make_paymode (label); data->NU_mode = widget; //gtk_widget_set_hexpand (widget, TRUE); gtk_widget_set_halign (widget, GTK_ALIGN_START); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); g_signal_connect (data->CM_mode , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); row++; label = make_label_widget(_("_Number:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_number = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); widget = make_string(label); data->ST_number = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1); g_signal_connect (data->CM_number , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_PAYEE) == TRUE ) { row++; label = make_label_widget(_("_Payee:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_pay = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); //widget = ui_pay_comboboxentry_new(label); widget = ui_pay_entry_popover_new(label); data->PO_pay = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 4, 1); g_signal_connect (data->CM_pay , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_CATEGORY) == TRUE ) { row++; label = make_label_widget(_("Cate_gory:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_cat = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); //widget = ui_cat_comboboxentry_new(label); widget = ui_cat_entry_popover_new(label); data->PO_cat = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 4, 1); g_signal_connect (data->CM_cat , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_MEMO) == TRUE ) { row++; label = make_label_widget(_("M_emo:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_memo = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); widget = make_memo_entry(label); data->ST_memo = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 4, 1); g_signal_connect (data->CM_memo , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_TAGS) == TRUE ) { row++; label = make_label_widget(_("_Tags:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_tags = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(hbox)), GTK_STYLE_CLASS_LINKED); gtk_grid_attach (GTK_GRID (group_grid), hbox, 2, row, 4, 1); widget = make_string(label); data->ST_tags = widget; hbtk_box_prepend (GTK_BOX (hbox), widget); widget = ui_tag_popover_list(data->ST_tags); data->CY_tags = widget; gtk_box_prepend (GTK_BOX (hbox), widget); g_signal_connect (data->CM_tags , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); } //#1812630 change txn to int xfer // if selection do not contains xfer already and same currency for all if( data->has_xfer == FALSE && data->kacc > 0 ) { row++; widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_grid_attach (GTK_GRID (group_grid), widget, 0, row, 4, 1); row++; label = make_label_widget(_("Type as\ntransfer")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_xfer = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); //widget = ui_acc_comboboxentry_new(label); widget = ui_acc_entry_popover_new(label); data->PO_accto = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 4, 1); //ui_acc_comboboxentry_populate_except(GTK_COMBO_BOX(data->PO_accto), GLOBALS->h_acc, data->kacc, ACC_LST_INSERT_NORMAL); ui_acc_entry_popover_populate_except(GTK_BOX(data->PO_accto), GLOBALS->h_acc, data->kacc, ACC_LST_INSERT_NORMAL); g_signal_connect (data->CM_xfer , "toggled", G_CALLBACK (ui_multipleedit_dialog_update), NULL); } ui_multipleedit_dialog_update(dialog, NULL); //ui_acc_comboboxentry_populate(GTK_COMBO_BOX(data->PO_acc), GLOBALS->h_acc, ACC_LST_INSERT_NORMAL); ui_acc_entry_popover_populate(GTK_BOX(data->PO_acc), GLOBALS->h_acc, ACC_LST_INSERT_NORMAL); //5.5 done in popover //ui_pay_comboboxentry_populate(GTK_COMBO_BOX(data->PO_pay), GLOBALS->h_pay); //5.5 done in popover //ui_cat_comboboxentry_populate(GTK_COMBO_BOX(data->PO_cat), GLOBALS->h_cat); //5.8 wg = &PREFS->txn_wg; gtk_window_set_default_size(GTK_WINDOW(dialog), wg->w, -1); gtk_widget_show_all (dialog); if(data->has_xfer == TRUE) { hb_widget_visible (data->LB_acc, FALSE); hb_widget_visible (data->CM_acc, FALSE); hb_widget_visible (data->PO_acc, FALSE); } if( list_txn_column_id_isvisible(GTK_TREE_VIEW(data->treeview), LST_DSPOPE_PAYNUMBER) == TRUE ) { if(data->has_xfer == TRUE) { hb_widget_visible (data->LB_mode, FALSE); hb_widget_visible (data->CM_mode, FALSE); hb_widget_visible (data->NU_mode, FALSE); } } return dialog; } homebank-5.9.1/src/rep-stats.c0000644000175000017500000022664715005633707011677 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "rep-stats.h" #include "list-report.h" #include "list-operation.h" #include "gtk-chart.h" #include "gtk-dateentry.h" #include "hbtk-switcher.h" #include "dsp-mainwindow.h" #include "ui-filter.h" #include "ui-transaction.h" #include "ui-flt-widget.h" #define HB_STATS_DO_TOTAL 1 #define HB_STATS_DO_TIME 1 /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* prototypes */ static void repstats_range_change(GtkWidget *widget, gpointer user_data); static void repstats_filter_setup(struct repstats_data *data); static void repstats_compute(GtkWidget *widget, gpointer user_data); static void repstats_sensitive(GtkWidget *widget, gpointer user_data); static void repstats_update_daterange(GtkWidget *widget, gpointer user_data); static void repstats_update_date_widget(GtkWidget *widget, gpointer user_data); static void repstats_selection(GtkTreeSelection *treeselection, gpointer user_data); static void repstats_selection2(GtkTreeSelection *treeselection, gpointer user_data); static gchar *repstats_compute_title(gint mode, gint src, gint type, gint intvl); extern HbKvData CYA_REPORT_SRC[]; extern HbKvData CYA_REPORT_TYPE[]; extern gchar *CYA_REPORT_MODE[]; extern HbKvData CYA_REPORT_INTVL[]; /* action functions -------------------- */ static void repstats_action_viewlist(GtkWidget *toolbutton, gpointer user_data) { struct repstats_data *data = user_data; gint tmpmode; tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); hb_widget_visible (data->SW_total, tmpmode ? FALSE : TRUE); hb_widget_visible (data->SW_trend, tmpmode ? TRUE : FALSE); gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 0); data->charttype = 0; repstats_sensitive(data->window, NULL); } static void repstats_action_mode_changed(GtkWidget *toolbutton, gpointer user_data) { struct repstats_data *data = user_data; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(data->BT_list), TRUE); repstats_action_viewlist(toolbutton, data); if( data->detail == TRUE ) { gint tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); if( tmpmode == 0 ) repstats_selection(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report)), NULL); else repstats_selection2(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report2)), NULL); } } static void repstats_action_viewbar(GtkWidget *toolbutton, gpointer user_data) { struct repstats_data *data = user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 1); gtk_chart_set_type (GTK_CHART(data->RE_chart), CHART_TYPE_COL); data->charttype = CHART_TYPE_COL; repstats_sensitive(data->window, NULL); } static void repstats_action_viewpie(GtkWidget *toolbutton, gpointer user_data) { struct repstats_data *data = user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 1); gtk_chart_set_type (GTK_CHART(data->RE_chart), CHART_TYPE_PIE); data->charttype = CHART_TYPE_PIE; repstats_sensitive(data->window, NULL); } static void repstats_action_viewstack(GtkWidget *toolbutton, gpointer user_data) { struct repstats_data *data = user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 2); gtk_chart_set_type (GTK_CHART(data->RE_chart2), CHART_TYPE_STACK); data->charttype = CHART_TYPE_STACK; repstats_sensitive(data->window, NULL); } static void repstats_action_viewstack100(GtkWidget *toolbutton, gpointer user_data) { struct repstats_data *data = user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 2); gtk_chart_set_type (GTK_CHART(data->RE_chart2), CHART_TYPE_STACK100); data->charttype = CHART_TYPE_STACK100; repstats_sensitive(data->window, NULL); } static void repstats_action_print(GtkWidget *toolbutton, gpointer user_data) { struct repstats_data *data = user_data; gint tmpsrc, tmpmode, tmptype, tmpintvl, page; gchar *title, *name; tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); tmptype = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); name = g_strdup_printf("hb-repstat_%s", hbtk_get_label(CYA_REPORT_SRC,tmpsrc)); if( page == 0 ) { GString *node; title = repstats_compute_title(tmpmode, tmpsrc, tmptype, tmpintvl); if( tmpmode == 0 ) node = lst_report_to_string(HB_STRING_PRINT, GTK_TREE_VIEW(data->LV_report), tmpsrc, hbtk_get_label(CYA_REPORT_SRC, tmpsrc)); else node = lst_rep_time_to_string(HB_STRING_PRINT, GTK_TREE_VIEW(data->LV_report2), tmpsrc, NULL); hb_print_listview(GTK_WINDOW(data->window), node->str, NULL, title, name, FALSE); g_string_free(node, TRUE); g_free(title); } else { if( tmpmode == 0 ) gtk_chart_print(GTK_CHART(data->RE_chart), GTK_WINDOW(data->window), PREFS->path_export, name); else gtk_chart_print(GTK_CHART(data->RE_chart2), GTK_WINDOW(data->window), PREFS->path_export, name); } g_free(name); } static void repstats_action_filter(GtkWidget *toolbutton, gpointer user_data) { struct repstats_data *data = user_data; gint response_id; DB( g_print("\n[repdist] filter\n") ); //debug //create_deffilter_window(data->filter, TRUE); response_id = ui_flt_manage_dialog_new(GTK_WINDOW(data->window), data->filter, TRUE, FALSE); if( response_id != GTK_RESPONSE_REJECT) { switch( response_id ) { case HB_RESPONSE_FLT_RESET: DB( g_print(" reset filter\n") ); repstats_filter_setup(data); break; case HB_RESPONSE_FLT_SAVE_USE: ui_flt_popover_hub_save(data->PO_hubfilter, NULL); break; case GTK_RESPONSE_ACCEPT: if( data->filter->range == FLT_RANGE_MISC_CUSTOM ) { filter_preset_daterange_set(data->filter, data->filter->range, 0); } break; } //beta 5.8 ui_flt_manage_header_sensitive(data->PO_hubfilter, NULL); g_signal_handler_block(data->CY_range, data->hid[HID_REPDIST_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), data->filter->range); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPDIST_RANGE]); repstats_update_date_widget(data->window, NULL); repstats_update_daterange(data->window, NULL); repstats_compute(data->window, NULL); } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void beta_repstats_filter_cb_reset(GtkWidget *widget, gpointer user_data); static void beta_repstats_filter_cb_preset_change(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; Filter *newflt; DB( g_print("\n[repdist] filter change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); newflt = ui_flt_popover_hub_get(GTK_BOX(data->PO_hubfilter), NULL); if( newflt ) { DB( g_print(" key:%d, copy filter\n", newflt->key) ); da_flt_copy(newflt, data->filter); //#2073805 same range will not trigger //hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), data->filter->range); g_signal_handler_block(data->CY_range, data->hid[HID_REPDIST_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), data->filter->range); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPDIST_RANGE]); ////#2076458 force update repstats_range_change(widget, user_data); ui_flt_manage_header_sensitive(data->PO_hubfilter, NULL); } else beta_repstats_filter_cb_reset(widget, user_data); } static void beta_repstats_filter_cb_reset(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; GtkWidget * combobox; DB( g_print("\n[repdist] filter reset\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); combobox = ui_flt_popover_hub_get_combobox(GTK_BOX(data->PO_hubfilter), NULL); g_signal_handlers_block_by_func (G_OBJECT (combobox), G_CALLBACK (beta_repstats_filter_cb_preset_change), NULL); gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); g_signal_handlers_unblock_by_func (G_OBJECT (combobox), G_CALLBACK (beta_repstats_filter_cb_preset_change), NULL); repstats_filter_setup(data); g_signal_handler_block(data->CY_range, data->hid[HID_REPDIST_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), data->filter->range); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPDIST_RANGE]); repstats_update_date_widget(data->window, NULL); repstats_update_daterange(data->window, NULL); repstats_compute(data->window, NULL); ui_flt_manage_header_sensitive(data->PO_hubfilter, NULL); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static gchar * repstats_compute_title(gint mode, gint src, gint type, gint intvl) { gchar *x, *y; //5.7.3 fix title if( mode == REPORT_MODE_TOTAL ) { x = hbtk_get_label(CYA_REPORT_TYPE,type); y = hbtk_get_label(CYA_REPORT_SRC, src); } else { x = hbtk_get_label(CYA_REPORT_SRC, src); y = hbtk_get_label(CYA_REPORT_INTVL, intvl); } //TRANSLATORS: example 'Expense by Category' //TRANSLATORS: example 'Category by Month' return g_strdup_printf(_("%s by %s"), x, y ); } static void repstats_date_change(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; DB( g_print("\n[repdist] date change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->filter->mindate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_mindate)); data->filter->maxdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_maxdate)); //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), ( data->filter->mindate > data->filter->maxdate ) ? TRUE : FALSE); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), ( data->filter->maxdate < data->filter->mindate ) ? TRUE : FALSE); g_signal_handler_block(data->CY_range, data->hid[HID_REPDIST_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_CUSTOM); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPDIST_RANGE]); repstats_compute(widget, NULL); repstats_update_daterange(widget, NULL); } static void repstats_range_change(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; gint range; DB( g_print("\n[repdist] range change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); //should never happen if(range != FLT_RANGE_MISC_CUSTOM) { filter_preset_daterange_set(data->filter, range, 0); } //#2046032 set min/max date for both widget //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), ( data->filter->mindate > data->filter->maxdate ) ? TRUE : FALSE); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), ( data->filter->maxdate < data->filter->mindate ) ? TRUE : FALSE); repstats_update_date_widget(data->window, NULL); //5.7.1 test add disable forecast /*g_signal_handler_block(data->CM_forecast, data->hid[HID_REPDIST_FORECAST]); gint can_future = filter_preset_daterange_future_enable(data->filter, range); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_forecast), can_future ? PREFS->rep_forcast : FALSE); gtk_widget_set_sensitive(data->CM_forecast, can_future); g_signal_handler_unblock(data->CM_forecast, data->hid[HID_REPDIST_FORECAST]); */ repstats_compute(data->window, NULL); repstats_update_daterange(data->window, NULL); } static void repstats_update(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; gboolean byamount; GtkTreeModel *model; gint tmpmode, tmpsrc, tmptype, tmpintvl, usrcomp, column; gboolean xval; gchar *title; DB( g_print("\n[repdist] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); byamount = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_byamount)); usrcomp = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_compare)); tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); //tmpsrc = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_src)); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); tmptype = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); //debug option DB( g_print(" option: byamount=%d tmptype=%d '%s' tmpsrc=%d '%s'\n\n", byamount, tmptype, hbtk_get_label(CYA_REPORT_TYPE,tmptype), tmpsrc, hbtk_get_label(CYA_REPORT_SRC,tmpsrc)) ); // define view/sort column column = LST_REPORT_POS; if( byamount ) { switch( tmptype ) { case REPORT_TYPE_TOTAL: column = LST_REPORT_TOTAL; break; case REPORT_TYPE_EXPENSE: column = LST_REPORT_EXPENSE; break; case REPORT_TYPE_INCOME: column = LST_REPORT_INCOME; break; } } DB( g_print(" sort on column %d\n\n", column) ); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), column, GTK_SORT_ASCENDING); title = repstats_compute_title(tmpmode, tmpsrc, tmptype, tmpintvl); #if HB_STATS_DO_TOTAL == 1 gtk_chart_set_color_scheme(GTK_CHART(data->RE_chart), PREFS->report_color_scheme); /* update absolute or not */ gboolean abs = (tmptype == REPORT_TYPE_EXPENSE || tmptype == REPORT_TYPE_INCOME) ? TRUE : FALSE; gtk_chart_set_absolute(GTK_CHART(data->RE_chart), abs); /* show xval for month/year and no by amount display */ xval = FALSE; if( !byamount && (tmpsrc == REPORT_GRPBY_MONTH || tmpsrc == REPORT_GRPBY_YEAR) ) { xval = TRUE; /*switch( tmpsrc) { case REPORT_GRPBY_MONTH: gtk_chart_set_every_xval(GTK_CHART(data->RE_chart), 4); break; case REPORT_GRPBY_YEAR: gtk_chart_set_every_xval(GTK_CHART(data->RE_chart), 2); break; }*/ } gtk_chart_show_xval(GTK_CHART(data->RE_chart), xval); /* update bar chart */ if( (tmptype == REPORT_TYPE_TOTAL) && (usrcomp == TRUE) ) //dual exp/inc { DB( g_print(" set bar to dual exp %d/inc %d\n\n", LST_REPORT_EXPENSE, LST_REPORT_INCOME) ); //set column1 != column2 will dual display gtk_chart_set_datas_total(GTK_CHART(data->RE_chart), model, LST_REPORT_EXPENSE, LST_REPORT_INCOME, title, NULL); } else { switch(tmptype) { case REPORT_TYPE_EXPENSE: column = LST_REPORT_EXPENSE; break; case REPORT_TYPE_INCOME: column = LST_REPORT_INCOME; break; default: case REPORT_TYPE_TOTAL: column = LST_REPORT_TOTAL; break; } DB( g_print(" set data total to col=%d\n\n", column) ); //set column1 != column2 will dual display gtk_chart_set_datas_total(GTK_CHART(data->RE_chart), model, column, column, title, NULL); } #endif //time chart #if HB_STATS_DO_TIME == 1 gtk_chart_set_color_scheme(GTK_CHART(data->RE_chart2), PREFS->report_color_scheme); gtk_chart_show_xval(GTK_CHART(data->RE_chart2), TRUE); //5.7 trendrow is unused, we pass the treeview to get the column labels DB( g_print(" set data time\n") ); gtk_chart_set_datas_time(GTK_CHART(data->RE_chart2), GTK_TREE_VIEW(data->LV_report2), data->trend, data->trendrows, data->trendcols, title, NULL); #endif //test 5.8 da_flt_count_item(data->filter); gchar *txt = filter_text_summary_get(data->filter); ui_label_set_integer(GTK_LABEL(data->TX_fltactive), data->filter->n_active); gtk_widget_set_tooltip_text(data->TT_fltactive, txt); g_free(txt); g_free(title); } static void repstats_update_date_widget(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; DB( g_print("\n[repdist] update date widget\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); g_signal_handler_block(data->PO_mindate, data->hid[HID_REPDIST_MINDATE]); g_signal_handler_block(data->PO_maxdate, data->hid[HID_REPDIST_MAXDATE]); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_mindate), data->filter->mindate); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_maxdate), data->filter->maxdate); g_signal_handler_unblock(data->PO_mindate, data->hid[HID_REPDIST_MINDATE]); g_signal_handler_unblock(data->PO_maxdate, data->hid[HID_REPDIST_MAXDATE]); } static void repstats_update_daterange(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; gchar *daterange; DB( g_print("\n[repdist] update daterange\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); daterange = filter_daterange_text_get(data->filter); gtk_label_set_markup(GTK_LABEL(data->TX_daterange), daterange); g_free(daterange); } static void repstats_update_total(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; //gboolean minor; DB( g_print("\n[repdist] update total\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); hb_label_set_colvalue(GTK_LABEL(data->TX_total[0]), data->total_expense, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_total[1]), data->total_income, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_total[2]), data->total_expense + data->total_income, GLOBALS->kcur, GLOBALS->minor); } static void repstats_export_result_clipboard(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct repstats_data *data; GtkClipboard *clipboard; GString *node; gchar *title, *catsubcat; gint tmpmode, tmpsrc; DB( g_print("\n[repdist] export result clipboard\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); //#1886299/1900281 catsubcat = NULL; title = hbtk_get_label(CYA_REPORT_SRC,tmpsrc); /*if(tmpsrc == REPORT_GRPBY_SUBCATEGORY) { catsubcat = g_strjoin(":",hbtk_get_label(CYA_REPORT_SRC, REPORT_GRPBY_CATEGORY), hbtk_get_label(CYA_REPORT_SRC, REPORT_GRPBY_SUBCATEGORY), NULL); title = catsubcat; }*/ if( tmpmode == 0 ) node = lst_report_to_string(HB_STRING_CLIPBOARD, GTK_TREE_VIEW(data->LV_report), tmpsrc, title); else node = lst_rep_time_to_string(HB_STRING_CLIPBOARD, GTK_TREE_VIEW(data->LV_report2), tmpsrc, title); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); g_free(catsubcat); } static void repstats_export_result_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct repstats_data *data; gchar *filename = NULL; GString *node; GIOChannel *io; gchar *name, *title, *catsubcat; gint tmpmode, tmpsrc; DB( g_print("\n[repdist] export result csv\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); //tmpsrc = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_src)); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); name = g_strdup_printf("hb-repstat_%s.csv", hbtk_get_label(CYA_REPORT_SRC,tmpsrc)); if( ui_file_chooser_csv(GTK_WINDOW(data->window), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, name) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { //#1886299/1900281 catsubcat = NULL; title = hbtk_get_label(CYA_REPORT_SRC,tmpsrc); /*if(tmpsrc == REPORT_GRPBY_SUBCATEGORY) { catsubcat = g_strjoin(":",hbtk_get_label(CYA_REPORT_SRC, REPORT_GRPBY_CATEGORY), hbtk_get_label(CYA_REPORT_SRC, REPORT_GRPBY_SUBCATEGORY), NULL); title = catsubcat; }*/ if( tmpmode == 0 ) node = lst_report_to_string(HB_STRING_EXPORT, GTK_TREE_VIEW(data->LV_report), tmpsrc, title); else node = lst_rep_time_to_string(HB_STRING_EXPORT, GTK_TREE_VIEW(data->LV_report2), tmpsrc, title); g_io_channel_write_chars(io, node->str, -1, NULL, NULL); g_io_channel_unref (io); g_string_free(node, TRUE); g_free(catsubcat); } g_free( filename ); } g_free(name); } static void repstats_export_detail_clipboard(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct repstats_data *data; GtkClipboard *clipboard; GString *node; guint flags; DB( g_print("\n[repdist] export detail clipboard\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); flags = LST_TXN_EXP_CLR | LST_TXN_EXP_PMT | LST_TXN_EXP_CAT | LST_TXN_EXP_TAG; node = list_txn_to_string(GTK_TREE_VIEW(data->LV_detail), TRUE, FALSE, FALSE, flags); clipboard = gtk_clipboard_get_default(gdk_display_get_default()); gtk_clipboard_set_text(clipboard, node->str, node->len); g_string_free(node, TRUE); } static void repstats_export_detail_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct repstats_data *data; gchar *filepath = NULL; GString *node; GIOChannel *io; gchar *name; gint tmpsrc; gboolean hassplit, hasstatus; DB( g_print("\n[repdist] export detail csv\n") ); data = user_data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //tmpsrc = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_src)); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); name = g_strdup_printf("hb-repstat-detail_%s.csv", hbtk_get_label(CYA_REPORT_SRC,tmpsrc)); filepath = g_build_filename(PREFS->path_export, name, NULL); //#2019312 //if( ui_file_chooser_csv(GTK_WINDOW(data->window), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, name) == TRUE ) if( ui_dialog_export_csv(GTK_WINDOW(data->window), &filepath, &hassplit, &hasstatus, FALSE) == GTK_RESPONSE_ACCEPT ) { DB( g_print(" + filepath is %s\n", filepath) ); io = g_io_channel_new_file(filepath, "w", NULL); if(io != NULL) { guint flags; flags = LST_TXN_EXP_PMT | LST_TXN_EXP_CAT | LST_TXN_EXP_TAG; if( hasstatus ) flags |= LST_TXN_EXP_CLR; node = list_txn_to_string(GTK_TREE_VIEW(data->LV_detail), FALSE, hassplit, FALSE, flags); g_io_channel_write_chars(io, node->str, -1, NULL, NULL); g_io_channel_unref (io); g_string_free(node, TRUE); } } g_free( filepath ); g_free(name); } static void repstats_detail(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; guint active = GPOINTER_TO_INT(user_data); guint tmpmode, tmpsrc, tmpintvl; GList *list; GtkTreeModel *model; GtkTreeIter iter, child; Category *active_cat; gboolean is_subcat = FALSE; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[repdist] detail populate\n") ); /* clear and detach our model */ model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail)); gtk_tree_store_clear (GTK_TREE_STORE(model)); if( data->detail == 0 || data->txn_queue == NULL ) { DB( g_print(" > skipped: detail hidden or no txn\n") ); return; } //get cat/subcat active_cat = da_cat_get(active); if( active_cat ) is_subcat = (active_cat->parent == 0) ? FALSE : TRUE; tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); //tmpsrc = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_src)); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_detail), NULL); /* Detach model from view */ /* fill in the model */ list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; gdouble dtlamt = ope->amount; if(tmpmode == 1 && data->sel_colid != -1 && data->sel_colid < LST_REP_COLID_MAX) { gint txn_colid = report_interval_get_pos(tmpintvl, data->filter->mindate, ope); //DB( g_print(" sel_colid=%d txncolid=%d\n", data->sel_colid, txn_colid) ); if( data->sel_colid != txn_colid ) goto next_txn; } if(filter_txn_match(data->filter, ope) == 1) { gboolean match = FALSE; guint i, key = 0; switch( tmpsrc ) { case REPORT_GRPBY_CATEGORY: if( ope->flags & OF_SPLIT ) { guint nbsplit = da_splits_length(ope->splits); Split *split; dtlamt = 0.0; for(i=0;isplits, i); //key = category_report_id(split->kcat, (tmpsrc == REPORT_GRPBY_SUBCATEGORY) ? TRUE : FALSE); key = category_report_id(split->kcat, is_subcat); if( key == active ) { match = TRUE; dtlamt += split->amount; // no more break here as we need to compute split total //break; } } } else { key = category_report_id(ope->kcat, is_subcat); if( key == active ) { match = TRUE; } } break; /* the TAG process is particular */ case REPORT_GRPBY_TAG: if(ope->tags != NULL) { guint32 *tptr = ope->tags; while(*tptr) { key = *tptr; if( key == active ) { match = TRUE; break; } tptr++; } } else match = ( key == active ) ? TRUE : FALSE; break; default: key = report_items_get_key(tmpsrc, data->filter->mindate, ope); if( key == active ) { match = TRUE; } break; } if( match == TRUE ) { DB( g_print(" txn match to key=%d\n", active) ); gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &iter, NULL, -1, MODEL_TXN_POINTER, ope, MODEL_TXN_SPLITAMT, dtlamt, -1); //#1875801 show split detail if( ope->flags & OF_SPLIT ) { guint nbsplit = da_splits_length(ope->splits); Split *split; gboolean sinsert = TRUE; for(i=0;isplits, i); //if( (tmpsrc == REPORT_GRPBY_CATEGORY || tmpsrc == REPORT_GRPBY_SUBCATEGORY) ) if( tmpsrc == REPORT_GRPBY_CATEGORY ) { //key = category_report_id(split->kcat, (tmpsrc == REPORT_GRPBY_SUBCATEGORY) ? TRUE : FALSE); key = category_report_id(split->kcat, FALSE); DB( g_print(" %d =? %d => %d\n", key, active, key != active ? FALSE : TRUE) ); if( key != active ) { sinsert = FALSE; } } if( sinsert == TRUE ) { gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &child, &iter, -1, MODEL_TXN_POINTER, ope, MODEL_TXN_SPLITPTR, split, -1); } } } } } next_txn: list = g_list_next(list); } /* Re-attach model to view */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_detail), model); g_object_unref(model); gtk_tree_view_columns_autosize( GTK_TREE_VIEW(data->LV_detail) ); //gtk_tree_view_expand_all( GTK_TREE_VIEW(data->LV_detail) ); } static gboolean reptime_list_click_func ( GtkWidget *widget, GdkEvent *event, gpointer user_data ) { GdkEventType type; guint button = 0; gdouble win_x, win_y; type = gdk_event_get_event_type(event); gdk_event_get_button(event, &button); gdk_event_get_coords(event, &win_x, &win_y); if (type == GDK_BUTTON_PRESS) { struct repstats_data *data; GtkTreeModel *model; GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeIter iter; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print(" capture row/col\n") ); data->sel_colid = -1; if( gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(widget), win_x, win_y, &path, &column, NULL, NULL) ) { data->sel_colid = gtk_tree_view_column_get_sort_column_id (column); model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); if(gtk_tree_model_get_iter(model, &iter, path) ) { gint key; gtk_tree_model_get(model, &iter, LST_REPORT2_KEY, &key, -1); DB( g_print(" reptime click key=%d col=%d '%s'\n", key, data->sel_colid, gtk_tree_view_column_get_title (column)) ); repstats_detail(widget, GINT_TO_POINTER(key)); } gtk_tree_path_free (path); } } return FALSE; } static void repstats_compute(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; DataTable *dt; gint tmpsrc, tmptype, tmpintvl; gdouble totexp, totinc; gboolean tmpaccbal, tmpforecast; guint i, n_inserted; GtkTreeModel *model; GtkTreeIter iter, parent, *tmpparent; DB( g_print("\n----------------\n[repdist] compute\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //clear all #if HB_STATS_DO_TOTAL == 1 model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); gtk_tree_store_clear (GTK_TREE_STORE(model)); gtk_chart_set_datas_none(GTK_CHART(data->RE_chart)); #endif if(data->txn_queue != NULL) g_queue_free (data->txn_queue); data->txn_queue = NULL; //refresh the datatable #if HB_STATS_DO_TIME == 1 model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report2)); gtk_tree_store_clear (GTK_TREE_STORE(model)); gtk_chart_set_datas_none(GTK_CHART(data->RE_chart2)); #endif if(data->trend) da_datatable_free (data->trend); data->trend = NULL; data->total_expense = 0.0; data->total_income = 0.0; repstats_update_total(widget, user_data); //#2019876 return is invalid date range if( data->filter->maxdate < data->filter->mindate ) return; //tmpsrc = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_src)); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); tmptype = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); tmpaccbal = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_balance)); tmpforecast = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_forecast)); if( tmpsrc != REPORT_GRPBY_ACCOUNT && tmpsrc != REPORT_GRPBY_ACCGROUP) tmpaccbal = FALSE; DB( hb_print_date(data->filter->mindate, "min:") ); DB( hb_print_date(data->filter->maxdate, "max:") ); //#2030334 get the forecat max date guint32 jmaxdateforecast = data->filter->maxdate; //#2036228 don't force for custom range gint range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); if( range != FLT_RANGE_MISC_CUSTOM ) { if( tmpforecast == TRUE ) jmaxdateforecast = filter_get_maxdate_forecast(data->filter); DB( hb_print_date(jmaxdateforecast, "maxforecast:") ); } //TODO: not necessary until date range change //data->txn_queue = hbfile_transaction_get_partial(data->filter->mindate, data->filter->maxdate); data->txn_queue = hbfile_transaction_get_partial(data->filter->mindate, jmaxdateforecast); DB( g_print(" for=%d,kind=%d\n", tmpsrc, tmptype) ); DB( g_print(" nb-txn=%d\n", g_queue_get_length (data->txn_queue) ) ); //set filter /*if(!tmpaccbal) filter_preset_type_set(data->filter, FLT_TYPE_INTXFER, (PREFS->stat_includexfer == FALSE) ? FLT_EXCLUDE : FLT_INCLUDE); else filter_preset_type_set(data->filter, FLT_TYPE_ALL, FLT_OFF);*/ #if HB_STATS_DO_TOTAL == 1 DB( g_print(" -- start total --\n") ); //TODO: add if mode==0 model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); n_inserted = 0; totexp = totinc = 0.0; dt = report_compute(tmpsrc, tmpintvl, data->filter, data->txn_queue, (tmpaccbal == TRUE) ? REPORT_COMP_FLG_BALANCE : REPORT_COMP_FLG_NONE); if(dt) { struct lst_report_data *lst_data; DataRow *dr; //store the totals from total datarow dr = dt->totrow; lst_data = g_object_get_data(G_OBJECT(data->LV_report), "inst_data"); if( lst_data != NULL ) { lst_data->tot_exp = dr->rowexp; lst_data->tot_inc = dr->rowinc; } data->total_expense = dr->rowexp; data->total_income = dr->rowinc; //total_total = dt->totexp + dt->totinc; //#2018145 rate total must remains ABS to get accurate % //ratetotal = ABS(dr->rowexp) + ABS(dr->rowinc); DB( g_printf(" total exp %9.2f\n", dr->rowexp) ); DB( g_printf(" total inc %9.2f\n", dr->rowinc) ); //DB( g_printf(" total tot %9.2f\n", total_total) ); // clear and detach our model g_object_ref(model); // Make sure the model stays with us after the tree view unrefs it gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), NULL); // Detach model from view DB( g_print("\n -- populate total listview : %d rows --\n", dt->nbrows) ); // insert into the treeview for(i=0; i < dt->nbrows; i++) { //gdouble drtotal; gboolean insert; guint32 reskey; gchar *overlabel = NULL; //since 5.7 we use the dt-keylst here to insert cat before subcat reskey = dt->keylist[i]; DB( g_print(" get row for key=%d\n", reskey) ); dr = report_data_get_row(dt, reskey); // skip empty results insert = TRUE; if( !(tmpsrc == REPORT_GRPBY_MONTH || tmpsrc == REPORT_GRPBY_YEAR) ) { if( (tmptype == REPORT_TYPE_EXPENSE && !dr->rowexp) || (tmptype == REPORT_TYPE_INCOME && !dr->rowinc) || (!dr->rowexp && !dr->rowinc) ) insert = FALSE; } //#2065531 skip tag filtered if( tmpsrc == REPORT_GRPBY_TAG && data->filter->option[FLT_GRP_TAG] != 0) { if( !da_flt_status_tag_get(data->filter, reskey) ) insert = FALSE; } // skip no account //if( (tmpsrc == REPORT_GRPBY_ACCOUNT) && (i == 0) ) // insert = FALSE; if( insert == FALSE ) { DB( g_printf(" skip: %2d, '%s', %9.2f %9.2f %9.2f\n", i, dr->label, dr->rowexp, dr->rowinc, dr->rowexp - dr->rowinc) ); continue; } n_inserted++; // manage the toplevel for category tmpparent = NULL; if( tmpsrc == REPORT_GRPBY_CATEGORY ) { Category *tmpcat = da_cat_get(reskey); if( tmpcat != NULL ) { overlabel = (tmpcat->key == 0) ? NULL : tmpcat->typename; if( tmpcat->parent != 0 ) { //if( lst_report_get_top_level (GTK_TREE_MODEL(model), tmpcat->parent, &parent) == TRUE ) if( hbtk_tree_store_get_top_level(GTK_TREE_MODEL(model), LST_REPORT_KEY, tmpcat->parent, &parent) ) { tmpparent = &parent; } else { DB( g_print(" !! no parent %d found for %d %s\n", tmpcat->parent, tmpcat->key, tmpcat->fullname) ); } } else //if( tmpcat->parent == 0 ) //only sum for category, not subcat { totexp += dr->rowexp; totinc += dr->rowinc; } } } //if not category, sum else { totexp += dr->rowexp; totinc += dr->rowinc; } gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &iter, tmpparent, -1, LST_REPORT_POS , dr->pos, LST_REPORT_KEY , reskey, LST_REPORT_LABEL, dr->label, LST_REPORT_OVERLABEL, overlabel, //LST_REPORT_ROW, dr, LST_REPORT_EXPENSE, dr->rowexp, LST_REPORT_INCOME , dr->rowinc, LST_REPORT_TOTAL , dr->rowexp + dr->rowinc, -1); DB( g_printf(" insert: %2d, '%s', %9.2f %9.2f %9.2f\n", i, dr->label, dr->rowexp, dr->rowinc, dr->rowexp - dr->rowinc) ); } // update column 0 title GtkTreeViewColumn *column = gtk_tree_view_get_column( GTK_TREE_VIEW(data->LV_report), 0); gtk_tree_view_column_set_title(column, hbtk_get_label(CYA_REPORT_SRC,tmpsrc)); // Re-attach model to view gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), model); g_object_unref(model); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_report)); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); } da_datatable_free (dt); //insert total if( n_inserted > 1 ) { DB( g_print(" insert total\n") ); gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &iter, NULL, -1, LST_REPORT_POS, LST_REPORT_POS_TOTAL, LST_REPORT_KEY, -1, LST_REPORT_LABEL, _("Total"), LST_REPORT_OVERLABEL, NULL, LST_REPORT_EXPENSE, totexp, LST_REPORT_INCOME , totinc, LST_REPORT_TOTAL, totexp + totinc, -1); } #endif /* ---- trend with test multi to remove ---- */ //TODO: add if mode==1 && choose a better max column value #if HB_STATS_DO_TIME == 1 DB( g_print(" -- start time --\n") ); n_inserted = 0; //check limit i = report_interval_count(tmpintvl, data->filter->mindate, data->filter->maxdate); if( i > LST_REP_COLID_MAX ) { //lst_rep_time_renewcol(GTK_TREE_VIEW(data->LV_report2), 0, data->filter->mindate, tmpintvl); ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_INFO, _("Too much columns to display"), _("Please select a wider interval and / or a narrower date range") ); } else { //#2030334 to avoid forecast column to remains //we force the date here only when forecast is ON guint32 saveddate = data->filter->maxdate; data->filter->maxdate = jmaxdateforecast; DB( hb_print_date(saveddate, "saveddate:") ); DB( hb_print_date(data->filter->maxdate, "maxdate:") ); guint flags = REPORT_COMP_FLG_NONE; if( tmpforecast ) flags |= REPORT_COMP_FLG_FORECAST; if( tmpaccbal ) flags |= REPORT_COMP_FLG_BALANCE; dt = report_compute(tmpsrc, tmpintvl, data->filter, data->txn_queue, flags); data->trend = dt; data->filter->maxdate = saveddate; DB( hb_print_date(data->filter->maxdate, "maxdate after compute:") ); //end of forceddate DB( g_print("\n -- populate time listview : %d rows, %d cols --\n", dt->nbrows, dt->nbcols) ); // clear and detach our model model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report2)); g_object_ref(model); // Make sure the model stays with us after the tree view unrefs it gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report2), NULL); // Detach model from view lst_rep_time_renewcol(GTK_TREE_VIEW(data->LV_report2), model, dt, tmpaccbal ? FALSE : TRUE); // update column 0 title GtkTreeViewColumn *column = gtk_tree_view_get_column( GTK_TREE_VIEW(data->LV_report2), 0); gtk_tree_view_column_set_title(column, hbtk_get_label(CYA_REPORT_SRC,tmpsrc)); //#1955046 treeview with child was a test faulty released for(i=0; i < dt->nbrows; i++) { DataRow *dr; guint32 reskey; gchar *overlabel = NULL; reskey = dt->keylist[i]; dr = report_data_get_row(dt, reskey); //#2024940 test on exp/inc individually if( (hb_amount_cmp(dr->rowexp, 0.0)==0) && (hb_amount_cmp(dr->rowinc, 0.0)==0) ) { DB( g_printf(" %4d:'%s' %.2f :: hide (no data)\n", i, dr->label, dr->rowexp + dr->rowinc ) ); continue; } //#2065531 skip tag filtered if( tmpsrc == REPORT_GRPBY_TAG && data->filter->option[FLT_GRP_TAG] != 0) { if( !da_flt_status_tag_get(data->filter, reskey) ) { DB( g_printf(" %4d:'%s' %.2f :: hide (tag filtered)\n", i, dr->label, dr->rowexp + dr->rowinc ) ); continue; } } DB( g_printf(" %4d:'%s' %.2f :: insert\n", i, dr->label, dr->rowexp + dr->rowinc ) ); n_inserted++; // manage the toplevel for category tmpparent = NULL; //if( tmpsrc == REPORT_GRPBY_CATEGORY || tmpsrc == REPORT_GRPBY_SUBCATEGORY ) if( tmpsrc == REPORT_GRPBY_CATEGORY ) { Category *tmpcat = da_cat_get(reskey); if( tmpcat != NULL) { overlabel = (tmpcat->key == 0) ? NULL : tmpcat->typename; //if( lst_rep_time_get_top_level (GTK_TREE_MODEL(model), tmpcat->parent, &parent) == TRUE ) if( hbtk_tree_store_get_top_level(GTK_TREE_MODEL(model), LST_REPORT2_KEY, tmpcat->parent, &parent) ) { tmpparent = &parent; } else { DB( g_print(" !! no parent %d found for %d %s\n", tmpcat->parent, tmpcat->key, tmpcat->fullname) ); } } } DB( g_printf(" --> insert\n") ); gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &iter, tmpparent, -1, LST_REPORT2_POS, n_inserted, LST_REPORT2_KEY, reskey, LST_REPORT2_LABEL, dr->label, LST_REPORT2_OVERLABEL, overlabel, LST_REPORT2_ROW, dr, -1); } data->trendrows = n_inserted; data->trendcols = dt->nbcols; //insert total if( n_inserted > 1 ) { DataRow *dr = dt->totrow; dr->pos = LST_REPORT_POS_TOTAL; DB( g_printf(" eval item total:'%s'\n", dr->label ) ); DB( g_printf(" --> insert total\n") ); n_inserted++; gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &iter, NULL, -1, LST_REPORT2_POS, LST_REPORT_POS_TOTAL, LST_REPORT2_KEY, -1, LST_REPORT2_LABEL, _("Total"), LST_REPORT2_OVERLABEL, NULL, LST_REPORT2_ROW, dr, -1); } // Re-attach model to view gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report2), model); g_object_unref(model); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_report2)); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report2)); // test liststore //liststore_benchmark(); // test multi end } #endif //here we use data->total_expense/income repstats_update_total(widget, NULL); repstats_update(widget, user_data); } /* ** update visibility/sensitivity */ static void repstats_sensitive(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; gboolean visible, sensitive; gint mode, type, tmpsrc, page; DB( g_print("\n[repdist] sensitive\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); mode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); type = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); tmpsrc = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_src)); page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); //total visible = mode == 0 ? TRUE : FALSE; hb_widget_visible(data->LB_type, visible); hb_widget_visible(data->CY_type, visible); hb_widget_visible(data->CM_byamount, visible); hb_widget_visible(data->CM_compare, visible); hb_widget_visible(data->BT_column, visible); hb_widget_visible(data->BT_donut, visible); hb_widget_visible(data->BT_stack, !visible); hb_widget_visible(data->BT_stack100, !visible); hb_widget_visible(data->LB_intvl, !visible); hb_widget_visible(data->CY_intvl, !visible); visible = mode == 0 ? FALSE : PREFS->rep_forcast; hb_widget_visible(data->CM_forecast, visible); visible = (mode==0 && page == 0) ? TRUE : FALSE; hb_widget_visible(data->BT_rate, visible); visible = (tmpsrc == REPORT_GRPBY_ACCOUNT) || (tmpsrc == REPORT_GRPBY_ACCGROUP) ? TRUE : FALSE; hb_widget_visible(data->CM_balance, visible); //zoom visible = (data->charttype == CHART_TYPE_COL || data->charttype == CHART_TYPE_STACK || data->charttype == CHART_TYPE_STACK100) ? TRUE : FALSE; hb_widget_visible(data->LB_zoomx, visible); hb_widget_visible(data->RG_zoomx, visible); //compare visible = (type == REPORT_TYPE_TOTAL) && (data->charttype == CHART_TYPE_COL) ? TRUE : FALSE; hb_widget_visible(data->CM_compare, visible); visible = page == 0 ? TRUE : FALSE; hb_widget_visible (data->BT_detail , visible); hb_widget_visible (data->BT_export , visible); visible = (page == 0 && tmpsrc == REPORT_GRPBY_CATEGORY) ? TRUE : FALSE; hb_widget_visible (data->GR_listbar, visible); visible = (page > 0) ? TRUE : FALSE; hb_widget_visible (data->BT_legend, visible); //hb_widget_visible (data->BT_print, visible); page = gtk_tree_model_iter_n_children(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail)), NULL); sensitive = ((page > 0) && data->detail) ? TRUE : FALSE; g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "detclip")), sensitive); g_simple_action_set_enabled(G_SIMPLE_ACTION(g_action_map_lookup_action (G_ACTION_MAP (data->actions), "detcsv")), sensitive); } static void repstats_detail_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct repstats_data *data; Transaction *active_txn; gboolean result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print ("\n[repdist] A detail row has been double-clicked!\n") ); active_txn = list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_detail)); if(active_txn) { Transaction *old_txn, *new_txn; //#1909749 skip reconciled if lock is ON if( PREFS->safe_lock_recon == TRUE && active_txn->status == TXN_STATUS_RECONCILED ) return; old_txn = da_transaction_clone (active_txn); new_txn = active_txn; result = deftransaction_external_edit(GTK_WINDOW(data->window), old_txn, new_txn); if(result == GTK_RESPONSE_ACCEPT) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path = NULL; //1936806 keep the selection gint tmpmode = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_mode)); treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(tmpmode == 0 ? data->LV_report : data->LV_report2)); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { path = gtk_tree_model_get_path(model, &iter); } //#1640885 GLOBALS->changes_count++; repstats_compute(data->window, NULL); if( path != NULL ) { gtk_tree_selection_select_path(treeselection, path); gtk_tree_path_free(path); } } da_transaction_free (old_txn); } } static void repstats_update_detail(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; DB( g_print("\n[repdist] update detail\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if(GTK_IS_TREE_VIEW(data->LV_report)) { DB( g_print(" showdetail=%d\n", data->detail) ); //#2018039 list_txn_set_lockreconciled(GTK_TREE_VIEW(data->LV_detail), PREFS->safe_lock_recon); if(data->detail) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; guint key; treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_report)); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_REPORT_KEY, &key, -1); DB( g_print(" - active is %d\n", key) ); repstats_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key)); } gtk_widget_show(data->GR_detail); } else gtk_widget_hide(data->GR_detail); } } static void repstats_toggle_detail(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->detail ^= 1; DB( g_print("\n[repdist] toggledetail to %d\n", data->detail) ); repstats_update_detail(widget, user_data); repstats_sensitive(widget, NULL); } /* ** change the chart legend visibility */ static void repstats_toggle_legend(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; DB( g_print("\n[repdist] toggle legend\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->legend ^= 1; gtk_chart_show_legend(GTK_CHART(data->RE_chart), data->legend, FALSE); gtk_chart_queue_redraw(GTK_CHART(data->RE_chart)); gtk_chart_show_legend(GTK_CHART(data->RE_chart2), data->legend, FALSE); gtk_chart_queue_redraw(GTK_CHART(data->RE_chart2)); } static void repstats_zoomx_callback(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; gdouble value; DB( g_print("\n[repdist] zoomx\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); value = gtk_range_get_value(GTK_RANGE(data->RG_zoomx)); DB( g_print(" + scale is %.2f\n", value) ); gtk_chart_set_barw(GTK_CHART(data->RE_chart), value); gtk_chart_set_barw(GTK_CHART(data->RE_chart2), value); } /* ** change the chart rate columns visibility */ static void repstats_toggle_rate(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; GtkTreeViewColumn *column; DB( g_print("\n[repdist] toggle rate\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->rate ^= 1; if(GTK_IS_TREE_VIEW(data->LV_report)) { column = gtk_tree_view_get_column (GTK_TREE_VIEW(data->LV_report), 2); gtk_tree_view_column_set_visible(column, data->rate); column = gtk_tree_view_get_column (GTK_TREE_VIEW(data->LV_report), 4); gtk_tree_view_column_set_visible(column, data->rate); column = gtk_tree_view_get_column (GTK_TREE_VIEW(data->LV_report), 6); gtk_tree_view_column_set_visible(column, data->rate); } } static void repstats_toggle_minor(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; DB( g_print("\n[repdist] toggle minor\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); GLOBALS->minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); repstats_update_total(widget,NULL); //hbfile_update(data->LV_acc, (gpointer)4); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); gtk_chart_show_minor(GTK_CHART(data->RE_chart), GLOBALS->minor); gtk_chart_queue_redraw(GTK_CHART(data->RE_chart)); gtk_chart_show_minor(GTK_CHART(data->RE_chart2), GLOBALS->minor); gtk_chart_queue_redraw(GTK_CHART(data->RE_chart2)); } static void repstats_cb_expand_all(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[repdist] expand all (data=%p)\n", data) ); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_report)); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_report2)); } static void repstats_cb_collapse_all(GtkWidget *widget, gpointer user_data) { struct repstats_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[repdist] collapse all (data=%p)\n", data) ); gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_report)); gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_report2)); } static void repstats_cb_sortcolumnchanged(GtkTreeSortable *sortable, gpointer user_data) { DB( g_print("\n[repdist] sort column chnaged\n") ); } static void repstats_selection(GtkTreeSelection *treeselection, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; guint key = -1; DB( g_print("\n[repdist] selection total\n") ); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_REPORT_KEY, &key, -1); } DB( g_print(" - total active is %d\n", key) ); repstats_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key)); repstats_sensitive(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static void repstats_selection2(GtkTreeSelection *treeselection, gpointer user_data) { //GtkTreeModel *model; //GtkTreeIter iter; //guint key = -1; DB( g_print("\n[repdist] selection time\n") ); /*if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_REPORT2_KEY, &key, -1); } DB( g_print(" - time active is %d\n", key) ); repstats_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key));*/ repstats_sensitive(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static const GActionEntry win_actions[] = { { "resclip" , repstats_export_result_clipboard, NULL, NULL, NULL, {0,0,0} }, { "rescsv" , repstats_export_result_csv, NULL, NULL, NULL, {0,0,0} }, { "detclip" , repstats_export_detail_clipboard, NULL, NULL, NULL, {0,0,0} }, { "detcsv" , repstats_export_detail_csv, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; static GtkWidget * repstats_toolbar_create(struct repstats_data *data) { GtkWidget *toolbar, *button; toolbar = gtk_toolbar_new(); button = (GtkWidget *)gtk_radio_tool_button_new(NULL); data->BT_list = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_LIST, "label", _("List"), NULL); gtk_widget_set_tooltip_text(button, _("View results as list")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = (GtkWidget *)gtk_radio_tool_button_new_from_widget(GTK_RADIO_TOOL_BUTTON(button)); data->BT_column = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_COLUMN, "label", _("Column"), NULL); gtk_widget_set_tooltip_text(button, _("View results as column")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = (GtkWidget *)gtk_radio_tool_button_new_from_widget(GTK_RADIO_TOOL_BUTTON(button)); data->BT_donut = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_DONUT, "label", _("Donut"), NULL); gtk_widget_set_tooltip_text(button, _("View results as donut")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = (GtkWidget *)gtk_radio_tool_button_new_from_widget(GTK_RADIO_TOOL_BUTTON(button)); data->BT_stack = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_STACK, "label", _("Stack"), NULL); gtk_widget_set_tooltip_text(button, _("View results as stack")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = (GtkWidget *)gtk_radio_tool_button_new_from_widget(GTK_RADIO_TOOL_BUTTON(button)); data->BT_stack100 = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_STACK100, "label", _("Stack 100%"), NULL); gtk_widget_set_tooltip_text(button, _("View results as stack 100%")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); button = gtk_widget_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "icon-name", ICONNAME_HB_OPE_SHOW, "label", _("Detail"), "tooltip-text", _("Toggle detail"), "active", PREFS->stat_showdetail, NULL); data->BT_detail = button; gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = gtk_widget_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "icon-name", ICONNAME_HB_SHOW_LEGEND, "label", _("Legend"), "tooltip-text", _("Toggle legend"), "active", TRUE, NULL); data->BT_legend = button; gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = gtk_widget_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "icon-name", ICONNAME_HB_SHOW_RATE, "label", _("Rate"), "tooltip-text", _("Toggle rate"), "active", PREFS->stat_showrate, NULL); data->BT_rate = button; gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); //button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILTER, _("Filter"), _("Edit filter")); //data->BT_filter = button; button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REFRESH, _("Refresh"), _("Refresh results")); data->BT_refresh = button; //export button button = gtk_menu_button_new(); data->BT_export = button; gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(button)), GTK_STYLE_CLASS_FLAT); GtkWidget *image = gtk_image_new_from_icon_name (ICONNAME_HB_FILE_EXPORT, GTK_ICON_SIZE_LARGE_TOOLBAR); g_object_set (button, "image", image, NULL); GtkToolItem *toolitem = gtk_tool_item_new(); gtk_container_add (GTK_CONTAINER(toolitem), button); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(toolitem), -1); GMenu *menu = g_menu_new (); GMenu *section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Result to clipboard"), "win.resclip"); g_menu_append (section, _("_Result to CSV") , "win.rescsv"); g_object_unref (section); section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Detail to clipboard"), "win.detclip"); g_menu_append (section, _("_Detail to CSV") , "win.detcsv"); g_object_unref (section); GActionGroup *actiongroup = (GActionGroup*)g_simple_action_group_new (); data->actions = actiongroup; g_action_map_add_action_entries (G_ACTION_MAP (actiongroup), win_actions, G_N_ELEMENTS (win_actions), data); gtk_widget_insert_action_group (button, "win", G_ACTION_GROUP(actiongroup)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu)); button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_PRINT, _("Print"), _("Print")); data->BT_print = button; return toolbar; } //reset the filter static void repstats_filter_setup(struct repstats_data *data) { DB( g_print("\n[repdist] reset filter\n") ); filter_reset(data->filter); filter_preset_daterange_set(data->filter, PREFS->date_range_rep, 0); //#1989211 option to include xfer by default /* 3.4 : make int transfer out of stats */ if(PREFS->stat_includexfer == FALSE) filter_preset_type_set(data->filter, FLT_TYPE_INTXFER, FLT_EXCLUDE); DB( hb_print_date(data->filter->mindate, "min:") ); DB( hb_print_date(data->filter->maxdate, "max:") ); } // setup default for our object/memory static void repstats_window_setup(struct repstats_data *data) { DB( g_print("\n[repdist] setup\n") ); DB( g_print(" init data\n") ); repstats_filter_setup(data); //DB( g_print(" populate\n") ); DB( g_print(" set widgets default\n") ); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(data->BT_detail), PREFS->stat_showdetail); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(data->BT_legend), TRUE); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(data->BT_rate) , PREFS->stat_showrate); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_minor), GLOBALS->minor); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_byamount), PREFS->stat_byamount); //5.8 EXP > TOTAL hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_type), REPORT_TYPE_TOTAL); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), PREFS->date_range_rep); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_forecast), PREFS->rep_forcast); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report))), "minor", (gpointer)data->CM_minor); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail))), "minor", (gpointer)data->CM_minor); gtk_chart_set_smallfont (GTK_CHART(data->RE_chart), PREFS->rep_smallfont); gtk_chart_set_smallfont (GTK_CHART(data->RE_chart2), PREFS->rep_smallfont); repstats_toggle_rate(data->window, NULL); DB( g_print(" connect widgets signals\n") ); g_signal_connect( ui_flt_popover_hub_get_combobox(GTK_BOX(data->PO_hubfilter), NULL), "changed", G_CALLBACK (beta_repstats_filter_cb_preset_change), NULL); g_signal_connect (data->BT_reset , "clicked", G_CALLBACK (beta_repstats_filter_cb_reset), NULL); g_signal_connect (data->CM_minor, "toggled", G_CALLBACK (repstats_toggle_minor), NULL); g_signal_connect (G_OBJECT (data->BT_expand), "clicked", G_CALLBACK (repstats_cb_expand_all), NULL); g_signal_connect (G_OBJECT (data->BT_collapse), "clicked", G_CALLBACK (repstats_cb_collapse_all), NULL); data->hid[HID_REPDIST_MINDATE] = g_signal_connect (data->PO_mindate, "changed", G_CALLBACK (repstats_date_change), (gpointer)data); data->hid[HID_REPDIST_MAXDATE] = g_signal_connect (data->PO_maxdate, "changed", G_CALLBACK (repstats_date_change), (gpointer)data); data->hid[HID_REPDIST_RANGE] = g_signal_connect (data->CY_range, "changed", G_CALLBACK (repstats_range_change), NULL); g_signal_connect (data->CY_src, "changed", G_CALLBACK (repstats_compute), (gpointer)data); g_signal_connect (data->RA_mode, "changed", G_CALLBACK (repstats_action_mode_changed), (gpointer)data); g_signal_connect (data->CY_intvl, "changed", G_CALLBACK (repstats_compute), (gpointer)data); data->hid[HID_REPDIST_VIEW] = g_signal_connect (data->CY_type, "changed", G_CALLBACK (repstats_compute), (gpointer)data); g_signal_connect (data->RG_zoomx, "value-changed", G_CALLBACK (repstats_zoomx_callback), NULL); g_signal_connect (data->CM_balance, "toggled", G_CALLBACK (repstats_compute), NULL); data->hid[HID_REPDIST_FORECAST] = g_signal_connect (data->CM_forecast, "toggled", G_CALLBACK (repstats_compute), NULL); g_signal_connect (data->CM_byamount, "toggled", G_CALLBACK (repstats_update), NULL); g_signal_connect (data->CM_compare, "toggled", G_CALLBACK (repstats_update), NULL); g_signal_connect (G_OBJECT (data->BT_list), "clicked", G_CALLBACK (repstats_action_viewlist), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_column), "clicked", G_CALLBACK (repstats_action_viewbar), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_donut), "clicked", G_CALLBACK (repstats_action_viewpie), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_stack), "clicked", G_CALLBACK (repstats_action_viewstack), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_stack100), "clicked", G_CALLBACK (repstats_action_viewstack100), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_detail), "clicked", G_CALLBACK (repstats_toggle_detail), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_legend), "clicked", G_CALLBACK (repstats_toggle_legend), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_rate), "clicked", G_CALLBACK (repstats_toggle_rate), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_filter), "clicked", G_CALLBACK (repstats_action_filter), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_refresh), "clicked", G_CALLBACK (repstats_compute), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_print), "clicked", G_CALLBACK (repstats_action_print), (gpointer)data); //export is a menu g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report )), "changed", G_CALLBACK (repstats_selection), NULL); g_signal_connect (gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)), "sort-column-changed", G_CALLBACK (repstats_cb_sortcolumnchanged), NULL); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report2)), "changed", G_CALLBACK (repstats_selection2), NULL); //we use this to intercep column click g_signal_connect ( G_OBJECT (data->LV_report2), "button-press-event", G_CALLBACK (reptime_list_click_func), data ); g_signal_connect (GTK_TREE_VIEW(data->LV_detail), "row-activated", G_CALLBACK (repstats_detail_onRowActivated), NULL); } static gboolean repstats_window_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct repstats_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[repdist] window mapped\n") ); //setup, init and show window repstats_window_setup(data); repstats_update_date_widget(data->window, NULL); repstats_update_daterange(data->window, NULL); repstats_compute(data->window, NULL); data->mapped_done = TRUE; return FALSE; } static gboolean repstats_window_dispose(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct repstats_data *data = user_data; struct WinGeometry *wg; DB( g_print("\n[repdist] dispose\n") ); /* test multi */ if(data->trend) da_datatable_free (data->trend); if(data->txn_queue) g_queue_free (data->txn_queue); da_flt_free(data->filter); g_free(data); //store position and size wg = &PREFS->sta_wg; gtk_window_get_position(GTK_WINDOW(widget), &wg->l, &wg->t); gtk_window_get_size(GTK_WINDOW(widget), &wg->w, &wg->h); DB( g_print(" window: l=%d, t=%d, w=%d, h=%d\n", wg->l, wg->t, wg->w, wg->h) ); //enable define windows GLOBALS->define_off--; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); //unref window to our open window list GLOBALS->openwindows = g_slist_remove(GLOBALS->openwindows, widget); return FALSE; } //allocate our object/memory static void repstats_window_acquire(struct repstats_data *data) { DB( g_print("\n[repdist] acquire\n") ); data->txn_queue = g_queue_new (); data->filter = da_flt_malloc(); data->detail = PREFS->stat_showdetail; data->legend = 1; data->rate = PREFS->stat_showrate^1; } // the window creation GtkWidget *repstats_window_new(void) { struct repstats_data *data; struct WinGeometry *wg; GtkWidget *window, *mainbox, *hbox, *vbox, *tbar, *bbox, *fbox, *notebook, *treeview, *vpaned, *scrollwin; GtkWidget *label, *widget, *table, *entry; gint row; DB( g_print("\n[repdist] new\n") ); data = g_malloc0(sizeof(struct repstats_data)); if(!data) return NULL; repstats_window_acquire(data); //disable define windows GLOBALS->define_off++; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); data->window = window; //ref window to our open window list GLOBALS->openwindows = g_slist_prepend(GLOBALS->openwindows, window); //store our window private data g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)data); DB( g_print(" - new window=%p, inst_data=%p\n", window, data) ); gtk_window_set_title (GTK_WINDOW (window), _("Statistics Report")); //window contents mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hb_widget_set_margin(GTK_WIDGET(mainbox), SPACING_SMALL); gtk_window_set_child(GTK_WINDOW(window), mainbox); //control part table = gtk_grid_new (); gtk_widget_set_hexpand (GTK_WIDGET(table), FALSE); gtk_box_prepend (GTK_BOX (mainbox), table); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); row = 0; //label = make_label_group(_("Display")); //gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); fbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_grid_attach (GTK_GRID (table), fbox, 0, row, 3, 1); label = make_label_group(_("Display")); //gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); gtk_box_prepend (GTK_BOX (fbox), label); row++; label = make_label_widget(_("Mode:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup(HBTK_SWITCHER(widget), CYA_REPORT_MODE, TRUE); data->RA_mode = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_View by:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_REPORT_SRC); data->CY_src = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("_Balance mode")); data->CM_balance = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Type:")); data->LB_type = label; gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_REPORT_TYPE); data->CY_type = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = make_label_widget(_("Inter_val:")); data->LB_intvl = label; gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_REPORT_INTVL); data->CY_intvl = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_intvl), REPORT_INTVL_MONTH); //5.7 row++; widget = gtk_check_button_new_with_mnemonic (_("_Forecast")); data->CM_forecast = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Sort by _amount")); data->CM_byamount = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Compare Exp. & Inc.")); data->CM_compare = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Zoom X:")); data->LB_zoomx = label; gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = make_scale(label); data->RG_zoomx = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Euro _minor")); data->CM_minor = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); /* row++; widget = gtk_check_button_new_with_mnemonic ("Legend"); data->CM_legend = widget; gtk_grid_attach (GTK_GRID (table), widget, 1, 2, row, row+1); */ //-- filter row++; widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_margin_top(widget, SPACING_MEDIUM); //gtk_widget_set_margin_bottom(widget, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (table), widget, 0, row, 3, 1); //5.8 test row++; fbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_grid_attach (GTK_GRID (table), fbox, 0, row, 3, 1); label = make_label_group(_("Filter")); //gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); gtk_box_prepend (GTK_BOX (fbox), label); // active label = make_label_widget(_("Active:")); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (fbox), label); label = make_label(NULL, 0.0, 0.5); gtk_widget_set_margin_start(label, SPACING_SMALL); data->TX_fltactive = label; gtk_box_prepend (GTK_BOX (fbox), label); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); data->TT_fltactive = fbox; gtk_box_prepend (GTK_BOX (fbox), widget); //test button bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (bbox), GTK_STYLE_CLASS_LINKED); gtk_box_append (GTK_BOX (fbox), bbox); widget = make_image_button2(ICONNAME_HB_FILTER, _("Edit filter")); data->BT_filter = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_button2(ICONNAME_HB_CLEAR, _("Clear filter")); data->BT_reset = widget; gtk_box_prepend (GTK_BOX (bbox), widget); row++; widget = create_popover_widget(GTK_WINDOW(data->window), data->filter); data->PO_hubfilter = widget; gtk_grid_attach (GTK_GRID (table), widget, 1, row, 2, 1); row++; //label = make_label_group(_("Date filter")); label = make_label_group(_("Date")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 2, 1); row++; label = make_label_widget(_("_Range:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->CY_range = make_daterange(label, DATE_RANGE_FLAG_CUSTOM_DISABLE); gtk_grid_attach (GTK_GRID (table), data->CY_range, 2, row, 1, 1); row++; label = make_label_widget(_("_From:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->PO_mindate = gtk_date_entry_new(label); gtk_grid_attach (GTK_GRID (table), data->PO_mindate, 2, row, 1, 1); row++; label = make_label_widget(_("_To:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->PO_maxdate = gtk_date_entry_new(label); gtk_grid_attach (GTK_GRID (table), data->PO_maxdate, 2, row, 1, 1); //part: info + report vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_margin_start (vbox, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (mainbox), vbox); //toolbar widget = repstats_toolbar_create(data); data->TB_bar = widget; gtk_box_prepend (GTK_BOX (vbox), widget); //infos + total hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); hb_widget_set_margin(GTK_WIDGET(hbox), SPACING_SMALL); gtk_box_prepend (GTK_BOX (vbox), hbox); widget = make_label(NULL, 0.5, 0.5); gimp_label_set_attributes (GTK_LABEL (widget), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); data->TX_daterange = widget; gtk_box_prepend (GTK_BOX (hbox), widget); entry = gtk_label_new(NULL); data->TX_total[2] = entry; gtk_box_append (GTK_BOX (hbox), entry); label = gtk_label_new(_("Total:")); gtk_box_append (GTK_BOX (hbox), label); entry = gtk_label_new(NULL); data->TX_total[1] = entry; gtk_box_append (GTK_BOX (hbox), entry); label = gtk_label_new(_("Income:")); gtk_box_append (GTK_BOX (hbox), label); entry = gtk_label_new(NULL); data->TX_total[0] = entry; gtk_box_append (GTK_BOX (hbox), entry); label = gtk_label_new(_("Expense:")); gtk_box_append (GTK_BOX (hbox), label); /* report area */ notebook = gtk_notebook_new(); data->GR_result = notebook; gtk_widget_show(notebook); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); hbtk_box_prepend (GTK_BOX (vbox), notebook); // page list/detail vpaned = gtk_paned_new(GTK_ORIENTATION_VERTICAL); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vpaned, NULL); // list group vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_paned_pack1 (GTK_PANED(vpaned), vbox, TRUE, TRUE); // list total scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); data->SW_total = scrollwin; hbtk_box_prepend (GTK_BOX(vbox), scrollwin); treeview = lst_report_create(); data->LV_report = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); // list trend scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); data->SW_trend = scrollwin; hbtk_box_prepend (GTK_BOX(vbox), scrollwin); treeview = lst_rep_time_create(); data->LV_report2 = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); //5.8 moved collapse/expand here tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); data->GR_listbar = tbar; gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_EXPAND, _("Expand all")); data->BT_expand = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_button(ICONNAME_HB_BUTTON_COLLAPSE, _("Collapse all")); data->BT_collapse = widget; gtk_box_prepend (GTK_BOX (bbox), widget); //detail scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); data->GR_detail = scrollwin; //gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW (scrollwin), GTK_CORNER_TOP_RIGHT); treeview = create_list_transaction(LIST_TXN_TYPE_DETAIL, PREFS->lst_det_columns); data->LV_detail = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_paned_pack2 (GTK_PANED(vpaned), scrollwin, TRUE, TRUE); list_txn_set_save_column_width(GTK_TREE_VIEW(treeview), TRUE); //page: 2d bar /pie widget = gtk_chart_new(CHART_TYPE_COL); data->RE_chart = widget; gtk_chart_set_minor_prefs(GTK_CHART(widget), PREFS->euro_value, PREFS->minor_cur.symbol); gtk_chart_set_currency(GTK_CHART(widget), GLOBALS->kcur); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL); //page: 2d stack/stack100 widget = gtk_chart_new(CHART_TYPE_NONE); data->RE_chart2 = widget; gtk_chart_set_minor_prefs(GTK_CHART(widget), PREFS->euro_value, PREFS->minor_cur.symbol); gtk_chart_set_currency(GTK_CHART(widget), GLOBALS->kcur); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL); // connect dialog signals g_signal_connect (window, "delete-event", G_CALLBACK (repstats_window_dispose), (gpointer)data); g_signal_connect (window, "map-event" , G_CALLBACK (repstats_window_mapped), NULL); // setup, init and show window wg = &PREFS->sta_wg; if( wg->l && wg->t ) gtk_window_move(GTK_WINDOW(window), wg->l, wg->t); gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h); // toolbar if(PREFS->toolbar_style == 0) gtk_toolbar_unset_style(GTK_TOOLBAR(data->TB_bar)); else gtk_toolbar_set_style(GTK_TOOLBAR(data->TB_bar), PREFS->toolbar_style-1); gtk_widget_show_all (window); //minor ? hb_widget_visible(data->CM_minor, PREFS->euro_active); gtk_widget_hide(data->SW_trend); repstats_sensitive(window, NULL); repstats_update_detail(window, NULL); return window; } homebank-5.9.1/src/gtk-chart-progress.c0000644000175000017500000014407215005625274013472 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include #include #include "homebank.h" #include "ui-widgets.h" #include "gtk-chart-colors.h" #include "gtk-chart-progress.h" #include "rep-budget.h" extern gchar *CHART_CATEGORY; /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define DB(x); //#define DB(x) (x); //calculation #define DBC(x); //#define DBC(x) (x); //DB dynamics #define DBD(x); //#define DBD(x) (x); #define DYNAMICS 1 #define DBGDRAW_RECT 0 #define DBGDRAW_TEXT 0 #define DBGDRAW_ITEM 0 /* --- prototypes --- */ static void ui_chart_progress_class_init (ChartProgressClass *klass); static void ui_chart_progress_init (ChartProgress *chart); static void ui_chart_progress_destroy (GtkWidget *chart); /*static void ui_chart_progress_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);*/ static gboolean drawarea_configure_event_callback (GtkWidget *widget, GdkEvent *event, gpointer user_data); static gboolean drawarea_draw_callback(GtkWidget *widget, cairo_t *cr, gpointer user_data); static void drawarea_style_changed_callback(GtkWidget *widget, gpointer user_data); static gboolean drawarea_scroll_event_callback( GtkWidget *widget, GdkEvent *event, gpointer user_data); static gboolean drawarea_motionnotifyevent_callback(GtkWidget *widget, GdkEvent *event, gpointer user_data); static void ui_chart_progress_first_changed( GtkAdjustment *adj, gpointer user_data); //static void ui_chart_progress_clear(ChartProgress *chart); static gboolean drawarea_full_redraw(GtkWidget *widget, gpointer user_data); static void ui_chart_progress_queue_redraw(ChartProgress *chart); /* --- variables --- */ static GtkBoxClass *parent_class = NULL; /* --- functions --- */ static void ui_chart_progress_set_font_size(ChartProgress *chart, PangoLayout *layout, gint font_size) { PangoAttrList *attrs; PangoAttribute *attr; double scale = PANGO_SCALE_MEDIUM; //PANGO_SCALE_MEDIUM = normal size //DB( g_print("\n[chartprogress] set font size\n") ); switch(font_size) { case CHART_FONT_SIZE_TITLE: //size = chart->pfd_size + 3; scale = PANGO_SCALE_X_LARGE; break; case CHART_FONT_SIZE_SUBTITLE: //size = chart->pfd_size + 1; scale = PANGO_SCALE_LARGE; break; //case CHART_FONT_SIZE_NORMAL: //size = chart->pfd_size - 1; // break; case CHART_FONT_SIZE_SMALL: //size = chart->pfd_size - 2; scale = PANGO_SCALE_SMALL; break; } //DB( g_print(" size=%d\n", size) ); attrs = pango_attr_list_new (); attr = pango_attr_scale_new(scale); pango_attr_list_insert (attrs, attr); pango_layout_set_attributes (layout, attrs); pango_layout_set_font_description (layout, chart->pfd); //pango_attribute_destroy(attr); pango_attr_list_unref (attrs); } /* ** print a integer number */ static gchar *ui_chart_progress_print_int(ChartProgress *chart, gdouble value) { hb_strfmon(chart->buffer, CHART_BUFFER_LENGTH-1, value, chart->kcur, chart->minor); return chart->buffer; } /* ** get the bar under the mouse pointer */ static gint ui_chart_progress_get_hover(GtkWidget *widget, gint x, gint y, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); HbtkDrawProgContext *context = &chart->context; gint retval, first, index, py; gint blkw = context->blkw; double oy; gboolean docursor = FALSE; DB( g_print("\n[chartprogress] get hover\n") ); retval = -1; oy = context->t + context->title_zh + context->header_zh + context->subtitle_zh; //DB( g_print(" y=%d, oy=%f, cb=%f\n", y, oy, chart->b) ); if( (y <= context->b && y >= oy) && (x >= context->l && x <= context->r) ) { first = gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); py = (y - oy); index = first + (py / blkw); if(index < chart->nb_items) { StackItem *item = &g_array_index(chart->items, StackItem, index); retval = index; if( item->n_child > 1 ) docursor = TRUE; } DB( g_print(" hover=%d\n", retval) ); } //5.7 cursor change { GdkWindow *gdkwindow; GdkCursor *cursor; gdkwindow = gtk_widget_get_window (GTK_WIDGET(widget)); cursor = gdk_cursor_new_for_display(gdk_window_get_display(gdkwindow), (docursor == TRUE) ? GDK_HAND2 : GDK_ARROW ); gdk_window_set_cursor (gdkwindow, cursor); if(GDK_IS_CURSOR(cursor)) g_object_unref(cursor); } return(retval); } static void ui_chart_progress_first_changed( GtkAdjustment *adj, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); //gint first; DB( g_print("\n[chartprogress] bar first changed\n") ); //first = gtk_adjustment_get_value(GTK_ADJUSTMENT(adj)); //DB( g_print(" first=%d\n", first) ); /* DB( g_print("scrollbar\n adj=%8x, low=%.2f upp=%.2f val=%.2f step=%.2f page=%.2f size=%.2f\n", adj, adj->lower, adj->upper, adj->value, adj->step_increment, adj->page_increment, adj->page_size) ); */ /* Set the number of decimal places to which adj->value is rounded */ //gtk_scale_set_digits (GTK_SCALE (hscale), (gint) adj->value); //gtk_scale_set_digits (GTK_SCALE (vscale), (gint) adj->value); drawarea_full_redraw (chart->drawarea, chart); gtk_widget_queue_draw(chart->drawarea); } /* ** scrollbar set values for upper, page size, and also show/hide */ static void ui_chart_progress_scrollbar_setvalues(ChartProgress *chart) { GtkAdjustment *adj = chart->adjustment; HbtkDrawProgContext *context = &chart->context; gint first; g_return_if_fail (GTK_IS_ADJUSTMENT (adj)); DB( g_print("\n[chartprogress] sb_set_values\n") ); //if(visible < entries) //{ first = gtk_adjustment_get_value(GTK_ADJUSTMENT(adj)); DB( g_print(" entries=%d, visible=%d\n", chart->nb_items, context->visible) ); DB( g_print(" first=%d, upper=%d, pagesize=%d\n", first, chart->nb_items, context->visible) ); gtk_adjustment_set_upper(adj, (gdouble)chart->nb_items); gtk_adjustment_set_page_size(adj, (gdouble)context->visible); gtk_adjustment_set_page_increment(adj, (gdouble)context->visible); if(first+context->visible > chart->nb_items) { gtk_adjustment_set_value(adj, (gdouble)chart->nb_items - context->visible); } #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION < 18) ) gtk_adjustment_changed (adj); #endif //gtk_widget_show(GTK_WIDGET(scrollbar)); //} //else //gtk_widget_hide(GTK_WIDGET(scrollbar)); } static void ui_chart_progress_clear_items(ChartProgress *chart) { gint i; DB( g_print("\n[chartprogress] clear\n") ); if(chart->items != NULL) { for(i=0;inb_items;i++) { StackItem *item = &g_array_index(chart->items, StackItem, i); g_free(item->label); //we free label as it comes from a model_get into setup_with_model g_free(item->status); //we free status as it comes from a model_get into setup_with_model } g_array_free(chart->items, TRUE); chart->items = NULL; } chart->nb_items = 0; } static void ui_chart_progress_clear(ChartProgress *chart) { DB( g_print("\n[chartprogress] clear\n") ); //free & clear any previous allocated datas if(chart->title != NULL) { g_free(chart->title); chart->title = NULL; } if(chart->subtitle != NULL) { g_free(chart->subtitle); chart->subtitle = NULL; } ui_chart_progress_clear_items(chart); } static void ui_chart_progress_setup_with_model(ChartProgress *chart, gint indice) { GtkTreeModel *model; GtkTreeIter iter; guint i; gboolean valid = FALSE; DB( g_print("\n[chartprogress] setup with model\n") ); model = chart->model; DB( g_print(" indice: %d\n", indice) ); if( indice < 0 ) { valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(model), &iter); chart->nb_items = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), NULL); gtk_widget_hide(chart->breadcrumb); } else { GtkTreePath *path = gtk_tree_path_new_from_indices(indice, -1); gchar *pathstr, *itrlabel; pathstr = gtk_tree_path_to_string(path); DB( g_print(" total: path: %s\n", pathstr) ); gtk_tree_model_get_iter(model, &iter, path); chart->nb_items = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), &iter); // update the breadcrumb gtk_tree_model_get (GTK_TREE_MODEL(model), &iter, LST_BUDGET_NAME, &itrlabel, -1); gchar *bc = g_markup_printf_escaped("%s > %s", CHART_CATEGORY, itrlabel); gtk_label_set_markup(GTK_LABEL(chart->breadcrumb), bc); g_free(bc); gtk_widget_show(chart->breadcrumb); // move to xx:0 gtk_tree_path_append_index(path, 0); valid = gtk_tree_model_get_iter(model, &iter, path); DB( g_print(" total: path: %s\n", pathstr) ); gtk_tree_path_free(path); g_free(pathstr); } chart->items = g_array_sized_new(FALSE, FALSE, sizeof(StackItem), chart->nb_items); DB( g_print(" nbitems=%d, struct=%d\n", chart->nb_items, (gint)sizeof(StackItem)) ); i = 0; while (valid) { gint pos; gchar *label, *status; gdouble value1, value2; StackItem item; //TODO: remove id here.... gtk_tree_model_get (GTK_TREE_MODEL(model), &iter, LST_BUDGET_POS, &pos, //LST_BUDGET_KEY, &key, LST_BUDGET_NAME, &label, LST_BUDGET_SPENT, &value1, LST_BUDGET_BUDGET, &value2, //LST_BUDGET_FULFILLED, &toto, //LST_BUDGET_RESULT, &result, LST_BUDGET_STATUS, &status, -1); //#2023696 add unbudgeted into listview & exclude from charts if( pos == LST_BUDGET_POS_UNBUDGETED ) { //subtract the LST_REPORT_POS_TOTAL line not to be drawed chart->nb_items--; //fix leak g_free(label); g_free(status); goto next; } item.label = label; item.spent = value1; item.budget = value2; item.status = status; item.n_child = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), &iter); /* additional pre-compute */ item.result = item.spent - item.budget; item.rawrate = 0; if(ABS(item.budget) > 0) { item.rawrate = item.spent / item.budget; } //#2099843 strict compare 0.0 item.warn = (hb_amount_cmp(item.result, 0.0) < 0) ? TRUE : FALSE; item.rate = CLAMP(item.rawrate, 0, 1.0); g_array_append_vals(chart->items, &item, 1); //don't g_free(label); here done into chart_clear //don't g_free(status); here done into chart_clear next: i++; valid = gtk_tree_model_iter_next (model, &iter); } } static void chart_progress_layout_area(cairo_t *cr, ChartProgress *chart, HbtkDrawProgContext *context) { PangoLayout *layout; gchar *valstr; int tw, th, bch; gint blkw; gint i; DB( g_print("\n[chartprogress] layout area\n") ); DB( g_print(" print %d ctx:%p\n", context->isprint, context) ); /* Create a PangoLayout, set the font and text */ layout = pango_cairo_create_layout (cr); // compute title context->title_zh = 0; if(chart->title) { //pango_font_description_set_size(chart->pfd, CHART_FONT_SIZE_TITLE * PANGO_SCALE); ui_chart_progress_set_font_size(chart, layout, CHART_FONT_SIZE_TITLE); pango_layout_set_font_description (layout, chart->pfd); pango_layout_set_text (layout, chart->title, -1); pango_layout_get_size (layout, &tw, &th); context->title_zh = (th / PANGO_SCALE) + CHART_SPACING; DBC( g_print(" - title: %s w=%d h=%d\n", chart->title, tw, th) ); } // compute period context->subtitle_zh = 0; if(chart->subtitle) { //pango_font_description_set_size(chart->pfd, CHART_FONT_SIZE_PERIOD * PANGO_SCALE); ui_chart_progress_set_font_size(chart, layout, CHART_FONT_SIZE_SUBTITLE); pango_layout_set_font_description (layout, chart->pfd); pango_layout_set_text (layout, chart->subtitle, -1); pango_layout_get_size (layout, &tw, &th); context->subtitle_zh = (th / PANGO_SCALE) + CHART_SPACING; DBC( g_print(" - period: %s w=%d h=%d\n", chart->subtitle, tw, th) ); } // compute other text //pango_font_description_set_size(chart->pfd, CHART_FONT_SIZE_NORMAL * PANGO_SCALE); ui_chart_progress_set_font_size(chart, layout, CHART_FONT_SIZE_NORMAL); pango_layout_set_font_description (layout, chart->pfd); //breadcrumb top et position ui_chart_progress_set_font_size(chart, layout, CHART_FONT_SIZE_NORMAL); pango_layout_set_text (layout, "Category", -1); pango_layout_get_size (layout, &tw, &th); bch = (th / PANGO_SCALE); gtk_widget_set_margin_top(chart->breadcrumb, context->subtitle_y); double title_w = 0; context->bud_col_w = 0; context->rel_col_w = 0; gdouble maxbudget = 0; gdouble maxresult = 0; gdouble result; for(i=0;inb_items;i++) { StackItem *item = &g_array_index(chart->items, StackItem, i); // category width if( item->label != NULL ) { pango_layout_set_text (layout, item->label, -1); pango_layout_get_size (layout, &tw, &th); title_w = MAX(title_w, (tw / PANGO_SCALE)); } DBC( g_print(" - calc '%s' title_w=%f (w=%d)\n", item->label, title_w, tw) ); //result = ABS(chart->spent[i]) - ABS(chart->budget[i]); result = ABS(item->spent - item->budget); maxbudget = MAX(maxbudget, ABS(item->budget) ); maxresult = MAX(maxresult, result); DBC( g_print(" - maxbudget maxbudget=%f (w=%d)\n", maxbudget, tw) ); if( item->status != NULL ) { pango_layout_set_text (layout, item->status, -1); pango_layout_get_size (layout, &tw, &th); context->rel_col_w = MAX(context->rel_col_w, (tw / PANGO_SCALE)); } } context->rel_col_w += CHART_SPACING; // compute budget/result width valstr = ui_chart_progress_print_int(chart, -maxbudget); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); context->bud_col_w = (tw / PANGO_SCALE); pango_layout_set_text (layout, chart->budget_title, -1); pango_layout_get_size (layout, &tw, &th); context->bud_col_w = MAX(context->bud_col_w, (tw / PANGO_SCALE)); DB( g_print(" budget-col: w=%f, %.2f, '%s'\n", context->bud_col_w, maxbudget, valstr) ); valstr = ui_chart_progress_print_int(chart, -maxresult); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); context->res_col_w = (tw / PANGO_SCALE); pango_layout_set_text (layout, chart->result_title, -1); pango_layout_get_size (layout, &tw, &th); context->res_col_w = MAX(context->res_col_w, (tw / PANGO_SCALE)); DB( g_print(" result-col: w=%f, %.2f, '%s'\n", context->res_col_w, maxresult, valstr) ); // collect other width, add margins context->header_zh = (th / PANGO_SCALE) + CHART_SPACING; //chart->title_y = chart->t; context->subtitle_y = context->t + context->title_zh; context->header_y = context->subtitle_y + context->subtitle_zh; //old pre 5.6 //context->cat_col_w = title_w + CHART_SPACING; double rem_w = context->w - context->bud_col_w - context->res_col_w - context->rel_col_w - (double)(CHART_SPACING*4); if( (title_w + CHART_SPACING) <= (rem_w/3) ) { context->cat_col_w = title_w + CHART_SPACING; } else { context->cat_col_w = (rem_w/3); } context->graph_width = context->w - context->cat_col_w - context->bud_col_w - context->res_col_w - context->rel_col_w - (double)(CHART_SPACING*4); context->graph_height = context->h - context->title_zh - context->subtitle_zh - context->header_zh - bch; DB( g_print(" gfx_w = %.2f - %.2f - %.2f - %.2f - %.2f \n", context->w , context->cat_col_w , context->bud_col_w , context->res_col_w , (double)(CHART_SPACING*4)) ); DB( g_print(" gfx_w = %.2f\n", context->graph_width) ); //if expand : we compute available space //chart->barw = MAX(32, (chart->graph_width)/chart->nb_items); //chart->barw = 32; // usr setted or defaut to BARW blkw = context->barw + floor(context->barw * 0.2); context->blkw = blkw; context->visible = (context->graph_height - context->t) / blkw; context->visible = MIN(context->visible, chart->nb_items); g_object_unref (layout); } static void ui_chart_progress_recompute(ChartProgress *chart) { GtkWidget *drawarea = chart->drawarea; HbtkDrawProgContext *context = &chart->context; GtkAllocation allocation; cairo_surface_t *surf; cairo_t *cr; DB( g_print("\n[chartprogress] recompute \n") ); if( !gtk_widget_get_realized(chart->drawarea) || chart->surface == NULL ) return; gtk_widget_get_allocation(drawarea, &allocation); context->l = CHART_MARGIN; context->t = CHART_MARGIN; context->r = allocation.width - CHART_MARGIN; context->b = allocation.height - CHART_MARGIN; context->w = allocation.width - (CHART_MARGIN*2); context->h = allocation.height - (CHART_MARGIN*2); //todo: seems not working well... surf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, allocation.width, allocation.height); cr = cairo_create (surf); chart_progress_layout_area(cr, chart, context); cairo_destroy(cr); cairo_surface_destroy(surf); gtk_adjustment_set_value(chart->adjustment, 0); ui_chart_progress_scrollbar_setvalues(chart); gtk_widget_show(chart->scrollbar); //gtk_widget_queue_draw( chart->drawarea ); } #if (DBGDRAW_RECT + DBGDRAW_TEXT + DBGDRAW_ITEM) > 0 static void ui_chart_progress_draw_help(cairo_t *cr, ChartProgress *chart, HbtkDrawProgContext *context) { double x, y, y2; gint first = 0; gint i; DB( g_print("\n[chartprogress] draw help\n") ); DB( g_print(" rect is: %f %f %f %f, barw=%f, ctx=%p\n", context->l, context->t, context->w, context->h, context->barw, context) ); cairo_set_line_width (cr, 1); #if DBGDRAW_RECT == 1 //clip area cairo_set_line_width(cr, 1.0); cairo_set_source_rgb(cr, 0.0, 1.0, 0.0); //green cairo_rectangle(cr, context->l+0.5, context->t+0.5, context->w, context->h); cairo_stroke(cr); //graph area y = context->header_y + context->header_zh; cairo_set_source_rgb(cr, 1.0, 0.5, 0.0); //orange cairo_rectangle(cr, context->l+context->cat_col_w+0.5, y+0.5, context->graph_width+0.5, context->graph_height+0.5); cairo_stroke(cr); #endif #if DBGDRAW_TEXT == 1 //title rect cairo_set_source_rgb(cr, .0, .0, 1.0); cairo_rectangle(cr, context->l+0.5, context->t+0.5, context->w, context->title_zh); cairo_stroke(cr); //period rect cairo_set_source_rgb(cr, .0, 0, 1.0); cairo_rectangle(cr, context->l+0.5, context->subtitle_y+0.5, context->w, context->subtitle_zh); cairo_stroke(cr); //header rect cairo_set_source_rgb(cr, .0, 1.0, 1.0); cairo_rectangle(cr, context->l+0.5, context->header_y+0.5, context->w, context->header_zh); cairo_stroke(cr); //category column y = context->t + context->title_zh + context->header_zh + context->subtitle_zh; cairo_set_source_rgb(cr, 0.0, 0.0, 1.0); //blue cairo_rectangle(cr, context->l+0.5, y+0.5, context->cat_col_w, context->h - y); cairo_stroke(cr); //budget column x = context->l + context->cat_col_w + context->graph_width + CHART_SPACING ; cairo_set_source_rgb(cr, 0.0, 0.0, 1.0); //blue cairo_rectangle(cr, x+0.5, y+0.5, context->bud_col_w, context->h - y); cairo_stroke(cr); //result column x = context->l + context->cat_col_w + context->graph_width + context->bud_col_w + (CHART_SPACING*3); cairo_set_source_rgb(cr, 0.0, 0.0, 1.0); //blue cairo_rectangle(cr, x+0.5, y+0.5, context->res_col_w, context->h - y); cairo_stroke(cr); #endif // draw item lines #if DBGDRAW_ITEM == 1 y2 = y+0.5; cairo_set_line_width(cr, 1.0); double dashlength; dashlength = 4; cairo_set_dash (cr, &dashlength, 1, 0); cairo_set_source_rgb(cr, 1.0, 0.0, 1.0); // violet for(i=first; i<=(first+context->visible) ;i++) { cairo_move_to(cr, context->l, y2); cairo_line_to(cr, context->r, y2); y2 += context->blkw; } cairo_stroke(cr); #endif } #endif /* ** draw all visible bars */ static void ui_chart_progress_draw_bars(cairo_t *cr, ChartProgress *chart, HbtkDrawProgContext *context) { double x, y, x2, y2, h; gint first; gint i, idx; gchar *valstr; PangoLayout *layout; int tw, th; DB( g_print("\n[chartprogress] draw bars\n") ); DB( g_print(" print %d ctx:%p\n", context->isprint, context) ); DB( g_print(" rect is: %f %f %f %f, barw=%f, ctx=%p\n", context->l, context->t, context->w, context->h, context->barw, context) ); layout = pango_cairo_create_layout (cr); x = context->l + context->cat_col_w; y = context->t + context->title_zh + context->header_zh + context->subtitle_zh; first = context->first; if(!context->isprint) cairo_user_set_rgbcol(cr, &global_colors[THTEXT]); else cairo_user_set_rgbcol(cr, &global_colors[BLACK]); // draw title if(chart->title) { //pango_font_description_set_size(chart->pfd, CHART_FONT_SIZE_TITLE * PANGO_SCALE); ui_chart_progress_set_font_size(chart, layout, CHART_FONT_SIZE_TITLE); pango_layout_set_font_description (layout, chart->pfd); pango_layout_set_text (layout, chart->title, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, context->l, context->t); pango_cairo_show_layout (cr, layout); } // draw period if(chart->subtitle) { //pango_font_description_set_size(chart->pfd, CHART_FONT_SIZE_PERIOD * PANGO_SCALE); ui_chart_progress_set_font_size(chart, layout, CHART_FONT_SIZE_SUBTITLE); pango_layout_set_font_description (layout, chart->pfd); pango_layout_set_text (layout, chart->subtitle, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, context->l, context->subtitle_y); pango_cairo_show_layout (cr, layout); } // draw column title if(!context->isprint) cairo_user_set_rgbacol (cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol (cr, &global_colors[BLACK], 0.78); //pango_font_description_set_size(chart->pfd, CHART_FONT_SIZE_NORMAL * PANGO_SCALE); ui_chart_progress_set_font_size(chart, layout, CHART_FONT_SIZE_NORMAL); pango_layout_set_font_description (layout, chart->pfd); pango_layout_set_text (layout, chart->budget_title, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, context->l + context->cat_col_w + context->graph_width + context->bud_col_w + CHART_SPACING - (tw /PANGO_SCALE), context->header_y); pango_cairo_show_layout (cr, layout); pango_layout_set_text (layout, chart->result_title, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, context->l + context->cat_col_w + context->graph_width + context->bud_col_w + context->res_col_w - (tw /PANGO_SCALE) + (CHART_SPACING*3), context->header_y); pango_cairo_show_layout (cr, layout); // draw items //pango_font_description_set_size(chart->pfd, CHART_FONT_SIZE_NORMAL * PANGO_SCALE); ui_chart_progress_set_font_size(chart, layout, CHART_FONT_SIZE_NORMAL); pango_layout_set_font_description (layout, chart->pfd); pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END); for(i=0; ivisible ;i++) { StackItem *item; gint barw = context->barw; gint blkw = context->blkw; idx = i + first; if( (guint)idx > (chart->items->len - 1) ) break; DB( g_print(" draw i:%d idx=%d", i, idx) ); item = &g_array_index(chart->items, StackItem, idx); x2 = x; y2 = y + (CHART_SPACING/2) + (blkw * i); DB( g_print(" '%-32s' wrn=%d %.2f%% (%.2f%%) :: r=% 4.2f s=% 4.2f b=% 4.2f\n", item->label, item->warn, item->rawrate, item->rate, item->result, item->spent, item->budget) ); valstr = item->label; pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); double ytext = y2 + ((barw - (th / PANGO_SCALE))/2); if(!context->isprint) cairo_user_set_rgbacol (cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol (cr, &global_colors[BLACK], 0.78); //cairo_move_to(cr, context->l + context->cat_col_w - (tw / PANGO_SCALE) - CHART_SPACING, ytext); cairo_move_to(cr, context->l, ytext); pango_layout_set_width(layout, context->cat_col_w * PANGO_SCALE); pango_cairo_show_layout (cr, layout); // bar background if(!context->isprint) cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.15); else cairo_user_set_rgbacol(cr, &global_colors[BLACK], 0.15); cairo_rectangle(cr, x2, y2, context->graph_width, barw); cairo_fill(cr); //bar with color :: todo migrate this h = floor(item->rate * context->graph_width); if(item->warn) { cairo_user_set_rgbcol_over(cr, &chart->color_scheme.colors[chart->color_scheme.cs_red], idx == chart->hover); } else { if(item->rate > 0.8 && item->rate < 1.0) cairo_user_set_rgbcol_over(cr, &chart->color_scheme.colors[chart->color_scheme.cs_orange], idx == chart->hover); else cairo_user_set_rgbcol_over(cr, &chart->color_scheme.colors[chart->color_scheme.cs_green], idx == chart->hover); } cairo_rectangle(cr, x2, y2, h, barw); cairo_fill(cr); // spent value if( item->result != 0) { valstr = ui_chart_progress_print_int(chart, item->spent); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); if( h >= ( (tw / PANGO_SCALE) + (CHART_SPACING*2)) ) { // draw inside cairo_user_set_rgbcol(cr, &global_colors[WHITE]); cairo_move_to(cr, x2 + h - (tw / PANGO_SCALE) - CHART_SPACING, ytext); } else { // draw outside //cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.78); //#1897696 draw out of budget text in red if( item->warn ) cairo_user_set_rgbcol (cr, &chart->color_scheme.colors[chart->color_scheme.cs_red]); else { if(!context->isprint) cairo_user_set_rgbacol (cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol (cr, &global_colors[BLACK], 0.78); } cairo_move_to(cr, x2 + h + CHART_SPACING, ytext); } pango_cairo_show_layout (cr, layout); } // budget value valstr = ui_chart_progress_print_int(chart, item->budget); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); if(!context->isprint) cairo_user_set_rgbacol (cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol (cr, &global_colors[BLACK], 0.78); cairo_move_to(cr, context->l + context->cat_col_w + context->graph_width + context->bud_col_w + CHART_SPACING - (tw / PANGO_SCALE), ytext); pango_cairo_show_layout (cr, layout); // result value if( item->result != 0) { valstr = ui_chart_progress_print_int(chart, item->result); if(item->warn) //cairo_set_source_rgb(cr, COLTOCAIRO(164), COLTOCAIRO(0), COLTOCAIRO(0)); cairo_user_set_rgbcol(cr, &chart->color_scheme.colors[chart->color_scheme.cs_red]); else { if(!context->isprint) cairo_user_set_rgbacol (cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol (cr, &global_colors[BLACK], 0.78); } pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, context->l + context->cat_col_w + context->graph_width + context->bud_col_w + context->res_col_w - (tw / PANGO_SCALE) + (CHART_SPACING*3), ytext); pango_cairo_show_layout (cr, layout); // status if( item->status ) { pango_layout_set_text (layout, item->status, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, context->l + context->cat_col_w + context->graph_width + context->bud_col_w + context->res_col_w + (CHART_SPACING*4), ytext); pango_cairo_show_layout (cr, layout); } } //y += blkw; } g_object_unref (layout); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static gboolean drawarea_full_redraw(GtkWidget *widget, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); HbtkDrawProgContext *context = &chart->context; cairo_t *cr; DB( g_print("\n[chartprogress] drawarea full redraw\n") ); cr = cairo_create (chart->surface); /* fillin the back in white */ if(!context->isprint) cairo_user_set_rgbcol(cr, &global_colors[THBASE]); else cairo_user_set_rgbcol(cr, &global_colors[WHITE]); cairo_paint(cr); if(chart->nb_items == 0) { cairo_destroy(cr); return FALSE; } cairo_rectangle(cr, context->l, context->t, context->w, context->h); cairo_clip(cr); #if (DBGDRAW_RECT + DBGDRAW_TEXT + DBGDRAW_ITEM) > 0 ui_chart_progress_draw_help(cr, chart, context); #endif context->first = (gint)gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); ui_chart_progress_draw_bars(cr, chart, context); cairo_destroy(cr); return TRUE; } //static void drawarea_get_style(GtkWidget *widget, gpointer user_data) static gboolean drawarea_configure_event_callback (GtkWidget *widget, GdkEvent *event, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); HbtkDrawProgContext *context = &chart->context; GtkAllocation allocation; GtkStyleContext *stylctx; PangoFontDescription *desc; gboolean colfound; GdkRGBA color; DB( g_print("\n[chartprogress] drawarea configure \n") ); DB( g_print("w=%d h=%d\n", allocation.width, allocation.height) ); gtk_widget_get_allocation (widget, &allocation); if (chart->surface) cairo_surface_destroy (chart->surface); chart->surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), CAIRO_CONTENT_COLOR, allocation.width, allocation.height); stylctx = gtk_widget_get_style_context (widget); chart_color_global_default(); // get base color colfound = gtk_style_context_lookup_color(stylctx, "theme_base_color", &color); if(!colfound) colfound = gtk_style_context_lookup_color(stylctx, "base_color", &color); if( colfound ) { struct rgbcol *tcol = &global_colors[THBASE]; tcol->r = color.red * 255; tcol->g = color.green * 255; tcol->b = color.blue * 255; DB( g_print(" - theme base col: %x %x %x\n", tcol->r, tcol->g, tcol->b) ); } //get text color colfound = gtk_style_context_lookup_color(stylctx, "theme_text_color", &color); if(!colfound) //#1916932 colfound was not assigned colfound = gtk_style_context_lookup_color(stylctx, "text_color", &color); if( colfound ) { struct rgbcol *tcol = &global_colors[THTEXT]; tcol->r = color.red * 255; tcol->g = color.green * 255; tcol->b = color.blue * 255; DB( g_print(" - theme text (bg) col: %x %x %x\n", tcol->r, tcol->g, tcol->b) ); } /* get and copy the font */ gtk_style_context_get(stylctx, GTK_STATE_FLAG_NORMAL, "font", &desc, NULL); if(chart->pfd) { pango_font_description_free (chart->pfd); chart->pfd = NULL; } chart->pfd = pango_font_description_copy(desc); chart->pfd_size = pango_font_description_get_size (desc) / PANGO_SCALE; context->barw = (6 + chart->pfd_size) * PHI; //leak: we should free desc here ? //or no need to copy above ? //pango_font_description_free(desc); DB( g_print("family: %s\n", pango_font_description_get_family(chart->pfd) ) ); DB( g_print("size : %d (%d)\n", chart->pfd_size, chart->pfd_size/PANGO_SCALE ) ); DB( g_print("isabs : %d\n", pango_font_description_get_size_is_absolute (chart->pfd) ) ); if( gtk_widget_get_realized(widget) ) { ui_chart_progress_recompute(chart); drawarea_full_redraw(widget, user_data); } /* We've handled the configure event, no need for further processing. */ return TRUE; } //state static void drawarea_style_changed_callback(GtkWidget *widget, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); DB( g_print("\n[chartprogress] drawarea style changed\n") ); if( gtk_widget_get_realized(widget)) { drawarea_full_redraw(widget, chart); } } static gboolean drawarea_draw_callback(GtkWidget *widget, cairo_t *cr, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); HbtkDrawProgContext *context = &chart->context; if( !gtk_widget_get_realized(widget) || chart->surface == NULL ) return FALSE; DB( g_print("\n[chartprogress] drawarea draw cb\n") ); cairo_set_source_surface (cr, chart->surface, 0, 0); cairo_paint (cr); /* always redraw directly the hover block */ gint first; double ox, oy; first = (gint)gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); ox = context->l + context->cat_col_w; oy = context->t + context->title_zh + context->header_zh + context->subtitle_zh; if(chart->hover != -1) { DB( g_print(" draw hover\n") ); cairo_rectangle(cr, context->l, context->t, context->w, context->h); cairo_clip(cr); oy += CHART_SPACING/2 + (chart->hover - first) * context->blkw; cairo_user_set_rgbacol(cr, &global_colors[WHITE], OVER_ALPHA); cairo_rectangle(cr, ox, oy, context->graph_width, context->barw); cairo_fill(cr); } return FALSE; } static gboolean drawarea_cb_root_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); DB( g_print("\n[chartprogress] root breadcrumb clicked\n") ); ui_chart_progress_clear_items(chart); ui_chart_progress_setup_with_model(chart, -1); ui_chart_progress_queue_redraw(chart); return TRUE; } static gboolean drawarea_cb_button_press_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); guint button = 0; if (chart->surface == NULL) return FALSE; /* paranoia check, in case we haven't gotten a configure event */ DB( g_print("\n[chartprogress] mouse button press event\n") ); gdk_event_get_button(event, &button); if (button == GDK_BUTTON_PRIMARY) { if( chart->hover >= 0 ) { StackItem *item = &g_array_index(chart->items, StackItem, chart->hover); if( item->n_child > 1 ) { ui_chart_progress_clear_items(chart); ui_chart_progress_setup_with_model(chart, chart->hover); ui_chart_progress_queue_redraw(chart); } } } /* We've handled the event, stop processing */ return TRUE; } static gboolean drawarea_motionnotifyevent_callback(GtkWidget *widget, GdkEvent *event, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); HbtkDrawProgContext *context = &chart->context; gdouble x_win, y_win; gint x, y; if(chart->surface == NULL || chart->nb_items == 0) return FALSE; DBD( g_print("\n[chartprogress] drawarea motion cb\n") ); gdk_event_get_coords(event, &x_win, &y_win); x = x_win; y = y_win; chart->hover = ui_chart_progress_get_hover(widget, x, y, chart); // rollover redraw ? DBD( g_print(" %d, %d :: hover: last=%d, curr=%d\n", x, y, chart->lasthover, chart->hover) ); if(chart->lasthover != chart->hover) { GdkRectangle update_rect; gint first; double oy; DBD( g_print(" motion rollover redraw :: hover=%d\n", chart->hover) ); first = (gint)gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); oy = context->t + context->title_zh + context->header_zh + context->subtitle_zh; if(chart->lasthover != -1) { update_rect.x = context->l; update_rect.y = oy + (chart->lasthover - first) * context->blkw; update_rect.width = context->r; update_rect.height = context->blkw; /* Now invalidate the affected region of the drawing area. */ gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); } update_rect.x = context->l; update_rect.y = oy + (chart->hover - first) * context->blkw; update_rect.width = context->r; update_rect.height = context->blkw; /* Now invalidate the affected region of the drawing area. */ gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); //gtk_widget_queue_draw( widget ); //retval = FALSE; } chart->lasthover = chart->hover; return TRUE; } static gboolean drawarea_scroll_event_callback( GtkWidget *widget, GdkEvent *event, gpointer user_data) { ChartProgress *chart = GTK_CHARTPROGRESS(user_data); GtkAdjustment *adj = chart->adjustment; GdkScrollDirection direction; gdouble first, upper, pagesize; DB( g_print("\n[chartprogress] scroll\n") ); first = gtk_adjustment_get_value(GTK_ADJUSTMENT(adj)); //lower = gtk_adjustment_get_lower(GTK_ADJUSTMENT(adj)); upper = gtk_adjustment_get_upper(GTK_ADJUSTMENT(adj)); pagesize = gtk_adjustment_get_page_size(GTK_ADJUSTMENT(adj)); DB( g_print("- pos is %.2f, [%.2f - %.2f]\n", first, 0.0, upper) ); gdk_event_get_scroll_direction(event, &direction); switch(direction) { case GDK_SCROLL_UP: gtk_adjustment_set_value(adj, first - 1); break; case GDK_SCROLL_DOWN: gtk_adjustment_set_value(adj, CLAMP(first + 1, 0, upper - pagesize) ); break; default: break; } drawarea_full_redraw(widget, user_data); return TRUE; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* public functions */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void gtk_chart_progress_begin_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { GtkChartProgPrintData *data = user_data; HbtkDrawProgContext *drawctx; gdouble t, l, w, h; cairo_t *cr; DB( g_print("\n[chartprogress] begin print\n") ); //gtk_print_context_get_hard_margins(context, &t, &b, &l, &r); t = 0; l = 0; w = gtk_print_context_get_width(context); h = gtk_print_context_get_height(context); //TODO: test keeping a ratio and handle orientation myself /* settings = gtk_print_operation_get_print_settings(operation); ratio = (height < width) ? width/height : height/width; DB( g_print(" orientation: %d\n", gtk_print_settings_get_orientation(settings)) ); DB( g_print(" w=%g h=%g // ratio %g\n", width, height, ratio) ); if( height < width ) height = width * ratio; */ //setup our context drawctx = &data->drawctx; drawctx->isprint = TRUE; drawctx->l = l; drawctx->t = t; drawctx->w = w; drawctx->h = h; //hack PangoContext *pctx = gtk_print_context_create_pango_context(context); PangoFontDescription *pfd = pango_context_get_font_description(pctx); drawctx->barw = (6 + (pango_font_description_get_size(pfd) / PANGO_SCALE )) * PHI; g_object_unref(pctx); cr = gtk_print_context_get_cairo_context (context); DB( g_print(" rect is: %f %f %f %f, barw=%f, ctx=%p\n", l, t, w, h, drawctx->barw, drawctx) ); chart_progress_layout_area(cr, data->chart, drawctx); data->num_pages = ceil((gdouble)data->chart->nb_items / (gdouble)drawctx->visible); g_print(" nb pages: %d, nbitems %d / visi %d = %.2f\n", data->num_pages, data->chart->nb_items, drawctx->visible, (gdouble)data->chart->nb_items / (gdouble)drawctx->visible); gtk_print_operation_set_n_pages (operation, data->num_pages); } static void gtk_chart_progress_draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, gpointer user_data) { GtkChartProgPrintData *data = user_data; HbtkDrawProgContext *drawctx; cairo_t *cr; DB( g_print("\n[chartprogress] draw page\n") ); cr = gtk_print_context_get_cairo_context (context); drawctx = &data->drawctx; //cairo_rectangle (cr, drawctx->l, drawctx->t, drawctx->w - drawctx->r, drawctx->h - drawctx->b); //cairo_clip(cr); cairo_set_line_width (cr, 1); //draw debug rectangle /* cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); //red cairo_rectangle(cr, 0, 0, drawctx->w-drawctx->r, drawctx->h-drawctx->b); cairo_stroke(cr); */ drawctx->first = page_nr * drawctx->visible; g_print(" draw page %d, with first=%d\n", page_nr, drawctx->first); #if (DBGDRAW_RECT + DBGDRAW_TEXT + DBGDRAW_ITEM) > 0 ui_chart_progress_draw_help(cr, data->chart, drawctx); #endif ui_chart_progress_draw_bars(cr, data->chart, drawctx); } void gtk_chart_progress_print(ChartProgress *chart, GtkWindow *parent, gchar *dirname, gchar *filename) { GtkChartProgPrintData *data; GtkPrintOperation *operation; GtkPrintSettings *settings; gchar *ext, *uri = NULL; GError *error = NULL; g_return_if_fail (GTK_IS_CHARTPROGRESS (chart)); g_print("\n[chartprogress] print\n"); data = g_new0 (GtkChartProgPrintData, 1); data->chart = chart; settings = gtk_print_settings_new (); //TODO: this doesn't work for unknown reason... gtk_print_settings_set_orientation(settings, GTK_PAGE_ORIENTATION_PORTRAIT); if( dirname != NULL && filename != NULL ) { if (g_strcmp0 (gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT), "ps") == 0) ext = ".ps"; else if (g_strcmp0 (gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT), "svg") == 0) ext = ".svg"; else ext = ".pdf"; uri = g_strconcat ("file://", dirname, "/", filename, ext, NULL); gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_URI, uri); } operation = gtk_print_operation_new (); g_signal_connect (G_OBJECT (operation), "begin-print", G_CALLBACK (gtk_chart_progress_begin_print), data); g_signal_connect (G_OBJECT (operation), "draw-page", G_CALLBACK (gtk_chart_progress_draw_page), data); //g_signal_connect (G_OBJECT (operation), "end-print", G_CALLBACK (end_print), data); gtk_print_operation_set_use_full_page (operation, FALSE); gtk_print_operation_set_unit (operation, GTK_UNIT_POINTS); gtk_print_operation_set_embed_page_setup (operation, TRUE); gtk_print_operation_set_print_settings (operation, settings); //test forec pagfe //GtkPageSetup *ps = gtk_print_operation_get_default_page_setup(operation); GtkPageSetup *ps = gtk_page_setup_new(); if( ps ) gtk_page_setup_set_orientation(ps, GTK_PAGE_ORIENTATION_LANDSCAPE); else g_print("pagesetup fail\n"); gtk_print_operation_set_default_page_setup(operation, ps); gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (parent), &error); //to use with GTK_PRINT_OPERATION_ACTION_EXPORT //gtk_print_operation_set_export_filename(operation, "/home/max/Desktop/testpdffile.pdf"); //gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_EXPORT, GTK_WINDOW (window), &error); g_object_unref (operation); g_object_unref (settings); g_free (uri); if (error) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (parent), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } g_free(data); } static void ui_chart_progress_queue_redraw(ChartProgress *chart) { DB( g_print("\n[chartprogress] queue redraw\n") ); if( gtk_widget_get_realized(GTK_WIDGET(chart)) ) { ui_chart_progress_recompute(chart); drawarea_full_redraw(chart->drawarea, chart); gtk_widget_queue_draw( chart->drawarea ); } } /* ** change the model and/or column */ void ui_chart_progress_set_dualdatas(ChartProgress *chart, GtkTreeModel *model, gchar *coltitle1, gchar *coltitle2, gchar *title, gchar *subtitle) { g_return_if_fail (GTK_IS_CHARTPROGRESS (chart)); DB( g_print("\n[chartprogress] set dual datas\n") ); ui_chart_progress_clear(chart); if( GTK_IS_TREE_MODEL(model) ) { DB( g_print(" store model %p and columns=%s:%s\n", model, coltitle1, coltitle2) ); chart->model = model; if(coltitle1) chart->budget_title = coltitle1; if(coltitle2) chart->result_title = coltitle2; if(title != NULL) chart->title = g_strdup(title); if(subtitle != NULL) chart->subtitle = g_strdup(subtitle); ui_chart_progress_setup_with_model(chart, -1); ui_chart_progress_queue_redraw(chart); } } /* ** change the tooltip title */ void ui_chart_progress_set_title(ChartProgress * chart, gchar *title) { g_return_if_fail (GTK_IS_CHARTPROGRESS (chart)); chart->title = g_strdup(title); DB( g_print("\n[chartprogress] set title = %s\n", chart->title) ); ui_chart_progress_recompute(chart); } void ui_chart_progress_set_subtitle(ChartProgress * chart, gchar *subtitle) { g_return_if_fail (GTK_IS_CHARTPROGRESS (chart)); chart->subtitle = g_strdup(subtitle); DB( g_print("\n[chartprogress] set period = %s\n", chart->subtitle) ); ui_chart_progress_recompute(chart); } /* ** change the minor visibility */ void ui_chart_progress_show_minor(ChartProgress * chart, gboolean minor) { g_return_if_fail (GTK_IS_CHARTPROGRESS (chart)); chart->minor = minor; ui_chart_progress_queue_redraw(chart); } void ui_chart_progress_set_color_scheme(ChartProgress * chart, gint index) { colorscheme_init(&chart->color_scheme, index); } /* ** set the minor parameters */ /*void ui_chart_progress_set_minor_prefs(ChartProgress * chart, gdouble rate, gchar *symbol) { g_return_if_fail (GTK_IS_CHARTPROGRESS (chart)); chart->minor_rate = rate; chart->minor_symbol = symbol; }*/ void ui_chart_progress_set_currency(ChartProgress * chart, guint32 kcur) { g_return_if_fail (GTK_IS_CHARTPROGRESS (chart)); chart->kcur = kcur; } /* = = = = = = = = = = = = = = = = */ static void ui_chart_progress_init (ChartProgress * chart) { GtkWidget *widget, *hbox, *frame, *overlay, *label; HbtkDrawProgContext *context = &chart->context; DB( g_print("\n[chartprogress] init\n") ); chart->surface = NULL; chart->nb_items = 0; chart->hover = -1; chart->title = NULL; chart->subtitle = NULL; chart->pfd = NULL; chart->budget_title = "Budget"; chart->result_title = "Result"; context->barw = GTK_CHARTPROGRESS_BARW; ui_chart_progress_set_color_scheme(chart, CHART_COLMAP_HOMEBANK); widget=GTK_WIDGET(chart); gtk_box_set_homogeneous(GTK_BOX(widget), FALSE); frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); hbtk_box_prepend (GTK_BOX (widget), frame); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_frame_set_child(GTK_FRAME(frame), hbox); overlay = gtk_overlay_new (); chart->drawarea = gtk_drawing_area_new(); gtk_widget_set_size_request(chart->drawarea, 150, 150 ); #if DYNAMICS == 1 gtk_widget_set_has_tooltip(chart->drawarea, TRUE); #endif gtk_widget_show(chart->drawarea); gtk_overlay_set_child (GTK_OVERLAY(overlay), chart->drawarea); hbtk_box_prepend (GTK_BOX (hbox), overlay); label = gtk_label_new(NULL); chart->breadcrumb = label; gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_label_set_track_visited_links(GTK_LABEL(label), FALSE); gtk_overlay_add_overlay( GTK_OVERLAY(overlay), label ); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), label, TRUE); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_START); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_widget_set_margin_top(label, SPACING_MEDIUM*4); /* scrollbar */ chart->adjustment = GTK_ADJUSTMENT(gtk_adjustment_new (0.0, 0.0, 1.0, 1.0, 1.0, 1.0)); chart->scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL,GTK_ADJUSTMENT (chart->adjustment)); gtk_box_append (GTK_BOX (hbox), chart->scrollbar); g_signal_connect( G_OBJECT(chart->drawarea), "configure-event", G_CALLBACK (drawarea_configure_event_callback), chart); //g_signal_connect( G_OBJECT(chart->drawarea), "realize", G_CALLBACK(drawarea_realize_callback), chart ) ; g_signal_connect( G_OBJECT(chart->drawarea), "draw", G_CALLBACK(drawarea_draw_callback), chart ); //TODO check this to redraw when gtk theme chnage g_signal_connect( G_OBJECT(chart->drawarea), "style-updated", G_CALLBACK(drawarea_style_changed_callback), chart ) ; #if DYNAMICS == 1 gtk_widget_add_events(GTK_WIDGET(chart->drawarea), GDK_EXPOSURE_MASK | //GDK_POINTER_MOTION_MASK | //GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_SCROLL_MASK ); //g_signal_connect( G_OBJECT(chart->drawarea), "query-tooltip", G_CALLBACK(drawarea_querytooltip_callback), chart ); g_signal_connect( G_OBJECT(chart->drawarea), "scroll-event", G_CALLBACK(drawarea_scroll_event_callback), chart ) ; g_signal_connect( G_OBJECT(chart->drawarea), "motion-notify-event", G_CALLBACK(drawarea_motionnotifyevent_callback), chart ); #endif g_signal_connect (G_OBJECT(chart->adjustment), "value-changed", G_CALLBACK (ui_chart_progress_first_changed), chart); g_signal_connect (G_OBJECT(chart->breadcrumb), "activate-link", G_CALLBACK (drawarea_cb_root_activate_link), chart); //g_signal_connect( G_OBJECT(chart->drawarea), "leave-notify-event", G_CALLBACK(ui_chart_progress_leave), chart ); //g_signal_connect( G_OBJECT(chart->drawarea), "enter-notify-event", G_CALLBACK(ui_chart_progress_enter), chart ); g_signal_connect( G_OBJECT(chart->drawarea), "button-press-event", G_CALLBACK(drawarea_cb_button_press_event), chart ); //g_signal_connect( G_OBJECT(chart->drawarea), "button-release-event", G_CALLBACK(ui_chart_progress_button_release), chart ); } void ui_chart_progress_destroy (GtkWidget * object) { ChartProgress *chart = GTK_CHARTPROGRESS(object); g_return_if_fail (GTK_IS_CHARTPROGRESS (object)); DB( g_print("\n[chartprogress] destroy\n") ); ui_chart_progress_clear(GTK_CHARTPROGRESS (object)); if(chart->pfd) { pango_font_description_free (chart->pfd); chart->pfd = NULL; } if (chart->surface) { cairo_surface_destroy (chart->surface); chart->surface = NULL; } GTK_WIDGET_CLASS (parent_class)->destroy (object); } static void ui_chart_progress_class_init (ChartProgressClass * class) { //GObjectClass *gobject_class; GtkWidgetClass *widget_class; DB( g_print("\n[chartprogress] class_init\n") ); //gobject_class = (GObjectClass*) class; widget_class = (GtkWidgetClass*) class; parent_class = g_type_class_peek_parent (class); //gobject_class->dispose = ui_chart_progress_dispose; //gobject_class->finalize = ui_chart_progress_finalize; //gobject_class->set_property = ui_chart_progress_set_property; //gobject_class->get_property = ui_chart_progress_get_property; widget_class->destroy = ui_chart_progress_destroy; } //gtk_chart_class_intern_init GType ui_chart_progress_get_type () { static GType ui_chart_progress_type = 0; if (G_UNLIKELY(ui_chart_progress_type == 0)) { const GTypeInfo ui_chart_progress_info = { sizeof (ChartProgressClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) ui_chart_progress_class_init, NULL, /* class_finalize */ NULL, /* class_init */ sizeof (ChartProgress), 0, /* n_preallocs */ (GInstanceInitFunc) ui_chart_progress_init, NULL /* value_table */ }; ui_chart_progress_type = g_type_register_static (GTK_TYPE_BOX, "ChartProgress", &ui_chart_progress_info, 0); } return ui_chart_progress_type; } GtkWidget * ui_chart_progress_new (void) { GtkWidget *chart; DB( g_print("\n======================================================\n") ); DB( g_print("\n[chartprogress] new\n") ); chart = (GtkWidget *)g_object_new (GTK_TYPE_CHARTPROGRESS, NULL); return chart; } homebank-5.9.1/src/ui-payee.h0000644000175000017500000000471014736461415011466 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_PAYEE_GTK_H__ #define __HB_PAYEE_GTK_H__ enum { LST_DEFPAY_TOGGLE, LST_DEFPAY_DATAS, NUM_LST_DEFPAY }; #define LST_DEFPAY_SORT_USETXN 2 #define LST_DEFPAY_SORT_USECFG 3 #define LST_DEFPAY_SORT_NAME 4 #define LST_DEFPAY_SORT_DEFPAY 5 #define LST_DEFPAY_SORT_DEFCAT 6 struct ui_pay_manage_dialog_data { GtkWidget *dialog; GActionGroup * actions; gboolean mapped_done; GtkWidget *BT_showhidden; GtkWidget *BT_showusage; GtkWidget *ST_search; GtkWidget *RE_addreveal; GtkWidget *ST_name; GtkWidget *LV_pay; GtkWidget *BT_add; GtkWidget *BT_edit; GtkWidget *BT_merge; GtkWidget *BT_delete; GtkWidget *BT_hide; gboolean usagefilled; gint change; }; struct payPopContext { GtkTreeModel *model; guint except_key; }; /* = = = = = = = = = = */ GtkWidget *ui_pay_entry_popover_get_entry(GtkBox *box); Payee *ui_pay_entry_popover_get(GtkBox *box); guint32 ui_pay_entry_popover_get_key_add_new(GtkBox *box); guint32 ui_pay_entry_popover_get_key(GtkBox *box); void ui_pay_entry_popover_set_active(GtkBox *box, guint32 key); GtkWidget *ui_pay_entry_popover_new(GtkWidget *label); /* = = = = = = = = = = */ guint ui_pay_listview_toggle_to_filter(GtkTreeView *treeview, Filter *filter); void ui_pay_listview_quick_select(GtkTreeView *treeview, const gchar *uri); void ui_pay_listview_add(GtkTreeView *treeview, Payee *item); guint32 ui_pay_listview_get_selected_key(GtkTreeView *treeview); void ui_pay_listview_remove_selected(GtkTreeView *treeview); void ui_pay_listview_populate(GtkWidget *treeview, gchar *needle, gboolean showhidden); GtkWidget *ui_pay_listview_new(gboolean withtoggle, gboolean withcount); GtkWidget *ui_pay_manage_dialog (void); #endif homebank-5.9.1/src/hub-reptotal.h0000664000175000017500000000305014736461415012354 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HUB_SPENDING_H__ #define __HUB_SPENDING_H__ enum { HUB_TOT_VIEW_NONE, HUB_TOT_VIEW_TOPCAT, HUB_TOT_VIEW_TOPPAY, HUB_TOT_VIEW_TOPACC, HUB_TOT_VIEW_ACCBAL, //5.7.3 HUB_TOT_VIEW_GRPBAL }; /* list top spending */ enum { LST_TOPSPEND_POS, //fake for pie LST_TOPSPEND_KEY, //fake for pie LST_TOPSPEND_NAME, LST_TOPSPEND_AMOUNT, LST_TOPSPEND_RATE, NUM_LST_TOPSPEND }; void ui_hub_reptotal_update(GtkWidget *widget, gpointer user_data); void ui_hub_reptotal_clear(GtkWidget *widget, gpointer user_data); void ui_hub_reptotal_populate(GtkWidget *widget, gpointer user_data); void ui_hub_reptotal_setup(struct hbfile_data *data); void ui_hub_reptotal_dispose(struct hbfile_data *data); GtkWidget *ui_hub_reptotal_create(struct hbfile_data *data); #endif homebank-5.9.1/src/dsp-mainwindow.c0000644000175000017500000022662615006355332012706 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-xml.h" #include "hub-account.h" #include "dsp-mainwindow.h" #include "list-account.h" #include "list-operation.h" #include "hub-scheduled.h" #include "hub-reptotal.h" #include "hub-reptime.h" #include "hub-transaction.h" #include "dsp-account.h" #include "ui-assist-import.h" #include "ui-assist-start.h" #include "ui-account.h" #include "ui-currency.h" #include "ui-payee.h" #include "ui-category.h" #include "ui-archive.h" #include "ui-assign.h" #include "ui-dialogs.h" #include "ui-budget.h" #include "ui-budget-tabview.h" #include "ui-pref.h" #include "ui-hbfile.h" #include "ui-transaction.h" #include "ui-tag.h" #include "ui-widgets.h" #include "rep-balance.h" #include "rep-budget.h" #include "rep-stats.h" #include "rep-time.h" #include "rep-vehicle.h" #include "gtk-chart.h" //old url prior 2019 //#define HOMEBANK_URL_HELP "httpq://www.gethomebank.org/help/" //#define HOMEBANK_URL_HELP_ONLINE "https://launchpad.net/homebank/+addquestion" //#define HOMEBANK_URL_HELP_PROBLEM "https://launchpad.net/homebank/+filebug" //#define HOMEBANK_URL_HELP_TRANSLATE "https://launchpad.net/homebank/+translations" #define HOMEBANK_URL_HELP "index.html" #define HOMEBANK_URL_BASE "https://www.gethomebank.org" #define HOMEBANK_URL_HELP_ONLINE HOMEBANK_URL_BASE "/support.php" #define HOMEBANK_URL_HELP_DONATE HOMEBANK_URL_BASE "/donate.php" #define HOMEBANK_URL_HELP_UPDATES HOMEBANK_URL_BASE "/downloads.php" #define HOMEBANK_URL_HELP_PROBLEM HOMEBANK_URL_BASE "/development.php#bug" #define HOMEBANK_URL_HELP_TRANSLATE HOMEBANK_URL_BASE "/development.php#translate" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = */ static void activate_url (GtkAboutDialog *about, const gchar *link, gpointer data) { DB( g_print("activate url %s\n", link) ); homebank_util_url_show (link); } static void hbfile_about(void) { GtkWidget *dialog; GdkPixbuf *pixbuf; gchar *pathfilename; gchar *version; static const gchar *artists[] = { "Maxime DOYEN", NULL }; static const gchar *authors[] = { "Lead developer:\n" \ "Maxime DOYEN", "\nContributor:\n" \ "Ga\xc3\xabtan LORIDANT (Maths formulas for charts)\n", NULL }; /* const gchar *documenters[] = { "Maxime DOYEN", NULL }; */ static const gchar *copyright = "Copyright \xc2\xa9 1995-2025 - Maxime DOYEN"; version = g_strdup_printf (PACKAGE_VERSION "\nRunning against GTK+ %d.%d.%d", gtk_get_major_version (), gtk_get_minor_version (), gtk_get_micro_version ()); dialog = gtk_about_dialog_new(); gtk_window_set_transient_for (GTK_WINDOW(dialog), GTK_WINDOW(GLOBALS->mainwindow)); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG(dialog), g_get_application_name ()); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), version); gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog), copyright); gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), _("Free, easy, personal accounting for everyone")); gtk_about_dialog_set_license_type (GTK_ABOUT_DIALOG(dialog), GTK_LICENSE_GPL_2_0); //gtk_about_dialog_set_wrap_license(GTK_ABOUT_DIALOG(dialog), ); gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), HOMEBANK_URL_BASE); gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(dialog), "Visit the HomeBank website"); gtk_about_dialog_set_logo_icon_name(GTK_ABOUT_DIALOG(dialog), "homebank"); pathfilename = g_build_filename(homebank_app_get_images_dir(), "splash.png", NULL); pixbuf = gdk_pixbuf_new_from_file(pathfilename, NULL); g_free(pathfilename); if( pixbuf ) { gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(dialog), pixbuf); g_object_unref (pixbuf); } gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(dialog), authors); gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(dialog), artists); //gtk_about_dialog_set_documenters(GTK_ABOUT_DIALOG(dialog), ); //gtk_about_dialog_set_translator_credits(GTK_ABOUT_DIALOG(dialog), ); g_signal_connect (dialog, "activate-link", G_CALLBACK (activate_url), NULL); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_window_destroy (GTK_WINDOW(dialog)); g_free(version); } #define HB_MIMETYPE "application/x-homebank" static void ui_wallet_cb_recent_chooser_clear (GtkRecentChooser *chooser, struct hbfile_data *data) { GList *list; DB( g_print("\n[ui-mainwindow] recent chooser clear\n") ); list = gtk_recent_manager_get_items(data->recent_manager); while (list != NULL) { GtkRecentInfo *recentinfo = list->data; const gchar *uri; uri = gtk_recent_info_get_uri(recentinfo); if( uri != NULL ) { size_t len = strlen(uri); DB( g_print(" uri: '%s' %ld\n", uri, len ) ); //if( !g_strcmp0(HB_MIMETYPE, gtk_recent_info_get_mime_type(recentinfo)) ) if( len > 4 && g_ascii_strcasecmp(uri + len - 4, ".xhb") == 0 ) { GError *error = NULL; const gchar *uri = gtk_recent_info_get_uri(recentinfo); DB( g_print(" > should remove\n") ); gtk_recent_manager_remove_item(data->recent_manager, uri, &error); if (error) { g_warning ("Could not remove uri \"%s\": %s", uri, error->message); g_error_free (error); } } } gtk_recent_info_unref(recentinfo); list = g_list_next(list); } g_list_free(list); } static void ui_wallet_recent_chooser_item_activated_cb (GtkRecentChooser *chooser, struct hbfile_data *data) { gchar *uri, *path; GError *error = NULL; DB( g_print("\n[ui-mainwindow] recent chooser activated\n") ); uri = gtk_recent_chooser_get_current_uri (chooser); DB( g_print(" '%s'\n", uri) ); path = g_filename_from_uri (uri, NULL, &error); if (error) { g_warning ("Could not convert uri \"%s\" to a local path: %s", uri, error->message); g_error_free (error); return; } if( ui_dialog_msg_savechanges(data->window, NULL) == TRUE ) { //todo: FixMe /* if (! load) { gpw_recent_remove (gpw, path); } */ hbfile_change_filepath(path); ui_wallet_open_internal(data->window, NULL); } else { g_free (path); } g_free (uri); } static void ui_wallet_recent_add (struct hbfile_data *data, const gchar *path) { GtkRecentData *recent_data; gchar *uri; GError *error = NULL; DB( g_print("\n[ui-mainwindow] recent_add\n") ); //#2043886 portable don't store to recent #ifdef PORTABLE_APP DB( g_print(" ignored in portable app\n") ); return; #endif DB( g_print(" - file has .xhb suffix = %d\n", g_str_has_suffix (path, ".xhb") ) ); if( g_str_has_suffix (path, ".xhb") == FALSE ) //ignore reverted file return; uri = g_filename_to_uri (path, NULL, &error); if (error) { g_warning ("Could not convert uri \"%s\" to a local path: %s", uri, error->message); g_error_free (error); return; } recent_data = g_slice_new (GtkRecentData); recent_data->display_name = NULL; recent_data->description = NULL; recent_data->mime_type = HB_MIMETYPE; recent_data->app_name = (gchar *) g_get_application_name (); recent_data->app_exec = g_strjoin (" ", g_get_prgname (), "%u", NULL); recent_data->groups = NULL; recent_data->is_private = FALSE; if (!gtk_recent_manager_add_full (data->recent_manager, uri, recent_data)) { g_warning ("Unable to add '%s' to the list of recently used documents", uri); } g_free (uri); g_free (recent_data->app_exec); g_slice_free (GtkRecentData, recent_data); } static void ui_wallet_selection(GtkTreeSelection *treeselection, gpointer user_data) { ui_wallet_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(UF_SENSITIVE)); } static void ui_wallet_close_openbooks(void) { GList *l = gtk_application_get_windows(GLOBALS->application); while (l != NULL) { GtkWindow *window = l->data; gint key; key = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(window), "key")); DB( g_print(" window: %p: key=%d '%s'\n", window, key, gtk_window_get_title(window)) ); if( key != 0 ) //wallet have no key { DB( g_print(" >closing\n") ); gtk_window_close (GTK_WINDOW(window)); } l = g_list_next(l); } //empty loop before doing any further //this will safely close any window hb_window_run_pending(); } static void ui_wallet_clear(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; gboolean file_clear = GPOINTER_TO_INT(user_data); GSList *list; DB( g_print("\n[ui-mainwindow] clear\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); // Close opened account window // Clear TreeView ui_wallet_close_openbooks(); //5.5.1 should close any toplevel windows as well (reports...) DB( g_print(" closing %d windows\n", g_slist_length(GLOBALS->openwindows) )); list = GLOBALS->openwindows; while( list != NULL) { GtkWindow *window = GTK_WINDOW(list->data); DB( g_print(" closing type:%d title:'%s'\n", gtk_window_get_window_type(window), gtk_window_get_title(window) )); gtk_window_close (GTK_WINDOW(window)); list = g_slist_next(list); } //empty loop before doing any further //this will safely close any window hb_window_run_pending(); gtk_tree_store_clear(GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_acc)))); gtk_list_store_clear(GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_upc)))); //#2065628 missed clear lead txn and so may crash gtk_tree_store_clear(GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_txn[HUB_TXN_TYPE_FUTURE])))); gtk_tree_store_clear(GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_txn[HUB_TXN_TYPE_REMIND])))); //TODO those 2 do nothing ui_hub_reptotal_clear(GLOBALS->mainwindow, NULL); ui_hub_reptime_clear(GLOBALS->mainwindow, NULL); data->showall = FALSE; ui_hub_account_dispose(data); ui_hub_account_setup(data); ui_hub_reptotal_dispose(data); ui_hub_reptotal_setup(data); ui_hub_reptime_dispose(data); ui_hub_reptime_setup(data); hb_window_run_pending(); hbfile_cleanup(file_clear); hbfile_setup(file_clear); hb_window_run_pending(); } static void ui_wallet_revert(GtkWidget *widget, gpointer user_data) { //struct hbfile_data *data; gchar *basename; gchar *title; gchar *secondtext; gint result; DB( g_print("\n[ui-mainwindow] revert\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); basename = g_path_get_basename(GLOBALS->xhb_filepath); title = g_strdup_printf ( _("Revert unsaved changes to file '%s'?"), basename); secondtext = _("- Changes made to the file will be permanently lost\n" "- File will be reloaded from the last save (.xhb~)"); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(GLOBALS->mainwindow), title, secondtext, _("_Revert"), TRUE ); g_free(title); g_free(basename); if( result == GTK_RESPONSE_OK ) { DB( g_print(" - should revert\n") ); hbfile_change_filepath(hb_filename_new_with_extension(GLOBALS->xhb_filepath, "xhb~")); ui_wallet_open_internal(widget, NULL); hbfile_change_filepath(hb_filename_new_with_extension(GLOBALS->xhb_filepath, "xhb")); } } static void ui_wallet_addtransactions(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; GtkWidget *window; gint result = HB_RESPONSE_ADD; gint kacc, count; Transaction *ope; DB( g_print("\n[ui-mainwindow] add transactions\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); /* init the transaction */ homebank_app_date_get_julian(); //#1656531 kacc = (data->acc != NULL) ? data->acc->key : 0; window = create_deftransaction_window(GTK_WINDOW(data->window), TXN_DLG_ACTION_ADD, TXN_DLG_TYPE_TXN, kacc); ope = da_transaction_malloc(); count = 0; while(result == HB_RESPONSE_ADD || result == HB_RESPONSE_ADDKEEP) { DB( g_print(" - last result %d\n", result) ); /* fill in the transaction */ if( result == HB_RESPONSE_ADD ) { da_transaction_init(ope, kacc); } deftransaction_set_transaction(window, ope); result = gtk_dialog_run (GTK_DIALOG (window)); DB( g_print(" - dialog result is %d\n", result) ); if(result == HB_RESPONSE_ADD || result == HB_RESPONSE_ADDKEEP || result == GTK_RESPONSE_ACCEPT) { Transaction *addtxn; deftransaction_get(window, NULL); addtxn = transaction_add(GTK_WINDOW(window), TRUE, ope); //2044601 if NULL xfer may have beed aborted if( addtxn != NULL ) { //#1831975 if(PREFS->txn_showconfirm) deftransaction_external_confirm(window, ope); DB( g_print(" - added 1 transaction to %d\n", ope->kacc) ); ui_hub_account_compute(GLOBALS->mainwindow, NULL); count++; } else { //2044601 keep actual txn result = HB_RESPONSE_ADDKEEP; DB( g_print(" - no add, keep current\n") ); } } } da_transaction_free(ope); deftransaction_dispose(window, NULL); gtk_window_destroy (GTK_WINDOW(window)); /* todo optimize this */ if(count > 0) { GLOBALS->changes_count += count; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE+UF_REFRESHALL)); } } static gboolean ui_wallet_open_backup_check_confirm(gchar *filepath) { gboolean retval = FALSE; gchar *basename, *secondtext; gboolean result; basename = g_path_get_basename(filepath); secondtext = g_strdup_printf ( _("You are about to open the backup file '%s'.\n\nAre you sure you want to do this?"), basename); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(GLOBALS->mainwindow), _("Open the backup file?"), secondtext, _("_Open backup"), FALSE ); g_free(secondtext); g_free(basename); if( result == GTK_RESPONSE_OK ) retval = TRUE; return retval; } void ui_wallet_open_check(GtkWidget *widget, gchar *filepath) { //struct hbfile_data *data; gboolean doopen = TRUE; if( filepath == NULL ) return; DB( g_print("\n[ui-mainwindow] open check\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print(" path='%s'\n", filepath) ); if (g_file_test (filepath, G_FILE_TEST_EXISTS) == TRUE) { //#1710955 test for backup open if( hbfile_file_isbackup(filepath) ) { if( ui_wallet_open_backup_check_confirm(filepath) == TRUE ) { GLOBALS->hbfile_is_bak = TRUE; doopen = TRUE; } else { doopen = FALSE; } } } else { g_warning (_("Unable to open '%s', the file does not exist.\n"), filepath); } if(doopen) { hbfile_change_filepath(g_strdup(filepath)); ui_wallet_open_internal(widget, NULL); } g_free(filepath); } static void ui_wallet_open(GtkWidget *widget, gpointer user_data) { //struct hbfile_data *data; gboolean bakmode = GPOINTER_TO_INT(user_data);; gboolean doopen = TRUE; gchar *filename = NULL; DB( g_print("\n[ui-mainwindow] open\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //#1791554 do ask for save confirm if( bakmode != TRUE ) doopen = ui_dialog_msg_savechanges(widget,NULL); if( doopen == TRUE ) { if( ui_file_chooser_xhb(GTK_FILE_CHOOSER_ACTION_OPEN, &filename, bakmode) == TRUE ) { ui_wallet_open_check(widget, filename); } } } /* * open the file stored in GLOBALS->xhb_filepath */ void ui_wallet_open_internal(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; gint r; DB( g_print("\n[ui-mainwindow] open internal\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( GLOBALS->xhb_filepath != NULL ) { DB( g_print(" - filename: '%s'\n", GLOBALS->xhb_filepath) ); ui_wallet_clear(GLOBALS->mainwindow, GINT_TO_POINTER(FALSE)); GLOBALS->hbfile_is_new = FALSE; r = homebank_load_xml(GLOBALS->xhb_filepath); if( r == XML_OK ) { DB( g_print(" - file loaded ok : rcode=%d\n", r) ); GLOBALS->xhb_timemodified = hbfile_file_get_time_modified(GLOBALS->xhb_filepath); hbfile_file_hasrevert(GLOBALS->xhb_filepath); if(PREFS->appendscheduled) { DB( g_print(" - auto: post all pending\n") ); scheduled_post_all_pending(); } if(PREFS->do_update_currency) { DB( g_print(" - auto: update currency\n") ); //TODO: currency_needs_online ui_cur_manage_dialog_update_currencies(GTK_WINDOW(GLOBALS->mainwindow), NULL); } homebank_lastopenedfiles_save(); //#1931816 should always sort all txn once DB( g_print(" - sort txn all account\n") ); account_transaction_sort(); //TODO: delete this after computing done at xml read DB( g_print(" - compute balance\n") ); account_compute_balances(TRUE); ui_wallet_recent_add(data, GLOBALS->xhb_filepath); } else { gchar *msg = _("Unknown error"); switch(r) { case XML_IO_ERROR: msg = _("I/O error for file '%s'."); break; case XML_FILE_ERROR: msg = _("The file '%s' is not a valid HomeBank file."); break; case XML_VERSION_ERROR: msg = _("The file '%s' was saved with a higher version of HomeBank\nand cannot be loaded by the current version."); break; } ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_ERROR, _("File error"), msg, GLOBALS->xhb_filepath ); ui_wallet_clear(GLOBALS->mainwindow, GINT_TO_POINTER(TRUE)); } DB( g_print(" - start update window\n") ); ui_hub_account_populate(GLOBALS->mainwindow, NULL); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_VISUAL+UF_REFRESHALL)); } } static void ui_wallet_save(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; gboolean saveas = GPOINTER_TO_INT(user_data); gchar *filename = NULL; gint r = XML_UNSET; DB( g_print("\n[ui-mainwindow] save\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( GLOBALS->hbfile_is_new == TRUE ) saveas = 1; //#1710955 test for backup open if( GLOBALS->hbfile_is_bak == TRUE ) { //todo: later for backup, should also remove datetime and .bak hbfile_change_filepath(hb_filename_new_with_extension(GLOBALS->xhb_filepath, "xhb")); saveas = 1; } if(saveas == 1) { if(ui_file_chooser_xhb(GTK_FILE_CHOOSER_ACTION_SAVE, &filename, FALSE) == TRUE) { DB( g_print(" + should save as '%s'\n", filename) ); homebank_file_ensure_xhb(filename); homebank_backup_current_file(); r = homebank_save_xml(GLOBALS->xhb_filepath); GLOBALS->hbfile_is_new = FALSE; GLOBALS->hbfile_is_bak = FALSE; } else return; } else { guint64 time_modified = hbfile_file_get_time_modified (GLOBALS->xhb_filepath); gint result = GTK_RESPONSE_OK; DB( g_print(" + should quick save '%s'\n + time: open=%lu :: now=%lu\n", GLOBALS->xhb_filepath, GLOBALS->xhb_timemodified, time_modified) ); if( GLOBALS->xhb_timemodified != time_modified ) { result = ui_dialog_msg_confirm_alert( GTK_WINDOW(GLOBALS->mainwindow), _("The file has been modified since reading it."), _("If you save it, all the external changes could be lost. Save it anyway?"), _("S_ave Anyway"), TRUE ); if( result != GTK_RESPONSE_OK ) return; } DB( g_print(" + saving...\n") ); homebank_file_ensure_xhb(NULL); homebank_backup_current_file(); r = homebank_save_xml(GLOBALS->xhb_filepath); } if(r == XML_OK) { DB( g_print(" + OK...\n") ); GLOBALS->changes_count = 0; GLOBALS->xhb_timemodified = hbfile_file_get_time_modified (GLOBALS->xhb_filepath); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_VISUAL)); } else { gchar *msg = _("I/O error for file '%s'."); ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_ERROR, _("File error"), msg, GLOBALS->xhb_filepath ); } } void ui_wallet_update(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; gint flags; DB( g_print("\n[ui-mainwindow] update\n") ); //todo: remove this later //as we direct call from destroy of other window, widget might already be gone if( !GTK_IS_WIDGET(widget) ) //TODO: hit { DB( g_print(" bad widget prevent !\n") ); return; } data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //data = INST_DATA(widget); flags = GPOINTER_TO_INT(user_data); /* changes */ #if MYDEBUG == 1 gchar *chgtxt = g_strdup_printf("%d", GLOBALS->changes_count); gtk_label_set_label(GTK_LABEL(data->dbgchange), chgtxt); g_free(chgtxt); #endif /* set window title */ if(flags & UF_TITLE) { gchar *basename; gchar *changed; DB( g_print(" 1: wintitle %p\n", data->wintitle) ); basename = g_path_get_basename(GLOBALS->xhb_filepath); g_free(data->wintitle); changed = (GLOBALS->changes_count > 0) ? "*" : ""; data->wintitle = g_strdup_printf("%s%s - %s - " PROGNAME, changed, basename, GLOBALS->owner); gtk_window_set_title (GTK_WINDOW (gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), data->wintitle); g_free(basename); } /* update disabled things */ if(flags & UF_SENSITIVE) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; gboolean active, sensitive; DB( g_print(" 2: disabled, opelist count\n") ); //#1656531 data->acc = NULL; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)); active = gtk_tree_selection_get_selected(selection, &model, &iter); if(active) { Account *acc; gint depth; path = gtk_tree_model_get_path(model, &iter); depth = gtk_tree_path_get_depth(path); if( depth > 1 ) { gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, LST_DSPACC_DATAS, &acc, -1); data->acc = acc; DB( g_print(" depth is %d, acc=%p\n", depth, acc) ); } else active = FALSE; } //5.7 browse account website sensitive = account_has_website(data->acc); DB( g_print(" account has url: %d\n", sensitive) ); gtk_widget_set_sensitive(data->BT_browse, sensitive); DB( g_print(" changes %d - new %d\n", GLOBALS->changes_count, GLOBALS->hbfile_is_new) ); // save DB( g_print(" save\n") ); sensitive = (GLOBALS->changes_count != 0 ) ? TRUE : FALSE; gtk_widget_set_sensitive(data->MI_save, sensitive); gtk_widget_set_sensitive(data->BT_save, sensitive); // backup DB( g_print(" has changes & revert\n") ); sensitive = ( (GLOBALS->changes_count != 0) && GLOBALS->xhb_hasrevert ) ? TRUE : FALSE; gtk_widget_set_sensitive(data->MI_revert, sensitive); //1859346 restore backup avail anytime //gtk_widget_set_sensitive(data->MI_openbak, sensitive); // report dialog ope, disable manage acc/pay/cat/bud/tag DB( g_print(" has report open ?\n") ); sensitive = GLOBALS->define_off == 0 ? TRUE : FALSE; gtk_widget_set_sensitive(data->MI_manacc, sensitive); gtk_widget_set_sensitive(data->MI_manpay, sensitive); gtk_widget_set_sensitive(data->MI_mancat, sensitive); gtk_widget_set_sensitive(data->MI_manbud, sensitive); gtk_widget_set_sensitive(data->MI_manbudtable, sensitive); gtk_widget_set_sensitive(data->MI_mantag, sensitive); gtk_widget_set_sensitive(data->MI_prefs, sensitive); gtk_widget_set_sensitive(data->BT_manacc, sensitive); gtk_widget_set_sensitive(data->BT_manpay, sensitive); gtk_widget_set_sensitive(data->BT_mancat, sensitive); gtk_widget_set_sensitive(data->BT_manbud, sensitive); // empty account list: disable Archives, Edit, Filter, Add, Statistics, Overdrawn, Car Cost DB( g_print(" has acc ?\n") ); sensitive = da_acc_length() > 0 ? TRUE : FALSE; gtk_widget_set_sensitive(data->MI_close, sensitive); gtk_widget_set_sensitive(data->MI_exportqif, sensitive); gtk_widget_set_sensitive(data->MI_anonymise, sensitive); gtk_widget_set_sensitive(data->MI_mantpl, sensitive); gtk_widget_set_sensitive(data->MI_txnadd, sensitive); gtk_widget_set_sensitive(data->MI_txnshow, sensitive); gtk_widget_set_sensitive(data->MI_txnshowall, sensitive); gtk_widget_set_sensitive(data->MI_repstat, sensitive); gtk_widget_set_sensitive(data->MI_reptime, sensitive); gtk_widget_set_sensitive(data->MI_repbal, sensitive); gtk_widget_set_sensitive(data->MI_repbudg, sensitive); gtk_widget_set_sensitive(data->MI_repvehi, sensitive); gtk_widget_set_sensitive(data->BT_mantpl, sensitive); gtk_widget_set_sensitive(data->BT_txnshow, sensitive); gtk_widget_set_sensitive(data->BT_txnadd, sensitive); gtk_widget_set_sensitive(data->BT_repstat, sensitive); gtk_widget_set_sensitive(data->BT_reptime, sensitive); gtk_widget_set_sensitive(data->BT_repbal, sensitive); gtk_widget_set_sensitive(data->BT_repbudg, sensitive); gtk_widget_set_sensitive(data->BT_repvehi, sensitive); // empty category list: disable Budget DB( g_print(" has cat ?\n") ); sensitive = da_cat_length() > 1 ? TRUE : FALSE; gtk_widget_set_sensitive(data->MI_manbud, sensitive); gtk_widget_set_sensitive(data->MI_manbudtable, sensitive); gtk_widget_set_sensitive(data->BT_manbud, sensitive); //#1501129 no need to disable, P & C can be created from assign dialog //sensitive = ((da_cat_length() > 1) || (da_pay_length() > 1)) ? TRUE : FALSE; //gtk_action_set_sensitive(gtk_ui_manager_get_action(data->manager, "/MenuBar/ManageMenu/Assign"), sensitive); gtk_widget_set_sensitive(data->MI_manasg, sensitive); gtk_widget_set_sensitive(data->BT_manasg, sensitive); // empty archive list: disable scheduled check DB( g_print(" has archive ?\n") ); sensitive = da_archive_length() > 0 ? TRUE : FALSE; gtk_widget_set_sensitive(data->MI_addscheduled, sensitive); // no active account: disable Edit, Over DB( g_print(" account active ?\n") ); sensitive = (active == TRUE ) ? TRUE : FALSE; gtk_widget_set_sensitive(data->MI_txnshow, sensitive); gtk_widget_set_sensitive(data->BT_txnshow, sensitive); } /* update toolbar, list */ if(flags & UF_VISUAL) { DB( g_print(" 8: visual\n") ); if(PREFS->toolbar_style == 0) gtk_toolbar_unset_style(GTK_TOOLBAR(data->toolbar)); else gtk_toolbar_set_style(GTK_TOOLBAR(data->toolbar), PREFS->toolbar_style-1); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (data->LV_acc), PREFS->grid_lines); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_acc)); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (data->LV_upc), PREFS->grid_lines); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_upc)); //TODO: should add txn listview here as well DB( g_print(" - show toolbar=%d\n", PREFS->wal_toolbar) ); hb_widget_visible(data->toolbar, PREFS->wal_toolbar); DB( g_print(" - show totchart=%d\n", PREFS->wal_totchart) ); hb_widget_visible(data->GR_hubtot, PREFS->wal_totchart); DB( g_print(" - show timchart=%d\n", PREFS->wal_timchart) ); hb_widget_visible(data->GR_hubtim, PREFS->wal_timchart); DB( g_print(" - show upcoming=%d\n", PREFS->wal_upcoming) ); hb_widget_visible(data->GR_upc, PREFS->wal_upcoming); DB( g_print(" minor %d\n", PREFS->euro_active) ); hb_widget_visible(data->MI_eurominor, PREFS->euro_active); } if(flags & UF_TXNLIST) { DB( g_print(" --txn list\n") ); list_txn_set_columns(GTK_TREE_VIEW(data->LV_txn[HUB_TXN_TYPE_FUTURE]), PREFS->lst_ope_columns); list_txn_set_columns(GTK_TREE_VIEW(data->LV_txn[HUB_TXN_TYPE_REMIND]), PREFS->lst_ope_columns); } if(flags & UF_REFRESHALL) { DB( g_print(" --refreshall\n") ); ui_hub_account_compute(GLOBALS->mainwindow, NULL); //5.7 don't process if not visible... if( PREFS->wal_totchart ) ui_hub_reptotal_populate(GLOBALS->mainwindow, NULL); if( PREFS->wal_timchart ) ui_hub_reptime_populate(GLOBALS->mainwindow, NULL); if( PREFS->wal_upcoming ) { ui_hub_scheduled_populate(GLOBALS->mainwindow, NULL); ui_hub_transaction_populate(data); } } } /* hbfile action functions -------------------- */ static void ui_wallet_action_new(void) { GtkWidget *widget = GLOBALS->mainwindow; if( ui_dialog_msg_savechanges(widget,NULL) == TRUE ) { //clear all, and init GLOBALS->xhb_filepath to default ui_wallet_clear(widget, GINT_TO_POINTER(TRUE)); // GPOINTER_TO_INT( ui_wallet_update(widget, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); ui_newfile_assitant_new(); } } static void ui_wallet_action_open(void) { ui_wallet_open(GLOBALS->mainwindow, GINT_TO_POINTER(FALSE)); } static void ui_wallet_action_openbak(void) { ui_wallet_open(GLOBALS->mainwindow, GINT_TO_POINTER(TRUE)); } static void ui_wallet_action_save(void) { ui_wallet_save(GLOBALS->mainwindow, GINT_TO_POINTER(FALSE)); } static void ui_wallet_action_saveas(void) { ui_wallet_save(GLOBALS->mainwindow, GINT_TO_POINTER(TRUE)); } static void ui_wallet_action_revert(void) { ui_wallet_revert(GLOBALS->mainwindow, NULL); } static void ui_wallet_action_close(void) { GtkWidget *widget = GLOBALS->mainwindow; if( ui_dialog_msg_savechanges(widget,NULL) == TRUE ) { //clear all, and init GLOBALS->xhb_filepath to default ui_wallet_clear(widget, GINT_TO_POINTER(TRUE)); ui_wallet_update(widget, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); } } static void ui_wallet_action_quit(void) { DB( g_print("\n[ui-mainwindow] action quit\n") ); gtk_window_close(GTK_WINDOW(GLOBALS->mainwindow)); } static void ui_wallet_action_file_statistics(void) { ui_dialog_file_statistics(); } static void ui_wallet_action_properties(void) { create_defhbfile_dialog(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); } static void ui_wallet_action_anonymize(void) { gint result; gchar *title; gchar *secondtext; title = _("Are you sure you want to anonymize the file?"); secondtext = _("Proceeding will anonymize any text, \n" "like 'account x', 'payee y', 'memo z', ..."); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(GLOBALS->mainwindow), title, secondtext, _("_Anonymize"), TRUE ); //#1707201 //if( result == GTK_RESPONSE_CANCEL ) // return; if( result == GTK_RESPONSE_OK ) { hbfile_anonymize(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); } } static void ui_wallet_action_defcurrency(void) { ui_cur_manage_dialog(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); } static void ui_wallet_action_defaccount(void) { ui_acc_manage_dialog(); //our global list has changed, so update the treeview //todo: optimize this, should not call compute balance here account_compute_balances (FALSE); ui_hub_account_populate(GLOBALS->mainwindow, NULL); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); } static void ui_wallet_action_defpayee(void) { ui_pay_manage_dialog(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void ui_wallet_action_defcategory(void) { ui_cat_manage_dialog(); //todo:why refresh upcoming here?? //ui_wallet_populate_upcoming(GLOBALS->mainwindow, NULL); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); } //TODO: not ideal to do this void ui_wallet_defarchive(Archive *arc) { struct hbfile_data *data; GtkTreeModel *model; data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); // upcoming list have direct pointer to the arc (which may change during edit) model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_upc)); gtk_list_store_clear (GTK_LIST_STORE(model)); ui_arc_manage_dialog(arc); ui_hub_scheduled_populate(GLOBALS->mainwindow, NULL); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void ui_wallet_action_defarchive(void) { ui_wallet_defarchive(NULL); } static void ui_wallet_action_defbudget(void) { ui_bud_manage_dialog(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void ui_wallet_action_defbudgettable(void) { ui_bud_tabview_manage_dialog(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void ui_wallet_action_defassign(void) { ui_asg_manage_dialog(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void ui_wallet_action_deftag(void) { ui_tag_manage_dialog(); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE)); } static void ui_wallet_action_preferences(void) { struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); gboolean prv_includeremind; //#1914935 store previous includeremind state to detect a change prv_includeremind = PREFS->includeremind; defpref_dialog_new(); if(!PREFS->euro_active) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(data->MI_eurominor), FALSE); //gtk_toggle_action_set_active(action, FALSE); //ui_wallet_action_toggle_minor(GTK_CHECK_MENU_ITEM(data->MI_eurominor), NULL); } homebank_pref_apply (); //#1914935 if include remind change, we update balance if( prv_includeremind != PREFS->includeremind ) { account_compute_balances(FALSE); } ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_VISUAL+UF_REFRESHALL)); } /* display action */ static void ui_wallet_action_toggle_toolbar(GtkCheckMenuItem *menuitem, gpointer user_data) { //struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); PREFS->wal_toolbar = gtk_check_menu_item_get_active(menuitem); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_VISUAL)); } static void ui_wallet_action_toggle_upcoming(GtkCheckMenuItem *menuitem, gpointer user_data) { //struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); gint flags = UF_VISUAL; PREFS->wal_upcoming = gtk_check_menu_item_get_active(menuitem); if( PREFS->wal_upcoming == TRUE ) flags |= UF_REFRESHALL; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(flags)); } static void ui_wallet_action_toggle_totchart(GtkCheckMenuItem *menuitem, gpointer user_data) { //struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); gint flags = UF_VISUAL; PREFS->wal_totchart = gtk_check_menu_item_get_active(menuitem); if( PREFS->wal_totchart == TRUE ) flags |= UF_REFRESHALL; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(flags)); } static void ui_wallet_action_toggle_timchart(GtkCheckMenuItem *menuitem, gpointer user_data) { //struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); gint flags = UF_VISUAL; PREFS->wal_timchart = gtk_check_menu_item_get_active(menuitem); if( PREFS->wal_timchart == TRUE ) flags |= UF_REFRESHALL; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(flags)); } static void ui_wallet_action_toggle_minor(GtkCheckMenuItem *menuitem, gpointer user_data) { struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); GLOBALS->minor = gtk_check_menu_item_get_active(menuitem); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_acc)); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_upc)); // top spending gtk_chart_show_minor(GTK_CHART(data->RE_hubtot_chart), GLOBALS->minor); gtk_chart_show_minor(GTK_CHART(data->RE_hubtim_chart), GLOBALS->minor); ui_hub_reptotal_update(data->window, data); ui_hub_reptime_update(data->window, data); } static void ui_wallet_action_showalltransactions(GtkMenuItem *menuitem, gpointer user_data) { GtkWindow *window; window = homebank_app_find_window(-1); if( !window ) { window = GTK_WINDOW(hub_ledger_window_new(NULL)); hub_ledger_window_init(GTK_WIDGET(window), NULL); } else gtk_window_present(GTK_WINDOW(window)); } static void ui_wallet_action_showtransactions(void) { struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); GtkWindow *window; //TODO: change this if(data->acc == NULL) return; window = homebank_app_find_window(data->acc->key); if( !window ) { window = GTK_WINDOW(hub_ledger_window_new(data->acc)); hub_ledger_window_init(GTK_WIDGET(window), NULL); } else gtk_window_present(GTK_WINDOW(window)); } static void ui_wallet_action_addtransactions(void) { ui_wallet_addtransactions(GLOBALS->mainwindow, NULL); } static void ui_wallet_action_checkscheduled(void) { ui_hub_scheduled_postall(GLOBALS->mainwindow, GINT_TO_POINTER(TRUE)); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); } static void ui_wallet_action_statistic(void) { repstats_window_new(); } static void ui_wallet_action_trendtime(void) { struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); reptime_window_new(data->acc != NULL ? data->acc->key : 0); } static void ui_wallet_action_budget(void) { repbudget_window_new(); } static void ui_wallet_action_balance(void) { struct hbfile_data *data = g_object_get_data(G_OBJECT(GLOBALS->mainwindow), "inst_data"); repbalance_window_new(data->acc != NULL ? data->acc->key : 0); } static void ui_wallet_action_vehiclecost(void) { repvehicle_window_new(); } static void ui_wallet_action_import(void) { /*const gchar *name; gint filetype = FILETYPE_UNKNOWN; name = gtk_action_get_name(action); if( g_str_has_suffix (name, "QIF")) filetype= FILETYPE_QIF; else if( g_str_has_suffix (name, "OFX")) filetype= FILETYPE_OFX; else if( g_str_has_suffix (name, "CSV")) filetype= FILETYPE_CSV_HB;*/ //DB( g_print("action %s type=%d\n", name, filetype) ); ui_import_assistant_new(NULL); } static void ui_wallet_action_about(void) { hbfile_about(); } static void ui_wallet_action_export(void) { gchar *filename; if( ui_file_chooser_qif(NULL, &filename) == TRUE ) { hb_export_qif_account_all(filename); g_free( filename ); } } static void ui_wallet_action_help(void) { gchar *link; link = g_build_filename("file:///", homebank_app_get_help_dir(), HOMEBANK_URL_HELP, NULL ); homebank_util_url_show (link); g_free(link); } static void ui_wallet_action_help_releasenotes(void) { gchar *link; #ifdef G_OS_WIN32 link = g_build_filename("file:///", homebank_app_get_datas_dir(), "ChangeLog.txt", NULL ); #else link = g_build_filename("file:///", homebank_app_get_datas_dir(), "ChangeLog", NULL ); #endif homebank_util_url_show (link); g_free(link); } //todo: move this to a ui-assist-welcome.c static void ui_wallet_action_help_welcome_cb (GtkWidget *widget, gpointer user_data) { GtkWidget *dialog; gint response = GPOINTER_TO_INT(user_data); dialog = gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW); if( GTK_IS_DIALOG(dialog) ) gtk_dialog_response (GTK_DIALOG(dialog), response); } gint ui_wallet_action_help_welcome(void) { GtkWidget *dialog, *content_area; GtkWidget *mainvbox, *table, *widget, *label, *check; gchar *pathfilename; dialog = gtk_dialog_new_with_buttons (_("Welcome to HomeBank"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), //_("_Exit"), GTK_RESPONSE_CLOSE, NULL); content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); table = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); hb_widget_set_margin(table, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (content_area), table); //get our icon pathfilename = g_build_filename(homebank_app_get_images_dir(), "homebank-icon.svg", NULL); if (g_file_test (pathfilename, G_FILE_TEST_EXISTS) == TRUE) widget = gtk_image_new_from_file((const gchar *)pathfilename); else widget = hbtk_image_new_from_icon_name_32 ("homebank"); g_free(pathfilename); gtk_grid_attach (GTK_GRID (table), widget, 0, 0, 1, 2); label = make_label (_("HomeBank"), 0, 0); gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, PANGO_ATTR_SCALE, PANGO_SCALE_XX_LARGE, -1); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); label = make_label (_("Free, easy, personal accounting for everyone"), 0, 0); gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_grid_attach (GTK_GRID (table), label, 1, 1, 1, 1); widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_box_prepend (GTK_BOX (content_area), widget); mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (content_area), mainvbox); gtk_widget_set_halign (mainvbox, GTK_ALIGN_CENTER); hb_widget_set_margin(mainvbox, SPACING_LARGE); //label = make_label (_("What do you want to do:"), 0, 0); //gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); //gtk_box_prepend (GTK_BOX (mainvbox), label); widget = gtk_button_new_with_mnemonic(_("Open _last opened file")); gtk_box_prepend (GTK_BOX (mainvbox), widget); g_signal_connect (widget, "clicked", G_CALLBACK (ui_wallet_action_help_welcome_cb), GINT_TO_POINTER(HB_WELCOME_OPENLAST)); widget = gtk_button_new_with_mnemonic(_("Create a _new file")); gtk_box_prepend (GTK_BOX (mainvbox), widget); g_signal_connect (widget, "clicked", G_CALLBACK (ui_wallet_action_help_welcome_cb), GINT_TO_POINTER(HB_WELCOME_CREATENEW)); widget = gtk_button_new_with_mnemonic(_("_Open an existing file")); gtk_box_prepend (GTK_BOX (mainvbox), widget); g_signal_connect (widget, "clicked", G_CALLBACK (ui_wallet_action_help_welcome_cb), GINT_TO_POINTER(HB_WELCOME_OPENEXISTING)); widget = gtk_button_new_with_mnemonic(_("Open the _example file")); gtk_box_prepend (GTK_BOX (mainvbox), widget); g_signal_connect (widget, "clicked", G_CALLBACK (ui_wallet_action_help_welcome_cb), GINT_TO_POINTER(HB_WELCOME_OPENSAMPLE)); widget = gtk_button_new_with_mnemonic(_("Read HomeBank _Manual")); gtk_box_prepend (GTK_BOX (mainvbox), widget); g_signal_connect (widget, "clicked", G_CALLBACK (ui_wallet_action_help_welcome_cb), GINT_TO_POINTER(HB_WELCOME_READMANUAL)); widget = gtk_button_new_with_mnemonic(_("Configure _preferences")); gtk_box_prepend (GTK_BOX (mainvbox), widget); g_signal_connect (widget, "clicked", G_CALLBACK (ui_wallet_action_help_welcome_cb), GINT_TO_POINTER(HB_WELCOME_CONFIGPREF)); check = gtk_check_button_new_with_mnemonic (_("Show this window next time")); gtk_box_append (GTK_BOX (mainvbox), check); //init gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(check), PREFS->showwelcome); gtk_widget_show_all (dialog); //wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); PREFS->showwelcome = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(check)); // cleanup and destroy gtk_window_destroy (GTK_WINDOW(dialog)); // do appropriate action switch(result) { case HB_WELCOME_OPENLAST: { gchar *rawfilepath = homebank_lastopenedfiles_load(); ui_wallet_open_check(GLOBALS->mainwindow, rawfilepath); } break; case HB_WELCOME_READMANUAL: ui_wallet_action_help(); break; case HB_WELCOME_CONFIGPREF: ui_wallet_action_preferences(); break; case HB_WELCOME_CREATENEW: ui_wallet_action_new(); break; case HB_WELCOME_OPENEXISTING: ui_wallet_action_open(); break; case HB_WELCOME_OPENSAMPLE: hbfile_change_filepath(g_build_filename(homebank_app_get_datas_dir(), "example.xhb", NULL)); ui_wallet_open_internal(GLOBALS->mainwindow, NULL); break; } return result; } static void ui_wallet_action_help_updates(void) { const gchar *link = HOMEBANK_URL_HELP_UPDATES; homebank_util_url_show (link); } static void ui_wallet_action_help_online(void) { const gchar *link = HOMEBANK_URL_HELP_ONLINE; homebank_util_url_show (link); } static void ui_wallet_action_help_donate(void) { const gchar *link = HOMEBANK_URL_HELP_DONATE; homebank_util_url_show (link); } static void ui_wallet_action_help_translate(void) { const gchar *link = HOMEBANK_URL_HELP_TRANSLATE; homebank_util_url_show (link); } static void ui_wallet_action_help_problem(void) { const gchar *link = HOMEBANK_URL_HELP_PROBLEM; homebank_util_url_show (link); } static void ui_wallet_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { GtkTreeModel *model; GtkTreeIter iter; DB( g_print ("\n[ui-mainwindow] A row has been double-clicked!\n") ); model = gtk_tree_view_get_model(treeview); if (gtk_tree_model_get_iter(model, &iter, path)) { Account *acc; gint dt; gtk_tree_model_get(model, &iter, LST_DSPACC_DATAS, &acc, LST_DSPACC_DATATYPE, &dt, -1); if( (dt == DSPACC_TYPE_NORMAL) && (acc != NULL) ) { DB( g_print ("Double-clicked row contains name %s\n", acc->name) ); ui_wallet_action_showtransactions(); //g_free(name); } } } //#2060159 store after every move static gboolean ui_wallet_window_getgeometry(GtkWidget *widget, GdkEvent *event, gpointer user_data) { //struct hbfile_data *data = user_data; struct WinGeometry *wg; //DB( g_print("\n[ui-mainwindow] get geometry\n") ); //store position and size wg = &PREFS->wal_wg; wg->s = gtk_window_is_maximized(GTK_WINDOW(widget)); if(!wg->s) { gtk_window_get_position(GTK_WINDOW(widget), &wg->l, &wg->t); gtk_window_get_size(GTK_WINDOW(widget), &wg->w, &wg->h); } /* gint lastw, lasth; gint neww, newh; lastw = wg->w; lasth = wg->h; gtk_window_get_size(GTK_WINDOW(widget), &neww, &newh); if( lastw != neww || lasth != newh ) { gint ppos; gdouble rate; //DB( g_print(" size changed\n") ); //width ppos = gtk_paned_get_position(GTK_PANED(data->hpaned)); rate = (gdouble)ppos / (gdouble)lastw; gtk_paned_set_position(GTK_PANED(data->hpaned), (rate * neww) ); //height ppos = gtk_paned_get_position(GTK_PANED(data->vpaned)); rate = (gdouble)ppos / (gdouble)lasth; gtk_paned_set_position(GTK_PANED(data->vpaned), (rate * newh) ); }*/ //DB( g_print(" window: l=%d, t=%d, w=%d, h=%d s=%d\n", wg->l, wg->t, wg->w, wg->h, wg->s) ); return FALSE; } static void ui_wallet_window_destroy(GtkWidget *widget, gpointer user_data) { struct hbfile_data *data; DB( g_print("\n[ui-mainwindow] -- destroy\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print(" destroy hubtot\n") ); //ui_hub_xxx_dispose(data); gtk_widget_destroy(data->LV_hubtot); ui_hub_reptotal_dispose(data); DB( g_print(" destroy hubtim\n") ); gtk_widget_destroy(data->LV_hubtim); ui_hub_reptime_dispose(data); DB( g_print(" destroy hubacc\n") ); ui_hub_account_dispose(data); DB( g_print(" destroy free data\n") ); g_free(data->wintitle); g_free(user_data); DB( g_print(" gtk_main_quit\n") ); gtk_main_quit(); } static gboolean ui_wallet_window_dispose(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct hbfile_data *data; struct WinGeometry *wg; gboolean retval = FALSE; DB( g_print("\n[ui-mainwindow] -- delete-event\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ui_wallet_close_openbooks(); //store position and size wg = &PREFS->wal_wg; wg->s = gtk_window_is_maximized(GTK_WINDOW(widget)); PREFS->wal_vpaned = gtk_paned_get_position(GTK_PANED(data->vpaned)); PREFS->wal_hpaned = gtk_paned_get_position(GTK_PANED(data->hpaned)); DB( g_print(" - vpaned=%d hpaned=%d\n", PREFS->wal_vpaned, PREFS->wal_hpaned) ); if(PREFS->pnl_list_tab) g_free(PREFS->pnl_list_tab); PREFS->pnl_list_tab = g_strdup(gtk_stack_get_visible_child_name(GTK_STACK(data->stack))); //todo if(ui_dialog_msg_savechanges(widget, NULL) == FALSE) { retval = TRUE; } DB( g_print("retval: %d\n", retval) ); //TRUE:stop other handlers from being invoked for the event | FALSE: propagate return retval; } enum { TARGET_URI_LIST }; static GtkTargetEntry drop_types[] = { {"text/uri-list", 0, TARGET_URI_LIST} }; static void ui_wallet_window_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time, GtkWindow *window) { gchar **uris, **str; gchar *newseldata; gint n_uris, filetype, slen; GError *error = NULL; if (info != TARGET_URI_LIST) return; DB( g_print("\n[ui-mainwindow] drag_data_received\n") ); /* On MS-Windows, it looks like `selection_data->data' is not NULL terminated. */ slen = gtk_selection_data_get_length(selection_data); newseldata = g_new (gchar, slen + 1); memcpy (newseldata, gtk_selection_data_get_data(selection_data), slen); newseldata[slen] = 0; //DB( g_print(" - seldata ='%s'\n", gtk_selection_data_get_data(selection_data) ) ); //DB( g_print(" - newseldata ='%s'\n", newseldata ) ); uris = g_uri_list_extract_uris (newseldata); n_uris = g_strv_length(uris); DB( g_print(" - dragged %d files (len=%d)\n", n_uris, slen ) ); g_free(newseldata); //single file: check for xhb if(n_uris == 1) { filetype = hb_filename_type_get_by_extension(*uris); DB( g_print(" - filetype is homebank (%d)\n", filetype) ); if( filetype == FILETYPE_HOMEBANK ) { gchar *path = g_filename_from_uri (*uris, NULL, &error); if( path != NULL ) { DB( g_print(" - path is '%s'\n", path) ); hbfile_change_filepath(g_strdup(path)); ui_wallet_open_internal(GTK_WIDGET(window), NULL); goto end_drop; } else { g_warning ("Could not convert uri to local path: %s", error->message); g_error_free (error); } g_free (path); } /* we no more manage error here ui_dialog_msg_infoerror(GTK_WINDOW(window), GTK_MESSAGE_ERROR, _("File error"), _("The file %s is not a valid HomeBank file."), path); */ } //collect known filetype to import DB( g_print(" - collect %d files\n", n_uris) ); gchar **paths = g_new (gchar *, n_uris + 1); slen = 0; for (str = uris; *str; str++) { filetype = hb_filename_type_get_by_extension(*str); if( filetype != FILETYPE_HOMEBANK && filetype != FILETYPE_UNKNOWN ) { gchar *path = g_filename_from_uri (*str, NULL, NULL); if( path != NULL ) { DB( g_print(" - append %d '%s'\n", slen, path ) ); paths[slen++] = path; } } } paths[slen] = NULL; if( slen > 0 ) { ui_import_assistant_new( paths ); } end_drop: g_strfreev (uris); } static GtkWidget * ui_wallet_create_recent_chooser_menu (struct hbfile_data *data) { GtkWidget *recent_menu, *menuitem; GtkRecentFilter *filter; recent_menu = gtk_recent_chooser_menu_new_for_manager (data->recent_manager); gtk_recent_chooser_set_local_only (GTK_RECENT_CHOOSER (recent_menu), FALSE); gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (recent_menu), GTK_RECENT_SORT_MRU); //todo: add a user pref for this gtk_recent_chooser_set_limit(GTK_RECENT_CHOOSER (recent_menu), 10); gtk_recent_chooser_set_show_icons (GTK_RECENT_CHOOSER (recent_menu), FALSE); //gtk_recent_chooser_menu_set_show_numbers (GTK_RECENT_CHOOSER_MENU (recent_menu), TRUE); filter = gtk_recent_filter_new (); //gtk_recent_filter_add_application (filter, g_get_application_name()); gtk_recent_filter_add_pattern (filter, "*.[Xx][Hh][Bb]"); gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER (recent_menu), filter); gtk_menu_shell_append (GTK_MENU_SHELL (recent_menu), gtk_separator_menu_item_new()); menuitem = hbtk_menu_add_menuitem(recent_menu, _("Clear") ); g_signal_connect (recent_menu, "item-activated", G_CALLBACK (ui_wallet_recent_chooser_item_activated_cb), data); g_signal_connect (menuitem, "activate", G_CALLBACK (ui_wallet_cb_recent_chooser_clear), (gpointer)data); return recent_menu; } static GtkWidget * ui_wallet_menubar_create(struct hbfile_data *data) { GtkWidget *menubar; GtkWidget *menu, *submenu; GtkWidget *menuitem; GtkAccelGroup *accel_group = NULL; menubar = gtk_menu_bar_new (); accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(data->window), accel_group); menu = hbtk_menubar_add_menu(menubar, _("_File"), &data->ME_menufile); data->MI_new = menuitem = hbtk_menu_add_menuitem(menu, _("_New")); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_n, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); data->MI_open = menuitem = hbtk_menu_add_menuitem(menu, _("_Open...")); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); menuitem = hbtk_menu_add_menuitem(menu, _("Open _Recent")); submenu = ui_wallet_create_recent_chooser_menu (data); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_save = menuitem = hbtk_menu_add_menuitem(menu, _("_Save")); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); data->MI_saveas = menuitem = hbtk_menu_add_menuitem(menu, _("Save _As...")); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_s, GDK_SHIFT_MASK|GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_import = menuitem = hbtk_menu_add_menuitem(menu, _("Import...")); //#2086475 gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_i, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); data->MI_exportqif = hbtk_menu_add_menuitem(menu, _("Export as QIF...")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_revert = hbtk_menu_add_menuitem(menu, _("Revert")); data->MI_openbak = hbtk_menu_add_menuitem(menu, _("Restore backup")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_properties = hbtk_menu_add_menuitem(menu, _("Properties...")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_close = menuitem = hbtk_menu_add_menuitem(menu, _("_Close")); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_w, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); data->MI_quit = menuitem = hbtk_menu_add_menuitem(menu, _("_Quit")); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); menu = hbtk_menubar_add_menu(menubar, _("_Edit"), &data->ME_menuedit); data->MI_prefs = hbtk_menu_add_menuitem(menu, _("Preferences...")); menu = hbtk_menubar_add_menu(menubar, _("_View"), &data->ME_menuview); data->MI_showtbar = menuitem = gtk_check_menu_item_new_with_mnemonic(_("_Toolbar")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); data->MI_showtotchart = menuitem = gtk_check_menu_item_new_with_mnemonic(_("T_otal Chart")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); data->MI_showtimchart = menuitem = gtk_check_menu_item_new_with_mnemonic(_("T_ime Chart")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); data->MI_showbotlist = menuitem = gtk_check_menu_item_new_with_mnemonic(_("_Bottom Lists")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_eurominor = menuitem = gtk_check_menu_item_new_with_mnemonic(_("Euro minor")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_m, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); menu = hbtk_menubar_add_menu(menubar, _("_Manage"), &data->ME_menuman); data->MI_manwal = hbtk_menu_add_menuitem(menu, _("Wallet...")); data->MI_manacc = hbtk_menu_add_menuitem(menu, _("Acc_ounts...")); data->MI_manpay = hbtk_menu_add_menuitem(menu, _("_Payees...")); data->MI_mancat = hbtk_menu_add_menuitem(menu, _("Categories...")); data->MI_mantag = hbtk_menu_add_menuitem(menu, _("Tags...")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_mantpl = hbtk_menu_add_menuitem(menu, _("Scheduled/Template...")); data->MI_manasg = hbtk_menu_add_menuitem(menu, _("Assignments...")); data->MI_mancur = hbtk_menu_add_menuitem(menu, _("Currencies...")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_manbud = hbtk_menu_add_menuitem(menu, _("Budget...")); data->MI_manbudtable = hbtk_menu_add_menuitem(menu, _("Budget (table view)...")); menu = hbtk_menubar_add_menu(menubar, _("_Transactions"), &data->ME_menutxn); data->MI_txnadd = hbtk_menu_add_menuitem(menu, _("Add...")); data->MI_txnshow = hbtk_menu_add_menuitem(menu, _("Show...")); data->MI_txnshowall = menuitem = hbtk_menu_add_menuitem(menu, _("Show All...") ); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_a, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_scheduler = hbtk_menu_add_menuitem(menu, _("Set scheduler...")); data->MI_addscheduled = hbtk_menu_add_menuitem(menu, _("Post scheduled")); menu = hbtk_menubar_add_menu(menubar, _("_Reports"), &data->ME_menurep); data->MI_repstat = hbtk_menu_add_menuitem(menu, _("_Statistics...")); data->MI_reptime = hbtk_menu_add_menuitem(menu, _("_Trend Time...") ); data->MI_repbal = hbtk_menu_add_menuitem(menu, _("_Balance...") ); data->MI_repbudg = hbtk_menu_add_menuitem(menu, _("B_udget...")); data->MI_repvehi = hbtk_menu_add_menuitem(menu, _("_Vehicle cost...")); menu = hbtk_menubar_add_menu(menubar, _("_Tools"), &data->ME_menutool); data->MI_welcome = hbtk_menu_add_menuitem(menu, _("Show welcome dialog...")); data->MI_filestats = hbtk_menu_add_menuitem(menu, _("File statistics...") ); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_anonymise = hbtk_menu_add_menuitem(menu, _("Anonymize...")); menu = hbtk_menubar_add_menu(menubar, _("_Help"), &data->ME_menuhelp); data->MI_contents = menuitem = hbtk_menu_add_menuitem(menu, _("_Contents") ); gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_KEY_F1, 0, GTK_ACCEL_VISIBLE); data->MI_online = hbtk_menu_add_menuitem(menu, _("Get Help Online...") ); //donate also here ? gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_updates = hbtk_menu_add_menuitem(menu, _("Check for updates...") ); data->MI_relnote = hbtk_menu_add_menuitem(menu, _("Release Notes") ); data->MI_problem = hbtk_menu_add_menuitem(menu, _("Report a Problem...") ); data->MI_translate = hbtk_menu_add_menuitem(menu, _("Translate this Application...") ); gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); data->MI_about = hbtk_menu_add_menuitem(menu, _("_About") ); return menubar; } static GtkWidget * ui_wallet_toolbar_create(struct hbfile_data *data) { GtkWidget *toolbar, *button, *menu; toolbar = gtk_toolbar_new(); data->BT_new = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILE_NEW, _("New"), _("Create a new file")); data->BT_open = button = gtk_widget_new(GTK_TYPE_MENU_TOOL_BUTTON, "icon-name", ICONNAME_HB_FILE_OPEN, "label", _("Open"), "tooltip-text", _("Open a file"), NULL); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM(button), 1); menu = ui_wallet_create_recent_chooser_menu(data); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (button), menu); gtk_menu_tool_button_set_arrow_tooltip_text (GTK_MENU_TOOL_BUTTON (button), _("Open a recently used file")); data->BT_save = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_FILE_SAVE, _("Save"), _("Save the current file")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); data->BT_manacc = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_ACCOUNT , _("Account"), _("Manage the accounts")); data->BT_manpay = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_PAYEE , _("Payee"), _("Manage the payees")); data->BT_mancat = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_CATEGORY, _("Category"), _("Manage the categories")); data->BT_mantpl = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_ARCHIVE , _("Scheduled/Template"), _("Manage the scheduled/template transactions")); data->BT_manbud = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_BUDGET , _("Budget"), _("Manage the budget")); data->BT_manasg = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_ASSIGN , _("Assignment"), _("Manage the automatic assignments")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); data->BT_txnshow = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_OPE_SHOW, _("Show"), _("Shows selected account transactions")); data->BT_txnadd = button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_OPE_ADD, _("Add"), _("Add transactions")); g_object_set(button, "is-important", TRUE, NULL); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); data->BT_repstat = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REP_STATS , _("Statistics"), _("Open the Statistics report")); data->BT_reptime = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REP_TIME , _("Trend time"), _("Open the Trend Time report")); data->BT_repbal = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REP_BALANCE, _("Balance"), _("Open the Balance report")); data->BT_repbudg = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REP_BUDGET, _("Budget"), _("Open the Budget report")); data->BT_repvehi = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REP_CAR , _("Vehicle cost"), _("Open the Vehicle cost report")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); data->BT_help = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_HELP , _("Help"), _("Get Help Online...")); data->BT_donate = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_DONATE, _("Donate"), _("Donate to HomeBank project")); return toolbar; } GtkWidget * ui_wallet_window_new(GtkWidget *do_widget) { struct hbfile_data *data; struct WinGeometry *wg; GtkWidget *mainvbox, *vbox, *box, *vpaned, *hpaned, *sidebar, *stack; GtkWidget *widget, *page, *menubar, *toolbar; GtkWidget *window; DB( g_print("\n[ui-mainwindow] create main window\n") ); data = g_malloc0(sizeof(struct hbfile_data)); if(!data) return NULL; window = gtk_application_window_new(GLOBALS->application); gtk_widget_set_name(GTK_WIDGET(window), "homebank"); //store our window private data g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)data); DB( g_print(" - new window=%p, inst_data=%p\n", window, data) ); // this is our mainwindow, so store it to GLOBALS data data->window = window; GLOBALS->mainwindow = window; mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_window_set_child(GTK_WINDOW(window), mainvbox); //menu and toolbar data->recent_manager = gtk_recent_manager_get_default (); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (mainvbox), box); menubar = ui_wallet_menubar_create(data); hbtk_box_prepend (GTK_BOX (box), menubar); #if HB_UNSTABLE_SHOW == TRUE menubar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(menubar)), GTK_STYLE_CLASS_MENUBAR); gtk_box_prepend (GTK_BOX (box), menubar); widget = gtk_label_new("Release Candidate Version "); gimp_label_set_attributes (GTK_LABEL (widget), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1); gtk_box_append (GTK_BOX (menubar), widget); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_WARNING); gtk_box_append (GTK_BOX (menubar), widget); gtk_widget_set_tooltip_markup(GTK_WIDGET(menubar), "Guidelines:\n" "- use only for TESTING or find BUGs\n" "- use A COPY of your data files\n" "- BUGs or CRASH can still occur" ); #endif #if MYDEBUG == 1 widget = make_label(NULL, 1.0, 0.5); gtk_widget_set_margin_end(widget, 12); data->dbgchange = widget; gtk_box_append (GTK_BOX (box), widget); #endif toolbar = ui_wallet_toolbar_create(data); data->toolbar = toolbar; gtk_box_prepend (GTK_BOX (mainvbox), toolbar); /* Add the main area */ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hbtk_box_prepend (GTK_BOX (mainvbox), vbox); vpaned = gtk_paned_new(GTK_ORIENTATION_VERTICAL); data->vpaned = vpaned; hbtk_box_prepend (GTK_BOX (vbox), vpaned); // top part hpaned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); data->hpaned = hpaned; gtk_paned_pack1 (GTK_PANED(vpaned), hpaned, FALSE, FALSE); widget = ui_hub_account_create(data); //gtk_widget_set_size_request (widget, 100, -1); gtk_paned_pack1 (GTK_PANED(hpaned), widget, FALSE, FALSE); //5.7 add home time chart box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(box), TRUE); gtk_paned_pack2 (GTK_PANED(hpaned), box, TRUE, FALSE); widget = ui_hub_reptotal_create(data); //gtk_widget_set_size_request (widget, -1, 100); hbtk_box_prepend (GTK_BOX (box), widget); widget = ui_hub_reptime_create(data); hbtk_box_prepend (GTK_BOX (box), widget); // bottom part box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); data->GR_upc = box; gtk_paned_pack2 (GTK_PANED(vpaned), box, TRUE, FALSE); sidebar = gtk_stack_sidebar_new (); gtk_box_prepend (GTK_BOX (box), sidebar); stack = gtk_stack_new (); //gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN); gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), GTK_STACK (stack)); data->stack = stack; hbtk_box_prepend (GTK_BOX (box), stack); page = ui_hub_scheduled_create(data); gtk_stack_add_titled (GTK_STACK (stack), page, "sched", _("Scheduled")); //gtk_paned_pack2 (GTK_PANED(vpaned), widget, TRUE, FALSE); page = ui_hub_transaction_create(data, HUB_TXN_TYPE_FUTURE); gtk_stack_add_titled (GTK_STACK (stack), page, "futur", _("Future")); page = ui_hub_transaction_create(data, HUB_TXN_TYPE_REMIND); gtk_stack_add_titled (GTK_STACK (stack), page, "remin", _("Remind")); //setup, init and show window wg = &PREFS->wal_wg; DB( g_print(" window: l=%d, t=%d, w=%d, h=%d s=%d\n", wg->l, wg->t, wg->w, wg->h, wg->s) ); gtk_window_move(GTK_WINDOW(window), wg->l, wg->t); gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h); if(wg->s == 1) gtk_window_maximize(GTK_WINDOW(window)); gtk_widget_show_all (window); //#2035401 hide necessary widget to enable paned correct size ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_VISUAL)); //#1662197/1660910 moved after resize/show DB( g_print(" - vpaned=%d hpaned=%d\n", PREFS->wal_vpaned, PREFS->wal_hpaned) ); if(PREFS->wal_hpaned > 0) gtk_paned_set_position(GTK_PANED(data->hpaned), PREFS->wal_hpaned); if(PREFS->wal_vpaned > 0) gtk_paned_set_position(GTK_PANED(data->vpaned), PREFS->wal_vpaned); if( PREFS->pnl_list_tab != NULL ) gtk_stack_set_visible_child_name (GTK_STACK(data->stack), PREFS->pnl_list_tab); //todo: move this elsewhere DB( g_print(" - setup stuff\n") ); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(data->MI_showtbar), PREFS->wal_toolbar); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(data->MI_showtotchart), PREFS->wal_totchart); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(data->MI_showtimchart), PREFS->wal_timchart); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(data->MI_showbotlist), PREFS->wal_upcoming); /* Drag and drop support, set targets to NULL because we add the default uri_targets below */ /* support for opening a file by dragging onto the project window */ gtk_drag_dest_set (GTK_WIDGET (window), GTK_DEST_DEFAULT_ALL, drop_types, G_N_ELEMENTS (drop_types), GDK_ACTION_COPY); g_signal_connect (G_OBJECT (window), "drag-data-received", G_CALLBACK (ui_wallet_window_drag_data_received), window); //connect all our signals DB( g_print(" - connect signals\n") ); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_acc)), "changed", G_CALLBACK (ui_wallet_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_acc ), "row-activated", G_CALLBACK (ui_wallet_onRowActivated), GINT_TO_POINTER(2)); /* GtkWindow events */ g_signal_connect (window, "destroy", G_CALLBACK (ui_wallet_window_destroy), NULL); g_signal_connect (window, "delete-event", G_CALLBACK (ui_wallet_window_dispose), (gpointer)data); g_signal_connect (window, "configure-event", G_CALLBACK (ui_wallet_window_getgeometry), (gpointer)data); //menu signals g_signal_connect (data->MI_new , "activate", G_CALLBACK (ui_wallet_action_new), (gpointer)data); g_signal_connect (data->MI_open , "activate", G_CALLBACK (ui_wallet_action_open), (gpointer)data); g_signal_connect (data->MI_save , "activate", G_CALLBACK (ui_wallet_action_save), (gpointer)data); g_signal_connect (data->MI_saveas , "activate", G_CALLBACK (ui_wallet_action_saveas), (gpointer)data); g_signal_connect (data->MI_import , "activate", G_CALLBACK (ui_wallet_action_import), (gpointer)data); g_signal_connect (data->MI_exportqif , "activate", G_CALLBACK (ui_wallet_action_export), (gpointer)data); g_signal_connect (data->MI_revert , "activate", G_CALLBACK (ui_wallet_action_revert), (gpointer)data); g_signal_connect (data->MI_openbak , "activate", G_CALLBACK (ui_wallet_action_openbak), (gpointer)data); g_signal_connect (data->MI_properties , "activate", G_CALLBACK (ui_wallet_action_properties), (gpointer)data); g_signal_connect (data->MI_close , "activate", G_CALLBACK (ui_wallet_action_close), (gpointer)data); g_signal_connect (data->MI_quit , "activate", G_CALLBACK (ui_wallet_action_quit), (gpointer)data); g_signal_connect (data->MI_prefs , "activate", G_CALLBACK (ui_wallet_action_preferences), (gpointer)data); g_signal_connect (data->MI_showtbar , "toggled", G_CALLBACK (ui_wallet_action_toggle_toolbar), (gpointer)data); g_signal_connect (data->MI_showtotchart , "toggled", G_CALLBACK (ui_wallet_action_toggle_totchart), (gpointer)data); g_signal_connect (data->MI_showtimchart , "toggled", G_CALLBACK (ui_wallet_action_toggle_timchart), (gpointer)data); g_signal_connect (data->MI_showbotlist , "toggled", G_CALLBACK (ui_wallet_action_toggle_upcoming), (gpointer)data); g_signal_connect (data->MI_eurominor , "toggled", G_CALLBACK (ui_wallet_action_toggle_minor), (gpointer)data); g_signal_connect (data->MI_manwal , "activate", G_CALLBACK (ui_wallet_action_properties), (gpointer)data); g_signal_connect (data->MI_manacc , "activate", G_CALLBACK (ui_wallet_action_defaccount), (gpointer)data); g_signal_connect (data->MI_manpay , "activate", G_CALLBACK (ui_wallet_action_defpayee), (gpointer)data); g_signal_connect (data->MI_mancat , "activate", G_CALLBACK (ui_wallet_action_defcategory), (gpointer)data); g_signal_connect (data->MI_mantpl , "activate", G_CALLBACK (ui_wallet_action_defarchive), (gpointer)data); g_signal_connect (data->MI_manbud , "activate", G_CALLBACK (ui_wallet_action_defbudget), (gpointer)data); g_signal_connect (data->MI_manbudtable , "activate", G_CALLBACK (ui_wallet_action_defbudgettable), (gpointer)data); g_signal_connect (data->MI_manasg , "activate", G_CALLBACK (ui_wallet_action_defassign), (gpointer)data); g_signal_connect (data->MI_mancur , "activate", G_CALLBACK (ui_wallet_action_defcurrency), (gpointer)data); g_signal_connect (data->MI_mantag , "activate", G_CALLBACK (ui_wallet_action_deftag), (gpointer)data); g_signal_connect (data->MI_txnadd , "activate", G_CALLBACK (ui_wallet_action_addtransactions), (gpointer)data); g_signal_connect (data->MI_txnshow , "activate", G_CALLBACK (ui_wallet_action_showtransactions), (gpointer)data); g_signal_connect (data->MI_txnshowall , "activate", G_CALLBACK (ui_wallet_action_showalltransactions), (gpointer)data); g_signal_connect (data->MI_scheduler , "activate", G_CALLBACK (ui_wallet_action_properties), (gpointer)data); g_signal_connect (data->MI_addscheduled , "activate", G_CALLBACK (ui_wallet_action_checkscheduled), (gpointer)data); g_signal_connect (data->MI_repstat , "activate", G_CALLBACK (ui_wallet_action_statistic), (gpointer)data); g_signal_connect (data->MI_reptime , "activate", G_CALLBACK (ui_wallet_action_trendtime), (gpointer)data); g_signal_connect (data->MI_repbal , "activate", G_CALLBACK (ui_wallet_action_balance), (gpointer)data); g_signal_connect (data->MI_repbudg , "activate", G_CALLBACK (ui_wallet_action_budget), (gpointer)data); g_signal_connect (data->MI_repvehi , "activate", G_CALLBACK (ui_wallet_action_vehiclecost), (gpointer)data); g_signal_connect (data->MI_welcome , "activate", G_CALLBACK (ui_wallet_action_help_welcome), (gpointer)data); g_signal_connect (data->MI_filestats , "activate", G_CALLBACK (ui_wallet_action_file_statistics), (gpointer)data); g_signal_connect (data->MI_anonymise , "activate", G_CALLBACK (ui_wallet_action_anonymize), (gpointer)data); g_signal_connect (data->MI_contents , "activate", G_CALLBACK (ui_wallet_action_help), (gpointer)data); g_signal_connect (data->MI_online , "activate", G_CALLBACK (ui_wallet_action_help_online), (gpointer)data); g_signal_connect (data->MI_updates , "activate", G_CALLBACK (ui_wallet_action_help_updates), (gpointer)data); g_signal_connect (data->MI_relnote , "activate", G_CALLBACK (ui_wallet_action_help_releasenotes), (gpointer)data); g_signal_connect (data->MI_problem , "activate", G_CALLBACK (ui_wallet_action_help_problem), (gpointer)data); g_signal_connect (data->MI_translate , "activate", G_CALLBACK (ui_wallet_action_help_translate), (gpointer)data); g_signal_connect (data->MI_about , "activate", G_CALLBACK (ui_wallet_action_about), (gpointer)data); //toolbar signals g_signal_connect (G_OBJECT (data->BT_new ), "clicked", G_CALLBACK (ui_wallet_action_new), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_open ), "clicked", G_CALLBACK (ui_wallet_action_open), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_save ), "clicked", G_CALLBACK (ui_wallet_action_save), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_manacc), "clicked", G_CALLBACK (ui_wallet_action_defaccount), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_manpay), "clicked", G_CALLBACK (ui_wallet_action_defpayee), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_mancat), "clicked", G_CALLBACK (ui_wallet_action_defcategory), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_mantpl), "clicked", G_CALLBACK (ui_wallet_action_defarchive), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_manbud), "clicked", G_CALLBACK (ui_wallet_action_defbudgettable), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_manasg), "clicked", G_CALLBACK (ui_wallet_action_defassign), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_txnshow), "clicked", G_CALLBACK (ui_wallet_action_showtransactions), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_txnadd), "clicked", G_CALLBACK (ui_wallet_action_addtransactions), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_repstat), "clicked", G_CALLBACK (ui_wallet_action_statistic), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_reptime), "clicked", G_CALLBACK (ui_wallet_action_trendtime), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_repbal ), "clicked", G_CALLBACK (ui_wallet_action_balance), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_repbudg), "clicked", G_CALLBACK (ui_wallet_action_budget), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_repvehi), "clicked", G_CALLBACK (ui_wallet_action_vehiclecost), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_help ), "clicked", G_CALLBACK (ui_wallet_action_help_online), (gpointer)data); g_signal_connect (G_OBJECT (data->BT_donate), "clicked", G_CALLBACK (ui_wallet_action_help_donate), (gpointer)data); return window; } homebank-5.9.1/src/ui-archive.c0000644000175000017500000010654415005624436012001 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-archive.h" #include "ui-account.h" #include "ui-category.h" #include "ui-payee.h" #include "ui-txn-split.h" #include "ui-tag.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "list-scheduled.h" #include "gtk-dateentry.h" #include "hbtk-switcher.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern char *CYA_ARC_FREQ[]; extern HbKvData CYA_ARC_ORDINAL[]; extern HbKvData CYA_ARC_WEEKDAY[]; extern HbKvData CYA_ARC_WEEKEND[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void ui_arc_listview_select_by_pointer(GtkTreeView *treeview, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; GtkTreeSelection *selection; gboolean valid; Archive *arc = user_data; model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { Archive *tmp_arc; gtk_tree_model_get (model, &iter, LST_DSPUPC_DATAS, &tmp_arc, -1); if( arc == tmp_arc ) { gtk_tree_selection_select_iter (selection, &iter); break; } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } } static void ui_arc_manage_update(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; Archive *arc; gboolean selected, recurring, sensitive; DB( g_print("\n[ui-scheduled] update\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &model, &iter); DB( g_print(" toolbutton sensitive\n") ); sensitive = selected; gtk_widget_set_sensitive(data->BT_edit, sensitive); gtk_widget_set_sensitive(data->BT_rem, sensitive); gtk_widget_set_sensitive(data->BT_dup, sensitive); gtk_widget_set_sensitive(data->BT_schedule, sensitive); gtk_widget_set_sensitive(data->IM_wrnwe, sensitive); gtk_widget_set_sensitive(data->SW_recurrent, sensitive); DB( g_print(" scheduled popover sensitive\n") ); recurring = FALSE; if(selected) { gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arc, -1); if( arc->rec_flags & TF_RECUR ) recurring = TRUE; } gtk_widget_set_sensitive(data->GR_recurrent, recurring); gtk_widget_set_sensitive(data->SW_recurrent, TRUE); gtk_widget_set_sensitive(data->LB_next, recurring); gtk_widget_set_sensitive(data->PO_next, recurring); if(recurring == TRUE) { sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_relative)); DB( g_print(" relative = %d (recu=%d cm=%d)\n", sensitive, recurring, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_relative))) ); gtk_widget_set_sensitive(data->LB_relative, sensitive); gtk_widget_set_sensitive(data->CY_ordinal, sensitive); gtk_widget_set_sensitive(data->CY_weekday, sensitive); //gint freq = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_rec_freq)); gint freq = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_rec_freq)); sensitive = (freq == AUTO_FREQ_MONTH) ? TRUE : FALSE; hb_widget_visible(data->CM_relative, sensitive); hb_widget_visible(data->LB_relative, sensitive); hb_widget_visible(data->CY_ordinal, sensitive); hb_widget_visible(data->CY_weekday, sensitive); //update freq label //#2108847 not translated gchar *txt = _(ui_arc_listview_get_freq_label(freq)); gtk_label_set_text(GTK_LABEL(data->LB_rec_every2), txt); sensitive = !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_relative)); gtk_widget_set_sensitive(data->LB_weekend, sensitive); gtk_widget_set_sensitive(data->CY_weekend, sensitive); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_limit)); gtk_widget_set_sensitive(data->NB_limit, sensitive); gtk_widget_set_sensitive(data->LB_posts, sensitive); } DB( g_print(" row changed\n") ); if(selected) { GtkTreePath *path; // redraw the row to display/hide the icon path = gtk_tree_model_get_path(model, &iter); gtk_tree_model_row_changed(model, path, &iter); gtk_tree_path_free (path); // gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_arc)); //gtk_widget_queue_draw (GTK_WIDGET(data->LV_arc)); } } static void ui_arc_manage_cb_check_weekend(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; gboolean visible; gint tmpwe; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //update weekend info tmpwe = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_weekend)); visible = FALSE; if( tmpwe==ARC_WEEKEND_BEFORE || tmpwe==ARC_WEEKEND_AFTER ) { guint32 tmpdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_next)); if( tmpdate != scheduled_get_txn_real_postdate(tmpdate, tmpwe) ) visible = TRUE; } DB( g_print(" warn weekend %d\n", visible) ); hb_widget_visible(data->IM_wrnwe, visible); } static void ui_arc_manage_cb_relative_changed(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; gint ordinal, nextwd, every; GDate date; guint32 nextdate = GLOBALS->today; DB( g_print("\n[ui-scheduled] cb relative changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); ordinal = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_ordinal)); nextwd = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_weekday)); every = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->NB_rec_every)); g_date_set_julian(&date, GLOBALS->today); nextdate = scheduled_date_get_next_relative(&date, ordinal, nextwd, every); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_next), nextdate); ui_arc_manage_update(widget, user_data); } static void ui_arc_manage_cb_schedule_changed(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; Archive *arcitem; GtkTreeModel *model; GtkTreeIter iter; gboolean selected, sensitive; DB( g_print("\n[ui-scheduled] cb schedule changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = FALSE; selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &model, &iter); if(selected) { gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arcitem, -1); arcitem->rec_flags &= ~(TF_RECUR); sensitive = gtk_switch_get_active(GTK_SWITCH(data->SW_recurrent)) ? TRUE : FALSE; if(sensitive) arcitem->rec_flags |= TF_RECUR; } ui_arc_manage_update(widget, user_data); } static void ui_arc_manage_populate_listview(struct ui_arc_manage_data *data) { GtkTreeModel *model; GtkTreeIter iter; GList *list; gchar *needle; gboolean hastext; gint i, typsch, typtpl; DB( g_print("\n[ui-scheduled] populate listview\n") ); typsch = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_typsch)); typtpl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_typtpl)); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_arc)); hastext = (gtk_entry_get_text_length (GTK_ENTRY(data->ST_search)) >= 2) ? TRUE : FALSE; needle = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_search)); DB( g_print(" typsch=%d / typtpl=%d\n", typsch, typtpl) ); gtk_list_store_clear (GTK_LIST_STORE(model)); g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_arc), NULL); /* Detach model from view */ i=0; list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *item = list->data; gboolean insert = FALSE; if( (typsch) && (item->rec_flags & TF_RECUR) ) insert = TRUE; if( (typtpl) && !(item->rec_flags & TF_RECUR) ) insert = TRUE; if( insert ) { gboolean qinsert = TRUE; if(hastext) { qinsert = filter_tpl_search_match(needle, item); } if( qinsert ) { gtk_list_store_insert_with_values (GTK_LIST_STORE(model), &iter, -1, LST_DSPUPC_DATAS, item, //data struct // LST_DEFARC_OLDPOS, i, //oldpos -1); } } //DB( g_print(" populate_treeview: %d %08x\n", i, list->data) ); i++; list = g_list_next(list); } gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_arc), model); /* Re-attach model to view */ g_object_unref(model); // gtk_tree_view_expand_all (GTK_TREE_VIEW(data->LV_arc)); } static void ui_arc_manage_cb_add_clicked(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; Archive *item; gint typsch, typtpl; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-scheduled] cb add\n") ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_arc)); GtkWidget *dialog; Transaction *new_txn = da_transaction_malloc(); gboolean result; dialog = create_deftransaction_window(GTK_WINDOW(data->dialog), TXN_DLG_ACTION_ADD, TXN_DLG_TYPE_TPL, 0); deftransaction_set_transaction(dialog, new_txn); result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == HB_RESPONSE_ADD) { deftransaction_get(dialog, NULL); item = da_archive_malloc(); //item->memo = g_strdup_printf(_("(template %d)"), g_list_length(GLOBALS->arc_list) + 1); da_archive_init_from_transaction(item, new_txn, FALSE); typsch = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_typsch)); typtpl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->BT_typtpl)); if( typsch && !typtpl ) item->rec_flags |= TF_RECUR; item->rec_every = 1; item->rec_freq = AUTO_FREQ_MONTH; item->nextdate = GLOBALS->today; //GLOBALS->arc_list = g_list_append(GLOBALS->arc_list, item); da_archive_append_new(item); DB( g_print(" kacc: '%d'\n", item->kacc) ); gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DSPUPC_DATAS, item, // LST_DEFARC_OLDPOS, 0, -1); gtk_tree_selection_select_iter (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &iter); data->change++; } deftransaction_dispose(dialog, NULL); gtk_window_destroy (GTK_WINDOW(dialog)); da_transaction_free(new_txn); } static void ui_arc_manage_cb_edit_clicked(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; gboolean selected; Archive *arcitem; GtkWidget *dialog; Transaction *new_txn = da_transaction_malloc(); gboolean result; DB( g_print("\n[ui-scheduled] cb edit\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &model, &iter); if(selected) { gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arcitem, -1); dialog = create_deftransaction_window(GTK_WINDOW(data->dialog), TXN_DLG_ACTION_EDIT, TXN_DLG_TYPE_TPL, 0); da_transaction_init_from_template(new_txn, arcitem); deftransaction_set_transaction(dialog, new_txn); result = gtk_dialog_run (GTK_DIALOG (dialog)); if(result == GTK_RESPONSE_ACCEPT) { deftransaction_get(dialog, NULL); da_archive_init_from_transaction(arcitem, new_txn, FALSE); //this redraw the row gtk_tree_selection_select_iter (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &iter); data->change++; } deftransaction_dispose(dialog, NULL); gtk_window_destroy (GTK_WINDOW(dialog)); da_transaction_free(new_txn); } } static void ui_arc_manage_cb_dup_clicked(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; Archive *arcitem, *newitem; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-scheduled] dup (data=%p)\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arcitem, -1); newitem = da_archive_clone(arcitem); if( newitem ) { if( da_archive_append(newitem) ) { gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, LST_DSPUPC_DATAS, newitem, // LST_DEFARC_OLDPOS, 0, -1); gtk_tree_selection_select_iter (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &iter); } } } } static void ui_arc_manage_cb_delete_clicked(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; Archive *item; gint result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-scheduled] cb delete (data=%p)\n", data) ); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)); //if true there is a selected node if (gtk_tree_selection_get_selected(selection, &model, &iter)) { gchar *title; gchar *secondtext; gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &item, -1); //5.7.4 check if template is used if( !(item->rec_flags & TF_RECUR) ) { if( template_is_account_used(item) == TRUE ) { ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_INFO, _("Template delete"), _("This template is used as an account template and cannot be deleted.") ); return; } } //#1940103 as memo can be null, use (no memo) instead title = g_strdup_printf ( _("Are you sure you want to permanently delete '%s'?"), item->memo != NULL ? item->memo : _("(no memo)") ); secondtext = _("If you delete a scheduled/template, it will be permanently lost."); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Delete"), TRUE ); g_free(title); if( result == GTK_RESPONSE_OK ) { gtk_list_store_remove(GTK_LIST_STORE(model), &iter); GLOBALS->arc_list = g_list_remove(GLOBALS->arc_list, item); data->change++; } //DB( g_print(" delete =%08x (pos=%d)\n", entry, g_list_index(data->tmp_list, entry) ) ); } } static void ui_arc_manage_set(GtkWidget *widget, gpointer user_data) { struct ui_arc_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; Archive *item; DB( g_print("\n[ui-scheduled] set popover\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &item, -1); g_signal_handlers_block_by_func (G_OBJECT (data->PO_next), G_CALLBACK (ui_arc_manage_cb_check_weekend), NULL); g_signal_handlers_block_by_func (G_OBJECT (data->CY_weekend), G_CALLBACK (ui_arc_manage_cb_check_weekend), NULL); g_signal_handlers_block_by_func (G_OBJECT (data->SW_recurrent ), G_CALLBACK (ui_arc_manage_cb_schedule_changed), NULL); g_signal_handlers_block_by_func (G_OBJECT (data->CM_limit), G_CALLBACK (ui_arc_manage_cb_schedule_changed), NULL); gtk_switch_set_active(GTK_SWITCH(data->SW_recurrent), (item->rec_flags & TF_RECUR) ? 1 : 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_rec_every), item->rec_every); //hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_rec_freq), item->rec_freq); hbtk_switcher_set_active(HBTK_SWITCHER(data->RA_rec_freq), item->rec_freq); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_next), item->nextdate); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_limit), (item->rec_flags & TF_LIMIT) ? 1 : 0); DB( g_print(" nb_limit = %d %g\n", item->limit, (gdouble)item->limit) ); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->NB_limit), (gdouble)item->limit); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_weekend), item->weekend); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_relative), (item->rec_flags & TF_RELATIVE) ? 1 : 0); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_ordinal), item->rec_ordinal); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_weekday), item->rec_weekday); g_signal_handlers_unblock_by_func (G_OBJECT (data->CM_limit), G_CALLBACK (ui_arc_manage_cb_schedule_changed), NULL); g_signal_handlers_unblock_by_func (G_OBJECT (data->SW_recurrent ), G_CALLBACK (ui_arc_manage_cb_schedule_changed), NULL); g_signal_handlers_unblock_by_func (G_OBJECT (data->CY_weekend ), G_CALLBACK (ui_arc_manage_cb_check_weekend), NULL); g_signal_handlers_unblock_by_func (G_OBJECT (data->PO_next ), G_CALLBACK (ui_arc_manage_cb_check_weekend), NULL); } } static void ui_arc_manage_getlast(struct ui_arc_manage_data *data) { GtkTreeModel *model; GtkTreeIter iter; Archive *item; gboolean active; DB( g_print("\n[ui-scheduled] getlast\n") ); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &model, &iter)) { gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &item, -1); //#1863484: reset flag to enable remove auto and limit :) item->rec_flags &= ~(TF_RECUR|TF_LIMIT|TF_RELATIVE); active = gtk_switch_get_active(GTK_SWITCH(data->SW_recurrent)); if(active == 1) item->rec_flags |= TF_RECUR; gtk_spin_button_update(GTK_SPIN_BUTTON(data->NB_rec_every)); item->rec_every = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->NB_rec_every)); //item->rec_freq = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_rec_freq)); item->rec_freq = hbtk_switcher_get_active(HBTK_SWITCHER(data->RA_rec_freq)); item->nextdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_next)); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_limit)); if(active == 1) item->rec_flags |= TF_LIMIT; gtk_spin_button_update(GTK_SPIN_BUTTON(data->NB_limit)); item->limit = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->NB_limit)); item->weekend = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_weekend)); active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_relative)); if(active == 1) item->rec_flags |= TF_RELATIVE; item->rec_ordinal = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_ordinal)); item->rec_weekday = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_weekday)); //#1906953 add skip weekend scheduled_nextdate_weekend_adjust(item); data->change++; } } static void ui_arc_manage_cb_popover_closed(GtkWidget *popover, gpointer user_data) { struct ui_arc_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; gboolean selected; DB( g_print("\n[ui-scheduled] cb popover closed\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(popover, GTK_TYPE_WINDOW)), "inst_data"); data = user_data; /* redraw the row to display/hide the icon */ selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &model, &iter); if(selected) { ui_arc_manage_getlast(data); path = gtk_tree_model_get_path(model, &iter); #if MYDEBUG == 1 gchar *spath = gtk_tree_path_to_string(path); g_print(" selected '%s'\n", spath); g_free(spath); #endif gtk_tree_model_row_changed(model, path, &iter); gtk_tree_path_free (path); } } static gboolean ui_arc_manage_cb_on_key_press(GtkWidget *source, GdkEvent *event, gpointer user_data) { struct ui_arc_manage_data *data = user_data; GdkModifierType state; guint keyval; gdk_event_get_state (event, &state); gdk_event_get_keyval(event, &keyval); // On Control-f enable search entry if (state & GDK_CONTROL_MASK && keyval == GDK_KEY_f) { gtk_widget_grab_focus(data->ST_search); } else if (keyval == GDK_KEY_Escape && gtk_widget_has_focus(data->ST_search)) { hbtk_entry_set_text(GTK_ENTRY(data->ST_search), NULL); gtk_widget_grab_focus(data->LV_arc); return TRUE; } return GDK_EVENT_PROPAGATE; } static void ui_arc_manage_cb_selection_changed(GtkTreeSelection *treeselection, gpointer user_data) { struct ui_arc_manage_data *data; GtkWidget *treeview; GtkTreeModel *model; GtkTreeIter iter; gboolean selected; Archive *arcitem; DB( g_print("\n[ui-scheduled] selection\n") ); treeview = (GtkWidget *)gtk_tree_selection_get_tree_view (treeselection); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(treeview, GTK_TYPE_WINDOW)), "inst_data"); selected = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), &model, &iter); DB( g_print(" a row is selected = %d\n", selected) ); if(selected) { gtk_tree_model_get(model, &iter, LST_DSPUPC_DATAS, &arcitem, -1); ui_arc_manage_set(treeview, NULL); } ui_arc_manage_cb_check_weekend(GTK_WIDGET(treeview), NULL); ui_arc_manage_update(GTK_WIDGET(treeview), NULL); } static void ui_arc_manage_cb_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { ui_arc_manage_cb_edit_clicked(GTK_WIDGET(treeview), userdata); } static void ui_arc_manage_cb_flttype_changed (GtkToggleButton *button, gpointer user_data) { ui_arc_manage_populate_listview(user_data); //g_print(" toggle type=%d\n", gtk_toggle_button_get_active(button)); } static gboolean ui_arc_manage_cleanup(struct ui_arc_manage_data *data, gint result) { gboolean doupdate = FALSE; DB( g_print("\n[ui-scheduled] cleanup\n") ); da_archive_glist_sorted(HB_GLIST_SORT_NAME); GLOBALS->changes_count += data->change; return doupdate; } static void ui_arc_manage_setup(struct ui_arc_manage_data *data) { DB( g_print("\n[ui-scheduled] setup\n") ); DB( g_print(" init data\n") ); //init GList data->tmp_list = NULL; //hb-glist_clone_list(GLOBALS->arc_list, sizeof(struct _Archive)); data->change = 0; DB( g_print(" set widgets default\n") ); //hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_rec_freq), AUTO_FREQ_MONTH); hbtk_switcher_set_active(HBTK_SWITCHER(data->RA_rec_freq), AUTO_FREQ_MONTH); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->BT_typsch), TRUE); DB( g_print(" populate\n") ); ui_arc_manage_populate_listview(data); DB( g_print(" connect widgets signals\n") ); g_signal_connect (data->BT_typsch, "toggled", G_CALLBACK (ui_arc_manage_cb_flttype_changed), data); g_signal_connect (data->BT_typtpl, "toggled", G_CALLBACK (ui_arc_manage_cb_flttype_changed), data); //#1999297 seems to crash because of internal gtk search //gtk_tree_view_set_search_entry(GTK_TREE_VIEW(data->LV_arc), GTK_ENTRY(data->ST_search)); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(data->LV_arc), FALSE); g_signal_connect (data->ST_search, "search-changed", G_CALLBACK (ui_arc_manage_cb_flttype_changed), data); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_arc)), "changed", G_CALLBACK (ui_arc_manage_cb_selection_changed), NULL); g_signal_connect (data->LV_arc, "row-activated", G_CALLBACK (ui_arc_manage_cb_row_activated), NULL); g_signal_connect (data->BT_add , "clicked", G_CALLBACK (ui_arc_manage_cb_add_clicked), NULL); g_signal_connect (data->BT_rem , "clicked", G_CALLBACK (ui_arc_manage_cb_delete_clicked), NULL); g_signal_connect (data->BT_edit, "clicked", G_CALLBACK (ui_arc_manage_cb_edit_clicked), NULL); g_signal_connect (data->BT_dup , "clicked", G_CALLBACK (ui_arc_manage_cb_dup_clicked), NULL); //popover g_signal_connect (data->PO_recurrent, "closed", G_CALLBACK (ui_arc_manage_cb_popover_closed), data); g_signal_connect (data->SW_recurrent, "notify::active", G_CALLBACK (ui_arc_manage_cb_schedule_changed), NULL); g_signal_connect (data->PO_next, "changed", G_CALLBACK (ui_arc_manage_cb_check_weekend), NULL); g_signal_connect (data->RA_rec_freq, "changed", G_CALLBACK (ui_arc_manage_cb_schedule_changed), NULL); g_signal_connect (data->CM_relative, "toggled", G_CALLBACK (ui_arc_manage_cb_relative_changed), NULL); g_signal_connect (data->CY_ordinal, "changed", G_CALLBACK (ui_arc_manage_cb_relative_changed), NULL); g_signal_connect (data->CY_weekday, "changed", G_CALLBACK (ui_arc_manage_cb_relative_changed), NULL); g_signal_connect (data->CY_weekend, "changed", G_CALLBACK (ui_arc_manage_cb_check_weekend), NULL); g_signal_connect (data->CM_limit, "toggled", G_CALLBACK (ui_arc_manage_cb_schedule_changed), NULL); if(data->ext_arc != NULL) ui_arc_listview_select_by_pointer(GTK_TREE_VIEW(data->LV_arc), data->ext_arc); } static gboolean ui_arc_manage_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct ui_arc_manage_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[ui-scheduled] mapped\n") ); ui_arc_manage_setup(data); ui_arc_manage_update(data->LV_arc, NULL); //gtk_widget_grab_focus(GTK_WIDGET(data->LV_arc)); data->mapped_done = TRUE; return FALSE; } static GtkWidget * ui_arc_manage_create_scheduling(struct ui_arc_manage_data *data) { GtkWidget *content, *group_grid, *hbox, *vbox, *expander, *label, *widget; gint row; content = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (content), hbox); //on/off switch widget = gtk_switch_new(); data->SW_recurrent = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_widget_set_valign(widget, GTK_ALIGN_CENTER); gtk_box_prepend (GTK_BOX (hbox), widget); widget = gtk_date_entry_new(NULL); data->PO_next = widget; gtk_box_append (GTK_BOX (hbox), widget); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_WARNING); gtk_widget_set_tooltip_text(widget, _("The post date will be shifted outside of the weekend")); data->IM_wrnwe = widget; gtk_box_append (GTK_BOX (hbox), widget); label = gtk_label_new_with_mnemonic (_("Next _date:")); data->LB_next = label; gtk_box_append (GTK_BOX (hbox), label); vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL); data->GR_recurrent = vbox; gtk_box_prepend (GTK_BOX (content), vbox); label = make_label_group(_("Recurrence pattern")); gtk_box_prepend (GTK_BOX (vbox), label); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_box_prepend (GTK_BOX (vbox), hbox); widget = hbtk_switcher_new(GTK_ORIENTATION_VERTICAL); data->RA_rec_freq = widget; hbtk_switcher_setup(HBTK_SWITCHER(widget), CYA_ARC_FREQ, FALSE); gtk_box_prepend (GTK_BOX (hbox), widget); widget = gtk_separator_new(GTK_ORIENTATION_VERTICAL); gtk_box_prepend (GTK_BOX (hbox), widget); // group :: Scheduled insertion group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (hbox), group_grid); row = 0; label = make_label_widget(_("Ever_y:")); data->LB_rec_every = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 1, 1); widget = make_numeric(label, 1, 100); data->NB_rec_every = widget; gtk_box_prepend (GTK_BOX (hbox), widget); label = gtk_label_new(NULL); data->LB_rec_every2 = label; //gtk_widget_set_hexpand(label, TRUE); gtk_box_prepend (GTK_BOX (hbox), label); row++; hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_widget_set_halign(hbox, GTK_ALIGN_START); gtk_grid_attach (GTK_GRID (group_grid), hbox, 0, row, 1, 1); widget = gtk_check_button_new(); data->CM_relative = widget; gtk_box_prepend (GTK_BOX (hbox), widget); label = make_label_widget(_("The")); data->LB_relative = label; gtk_box_prepend (GTK_BOX (hbox), label); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_widget_set_halign(hbox, GTK_ALIGN_START); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_ARC_ORDINAL); data->CY_ordinal = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = hbtk_combo_box_new_with_data(label, CYA_ARC_WEEKDAY); data->CY_weekday = widget; gtk_box_prepend (GTK_BOX (hbox), widget); row++; expander = gtk_expander_new_with_mnemonic(_("More options")); data->EX_options = expander; gtk_grid_attach (GTK_GRID (group_grid), expander, 0, row, 2, 1); //gtk_box_prepend (GTK_BOX (content), expander); // group :: Scheduled insertion group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(group_grid), SPACING_SMALL); gtk_expander_set_child (GTK_EXPANDER(expander), group_grid); row++; label = make_label_widget(_("Week end:")); data->LB_weekend = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_ARC_WEEKEND); gtk_widget_set_hexpand(widget, FALSE); data->CY_weekend = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1); row++; label = make_label_widget(_("_Stop after:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (group_grid), hbox, 1, row, 1, 1); widget = gtk_check_button_new(); data->CM_limit = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = make_numeric(label, 1, 366); data->NB_limit = widget; hbtk_box_prepend (GTK_BOX (hbox), widget); label = gtk_label_new_with_mnemonic (_("posts")); data->LB_posts = label; gtk_box_prepend (GTK_BOX (hbox), label); gtk_widget_show_all(content); return content; } GtkWidget * ui_arc_manage_dialog (Archive *ext_arc) { struct ui_arc_manage_data *data; GtkWidget *dialog, *content_area, *bbox, *hbox, *vbox, *tbar; GtkWidget *box, *treeview, *scrollwin; GtkWidget *widget, *content, *menubutton, *image, *label; gint w, h, dw, dh; DB( g_print("\n[ui-scheduled] dialog\n") ); data = g_malloc0(sizeof(struct ui_arc_manage_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Manage scheduled/template transactions"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; data->ext_arc = ext_arc; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 3:2 dw = (dh * 3) / 2; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our dialog private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); //dialog content content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox content = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_MEDIUM); hb_widget_set_margin(GTK_WIDGET(content), SPACING_LARGE); hbtk_box_prepend (GTK_BOX (content_area), content); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (content), hbox); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (hbox), box); widget = gtk_toggle_button_new_with_label(_("Scheduled")); data->BT_typsch = widget; gtk_box_prepend (GTK_BOX (box), widget); widget = gtk_toggle_button_new_with_label(_("Template")); data->BT_typtpl = widget; gtk_box_prepend (GTK_BOX (box), widget); widget = make_search (); data->ST_search = widget; gtk_widget_set_size_request(widget, HB_MINWIDTH_SEARCH, -1); gtk_widget_set_halign(widget, GTK_ALIGN_END); gtk_box_prepend (GTK_BOX (hbox), widget); // list + toolbar vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hbtk_box_prepend (GTK_BOX (content), vbox); // listview scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); //#1970509 enable hscrollbar //gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); treeview = (GtkWidget *)ui_arc_listview_widget_new(); data->LV_arc = treeview; gtk_widget_set_size_request(treeview, HB_MINWIDTH_LIST, -1); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); hbtk_box_prepend (GTK_BOX (vbox), scrollwin); tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_LIST_ADD, _("Add")); data->BT_add = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_DELETE, _("Delete")); data->BT_rem = widget; gtk_box_prepend(GTK_BOX(bbox), widget); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_prepend (GTK_BOX (tbar), bbox); //widget = gtk_button_new_with_mnemonic(_("_Edit")); widget = make_image_button(ICONNAME_LIST_EDIT, _("Edit")); data->BT_edit = widget; gtk_box_prepend(GTK_BOX(bbox), widget); widget = make_image_button(ICONNAME_LIST_DUPLICATE, _("Duplicate")); data->BT_dup = widget; gtk_box_prepend(GTK_BOX(bbox), widget); //schedule button menubutton = gtk_menu_button_new (); data->BT_schedule = menubutton; gtk_menu_button_set_direction (GTK_MENU_BUTTON(menubutton), GTK_ARROW_DOWN ); gtk_widget_set_halign (menubutton, GTK_ALIGN_END); //gtk_widget_set_hexpand (menubutton, TRUE); gtk_widget_show_all(menubutton); gtk_box_prepend(GTK_BOX(bbox), menubutton); box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); label = gtk_label_new_with_mnemonic (_("_Schedule")); gtk_box_prepend (GTK_BOX(box), label); image = hbtk_image_new_from_icon_name_16 ("pan-down-symbolic"); gtk_box_prepend (GTK_BOX(box), image); gtk_container_add(GTK_CONTAINER(menubutton), box); GtkWidget *template = ui_arc_manage_create_scheduling(data); GtkWidget *popover = create_popover (menubutton, template, GTK_POS_TOP); data->PO_recurrent = popover; gtk_menu_button_set_popover(GTK_MENU_BUTTON(menubutton), popover); // connect dialog signals g_signal_connect (dialog, "map-event", G_CALLBACK (ui_arc_manage_mapped), &dialog); g_signal_connect (dialog, "key-press-event", G_CALLBACK (ui_arc_manage_cb_on_key_press), (gpointer)data); ui_arc_listview_widget_columns_order_load(GTK_TREE_VIEW(data->LV_arc)); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all(content); gtk_widget_show (dialog); // wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); ui_arc_listview_widget_columns_order_save(GTK_TREE_VIEW(data->LV_arc)); // cleanup and destroy ui_arc_manage_cleanup(data, result); gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/src/icon-names.h0000664000175000017500000001662514736464104012011 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* -------- named icons (Standard Icon Name) -------- */ //obsolete, as since since gtk3.10 : no more icons for dialogs and menu /* #define ICONNAME_SAVE_AS "document-save-as" //obsolete #define ICONNAME_REVERT "document-revert" //obsolete #define ICONNAME_PROPERTIES "document-properties" //obsolete #define ICONNAME_CLOSE "window-close" //obsolete #define ICONNAME_QUIT "application-exit" //obsolete #define ICONNAME_HELP "help-browser" //obsolete #define ICONNAME_ABOUT "help-about" //obsolete #define ICONNAME_PREFERENCES "preferences-system" //obsolete */ //#define ICONNAME_FIND "edit-find" //unused //#define ICONNAME_CLEAR "edit-clear" //unused //#define ICONNAME_HB_SCHED_SKIP "media-skip-forward" //#define ICONNAME_HB_SCHED_POST "media-playback-start" //in 5.2 no themeable icon to keep a consistent iconset #define ICONNAME_WARNING "dialog-warning" #define ICONNAME_ERROR "dialog-error" #define ICONNAME_INFO "dialog-information" #define ICONNAME_FOLDER "folder-symbolic" #define ICONNAME_EMBLEM_OK "emblem-ok-symbolic" #define ICONNAME_EMBLEM_SYSTEM "emblem-system-symbolic" #define ICONNAME_WINDOW_CLOSE "window-close-symbolic" #define ICONNAME_LIST_ADD "list-add-symbolic" #define ICONNAME_LIST_EDIT "document-edit-symbolic" #define ICONNAME_LIST_DUPLICATE "list-duplicate-symbolic" #define ICONNAME_LIST_DELETE "list-remove-symbolic" #define ICONNAME_LIST_DELETE_ALL "list-remove-all-symbolic" #define ICONNAME_LIST_MOVE_UP "hb-go-up-symbolic" #define ICONNAME_LIST_MOVE_DOWN "hb-go-down-symbolic" #define ICONNAME_LIST_MOVE_AFTER "list-move-after-symbolic" #define ICONNAME_SYSTEM_SEARCH "system-search-symbolic" // custom or gnome not found #define ICONNAME_HB_BUTTON_MENU "open-menu-symbolic" #define ICONNAME_HB_BUTTON_BROWSER "open-in-browser-symbolic" #define ICONNAME_HB_BUTTON_COLLAPSE "list-collapse-all-symbolic" #define ICONNAME_HB_BUTTON_EXPAND "list-expand-all-symbolic" #define ICONNAME_HB_BUTTON_SPLIT "edit-split-symbolic" #define ICONNAME_HB_BUTTON_DELETE "edit-delete-symbolic" #define ICONNAME_HB_TOGGLE_SIGN "toggle-sign-symbolic" #define ICONNAME_HB_LIST_MERGE "list-merge-symbolic" #define ICONNAME_HB_BUTTON_HIDE "eye-not-looking-symbolic" #define ICONNAME_HB_BUTTON_USAGE "data-usage-symbolic" #define ICONNAME_HB_TEXT_CASE "text-casesensitive-symbolic" #define ICONNAME_HB_TEXT_REGEX "text-regularexpression-symbolic" /* -------- named icons (Custom to homebank) -------- */ #define ICONNAME_HB_CURRENCY "hb-currency" #define ICONNAME_HB_ACCOUNT "hb-account" #define ICONNAME_HB_ARCHIVE "hb-archive" #define ICONNAME_HB_ASSIGN "hb-assign" #define ICONNAME_HB_BUDGET "hb-budget" #define ICONNAME_HB_CATEGORY "hb-category" #define ICONNAME_HB_PAYEE "hb-payee" #define ICONNAME_HB_OPE_SHOW "hb-ope-show" //? "view-register #define ICONNAME_HB_OPE_FUTURE "hb-ope-future" #define ICONNAME_HB_REP_STATS "hb-rep-stats" #define ICONNAME_HB_REP_TIME "hb-rep-time" #define ICONNAME_HB_REP_BALANCE "hb-rep-balance" #define ICONNAME_HB_REP_BUDGET "hb-rep-budget" #define ICONNAME_HB_REP_CAR "hb-rep-vehicle" #define ICONNAME_HB_HELP "hb-help" #define ICONNAME_HB_DONATE "hb-donate" #define ICONNAME_HB_VIEW_LIST "hb-view-list" //"view-list-text" #define ICONNAME_HB_VIEW_BAR "hb-view-bar" //"view-chart-bar" #define ICONNAME_HB_VIEW_COLUMN "hb-view-column" //"view-chart-column" #define ICONNAME_HB_VIEW_LINE "hb-view-line" //"view-chart-line" #define ICONNAME_HB_VIEW_PROGRESS "hb-view-progress" //"view-chart-progress" #define ICONNAME_HB_VIEW_PIE "hb-view-pie" //"view-chart-pie" #define ICONNAME_HB_VIEW_DONUT "hb-view-donut" //"view-chart-donut" #define ICONNAME_HB_VIEW_STACK "hb-view-stack" //"view-chart-stack" #define ICONNAME_HB_VIEW_STACK100 "hb-view-stack100" //"view-chart-stack100" #define ICONNAME_HB_SHOW_LEGEND "hb-legend" //"view-legend" #define ICONNAME_HB_SHOW_RATE "hb-rate" // obsolete ? #define ICONNAME_HB_REFRESH "hb-view-refresh" //"view-refresh" #define ICONNAME_HB_FILTER "hb-filter" //"edit-filter" #define ICONNAME_HB_CLEAR "hb-clear" //"edit-clear" #define ICONNAME_HB_LIFEENERGY "hb-life-energy" #define ICONNAME_CHANGES_PREVENT "hb-changes-prevent" #define ICONNAME_CHANGES_ALLOW "hb-changes-allow" #define ICONNAME_HB_QUICKTIPS "hb-quicktips" //quick help tips #define ICONNAME_HB_FILE_NEW "hb-document-new" //document-new #define ICONNAME_HB_FILE_OPEN "hb-document-open" //document-open #define ICONNAME_HB_FILE_SAVE "hb-document-save" //document-save #define ICONNAME_HB_FILE_IMPORT "hb-file-import" //document-import #define ICONNAME_HB_FILE_EXPORT "hb-file-export" //document-export #define ICONNAME_HB_FILE_VALID "hb-file-valid" #define ICONNAME_HB_FILE_INVALID "hb-file-invalid" #define ICONNAME_HB_PRINT "hb-document-print" #define ICONNAME_HB_OPE_MOVUP "hb-go-up" #define ICONNAME_HB_OPE_MOVDW "hb-go-down" #define ICONNAME_HB_OPE_ADD "hb-ope-add" //? "edit-add" #define ICONNAME_HB_OPE_HERIT "hb-ope-herit" //? "edit-clone" #define ICONNAME_HB_OPE_EDIT "hb-ope-edit" // #define ICONNAME_HB_OPE_MULTIEDIT "hb-ope-multiedit" // #define ICONNAME_HB_OPE_CLEARED "hb-ope-cleared" #define ICONNAME_HB_OPE_RECONCILED "hb-ope-reconciled" #define ICONNAME_HB_OPE_DELETE "hb-ope-delete" //? "edit-delete" //#define ICONNAME_CONVERT "hb-ope-convert" // obsolete ? //#define ICONNAME_HB_ASSIGN_RUN "hb-assign-run" // obsolete ? /* -- status ope icons */ #define ICONNAME_HB_ITEM_CLEAR "hb-item-clear" #define ICONNAME_HB_ITEM_RECON "hb-item-recon" #define ICONNAME_HB_ITEM_RECONLOCK "hb-item-reconlock" #define ICONNAME_HB_ITEM_VOID "hb-item-void" /* -- listview icons -- */ //#define ICONNAME_HB_ITEM_NONE "hb-item-none" #define ICONNAME_HB_ITEM_CLOSED "hb-item-closed" #define ICONNAME_HB_ITEM_ADDED "hb-item-added" //"hb-ope-new" #define ICONNAME_HB_ITEM_EDITED "hb-item-edited" #define ICONNAME_HB_ITEM_AUTO "hb-item-auto" //"hb-ope-auto" //? #define ICONNAME_HB_ITEM_BUDGET "hb-item-budget" //"hb-ope-budget" //? #define ICONNAME_HB_ITEM_FORCED "hb-item-forced" //"hb-ope-forced" //? #define ICONNAME_HB_ITEM_REMIND "hb-item-remind" #define ICONNAME_HB_ITEM_SIMILAR "hb-item-similar" #define ICONNAME_HB_ITEM_PREFILLED "hb-item-prefilled" #define ICONNAME_HB_ITEM_FUTURE "hb-item-future" //5.9 #define ICONNAME_HB_ITEM_IMPORT "hb-item-import" #define ICONNAME_HB_ITEM_PAST "hb-item-pending" #define ICONNAME_HB_PM_INTXFER "hb-pm-intransfer" homebank-5.9.1/src/hb-misc.c0000644000175000017500000006746315003464734011276 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //nota: this file should be renamed hb-utils #include "homebank.h" #include "hb-misc.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static const gdouble fac[9] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000 }; double hb_amount_round(const gdouble d, guint digits) { gdouble out; //fixed 5.6 MIN, not MAX... + #1977796 digits = MIN(digits, 8); //initial formula //out = floor((d * fac[digits]) + 0.5) / fac[digits]; //#1977796 fix rounding -0.5 : +0.5... //out = round(d * fac[digits]) / fac[digits]; //#2018206 fix rounding -0.00... //out = ((long) (d < 0 ? (d * fac[digits]) - 0.5 : (d * fac[digits]) + 0.5)) / fac[digits]; //#2022049 overflow on windows cause compiled 32bits long is int32 4 bytes... out = ((gint64) (d < 0 ? (d * fac[digits]) - 0.5 : (d * fac[digits]) + 0.5)) / fac[digits]; //DB( g_print(" in:%17g out:%17g\n", d, out) ); return out; } // used to convert from national to euro currency // used in hb_account.c :: only when convert account to euro // round option is to 0.5 case so 1.32 is 1.3, but 1.35 is 1.4 gdouble hb_amount_to_euro(gdouble amount) { return hb_amount_round((amount * PREFS->euro_value), PREFS->minor_cur.frac_digits); } static gdouble hb_amount_minor(gdouble value, guint32 kcur) { Currency *cur = da_cur_get(kcur); gdouble monval = value; //g_print("\nminor :: %.2f kcur=%s, mceii:%d\n", value, cur->iso_code, PREFS->euro_mceii); //euro is major if(PREFS->euro_mceii == TRUE) { monval = hb_amount_base(value, kcur); monval = hb_amount_to_euro(monval); //g_print("> old behavior %.2f\n", monval); } //euro is futur major else { //not EUR if( strcmp("EUR", cur->iso_code) ) { monval = hb_amount_base(value, kcur); monval = hb_amount_to_euro(monval); //g_print("> convert base/eur %.2f\n", monval); } } return monval; } /* new >5.1 currency fct * * convert an amount in base currency * */ gdouble hb_amount_base(gdouble value, guint32 kcur) { gdouble newvalue; Currency *cur; if(kcur == GLOBALS->kcur) return value; cur = da_cur_get(kcur); if(cur == NULL || cur->rate == 0.0) return 0.0; newvalue = value / cur->rate; return hb_amount_round(newvalue, cur->frac_digits); } /* we have rate versus base curency */ /* only use in ui-txn */ gdouble hb_amount_convert(gdouble value, guint32 skcur, guint32 dkcur) { gdouble newvalue; Currency *cur; if( skcur == dkcur ) return value; /* we can't convert if no base currency as src or dst */ if( skcur != GLOBALS->kcur && dkcur != GLOBALS->kcur ) return 0.0; if(dkcur == GLOBALS->kcur) { cur = da_cur_get(skcur); if(cur == NULL || cur->rate == 0.0) return 0.0; newvalue = value / cur->rate; } if(skcur == GLOBALS->kcur) { cur = da_cur_get(dkcur); if(cur == NULL || cur->rate == 0.0) return 0.0; newvalue = value * cur->rate; } return hb_amount_round(newvalue, cur->frac_digits); } gboolean hb_amount_type_match(gdouble amount, gint type) { gboolean retval = TRUE; if( (type == TXN_TYPE_EXPENSE) && (amount > 0) ) retval = FALSE; if( (type == TXN_TYPE_INCOME ) && (amount < 0) ) retval = FALSE; return retval; } gboolean hb_amount_between(gdouble val, gdouble min, gdouble max) { gboolean retval = FALSE; if(val > 0.0) retval = (val >= min && val <= max); else if(val < 0.0) retval = (val <= min && val >= max); return retval; } // TODO: frac should be from currency // return -1 if val1 < val2 ; 0 if val1 = val2 ; 1 if val1 > val2 gint hb_amount_cmp(gdouble val1, gdouble val2) { if( hb_amount_round(val1, 2) < hb_amount_round(val2, 2)) return -1; if( hb_amount_round(val1, 2) == hb_amount_round(val2, 2)) return 0; return 1; } gint hb_amount_forced_sign(const gchar *txt) { gint retval = HB_AMT_SIGN_OFF; if( *txt == '+' ) { retval = HB_AMT_SIGN_INC; } else if( *txt == '-' ) { retval = HB_AMT_SIGN_EXP; } return retval; } static Currency *hb_strfmon_check(gchar *outstr, guint32 kcur) { Currency *cur = da_cur_get(kcur); if(cur == NULL) g_stpcpy(outstr, "nan"); return cur; } gdouble hb_rate(gdouble value, gdouble total) { return (total) ? ABS((value * 100 / total)) : 0.0; } gchar *hb_str_rate(gchar *outstr, gint outlen, gdouble rate) { gint count, i; gchar *p; count = g_snprintf(outstr, outlen, "%.6f", rate); //remove trailing 0 and decimal point p = &outstr[count-1]; for(i=count;i>0;i--) { if(*p == '0') *p = '\0'; else break; p--; } if(*p == '.' || *p == ',') *p = '\0'; return outstr; } /* this function copy a number 99999.99 at s into d and count * number of digits for integer part and decimal part */ static gchar * _strfnumcopycount(gchar *s, gchar *d, gchar *decchar, gint *plen, gint *pnbint, gint *pnbdec) { gint len=0, nbint=0, nbdec=0; // sign part if(*s == '-') { *d++ = *s++; len++; } // integer part while(*s != 0 && *s != '.') { *d++ = *s++; nbint++; len++; } // decimal separator if(*s == '.') { d = g_stpcpy(d, decchar); len++; s++; } // decimal part while(*s != 0) { *d++ = *s++; nbdec++; len++; } // end string | fill external count *d = 0; *plen = len; *pnbint = nbint; *pnbdec = nbdec; return d; } gchar *hb_str_formatd(gchar *outstr, gint outlen, gchar *buf1, Currency *cur, gboolean showsymbol) { gint len, nbd, nbi; gchar *s, *d, *tmp; d = tmp = outstr; if(showsymbol && cur->sym_prefix) { d = g_stpcpy (d, cur->symbol); *d++ = ' '; tmp = d; } d = _strfnumcopycount(buf1, d, cur->decimal_char, &len, &nbi, &nbd); if( cur->grouping_char != NULL && strlen(cur->grouping_char) > 0 ) { gint i, grpcnt; s = buf1; d = tmp; if(*s == '-') *d++ = *s++; grpcnt = 4 - nbi; for(i=0;igrouping_char); } grpcnt++; } if(nbd > 0) { d = g_stpcpy(d, cur->decimal_char); d = g_stpcpy(d, s+1); } *d = 0; } if(showsymbol && !cur->sym_prefix) { *d++ = ' '; d = g_stpcpy (d, cur->symbol); } *d = 0; return d; } void hb_strfmon(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor) { gchar formatd_buf[outlen]; Currency *cur; gdouble monval; if(minor == FALSE) { cur = hb_strfmon_check(outstr, kcur); if(cur != NULL) { monval = hb_amount_round(value, cur->frac_digits); g_ascii_formatd(formatd_buf, outlen, cur->format, monval); hb_str_formatd(outstr, outlen, formatd_buf, cur, TRUE); } } else { monval = hb_amount_minor(value, kcur); cur = &PREFS->minor_cur; g_ascii_formatd(formatd_buf, outlen, cur->format, monval); hb_str_formatd(outstr, outlen, formatd_buf, cur, TRUE); } } // used only in gtk_chart.c void hb_strfmon_int(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor) { gchar formatd_buf[outlen]; Currency *cur; gdouble monval; if(minor == FALSE) { cur = hb_strfmon_check(outstr, kcur); if(cur != NULL) { monval = hb_amount_round(value, cur->frac_digits); g_ascii_formatd(formatd_buf, outlen, "%0.f", monval); hb_str_formatd(outstr, outlen, formatd_buf, cur, TRUE); } } else { monval = hb_amount_minor(value, kcur); cur = &PREFS->minor_cur; g_ascii_formatd(formatd_buf, outlen, cur->format, monval); hb_str_formatd(outstr, outlen, formatd_buf, cur, TRUE); } } //TODO: check where used, maybe use "%.*f" syntax here void hb_strfnum(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor) { Currency *cur; gdouble monval; if(minor == FALSE) { cur = hb_strfmon_check(outstr, kcur); if(cur != NULL) { monval = hb_amount_round(value, cur->frac_digits); //#1868185 print raw number, not with monetary g_ascii_formatd(outstr, outlen, "%.2f", monval); } } else { monval = hb_amount_minor(value, kcur); cur = &PREFS->minor_cur; //#1868185 print raw number, not with monetary g_ascii_formatd(outstr, outlen, "%.2f", monval); } } void hb_strfmongc(gchar *outstr, gint outlen, gdouble value) { gchar formatd_buf[outlen]; Currency *cur = hb_strfmon_check(outstr, GLOBALS->kcur); if(cur != NULL) { gdouble monval = hb_amount_round(value, cur->frac_digits); g_ascii_formatd(formatd_buf, outlen, cur->format, monval); hb_str_formatd(outstr, outlen, formatd_buf, cur, FALSE); } } void _format_decimal(GString *node, ToStringMode mode, gdouble value) { if(mode == HB_STRING_PRINT) { gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; hb_strfmongc(buf, G_ASCII_DTOSTR_BUF_SIZE-1, value); g_string_append(node, buf); } else g_string_append_printf(node, "%.2f", value); } void hb_strlifeenergy(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor) { gchar buf_energy[16]; gdouble monval; gdouble intval, fracval; gshort h, m; //first print monetary hb_strfmon(outstr, outlen, value, kcur, minor); if( (hb_amount_cmp(GLOBALS->lifen_earnbyh, 0.0) != 0) && value < 0.0) { monval = hb_amount_base(value, kcur); fracval = modf(ABS(monval) / GLOBALS->lifen_earnbyh, &intval); h = (gint)intval; m = (gint)(fracval*60); if( (gint)(m / 60) > 30 ) m++; g_sprintf(buf_energy, " (%dh%02dm)", h, m); strcat(outstr, buf_energy); } } gchar *get_normal_color_amount(gdouble value) { gchar *color = NULL; //fix: 400483 value = hb_amount_round(value, 2); if(value != 0.0 && PREFS->custom_colors == TRUE) { color = (value > 0.0) ? PREFS->color_inc : PREFS->color_exp; } return color; } gchar *get_minimum_color_amount(gdouble value, gdouble minvalue) { gchar *color = NULL; //fix: 400483 value = hb_amount_round(value, 2); if(value != 0.0 && PREFS->custom_colors == TRUE) { color = (value > 0.0) ? PREFS->color_inc : PREFS->color_exp; if( value < minvalue) color = PREFS->color_warn; } return color; } void hb_label_set_amount(GtkLabel *label, gdouble value, guint32 kcur, gboolean minor) { gchar strbuffer[G_ASCII_DTOSTR_BUF_SIZE]; hb_strfmon(strbuffer, G_ASCII_DTOSTR_BUF_SIZE-1, value, kcur, minor); gtk_label_set_text(GTK_LABEL(label), strbuffer); } /* ** format/color and set a label text with a amount value */ void hb_label_set_colvalue(GtkLabel *label, gdouble value, guint32 kcur, gboolean minor) { gchar strbuffer[G_ASCII_DTOSTR_BUF_SIZE]; gchar *markuptxt; gchar *color = NULL; hb_strfmon(strbuffer, G_ASCII_DTOSTR_BUF_SIZE-1, value, kcur, minor); if(value != 0.0 && PREFS->custom_colors == TRUE) { color = get_normal_color_amount(value); //g_print("color: %s\n", color); if(color) { markuptxt = g_strdup_printf("%s", color, strbuffer); gtk_label_set_markup(GTK_LABEL(label), markuptxt); g_free(markuptxt); return; } } gtk_label_set_text(GTK_LABEL(label), strbuffer); } /* ** String utility */ gint hb_string_ascii_compare(gchar *s1, gchar *s2) { return g_ascii_strncasecmp(s1 == NULL ? "" : s1, s2 == NULL ? "" : s2, -1); } gint hb_string_compare(gchar *s1, gchar *s2) { gint retval = 0; if (s1 == NULL || s2 == NULL) { if (s1 == NULL && s2 == NULL) goto end; retval = (s1 == NULL) ? -1 : 1; } else { retval = strcasecmp(s1, s2); } end: return retval; } gint hb_string_utf8_strstr(gchar *haystack, gchar *needle, gboolean exact) { gint retval = FALSE; if( exact ) { if( g_strstr_len(haystack, -1, needle) != NULL ) { DB( g_print(" found case '%s'\n", needle) ); retval = 1; } } else { gchar *nchaystack = g_utf8_casefold(haystack, -1); gchar *ncneedle = g_utf8_casefold(needle, -1); if( g_strrstr(nchaystack, ncneedle) != NULL ) { DB( g_print(" found nocase '%s'\n", ncneedle) ); retval = 1; } g_free(nchaystack); g_free(ncneedle); } return retval; } /* * compare 2 utf8 string */ gint hb_string_utf8_compare(gchar *s1, gchar *s2) { gint retval = 0; gchar *ns1, *ns2; if (s1 == NULL || s2 == NULL) { if (s1 == NULL && s2 == NULL) goto end; retval = (s1 == NULL) ? -1 : 1; } else { //#1325969 //retval = g_utf8_collate(s1 != NULL ? s1 : "", s2 != NULL ? s2 : ""); ns1 = g_utf8_normalize(s1, -1, G_NORMALIZE_DEFAULT); ns2 = g_utf8_normalize(s2, -1, G_NORMALIZE_DEFAULT); retval = strcasecmp(ns1, ns2); g_free(ns2); g_free(ns1); } end: return retval; } void hb_string_strip_utf8_bom(gchar *str) { if( g_str_has_prefix(str, "\xEF\xBB\xBF") ) { gint len; DB( g_print("BOM is present into '%s'\n", str) ); len = strlen(str); if(len>3) { memmove(str, str+3, len-3); str[len-3] = 0; } } } void hb_string_strip_crlf(gchar *str) { gchar *p = str; if(str) { while( *p ) { if( *p == '\n' || *p == '\r') { *p = '\0'; } p++; } } } gboolean hb_string_has_leading_trailing(gchar *str) { gsize str_len; g_return_val_if_fail (str != NULL, FALSE); str_len = strlen (str); if(*str == ' ' || str[str_len-1] == ' ') return TRUE; return FALSE; } void hb_string_replace_char(gchar oc, gchar nc, gchar *str) { gsize len; gchar *s = str; gchar *d = str; if(str) { len = strlen (str); while( *s && len > 0 ) { if( *s != oc ) { *d++ = *s++; } else { *d++ = nc; s++; } len--; } *d = 0; } } void hb_string_remove_char(gchar c, gchar *str) { gsize len; gchar *s = str; gchar *d = str; if(str) { len = strlen (str); while( *s && len > 0 ) { if( *s != c ) { *d++ = *s; } s++; } *d = 0; } } #if( (GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 68) ) guint g_string_replace (GString *string, const gchar *find, const gchar *replace, guint limit) { gsize f_len, r_len, pos; gchar *cur, *next; guint n = 0; g_return_val_if_fail (string != NULL, 0); g_return_val_if_fail (find != NULL, 0); g_return_val_if_fail (replace != NULL, 0); f_len = strlen (find); r_len = strlen (replace); cur = string->str; while ((next = strstr (cur, find)) != NULL) { pos = next - string->str; g_string_erase (string, pos, f_len); g_string_insert (string, pos, replace); cur = string->str + pos + r_len; n++; /* Only match the empty string once at any given position, to * avoid infinite loops */ if (f_len == 0) { if (cur[0] == '\0') break; else cur++; } if (n == limit) break; } return n; } #endif gchar *hb_string_copy_jsonpair(gchar *dst, gchar *str) { while( *str!='\0' ) { if( *str=='}' ) break; if( *str==',' ) { *dst = '\0'; return str + 1; } if( *str!='{' && *str!='\"' ) { *dst++ = *str; } str++; } *dst = '\0'; return NULL; } void hb_string_inline(gchar *str) { gchar *s = str; gchar *d = str; if(str) { while( *s ) { if( !(*s==' ' || *s=='\t' || *s=='\n' || *s=='\r') ) { *d++ = *s; } s++; } *d = 0; } } /*void strip_extra_spaces(char* str) { int i,x; for(i=x=1; str[i]; ++i) if(!isspace(str[i]) || (i>0 && !isspace(str[i-1]))) str[x++] = str[i]; str[x] = '\0'; }*/ gchar * hb_strdup_nobrackets (const gchar *str) { const gchar *s; gchar *new_str, *d; gsize length; if (str) { length = strlen (str) + 1; new_str = g_new (char, length); s = str; d = new_str; while(*s != '\0') { if( *s != '[' && *s != ']' ) *d++ = *s; s++; } *d = '\0'; } else new_str = NULL; return new_str; } /* if we found a . or , within last x digits it might be a dchar */ static gchar hb_string_raw_amount_guess_dchar(const gchar *s, gint len, gshort digit) { gint nbc, nbd, i; gchar gdc='.'; DB( g_print(" digit=%d maxidx=%d\n", digit, len-digit-1) ); nbc = nbd = 0; for(i=len-1;i>=0;i--) { DB( g_print(" [%2d] '%c' %d %d '%c'\n", i, s[i], nbc, nbd, gdc) ); //store rightmost ,. within digit-1 if( i>=(len-digit-1) ) { if(s[i]=='.' || s[i]==',') gdc=s[i]; } if(s[i]=='.') nbd++; else if(s[i]==',') nbc++; } if( gdc=='.' && nbd > 1) gdc='?'; else if( gdc==',' && nbc > 1) gdc='?'; return gdc; } //#1876134 windows: pasted numbers from calculator loose dchar // E2 80 AD 31 C2 A0 31 31 31 2C 31 E2 80 AC : ‭1 111,1‬ //https://github.com/microsoft/calculator/issues/504 gchar *hb_string_dup_raw_amount_clean(const gchar *string, gint digits) { gint l; gchar *san_str, *new_str, *d; gchar gdc; const gchar *p; //sanitize the string first: keep -,.0-9 san_str = d = g_strdup(string); p = string; while(*p) { //if( g_ascii_isdigit(*p) || *p=='-' || *p=='.' || *p==',' ) if( g_ascii_isdigit(*p) || *p=='-' || *p=='+' || *p=='.' || *p==',' ) *d++ = *p; p++; } *d++ = '\0'; l = strlen(san_str); gdc = hb_string_raw_amount_guess_dchar(san_str, l, digits); new_str = d = g_malloc (l+1); p = san_str; while(*p) { //if(*p=='-' || g_ascii_isdigit(*p) ) if( *p=='-' || *p=='+' || g_ascii_isdigit(*p) ) *d++ = *p; else if( *p==gdc ) { *d++ = '.'; } p++; } *d++ = '\0'; g_free(san_str); return new_str; } static gchar * hb_date_add_separator(gchar *txt, gint dateorder) { gchar *newtxt, *d; gint len; len = strlen(txt); newtxt = g_new0(char, len+3); d = newtxt; if( (dateorder == PRF_DATEFMT_MDY) || (dateorder == PRF_DATEFMT_DMY) ) { *d++ = *txt++; *d++ = *txt++; *d++ = '/'; *d++ = *txt++; *d++ = *txt++; *d++ = '/'; *d++ = *txt++; *d++ = *txt++; if( len == 8 ) { *d++ = *txt++; *d++ = *txt++; } } else if( dateorder == PRF_DATEFMT_YMD ) { *d++ = *txt++; *d++ = *txt++; if( len == 8 ) { *d++ = *txt++; *d++ = *txt++; } *d++ = '/'; *d++ = *txt++; *d++ = *txt++; *d++ = '/'; *d++ = *txt++; *d++ = *txt++; } *d++ = '\0'; return newtxt; } //https://en.wikipedia.org/wiki/Date_format_by_country static gboolean hb_date_parser_get_nums(gchar *string, gint *n1, gint *n2, gint *n3) { gboolean retval; gchar **str_array; //DB( g_print("(qif) hb_qif_parser_get_dmy for '%s'\n", string) ); retval = FALSE; if( string ) { str_array = g_strsplit (string, "/", 3); if( g_strv_length( str_array ) != 3 ) { g_strfreev (str_array); str_array = g_strsplit (string, ".", 3); //#371381 add '-' if( g_strv_length( str_array ) != 3 ) { g_strfreev (str_array); str_array = g_strsplit (string, "-", 3); } } if( g_strv_length( str_array ) == 3 ) { *n1 = atoi(str_array[0]); *n2 = atoi(str_array[1]); *n3 = atoi(str_array[2]); retval = TRUE; } g_strfreev (str_array); } return retval; } guint32 hb_date_get_julian(gchar *string, gint dateorder) { GDate *date; gint n1, n2, n3, d, m, y; guint32 julian = 0; gboolean parsed; gchar *datewithsep; DB( g_print("\n[utils] hb_date_get_julian\n") ); //1st try with separator DB( g_print(" 1st pass str='%s'\n", string) ); parsed = hb_date_parser_get_nums(string, &n1, &n2, &n3); if( parsed == FALSE ) { //#1904569 give a try with no separator datewithsep = hb_date_add_separator(string, dateorder); DB( g_print(" 2nd pass str='%s'\n", datewithsep) ); parsed = hb_date_parser_get_nums(datewithsep, &n1, &n2, &n3); g_free(datewithsep); } if( parsed == TRUE ) { DB( g_print(" num= '%d' '%d' '%d'\n", n1, n2, n3) ); switch(dateorder) { case PRF_DATEFMT_MDY: d = n2; m = n1; y = n3; break; case PRF_DATEFMT_DMY: d = n1; m = n2; y = n3; break; default: case PRF_DATEFMT_YMD: d = n3; m = n2; y = n1; break; } //adjust for 2 digits year if(y < 1970) { if(y < 60) y += 2000; else y += 1900; } if(d <= 31 && m <= 12) { if( g_date_valid_dmy(d, m, y) ) { DB( g_print(" ddmmyyyy = '%d' '%d' '%d'\n", d, m, y) ); date = g_date_new_dmy(d, m, y); julian = g_date_get_julian (date); g_date_free(date); } } } DB( g_print(" >%s :: julian=%d\n", parsed ? "OK":"--", julian) ); return julian; } guint32 hb_date_get_jbound(guint32 jdate, HbDateBound bound) { GDate date; GDateDay d = 1; g_date_set_julian(&date, jdate); if(bound == HB_DATE_BOUND_LAST) { GDateMonth m = g_date_get_month(&date); GDateYear y = g_date_get_day_of_year(&date); d = g_date_get_days_in_month(m, y); } g_date_set_day(&date, d); return g_date_get_julian(&date); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ gint hb_filename_type_get_by_extension(gchar *filepath) { gint retval = FILETYPE_UNKNOWN; gint str_len; g_return_val_if_fail(filepath != NULL, FILETYPE_UNKNOWN); str_len = strlen(filepath); if( str_len >= 4 ) { if( strcasecmp(filepath + str_len - 4, ".ofx") == 0) retval = FILETYPE_OFX; else if( strcasecmp(filepath + str_len - 4, ".qif") == 0) retval = FILETYPE_QIF; else if( strcasecmp(filepath + str_len - 4, ".qfx") == 0) retval = FILETYPE_OFX; else if( strcasecmp(filepath + str_len - 4, ".csv") == 0) retval = FILETYPE_CSV_HB; else if( strcasecmp(filepath + str_len - 4, ".xhb") == 0) retval = FILETYPE_HOMEBANK; } return retval; } static gchar *hb_filename_new_without_extension(gchar *filename) { gchar *lastdot; lastdot = g_strrstr (filename, "."); if(lastdot != NULL) { return g_strndup(filename, strlen(filename) - strlen(lastdot)); } return g_strdup(filename); } static gint hb_filename_backup_list_sort_func(gchar **a, gchar **b) { gint da = atoi( *a + strlen(*a) - 12); gint db = atoi( *b + strlen(*b) - 12); return db - da; } GPtrArray *hb_filename_backup_list(gchar *filename) { gchar *dirname, *basename; gchar *rawfilename, *pattern; GDir *dir; const gchar *tmpname; GPatternSpec *pspec; GPtrArray *array; DB( g_print("\n[util] filename backup list\n") ); dirname = g_path_get_dirname(filename); basename = g_path_get_basename(filename); DB( g_print(" dir='%s' base='%s'\n", dirname, basename) ); rawfilename = hb_filename_new_without_extension(basename); pattern = g_strdup_printf("%s-????????.bak", rawfilename); pspec = g_pattern_spec_new(pattern); DB( g_print(" pattern='%s'\n", pattern) ); array = g_ptr_array_new_with_free_func(g_free); //dir = g_dir_open (PREFS->path_hbfile, 0, NULL); dir = g_dir_open (PREFS->path_hbbak, 0, NULL); if (dir) { while ((tmpname = g_dir_read_name (dir)) != NULL) { gboolean match; match = g_pattern_match_string(pspec, tmpname); if( match ) { DB( g_print(" %d => '%s'\n", match, tmpname) ); g_ptr_array_add(array, g_strdup(tmpname)); } } } g_free(pattern); g_dir_close (dir); g_pattern_spec_free(pspec); g_free(rawfilename); g_free(basename); g_free(dirname); g_ptr_array_sort(array, (GCompareFunc)hb_filename_backup_list_sort_func); return array; } gchar * hb_filename_backup_get_filtername(gchar *filename) { gchar *basename; gchar *rawfilename, *pattern; DB( g_print("\n[util] filename backup get filtername\n") ); basename = g_path_get_basename(filename); rawfilename = hb_filename_new_without_extension(basename); pattern = g_strdup_printf("%s*.[Bb][Aa][Kk]", rawfilename); g_free(rawfilename); g_free(basename); return pattern; } gchar * hb_filename_new_for_backup(gchar *filename) { gchar *basename, *rawfilename, *newfilename, *newfilepath; GDate date; basename = g_path_get_basename(filename); rawfilename = hb_filename_new_without_extension(basename); g_date_clear(&date, 1); g_date_set_julian (&date, GLOBALS->today); newfilename = g_strdup_printf("%s-%04d%02d%02d.bak", rawfilename, g_date_get_year(&date), g_date_get_month(&date), g_date_get_day(&date) ); newfilepath = g_build_filename(PREFS->path_hbbak, newfilename, NULL); g_free(newfilename); g_free(rawfilename); g_free(basename); return newfilepath; } gchar *hb_filename_new_with_extension(gchar *filename, const gchar *extension) { gchar *rawfilename, *newfilename; DB( g_print("\n[util] filename new with extension\n") ); rawfilename = hb_filename_new_without_extension(filename); newfilename = g_strdup_printf("%s.%s", rawfilename, extension); g_free(rawfilename); DB( g_print(" - '%s' => '%s'\n", filename, newfilename) ); return newfilename; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ gboolean hb_string_isdate(gchar *str) { gint d, m, y; return(hb_date_parser_get_nums(str, &d, &m, &y)); } gboolean hb_string_isdigit(gchar *str) { gboolean valid = TRUE; while(*str && valid) valid = g_ascii_isdigit(*str++); return valid; } /* gboolean hb_string_isprint(gchar *str) { gboolean valid = TRUE; while(*str && valid) valid = g_ascii_isprint(*str++); return valid; } */ gboolean hb_string_isprint(gchar *str) { gboolean valid = TRUE; gchar *p; gunichar c; if(g_utf8_validate(str, -1, NULL)) { p = str; while(*p && valid) { c = g_utf8_get_char(p); valid = g_unichar_isprint(c); p = g_utf8_next_char(p); } } return valid; } gchar *hb_sprint_date(gchar *outstr, guint32 julian) { GDate date; g_date_clear(&date, 1); g_date_set_julian (&date, julian); switch(PREFS->dtex_datefmt) { //#2040010 change / to - case PRF_DATEFMT_MDY: { g_sprintf(outstr, "%02d-%02d-%04d", g_date_get_month(&date), g_date_get_day(&date), g_date_get_year(&date) ); } break; case PRF_DATEFMT_DMY: { g_sprintf(outstr, "%02d-%02d-%04d", g_date_get_day(&date), g_date_get_month(&date), g_date_get_year(&date) ); } break; default: g_sprintf(outstr, "%04d-%02d-%02d", g_date_get_year(&date), g_date_get_month(&date), g_date_get_day(&date) ); break; } return outstr; } //used only in DB() macro !! void hb_print_date(guint32 jdate, gchar *label) { gchar buffer1[128]; GDate *date; date = g_date_new_julian(jdate); g_date_strftime (buffer1, 128-1, "%a %x", date); g_date_free(date); g_print("%s %d - '%s'\n", label != NULL ? label:"date is", jdate, buffer1); } /* ** parse a string an retrieve an iso date (dd-mm-yy(yy) or dd/mm/yy(yy)) ** */ /* obsolete 4.5 guint32 hb_date_get_julian_parse(gchar *str) { gchar **str_array = NULL; GDate *date; guint d, m, y; guint32 julian = GLOBALS->today; // try with - separator if( g_strrstr(str, "-") != NULL ) { str_array = g_strsplit (str, "-", 3); } else { if( g_strrstr(str, "/") != NULL ) { str_array = g_strsplit (str, "/", 3); } } if( g_strv_length( str_array ) == 3 ) { d = atoi(str_array[0]); m = atoi(str_array[1]); y = atoi(str_array[2]); //correct for 2 digits year if(y < 1970) { if(y < 60) y += 2000; else y += 1900; } //todo: here if month is > 12 then the format is probably mm/dd/yy(yy) //or maybe check with g_date_valid_julian(julian) date = g_date_new(); g_date_set_dmy(date, d, m, y); julian = g_date_get_julian (date); g_date_free(date); DB( g_print("date: %s :: %d %d %d :: %d\n", str, d, m, y, julian ) ); } g_strfreev (str_array); return julian; } */ /* -------------------- */ #if MYDEBUG == 1 /* ** hex memory dump */ #define MAX_DUMP 16 void hex_dump(guchar *ptr, guint length) { guchar ascii[MAX_DUMP+4]; guint i,j; g_print("**hex_dump - %d bytes\n", length); for(i=0;i= length) break; //store ascii value if(ptr[i] >= 32 && ptr[i] <= 126) ascii[j] = ptr[i]; else ascii[j] = '.'; g_print("%02x ", ptr[i]); i++; } //newline ascii[j] = 0; g_print(" '%s'\n", ascii); } } #endif homebank-5.9.1/src/hb-filter.c0000644000175000017500000011155615003204646011613 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-filter.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif //DB out of bounds #define DBOOB(x); //#define DBOOB(x) (x); /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* = = = = = = = = = = = = = = = = */ static void da_flt_clean(Filter *flt) { if(flt != NULL) { g_free(flt->memo); flt->memo = NULL; g_free(flt->number); flt->number = NULL; g_free(flt->name); flt->name = NULL; if(flt->gbtag != NULL) { g_array_free(flt->gbtag, TRUE); flt->gbtag = NULL; } if(flt->gbcat != NULL) { g_array_free(flt->gbcat, TRUE); flt->gbcat = NULL; } if(flt->gbpay != NULL) { g_array_free(flt->gbpay, TRUE); flt->gbpay = NULL; } if(flt->gbacc != NULL) { g_array_free(flt->gbacc, TRUE); flt->gbacc = NULL; } } } static void da_flt_init(Filter *flt) { DB( g_print("da_flt_init\n") ); //5.8 init range to min/max glib bound flt->range = FLT_RANGE_MISC_ALLDATE; flt->mindate = HB_MINDATE; //1; flt->maxdate = HB_MAXDATE; //G_MAXUINT32; //always allocate 1 elt minimum // /!\ each array still ->len = 0 flt->gbacc = g_array_sized_new(FALSE, TRUE, sizeof(gchar), 1); flt->gbpay = g_array_sized_new(FALSE, TRUE, sizeof(gchar), 1); flt->gbcat = g_array_sized_new(FALSE, TRUE, sizeof(gchar), 1); flt->gbtag = g_array_sized_new(FALSE, TRUE, sizeof(gchar), 1); } void da_flt_free(Filter *flt) { DB( g_print("da_flt_free\n") ); if(flt != NULL) { da_flt_clean(flt); g_free(flt); } } Filter *da_flt_malloc(void) { Filter *flt; DB( g_print("da_flt_malloc\n") ); flt = g_malloc0(sizeof(Filter)); da_flt_init(flt); return flt; } static guint count_garray(GArray *array) { guint count, i; for(i=0,count=0 ; i < array->len ; i++) { if( array->data[i] == 1 ) count++; } return count; } void da_flt_count_item(Filter *flt) { guint i, count; flt->n_active = 0; for(i=0;ioption[i] != 0 ) flt->n_active++; } flt->n_item[FLT_GRP_ACCOUNT] = count_garray(flt->gbacc); flt->n_item[FLT_GRP_PAYEE] = count_garray(flt->gbpay); flt->n_item[FLT_GRP_CATEGORY] = count_garray(flt->gbcat); flt->n_item[FLT_GRP_TAG] = count_garray(flt->gbtag); for(i=0, count=0;ipaymode[i] == TRUE ) count++; } flt->n_item[FLT_GRP_PAYMODE] = count; } void da_flt_copy(Filter *src, Filter *dst) { DB( g_print("da_flt_copy\n") ); DB( g_print(" %p (%s) to %p (%s)\n", src, src->name, dst, dst->name) ); if(!src || !dst) return; DB( g_print(" %d acc\n", src->gbacc->len) ); DB( g_print(" %d pay\n", src->gbpay->len) ); DB( g_print(" %d cat\n", src->gbcat->len) ); //clean any previous extra memory da_flt_clean(dst); //raw duplicate the memory segment memcpy(dst, src, sizeof(Filter)); //duplicate extra memory dst->name = g_strdup(src->name); dst->number = g_strdup(src->number); dst->memo = g_strdup(src->memo); dst->gbacc = g_array_copy(src->gbacc); dst->gbpay = g_array_copy(src->gbpay); dst->gbcat = g_array_copy(src->gbcat); dst->gbtag = g_array_copy(src->gbtag); DB( g_print(" %d acc\n", dst->gbacc->len) ); DB( g_print(" %d pay\n", dst->gbpay->len) ); DB( g_print(" %d cat\n", dst->gbcat->len) ); //#2065929 update from prefs dst->forceremind = PREFS->showremind; dst->forcevoid = PREFS->showvoid; DB( g_print(" copied\n\n") ); da_flt_count_item(dst); } void da_flt_destroy(void) { DB( g_print("da_flt_destroy\n") ); g_hash_table_destroy(GLOBALS->h_flt); } void da_flt_new(void) { //Filter *item; DB( g_print("da_flt_new\n") ); GLOBALS->h_flt = g_hash_table_new_full(g_int_hash, g_int_equal, (GDestroyNotify)g_free, (GDestroyNotify)da_flt_free); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ guint da_flt_length(void) { return g_hash_table_size(GLOBALS->h_flt); } static void da_flt_max_key_ghfunc(gpointer key, Filter *item, guint32 *max_key) { *max_key = MAX(*max_key, item->key); } guint32 da_flt_get_max_key(void) { guint32 max_key = 0; g_hash_table_foreach(GLOBALS->h_flt, (GHFunc)da_flt_max_key_ghfunc, &max_key); return max_key; } gboolean da_flt_remove(guint32 key) { DB( g_print("da_flt_remove %d\n", key) ); return g_hash_table_remove(GLOBALS->h_flt, &key); } gboolean da_flt_insert(Filter *item) { guint32 *new_key; GtkTreeIter iter; DB( g_print("da_flt_insert\n") ); new_key = g_new0(guint32, 1); *new_key = item->key; g_hash_table_insert(GLOBALS->h_flt, new_key, item); //limit to 20 char if( strlen(item->name) > 20 ) { gchar *truncname = g_strdup_printf("%.20s...", item->name); gtk_list_store_insert_with_values(GTK_LIST_STORE(GLOBALS->fltmodel), &iter, 0, 0, item->key, 1, truncname, -1); g_free(truncname); } else { //add to model gtk_list_store_insert_with_values(GTK_LIST_STORE(GLOBALS->fltmodel), &iter, 0, 0, item->key, 1, item->name, -1); } return TRUE; } gboolean da_flt_append(Filter *item) { Filter *existitem; DB( g_print("da_flt_append\n") ); existitem = da_flt_get_by_name( item->name ); if( existitem == NULL ) { item->key = da_flt_get_max_key() + 1; da_flt_insert(item); return TRUE; } DB( g_print(" -> %s already exist: %d\n", item->name, item->key) ); return FALSE; } static gboolean da_flt_name_grfunc(gpointer key, Filter *item, gchar *name) { if( name && item->name ) { if(!strcasecmp(name, item->name)) return TRUE; } return FALSE; } Filter * da_flt_get_by_name(gchar *rawname) { Filter *retval = NULL; gchar *stripname; DB( g_print("da_flt_get_by_name\n") ); if( rawname ) { stripname = g_strdup(rawname); g_strstrip(stripname); if( strlen(stripname) > 0 ) retval = g_hash_table_find(GLOBALS->h_flt, (GHRFunc)da_flt_name_grfunc, stripname); g_free(stripname); } return retval; } Filter * da_flt_get(guint32 key) { //DB( g_print("da_flt_get\n") ); return g_hash_table_lookup(GLOBALS->h_flt, &key); } void da_flt_consistency(Filter *item) { g_strstrip(item->name); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static gint filter_glist_key_compare_func(Filter *a, Filter *b) { return a->key - b->key; } GList *filter_glist_sorted(gint column) { GList *list = g_hash_table_get_values(GLOBALS->h_flt); switch(column) { default: return g_list_sort(list, (GCompareFunc)filter_glist_key_compare_func); break; } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #if MYDEBUG == 1 static void my_debug_garray(gchar *type, GArray *array) { guint i; g_print(" debug '%s' len=%d\n", type, array->len); for(i=0 ; i < array->len ; i++) { g_print("%02d ", array->data[i]); } g_print("\n"); } #endif static guint da_flt_item_set(GArray *array, guint32 key, gboolean status) { guint change = 0; if(key < array->len) { gchar *sel = &g_array_index(array, gchar, key); change += (*sel != status) ? 1 : 0; *sel = status; DB( g_print(" >update [%d]=>%d\n", key, status) ); } else if( status == TRUE ) { DB( g_print(" >insert [%d]=>%d\n", key, status) ); g_array_insert_vals(array, key, &status, 1); change++; } else { DB( g_print(" >nop: status off\n") ); } return change; } guint da_flt_status_tag_set(Filter *flt, guint32 ktag, gboolean status) { DB( g_print(" set tag %d to %d\n", ktag, status) ); return da_flt_item_set(flt->gbtag, ktag, status); } guint da_flt_status_cat_set(Filter *flt, guint32 kcat, gboolean status) { DB( g_print(" set cat %d\n", kcat) ); return da_flt_item_set(flt->gbcat, kcat, status); } guint da_flt_status_pay_set(Filter *flt, guint32 kpay, gboolean status) { DB( g_print(" set pay %d\n", kpay) ); return da_flt_item_set(flt->gbpay, kpay, status); } guint da_flt_status_acc_set(Filter *flt, guint32 kacc, gboolean status) { DB( g_print(" set acc %d\n", kacc) ); return da_flt_item_set(flt->gbacc, kacc, status); } gboolean da_flt_status_tag_get(Filter *flt, guint32 ktag) { if(flt->gbtag == NULL) return FALSE; if(ktag < flt->gbtag->len) return flt->gbtag->data[ktag]; DBOOB( g_warning("filter get tag out of bounds %d of %d", ktag, flt->gbtag->len) ); return FALSE; } gboolean da_flt_status_cat_get(Filter *flt, guint32 kcat) { if(flt->gbcat == NULL) return FALSE; if(kcat < flt->gbcat->len) return flt->gbcat->data[kcat]; DBOOB( g_warning("filter get cat out of bounds %d of %d", kcat, flt->gbcat->len) ); return FALSE; } gboolean da_flt_status_pay_get(Filter *flt, guint32 kpay) { if(flt->gbpay == NULL) return FALSE; if(kpay < flt->gbpay->len) return flt->gbpay->data[kpay]; DBOOB( g_warning("filter get pay out of bounds %d of %d", kpay, flt->gbpay->len) ); return FALSE; } gboolean da_flt_status_acc_get(Filter *flt, guint32 kacc) { if(flt->gbacc == NULL) return FALSE; if(kacc < flt->gbacc->len) return flt->gbacc->data[kacc]; DBOOB( g_warning("filter get acc out of bounds %d of %d", kacc, flt->gbacc->len) ); return FALSE; } /* TODO: check this : user in rep_time only */ void filter_status_acc_clear_except(Filter *flt, guint32 selkey) { guint i; DB( g_print("[filter] acc clear %d\n", flt->gbacc->len) ); for(i=0;igbacc->len;i++) { flt->gbacc->data[i] = 0; } da_flt_status_acc_set(flt, selkey, TRUE); } void filter_status_pay_clear_except(Filter *flt, guint32 selkey) { guint i; DB( g_print("[filter] pay clear %d\n", flt->gbpay->len) ); for(i=0;igbpay->len;i++) { flt->gbpay->data[i] = 0; } da_flt_status_pay_set(flt, selkey, TRUE); } void filter_status_cat_clear_except(Filter *flt, guint32 selkey) { guint i; DB( g_print("[filter] cat clear %d\n", flt->gbcat->len) ); for(i=0;igbcat->len;i++) { flt->gbcat->data[i] = 0; } da_flt_status_cat_set(flt, selkey, TRUE); //todo //#1824561 don't forget subcat } /* = = = = = = = = = = = = = = = = */ void filter_reset(Filter *flt) { gint i; g_return_if_fail( flt != NULL ); DB( g_print("\n[filter] default reset all %p\n", flt) ); flt->key = 0; for(i=0;ioption[i] = 0; } flt->option[FLT_GRP_DATE] = 1; //5.4.2: useless, as it is always changed after all //flt->range = FLT_RANGE_LAST12MONTHS; //filter_preset_daterange_set(flt, flt->range, 0); flt->range = FLT_RANGE_LAST_30DAYS; flt->mindate = GLOBALS->today-30; flt->maxdate = GLOBALS->today; for(i=0;ipaymode[i] = TRUE; //reinit the array acc/pay/cat/tag + text da_flt_clean(flt); da_flt_init(flt); //unsaved flt->nbchanges = 0; flt->nbdaysfuture = 0; flt->type = FLT_TYPE_ALL; flt->status = FLT_STATUS_ALL; flt->forceremind = PREFS->showremind; flt->forcevoid = PREFS->showvoid; *flt->last_tab = '\0'; } static void filter_set_date_bounds(Filter *flt, guint32 kacc) { GList *lst_acc, *lnk_acc; GList *lnk_txn; g_return_if_fail( flt != NULL ); DB( g_print("\n[filter] set date bounds %p\n", flt) ); flt->mindate = 0; flt->maxdate = 0; lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; //#1674045 only rely on nosummary //if( !(acc->flags & AF_CLOSED) ) { Transaction *txn; DB( g_print(" collect date for '%s'\n", acc->name) ); lnk_txn = g_queue_peek_head_link(acc->txn_queue); if(lnk_txn) { txn = lnk_txn->data; if( (kacc == 0) || (txn->kacc == kacc) ) { if( flt->mindate == 0 ) flt->mindate = txn->date; else flt->mindate = MIN(flt->mindate, txn->date); } } lnk_txn = g_queue_peek_tail_link(acc->txn_queue); if(lnk_txn) { txn = lnk_txn->data; if( (kacc == 0) || (txn->kacc == kacc) ) { if( flt->maxdate == 0 ) flt->maxdate = txn->date; else flt->maxdate = MAX(flt->maxdate, txn->date); } } } lnk_acc = g_list_next(lnk_acc); } if( flt->mindate == 0 ) //changed 5.3 //flt->mindate = HB_MINDATE; flt->mindate = GLOBALS->today - 365; if( flt->maxdate == 0 ) //changed 5.3 //flt->maxdate = HB_MAXDATE; flt->maxdate = GLOBALS->today + flt->nbdaysfuture; g_list_free(lst_acc); } gboolean filter_preset_daterange_future_enable(Filter *flt, gint range) { gboolean retval = FALSE; g_return_val_if_fail( flt != NULL, FALSE ); DB( g_print("\n[filter] range future enabled\n") ); DB( g_print(" fltrang=%d range=%d\n", flt->range, range) ); switch( range ) { case FLT_RANGE_THIS_DAY: case FLT_RANGE_THIS_WEEK: case FLT_RANGE_THIS_FORTNIGHT: case FLT_RANGE_THIS_MONTH: case FLT_RANGE_THIS_QUARTER: case FLT_RANGE_THIS_YEAR: case FLT_RANGE_LAST_30DAYS: case FLT_RANGE_LAST_60DAYS: case FLT_RANGE_LAST_90DAYS: case FLT_RANGE_LAST_12MONTHS: case FLT_RANGE_LAST_6MONTHS: retval = TRUE; break; } //TODO: custom date if( range == FLT_RANGE_MISC_ALLDATE ) { GDate *date1, *date2; DB( g_print(" eval alldate\n") ); date1 = g_date_new_julian(GLOBALS->today); date2 = g_date_new_julian(flt->maxdate); if( (flt->maxdate > GLOBALS->today) && (g_date_get_year(date2) == g_date_get_year(date1)) && (g_date_get_month(date2) == g_date_get_month(date1)) ) { retval = TRUE; } g_date_free(date2); g_date_free(date1); } DB( hb_print_date(flt->maxdate , " maxdate ") ); DB( g_print(" return: %s\n", retval==TRUE ? "yes" : "no") ); return retval; } //5.7 used only in rep_stats guint32 filter_get_maxdate_forecast(Filter *flt) { guint32 retval; retval = flt->maxdate; DB( g_print("\n[filter] get maxdate to forecast\n") ); //if( filter_preset_daterange_future_enable(filter, filter->range) ) { GDate *post_date = g_date_new(); g_date_set_time_t(post_date, time(NULL)); g_date_add_months(post_date, PREFS->rep_forecat_nbmonth); g_date_set_day(post_date, g_date_get_days_in_month(g_date_get_month(post_date), g_date_get_year(post_date))); retval = g_date_get_julian(post_date); g_date_free(post_date); } DB( hb_print_date(retval, "retval:") ); return retval; } //used only in ledger void filter_preset_daterange_add_futuregap(Filter *flt, gint nbdays) { g_return_if_fail( flt != NULL ); DB( g_print("\n[filter] range add future gap\n") ); flt->nbdaysfuture = 0; //#1840998 if future active and visible: we should always maxdate to today + nbdays if( filter_preset_daterange_future_enable(flt, flt->range) ) { guint32 jforcedmax = GLOBALS->today + nbdays; if( flt->maxdate < jforcedmax ) flt->nbdaysfuture = jforcedmax - flt->maxdate; //else // filter->nbdaysfuture = nbdays; DB( g_print(" today=%d, tmpmax=%d, nbdays=%d\n final=%d", GLOBALS->today, jforcedmax, nbdays, flt->nbdaysfuture) ); } } void filter_preset_daterange_set(Filter *flt, gint range, guint32 kacc) { GDate *tmpdate; guint32 jtoday, jfiscal; guint16 month, year, yfiscal, qnum; GDateWeekday wday; g_return_if_fail( flt != NULL ); DB( g_print("\n[filter] daterange set %p %d\n", flt, range) ); flt->range = range; jtoday = GLOBALS->today; tmpdate = g_date_new_julian(jtoday); month = g_date_get_month(tmpdate); year = g_date_get_year(tmpdate); DB( hb_print_date(jtoday , "today ") ); qnum = 0; yfiscal = year; if( range == FLT_RANGE_LAST_QUARTER || range == FLT_RANGE_THIS_QUARTER ||range == FLT_RANGE_NEXT_QUARTER || //#2000834 range == FLT_RANGE_LAST_YEAR || range == FLT_RANGE_THIS_YEAR || range == FLT_RANGE_NEXT_YEAR || //5.9 year to date //#2107704 missed range == ... range == FLT_RANGE_TODATE_YEAR ) { g_date_set_dmy(tmpdate, PREFS->fisc_year_day, PREFS->fisc_year_month, year); jfiscal = g_date_get_julian(tmpdate); DB( hb_print_date(jfiscal, "fiscal") ); yfiscal = (jtoday >= jfiscal) ? year : year-1; if( range == FLT_RANGE_LAST_QUARTER || range == FLT_RANGE_THIS_QUARTER ||range == FLT_RANGE_NEXT_QUARTER ) { g_date_set_dmy(tmpdate, PREFS->fisc_year_day, PREFS->fisc_year_month, yfiscal); while( (qnum < 5) && (g_date_get_julian(tmpdate) < jtoday) ) { qnum++; g_date_add_months (tmpdate, 3); } DB( g_print(" qnum: %d\n", qnum ) ); } } switch( range ) { case FLT_RANGE_LAST_DAY: flt->mindate = flt->maxdate = jtoday - 1; break; case FLT_RANGE_THIS_DAY: flt->mindate = flt->maxdate = jtoday; break; case FLT_RANGE_NEXT_DAY: flt->mindate = flt->maxdate = jtoday + 1; break; case FLT_RANGE_LAST_WEEK: case FLT_RANGE_THIS_WEEK: case FLT_RANGE_NEXT_WEEK: //ISO 8601 from must be monday, to slice in correct weekœ wday = g_date_get_weekday(tmpdate); g_date_subtract_days (tmpdate, wday-G_DATE_MONDAY); if( range == FLT_RANGE_LAST_WEEK ) g_date_subtract_days(tmpdate, 7); else if( range == FLT_RANGE_NEXT_WEEK ) g_date_add_days(tmpdate, 7); flt->mindate = g_date_get_julian(tmpdate); g_date_add_days(tmpdate, 7); flt->maxdate = g_date_get_julian(tmpdate) - 1; break; case FLT_RANGE_LAST_FORTNIGHT: case FLT_RANGE_THIS_FORTNIGHT: case FLT_RANGE_NEXT_FORTNIGHT: //ISO 8601 from must be monday, to slice in correct week wday = g_date_get_weekday(tmpdate); g_date_subtract_days (tmpdate, wday - G_DATE_MONDAY); if( range == FLT_RANGE_LAST_FORTNIGHT ) g_date_subtract_days(tmpdate, 14); else if( range == FLT_RANGE_NEXT_FORTNIGHT ) g_date_add_days(tmpdate, 14); flt->mindate = g_date_get_julian(tmpdate); g_date_add_days(tmpdate, 14); flt->maxdate = g_date_get_julian(tmpdate) - 1; break; case FLT_RANGE_LAST_MONTH: case FLT_RANGE_THIS_MONTH: case FLT_RANGE_NEXT_MONTH: g_date_set_dmy(tmpdate, 1, month, year); if( range == FLT_RANGE_LAST_MONTH ) g_date_subtract_months(tmpdate, 1); else if( range == FLT_RANGE_NEXT_MONTH ) g_date_add_months(tmpdate, 1); flt->mindate = g_date_get_julian(tmpdate); month = g_date_get_month(tmpdate); year = g_date_get_year(tmpdate); g_date_add_days(tmpdate, g_date_get_days_in_month(month, year)); flt->maxdate = g_date_get_julian(tmpdate) - 1; break; case FLT_RANGE_LAST_QUARTER: case FLT_RANGE_THIS_QUARTER: case FLT_RANGE_NEXT_QUARTER: g_date_set_dmy(tmpdate, PREFS->fisc_year_day, PREFS->fisc_year_month, yfiscal); if( range == FLT_RANGE_LAST_QUARTER ) g_date_subtract_months(tmpdate, 3); else if( range == FLT_RANGE_NEXT_QUARTER ) g_date_add_months(tmpdate, 3); g_date_add_months(tmpdate, 3 * (qnum-1) ); flt->mindate = g_date_get_julian(tmpdate); g_date_add_months(tmpdate, 3); flt->maxdate = g_date_get_julian(tmpdate) - 1; break; case FLT_RANGE_LAST_YEAR: case FLT_RANGE_THIS_YEAR: case FLT_RANGE_NEXT_YEAR: g_date_set_dmy(tmpdate, PREFS->fisc_year_day, PREFS->fisc_year_month, yfiscal); if( range == FLT_RANGE_LAST_YEAR ) g_date_subtract_years(tmpdate, 1); else if( range == FLT_RANGE_NEXT_YEAR ) g_date_add_years(tmpdate, 1); flt->mindate = g_date_get_julian(tmpdate); g_date_add_years (tmpdate, 1); flt->maxdate = g_date_get_julian(tmpdate) - 1; break; case FLT_RANGE_LAST_30DAYS: flt->mindate = jtoday - 30; flt->maxdate = jtoday; break; case FLT_RANGE_LAST_60DAYS: flt->mindate = jtoday - 60; flt->maxdate = jtoday; break; case FLT_RANGE_LAST_90DAYS: flt->mindate = jtoday - 90; flt->maxdate = jtoday; break; case FLT_RANGE_LAST_12MONTHS: g_date_set_julian (tmpdate, jtoday); //5.7.3 set 1st day of month g_date_subtract_months(tmpdate, 11); g_date_set_day(tmpdate, 1); flt->mindate = g_date_get_julian(tmpdate); flt->maxdate = jtoday; break; case FLT_RANGE_LAST_6MONTHS: g_date_set_julian (tmpdate, jtoday); //5.7.3 set 1st day of month g_date_subtract_months(tmpdate, 5); g_date_set_day(tmpdate, 1); flt->mindate = g_date_get_julian(tmpdate); flt->maxdate = jtoday; break; // case FLT_RANGE_MISC_CUSTOM: //nothing to do case FLT_RANGE_MISC_ALLDATE: filter_set_date_bounds(flt, kacc); break; case FLT_RANGE_MISC_30DAYS: flt->mindate = jtoday - 30; flt->maxdate = jtoday + 30; break; case FLT_RANGE_TODATE_YEAR: g_date_set_dmy(tmpdate, PREFS->fisc_year_day, PREFS->fisc_year_month, yfiscal); flt->mindate = g_date_get_julian(tmpdate); flt->maxdate = jtoday; break; case FLT_RANGE_TODATE_MONTH: g_date_set_dmy(tmpdate, 1, month, year); flt->mindate = g_date_get_julian(tmpdate); flt->maxdate = jtoday; break; case FLT_RANGE_TODATE_ALL: filter_set_date_bounds(flt, kacc); flt->maxdate = jtoday; break; } g_date_free(tmpdate); DB( hb_print_date(flt->mindate , " min ") ); DB( hb_print_date(flt->maxdate , " max ") ); } void filter_preset_type_set(Filter *flt, gint type, gint mode) { g_return_if_fail( flt != NULL ); DB( g_print("\n[filter] preset type set\n") ); flt->option[FLT_GRP_TYPE] = FLT_OFF; flt->type = type; flt->typ_nexp = FALSE; flt->typ_ninc = FALSE; flt->typ_xexp = FALSE; flt->typ_xinc = FALSE; if( type != FLT_TYPE_ALL ) { //FLT_INCLUDE / FLT_EXCLUDE flt->option[FLT_GRP_TYPE] = mode; switch(type) { case FLT_TYPE_EXPENSE: flt->typ_nexp = TRUE; break; case FLT_TYPE_INCOME: flt->typ_ninc = TRUE; break; case FLT_TYPE_INTXFER: flt->typ_xexp = TRUE; flt->typ_xinc = TRUE; break; } } } /* = = = = = = = = = = = = = = = = */ void filter_preset_status_set(Filter *flt, gint status) { g_return_if_fail( flt != NULL ); DB( g_print("\n[filter] preset status set\n") ); /* any status */ //#1991459 dont reset type //flt->option[FLT_GRP_TYPE] = 0; flt->option[FLT_GRP_STATUS] = 0; flt->option[FLT_GRP_CATEGORY] = 0; //#1991459 dont reset type //flt->type = FLT_TYPE_ALL; flt->status = status; flt->sta_non = FALSE; flt->sta_clr = FALSE; flt->sta_rec = FALSE; //#1602835 fautly set //flt->forceadd = TRUE; //flt->forcechg = TRUE; //#1860356 keep widget active_id //#1873324 ledger status quick filter do not reset //note: status revert to UNRECONCILED here is normal if PREFS->hidereconciled=TRUE //flt->rawstatus = status; if( status != FLT_STATUS_ALL ) { switch( status ) { case FLT_STATUS_UNCATEGORIZED: //#1991459 dont reset type: here to hide xfer txn //flt->option[FLT_GRP_TYPE] = 2; //flt->type = FLT_TYPE_INTXFER; flt->option[FLT_GRP_CATEGORY] = 1; filter_status_cat_clear_except(flt, 0); DB( my_debug_garray("cat", flt->gbcat) ); break; case FLT_STATUS_UNRECONCILED: flt->option[FLT_GRP_STATUS] = 1; flt->sta_non = TRUE; flt->sta_clr = TRUE; break; case FLT_STATUS_UNCLEARED: flt->option[FLT_GRP_STATUS] = 1; flt->sta_non = TRUE; break; case FLT_STATUS_RECONCILED: flt->option[FLT_GRP_STATUS] = 1; flt->sta_rec = TRUE; break; case FLT_STATUS_CLEARED: flt->option[FLT_GRP_STATUS] = 1; flt->sta_clr = TRUE; break; } } } gchar *filter_daterange_text_get(Filter *flt) { gchar *retval = NULL; g_return_val_if_fail( flt != NULL, NULL ); DB( g_print("\n[filter] daterange text get\n") ); if( flt->mindate <= flt->maxdate ) { gchar buffer1[128]; gchar buffer2[128]; gchar buffer3[128]; GDate *date; date = g_date_new_julian(flt->mindate); g_date_strftime (buffer1, 128-1, PREFS->date_format, date); g_date_set_julian(date, flt->maxdate); g_date_strftime (buffer2, 128-1, PREFS->date_format, date); if( flt->nbdaysfuture > 0 ) { g_date_set_julian(date, flt->maxdate + flt->nbdaysfuture); g_date_strftime (buffer3, 128-1, PREFS->date_format, date); retval = g_strdup_printf("%s — %s %s", buffer1, buffer2, buffer3); } else retval = g_strdup_printf("%s — %s", buffer1, buffer2); g_date_free(date); } else retval = g_strdup(_("Invalid date range!")); //return g_strdup_printf(_("from %s to %s — "), buffer1, buffer2); return retval; } gchar *filter_text_summary_get(Filter *flt) { GString *node; node = g_string_sized_new(128); if( flt->option[FLT_GRP_TYPE] ) { g_string_append_printf(node, "%c%s: ", flt->option[FLT_GRP_TYPE] == FLT_INCLUDE ? '+' : '-', _("Type")); if(flt->typ_nexp) ///TRANSLATORS: n-exp > normal espense { g_string_append(node, _("n-exp")); g_string_append(node, " "); } if(flt->typ_ninc) ///TRANSLATORS: n-inc > normal income { g_string_append(node, _("n-inc")); g_string_append(node, " "); } if(flt->typ_xexp) ///TRANSLATORS: x-exp > transfer espense { g_string_append(node, _("x-exp")); g_string_append(node, " "); } if(flt->typ_xinc) ///TRANSLATORS: x-inc > transfer income { g_string_append(node, _("x-inc")); g_string_append(node, " "); } g_string_append(node, "\n"); } if( flt->option[FLT_GRP_STATUS] ) { g_string_append_printf(node, "%c%s: ", flt->option[FLT_GRP_STATUS] == FLT_INCLUDE ? '+' : '-', _("Status")); if(flt->sta_non) { g_string_append(node, _("none")); g_string_append(node, " "); } if(flt->sta_clr) { g_string_append(node, _("cleared")); g_string_append(node, " "); } if(flt->sta_rec) { g_string_append(node, _("reconciled")); g_string_append(node, " "); } g_string_append(node, "\n"); } if( flt->option[FLT_GRP_ACCOUNT] ) { DB( my_debug_garray("acc", flt->gbacc) ); g_string_append_printf(node, "%c%s: %d\n", flt->option[FLT_GRP_ACCOUNT] == FLT_INCLUDE ? '+' : '-', _("Account"), flt->n_item[FLT_GRP_ACCOUNT]); } if( flt->option[FLT_GRP_PAYEE] ) { DB( my_debug_garray("pay", flt->gbpay) ); g_string_append_printf(node, "%c%s: %d\n", flt->option[FLT_GRP_PAYEE] == FLT_INCLUDE ? '+' : '-', _("Payee"), flt->n_item[FLT_GRP_PAYEE]); } if( flt->option[FLT_GRP_CATEGORY] ) { g_string_append_printf(node, "%c%s: %d\n", flt->option[FLT_GRP_CATEGORY] == FLT_INCLUDE ? '+' : '-', _("Category"), flt->n_item[FLT_GRP_CATEGORY]); } if( flt->option[FLT_GRP_TAG] ) { g_string_append_printf(node, "%c%s: %d\n", flt->option[FLT_GRP_TAG] == FLT_INCLUDE ? '+' : '-', _("Tag"), flt->n_item[FLT_GRP_TAG]); } if( flt->option[FLT_GRP_PAYMODE] ) { g_string_append_printf(node, "%c%s: %d\n", flt->option[FLT_GRP_PAYMODE] == FLT_INCLUDE ? '+' : '-', _("Payment"), flt->n_item[FLT_GRP_PAYMODE]); } if( flt->option[FLT_GRP_AMOUNT] ) { g_string_append_printf(node, "%c%s: [%.2f | +%.2f]\n", flt->option[FLT_GRP_AMOUNT] == FLT_INCLUDE ? '+' : '-', _("Amount"), flt->minamount, flt->maxamount); } if( flt->option[FLT_GRP_TEXT] ) { g_string_append_printf(node, "%c%s: '%s', '%s'\n", flt->option[FLT_GRP_TEXT] == FLT_INCLUDE ? '+' : '-', _("Text"), flt->memo, flt->number); } //remove last \n if( node->len > 5 ) g_string_erase(node, node->len-1, 1); return g_string_free(node, FALSE); } /* = = = = = = = = = = = = = = = = */ /* used for quicksearch text into transaction */ gboolean filter_tpl_search_match(gchar *needle, Archive *arc) { gboolean retval = FALSE; Payee *payitem; DB( g_print("\n[filter] tpl search match\n") ); //#1668036 always try match on txn memo first if(arc->memo) { retval |= hb_string_utf8_strstr(arc->memo, needle, FALSE); } if(retval) goto end; //#1509485 if(arc->flags & OF_SPLIT) { guint count, i; Split *split; count = da_splits_length(arc->splits); for(i=0;isplits, i); tmpinsert = hb_string_utf8_strstr(split->memo, needle, FALSE); retval |= tmpinsert; if( tmpinsert ) break; } } if(retval) goto end; if(arc->number) { retval |= hb_string_utf8_strstr(arc->number, needle, FALSE); } if(retval) goto end; payitem = da_pay_get(arc->kpay); if(payitem) { retval |= hb_string_utf8_strstr(payitem->name, needle, FALSE); } if(retval) goto end; //#1741339 add quicksearch for amount { gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; hb_strfnum(formatd_buf, G_ASCII_DTOSTR_BUF_SIZE-1, arc->amount, GLOBALS->kcur, FALSE); retval |= hb_string_utf8_strstr(formatd_buf, needle, FALSE); } end: return retval; } static gboolean filter_txn_tag_match(Filter *flt, guint32 *tags) { guint count, i; gboolean retval = FALSE; g_return_val_if_fail( flt != NULL, FALSE ); if(flt->gbtag == NULL) return FALSE; count = tags_count(tags); //if no tag in txn just check (no tag) is set if( count == 0 ) { retval = da_flt_status_tag_get(flt, 0); goto end; } DB( g_print("\n[filter] tnx tag match\n") ); //debug loop */ #if MYDEBUG == 1 g_print(" dbg gbtag %d elt\n", flt->gbtag->len); for(i=0;igbtag->len;i++) { g_print("[%d]=%d ", i, flt->gbtag->data[i]); } g_print("\n\n"); #endif /* loop on any tags */ DB( g_print(" loop txn tags %d\n", count) ); for(i=0;imemo) { retval |= hb_string_utf8_strstr(txn->memo, needle, FALSE); } if(retval) goto end; //#1509485 if(txn->flags & OF_SPLIT) { guint count, i; Split *split; count = da_splits_length(txn->splits); for(i=0;isplits, i); tmpinsert = hb_string_utf8_strstr(split->memo, needle, FALSE); retval |= tmpinsert; if( tmpinsert ) break; } } if(retval) goto end; } if(flags & FLT_QSEARCH_NUMBER) { if(txn->number) { retval |= hb_string_utf8_strstr(txn->number, needle, FALSE); } if(retval) goto end; } if(flags & FLT_QSEARCH_PAYEE) { payitem = da_pay_get(txn->kpay); if(payitem) { retval |= hb_string_utf8_strstr(payitem->name, needle, FALSE); } if(retval) goto end; } if(flags & FLT_QSEARCH_CATEGORY) { //#1509485 if(txn->flags & OF_SPLIT) { guint count, i; Split *split; count = da_splits_length(txn->splits); for(i=0;isplits, i); catitem = da_cat_get(split->kcat); if(catitem) { tmpinsert = hb_string_utf8_strstr(catitem->fullname, needle, FALSE); retval |= tmpinsert; } if( tmpinsert ) break; } } else { catitem = da_cat_get(txn->kcat); if(catitem) { retval |= hb_string_utf8_strstr(catitem->fullname, needle, FALSE); } } if(retval) goto end; } if(flags & FLT_QSEARCH_TAGS) { //TODO: chnage this tags = tags_tostring(txn->tags); if(tags) { retval |= hb_string_utf8_strstr(tags, needle, FALSE); } g_free(tags); if(retval) goto end; } //#1741339 add quicksearch for amount if(flags & FLT_QSEARCH_AMOUNT) { gchar formatd_buf[G_ASCII_DTOSTR_BUF_SIZE]; DB( g_print(" needle='%s' txnamt='%s'\n", needle, formatd_buf) ); hb_strfnum(formatd_buf, G_ASCII_DTOSTR_BUF_SIZE-1, txn->amount, txn->kcur, FALSE); retval |= hb_string_utf8_strstr(formatd_buf, needle, FALSE); } end: return retval; } gint filter_acc_match(Filter *flt, Account *acc) { gboolean status; gint insert = 1; g_return_val_if_fail( flt != NULL, 1 ); /* account */ if(flt->option[FLT_GRP_ACCOUNT]) { status = da_flt_status_acc_get(flt, acc->key); insert = ( status == TRUE ) ? 1 : 0; if(flt->option[FLT_GRP_ACCOUNT] == 2) insert ^= 1; } return(insert); } gint filter_txn_match(Filter *flt, Transaction *txn) { gboolean status; gint insert; //DB( g_print("\n[filter] txn match\n") ); insert = 1; /*** start filtering ***/ /* date */ if(flt->option[FLT_GRP_DATE]) { insert = ( (txn->date >= flt->mindate) && (txn->date <= (flt->maxdate + flt->nbdaysfuture) ) ) ? 1 : 0; if(flt->option[FLT_GRP_DATE] == 2) insert ^= 1; } if(!insert) goto end; /* account */ if(flt->option[FLT_GRP_ACCOUNT]) { status = da_flt_status_acc_get(flt, txn->kacc); insert = ( status == TRUE ) ? 1 : 0; if(flt->option[FLT_GRP_ACCOUNT] == 2) insert ^= 1; } if(!insert) goto end; /* payee */ if(flt->option[FLT_GRP_PAYEE]) { status = da_flt_status_pay_get(flt, txn->kpay); insert = ( status == TRUE ) ? 1 : 0; if(flt->option[FLT_GRP_PAYEE] == 2) insert ^= 1; } if(!insert) goto end; /* category */ if(flt->option[FLT_GRP_CATEGORY]) { if(txn->flags & OF_SPLIT) { guint count, i; Split *split; insert = 0; //fix: 1151259 count = da_splits_length(txn->splits); for(i=0;isplits, i); status = da_flt_status_cat_get(flt, split->kcat); tmpinsert = ( status == TRUE ) ? 1 : 0; if(flt->option[FLT_GRP_CATEGORY] == 2) tmpinsert ^= 1; insert |= tmpinsert; } } else { status = da_flt_status_cat_get(flt, txn->kcat); insert = ( status == TRUE ) ? 1 : 0; if(flt->option[FLT_GRP_CATEGORY] == 2) insert ^= 1; } } if(!insert) goto end; /* tag */ if(flt->option[FLT_GRP_TAG]) { status = filter_txn_tag_match(flt, txn->tags); insert = ( status == TRUE ) ? 1 : 0; if(flt->option[FLT_GRP_TAG] == 2) insert ^= 1; } if(!insert) goto end; /* type */ if(flt->option[FLT_GRP_TYPE]) { gint ntyp1, ntyp2, xtyp1, xtyp2; ntyp1 = ( (flt->typ_nexp == TRUE) && !(txn->flags & (OF_INCOME)) ) ? 1 : 0; ntyp2 = ( (flt->typ_ninc == TRUE) && (txn->flags & (OF_INCOME)) ) ? 1 : 0; if( (txn->flags & (OF_INTXFER)) ) { xtyp1 = ( (flt->typ_xexp == TRUE) && !(txn->flags & (OF_INCOME)) ) ? 1 : 0; xtyp2 = ( (flt->typ_xinc == TRUE) && (txn->flags & (OF_INCOME)) ) ? 1 : 0; } else { xtyp1 = xtyp2 = 0; } insert = ntyp1 || ntyp2 || xtyp1 || xtyp2; if(flt->option[FLT_GRP_TYPE] == 2) insert ^= 1; } if(!insert) goto end; /* status */ if(flt->option[FLT_GRP_STATUS]) { gint sta1 = ( (flt->sta_non == TRUE) && (txn->status == TXN_STATUS_NONE) ) ? 1 : 0; gint sta2 = ( (flt->sta_clr == TRUE) && (txn->status == TXN_STATUS_CLEARED) ) ? 1 : 0; gint sta3 = ( (flt->sta_rec == TRUE) && (txn->status == TXN_STATUS_RECONCILED) ) ? 1 : 0; insert = sta1 || sta2 || sta3; if(flt->option[FLT_GRP_STATUS] == 2) insert ^= 1; } if(!insert) goto end; /* paymode */ //#2059709 ignore paymode for xfer if( !(txn->flags & (OF_INTXFER)) ) { if(flt->option[FLT_GRP_PAYMODE]) { insert = ( flt->paymode[txn->paymode] == TRUE) ? 1 : 0; if(flt->option[FLT_GRP_PAYMODE] == 2) insert ^= 1; } if(!insert) goto end; } /* amount */ if(flt->option[FLT_GRP_AMOUNT]) { insert = ( (txn->amount >= flt->minamount) && (txn->amount <= flt->maxamount) ) ? 1 : 0; if(flt->option[FLT_GRP_AMOUNT] == 2) insert ^= 1; } if(!insert) goto end; /* info/memo */ if(flt->option[FLT_GRP_TEXT]) { gint insert1, insert2; insert1 = insert2 = 0; //2068664 test for empty string as well if( flt->number && (*flt->number != 0) ) { if(txn->number) { insert1 = hb_string_utf8_strstr(txn->number, flt->number, flt->exact); } } else insert1 = 1; //2068664 test for empty string as well if( flt->memo && (*flt->memo != 0) ) { //#1668036 always try match on txn memo first if(txn->memo) { insert2 = hb_string_utf8_strstr(txn->memo, flt->memo, flt->exact); } if( (insert2 == 0) && (txn->flags & OF_SPLIT) ) { guint count, i; Split *split; count = da_splits_length(txn->splits); for(i=0;isplits, i); tmpinsert = hb_string_utf8_strstr(split->memo, flt->memo, flt->exact); insert2 |= tmpinsert; if( tmpinsert ) break; } } } else insert2 = 1; insert = insert1 && insert2 ? 1 : 0; if(flt->option[FLT_GRP_TEXT] == 2) insert ^= 1; } //if(!insert) goto end; end: /* force display */ if(!insert) { if( ((flt->forceadd == TRUE) && (txn->dspflags & FLAG_TMP_ADDED)) || ((flt->forcechg == TRUE) && (txn->dspflags & FLAG_TMP_EDITED)) ) insert = 1; } //5.9 always show pending if( txn->flags & (OF_ISIMPORT|OF_ISPAST) ) { insert = TRUE; } //#1999186 pref void/remind to false do not work //if( txn->status == TXN_STATUS_REMIND ) if( txn->flags & OF_REMIND ) { insert = flt->forceremind; } if( txn->status == TXN_STATUS_VOID ) { insert = flt->forcevoid; } // DB( g_print(" %d :: %d :: %d\n", flt->mindate, txn->date, flt->maxdate) ); // DB( g_print(" [%d] %s => %d (%d)\n", txn->account, txn->memo, insert, count) ); return(insert); } homebank-5.9.1/src/hb-currency.c0000644000175000017500000007323214736461407012172 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-currency.h" #include "hb-pref-data.h" #include #ifdef G_OS_WIN32 #include #endif /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern Currency4217 iso4217cur[]; extern guint n_iso4217cur; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void da_cur_free(Currency *item) { DB( g_print("\n[da_cur] free\n") ); if(item != NULL) { DB( g_print(" %d, %s\n", item->key, item->iso_code) ); g_free(item->name); g_free(item->iso_code); g_free(item->symbol); g_free(item->decimal_char); g_free(item->grouping_char); g_free(item); } } Currency * da_cur_malloc(void) { DB( g_print("\n[da_cur] malloc\n") ); return g_malloc0(sizeof(Currency)); } void da_cur_destroy(void) { DB( g_print("\n[da_cur] destroy\n") ); g_hash_table_destroy(GLOBALS->h_cur); } void da_cur_new(void) { Currency4217 *curfmt; DB( g_print("\n[da_cur] new\n") ); GLOBALS->h_cur = g_hash_table_new_full(g_int_hash, g_int_equal, (GDestroyNotify)g_free, (GDestroyNotify)da_cur_free); // insert default base currency curfmt = iso4217format_get(PREFS->IntCurrSymbol); if(curfmt == NULL) curfmt = iso4217format_get("USD"); if(curfmt) { DB( g_printf(" curfmt %p\n", curfmt) ); currency_add_from_user(curfmt); } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void da_cur_max_key_ghfunc(gpointer key, Currency *item, guint32 *max_key) { *max_key = MAX(*max_key, item->key); } static gboolean da_cur_name_grfunc(gpointer key, Currency *item, gchar *name) { if( name && item->name ) { if(!strcasecmp(name, item->name)) return TRUE; } return FALSE; } static gboolean da_cur_iso_grfunc(gpointer key, Currency *item, gchar *iso) { if( iso && item->iso_code ) { if(!strcasecmp(iso, item->iso_code)) return TRUE; } return FALSE; } guint da_cur_length(void) { return g_hash_table_size(GLOBALS->h_cur); } gboolean da_cur_delete(guint32 key) { DB( g_print("\n[da_cur] delete %d\n", key) ); return g_hash_table_remove(GLOBALS->h_cur, &key); } void da_cur_init_from4217(Currency *cur, Currency4217 *curfmt) { cur->symbol = g_strdup(curfmt->curr_symbol); cur->sym_prefix = curfmt->curr_is_prefix; cur->decimal_char = g_strdup(curfmt->curr_dec_char); cur->grouping_char = g_strdup(curfmt->curr_grp_char); cur->frac_digits = curfmt->curr_frac_digit; da_cur_initformat(cur); } void da_cur_initformat(Currency *item) { DB( g_print("\n[da_cur] init format\n") ); DB( g_print(" k:%d iso:'%s' symbol:'%s' digit:%d\n", item->key, item->iso_code, item->symbol, item->frac_digits) ); // for formatd g_snprintf(item->format , 8-1, "%%.%df", item->frac_digits); if(item->sym_prefix == TRUE) g_snprintf(item->monfmt , 32-1, "%s %%s", item->symbol); else g_snprintf(item->monfmt , 32-1, "%%s %s", item->symbol); DB( g_print(" numfmt '%s'\n", item->format) ); DB( g_print(" monfmt '%s'\n", item->monfmt) ); } gboolean da_cur_insert(Currency *item) { guint32 *new_key; DB( g_print("\n[da_cur] insert\n") ); new_key = g_new0(guint32, 1); *new_key = item->key; g_hash_table_insert(GLOBALS->h_cur, new_key, item); da_cur_initformat(item); return TRUE; } gboolean da_cur_append(Currency *item) { Currency *existitem; guint32 *new_key; DB( g_print("\n[da_cur] append\n") ); /* ensure no duplicate */ existitem = da_cur_get_by_name( item->name ); if( existitem == NULL ) { new_key = g_new0(guint32, 1); *new_key = da_cur_get_max_key() + 1; item->key = *new_key; //item->pos = da_cur_length() + 1; DB( g_print(" insert id: %d\n", *new_key) ); g_hash_table_insert(GLOBALS->h_cur, new_key, item); da_cur_initformat(item); return TRUE; } DB( g_print(" %s already exist: %d\n", item->iso_code, item->key) ); return FALSE; } guint32 da_cur_get_max_key(void) { guint32 max_key = 0; g_hash_table_foreach(GLOBALS->h_cur, (GHFunc)da_cur_max_key_ghfunc, &max_key); return max_key; } Currency * da_cur_get_by_name(gchar *name) { DB( g_print("\n[da_cur] get_by_name\n") ); return g_hash_table_find(GLOBALS->h_cur, (GHRFunc)da_cur_name_grfunc, name); } Currency * da_cur_get_by_iso_code(gchar *iso_code) { DB( g_print("\n[da_cur] get_by_iso_code\n") ); return g_hash_table_find(GLOBALS->h_cur, (GHRFunc)da_cur_iso_grfunc, iso_code); } Currency * da_cur_get(guint32 key) { //only use when needed //DB( g_print("\n[da_cur] get\n") ); return g_hash_table_lookup(GLOBALS->h_cur, &key); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ gboolean currency_is_euro(guint32 key) { Currency *item; gboolean retval = FALSE; item = da_cur_get(key); if( item && item->iso_code ) { if(!strcasecmp("EUR", item->iso_code)) retval = TRUE; } return retval; } /** * currency_is_used: * * controls if a currency is used [base or account] * * Return value: TRUE if used, FALSE, otherwise */ gboolean currency_is_used(guint32 key) { GList *list; gboolean retval; DB( g_printf("\n[currency] is used\n") ); if(GLOBALS->kcur == key) return TRUE; retval = FALSE; list = g_hash_table_get_values(GLOBALS->h_acc); while (list != NULL) { Account *item = list->data; if(item->kcur == key) { retval = TRUE; goto end; } list = g_list_next(list); } end: g_list_free(list); return retval; } Currency4217 *iso4217format_get(gchar *code) { Currency4217 *cur; guint i; DB( g_printf("\n[currency] iso4217 format get\n") ); for (i = 0; i< n_iso4217cur; i++) { cur = &iso4217cur[i]; if(g_strcmp0(cur->curr_iso_code, code) == 0) { return cur; } } return NULL; } //https://msdn.microsoft.com/en-us/library/windows/desktop/dd464799%28v=vs.85%29.aspx //https://github.com/Samsung/icu/blob/master/source/i18n/winnmfmt.cpp #ifdef G_OS_WIN32 #define NEW_ARRAY(type,count) (type *) g_malloc((count) * sizeof(type)) #define DELETE_ARRAY(array) g_free((void *) (array)) static void win_getCurrencyFormat(CURRENCYFMTW *fmt, const wchar_t *windowsLocaleName) { //wchar_t buf[10]; DB( g_printf("\n[currency] win get system format\n") ); GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_ICURRDIGITS, (LPWSTR) &fmt->NumDigits, sizeof(UINT)); //GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_ILZERO, (LPWSTR) &fmt->LeadingZero, sizeof(UINT)); //GetLocaleInfoEx(windowsLocaleName, LOCALE_SMONGROUPING, (LPWSTR)buf, sizeof(buf)); //fmt->Grouping = getGrouping(buf); fmt->lpDecimalSep = NEW_ARRAY(wchar_t, 6); GetLocaleInfoEx(windowsLocaleName, LOCALE_SMONDECIMALSEP, fmt->lpDecimalSep, 6); fmt->lpThousandSep = NEW_ARRAY(wchar_t, 6); GetLocaleInfoEx(windowsLocaleName, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6); //GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT)); GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT)); fmt->lpCurrencySymbol = NEW_ARRAY(wchar_t, 8); GetLocaleInfoEx(windowsLocaleName, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8); } static void win_freeCurrencyFormat(CURRENCYFMTW *fmt) { DB( g_printf("\n[currency] win free system format\n") ); if (fmt != NULL) { DELETE_ARRAY(fmt->lpCurrencySymbol); DELETE_ARRAY(fmt->lpThousandSep); DELETE_ARRAY(fmt->lpDecimalSep); } } static void win_currency_get_system_iso(void) { LPWSTR lpIntlSymbol; DB( g_printf("\n[currency] get system ISO\n") ); lpIntlSymbol = NEW_ARRAY(wchar_t, 9); GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SINTLSYMBOL, lpIntlSymbol, 9); DB( wprintf(L"raw lpIntlSymbol: '%hs'\n", lpIntlSymbol) ); gchar *tmpstr = g_utf16_to_utf8(lpIntlSymbol, -1, NULL, NULL, NULL); g_stpcpy (PREFS->IntCurrSymbol, tmpstr); g_free(tmpstr); DELETE_ARRAY(lpIntlSymbol); } static void win_currency_format_system_fill(Currency *item) { CURRENCYFMTW currency; DB( g_printf("\n[currency] windows format system fill '%s'\n", item->iso_code) ); win_getCurrencyFormat(¤cy, LOCALE_NAME_USER_DEFAULT); #if MYDEBUG == 1 printf("raw ptr = %p\n", ¤cy); printf("raw NumDigits: '%d'\n", currency.NumDigits); //note this will not print well on windows console which is not unicode compliant wprintf(L"raw lpDecimalSep: '%hs'\n", currency.lpDecimalSep); wprintf(L"raw lpThousandSep: '%hs'\n", currency.lpThousandSep); wprintf(L"raw lpCurrencySymbol: '%hs'\n", currency.lpCurrencySymbol); #endif item->symbol = g_utf16_to_utf8(currency.lpCurrencySymbol, -1, NULL, NULL, NULL); item->sym_prefix = (currency.PositiveOrder & 1) ? FALSE : TRUE; item->decimal_char = g_utf16_to_utf8(currency.lpDecimalSep, -1, NULL, NULL, NULL); item->grouping_char = g_utf16_to_utf8(currency.lpThousandSep, -1, NULL, NULL, NULL); item->frac_digits = currency.NumDigits; win_freeCurrencyFormat(¤cy); } #endif #ifdef G_OS_UNIX static void unix_currency_get_system_iso(void) { struct lconv *lc = localeconv(); DB( g_printf("\n[currency] get system ISO\n") ); g_stpcpy (PREFS->IntCurrSymbol, lc->int_curr_symbol); } static void unix_currency_format_system_fill(Currency *item) { struct lconv *lc = localeconv(); DB( g_printf("\n[currency] linux format system fill '%s'\n", item->iso_code) ); #if MYDEBUG == 1 g_print("raw ptr = %p\n", lc); g_print("raw int_curr_symbol = '%s'\n", lc->int_curr_symbol); g_print("raw ?_cs_precedes = '%d' '%d'\n", lc->p_cs_precedes, lc->n_cs_precedes); g_print("raw mon_decimal_point = '%s'\n", lc->mon_decimal_point); g_print("raw mon_thousands_sep = '%s'\n", lc->mon_thousands_sep); g_print("raw frac_digits = '%d'\n", lc->frac_digits); #endif item->symbol = g_strdup(lc->currency_symbol); item->sym_prefix = ( lc->p_cs_precedes || lc->n_cs_precedes ) ? TRUE : FALSE; item->decimal_char = g_strdup(lc->mon_decimal_point); item->grouping_char = g_strdup(lc->mon_thousands_sep); item->frac_digits = lc->frac_digits; //fix 378992/421228 if( item->frac_digits > MAX_FRAC_DIGIT ) { item->frac_digits = 2; g_free(item->decimal_char); item->decimal_char = g_strdup("."); } } #endif void currency_get_system_iso(void) { DB( g_print("\n[currency] get system ISO code\n") ); #ifdef G_OS_UNIX unix_currency_get_system_iso(); #else #ifdef G_OS_WIN32 win_currency_get_system_iso(); #else g_stpcpy (PREFS->IntCurrSymbol, "USD"); #endif #endif g_strstrip(PREFS->IntCurrSymbol); DB( g_print("- stored '%s' as default\n", PREFS->IntCurrSymbol) ); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ Currency *currency_add_from_user(Currency4217 *curfmt) { Currency *item; DB( g_printf("\n[currency] found adding %s\n", curfmt->curr_iso_code) ); item = da_cur_malloc(); //no mem alloc here //item->key = i; if(curfmt != NULL) { item->name = g_strdup(curfmt->name); //item->country = cur.country_name; item->iso_code = g_strdup(curfmt->curr_iso_code); //1634615 if the currency match the system, fill with it if(!strcmp(item->iso_code, PREFS->IntCurrSymbol)) { #ifdef G_OS_UNIX unix_currency_format_system_fill(item); #else #ifdef G_OS_WIN32 win_currency_format_system_fill(item); #endif #endif } else { //init from our internal iso 4217 preset item->frac_digits = curfmt->curr_frac_digit; item->symbol = g_strdup(curfmt->curr_symbol); item->sym_prefix = curfmt->curr_is_prefix; item->decimal_char = g_strdup(curfmt->curr_dec_char); item->grouping_char = g_strdup(curfmt->curr_grp_char); } } else { item->name = g_strdup("unknown"); //item->country = cur.country_name; item->iso_code = g_strdup("XXX"); item->frac_digits = 2; item->sym_prefix = FALSE; } //#1862540 if symbol/decimal/grouping char are null = crash on hb_str_formatd() if( !item->symbol ) item->symbol = g_strdup("XXX"); if( !item->decimal_char ) item->decimal_char = g_strdup("."); if( !item->grouping_char ) item->grouping_char = g_strdup(""); #if MYDEBUG == 1 g_printf(" symbol ='%s'\n", item->symbol); g_printf(" sym_prefix ='%d'\n", item->sym_prefix); g_printf(" decimal_char ='%s'\n", item->decimal_char); g_printf(" grouping_char ='%s'\n", item->grouping_char); g_printf(" frac_digits ='%d'\n", item->frac_digits); #endif da_cur_append(item); return item; } static gboolean currency_rate_update(gchar *isocode, gdouble rate, guint32 date) { gboolean retval = FALSE; Currency *cur; DB( g_print("\n[currency] rate update\n") ); cur = da_cur_get_by_iso_code (isocode); if(cur) { DB( g_print(" found cur='%s'\n", cur->iso_code) ); //#2002650 test if there is a change if( rate != cur->rate ) { GLOBALS->changes_count++; retval = TRUE; } #if MYDEBUG == 1 else { DB( g_print(" rate was identical\n") ); } #endif cur->rate = rate; cur->mdate = date; } return retval; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* currency API * discontinued see #1730527, #1785210 */ /* real open source fixer API */ /* DNS should be: https://frankfurter.app * see https://github.com/fixerAPI/fixer/issues/107 */ /* ** 5.7 ** https://api.exchangerate.host/latest?base=EUR&symbols=USD,CHF,AUD,CAD,JPY,CNY,GBP ** http://data.fixer.io/api/latest?access_key=xxxx&base=EUR&symbols=USD,CHF,AUD,CAD,JPY,CNY,GBP */ /* old ** api.fixer.io deprecated since 30/04/2019 ** QS: https://api.fixer.io/latest?base=EUR&symbols=USD,CHF,AUD,CAD,JPY,CNY,GBP ** ** test API ** gchar fixeriojson[] = ** "{    }"; ** " { \r \"base\" : \"EUR\", \ ** \"date\": \n\r \"2017-12-04\", \ ** \"rates\" \n\n :{\"AUD\":1.5585,\"CAD\":1.5034,\"CHF\":1.1665,\"CNY\":7.8532,\"GBP\":0.87725,\"JPY\":133.91,\"USD\":1.1865 \ ** } }"; */ static gboolean api_fixerio_parse(GBytes *body, GError **error) { gchar *rawjson; gchar *p; gchar strbuf[48]; gchar isocode[8]; gdouble rate; guint32 date = GLOBALS->today; guint count = 0; DB( g_print("\n[currency] api fixerio parse\n") ); if(body) { //there is no need of a complex JSON parser here, so let's hack ! rawjson = g_strdup(g_bytes_get_data(body, NULL)); hb_string_inline(rawjson); DB( g_printf(" body: '%s'\n", rawjson ) ); //get date p = g_strstr_len(rawjson, -1, "\"date\""); if(p) { strncpy(strbuf, p+8, 10); strbuf[10]='\0'; date = hb_date_get_julian(strbuf, PRF_DATEFMT_YMD); DB( g_printf(" date: %.10s %d\n", strbuf, date) ); } //get rates p = g_strstr_len(rawjson, -1, "\"rates\""); if(p) { p = p+8; do { p = hb_string_copy_jsonpair(strbuf, p); strncpy(isocode, strbuf, 3); isocode[3]='\0'; rate = g_ascii_strtod(strbuf+4, NULL); DB( g_printf(" pair: '%s' > '%s' %f\n", strbuf, isocode, rate ) ); if( currency_rate_update(isocode, rate, date) ) count++; } while( p != NULL ); } g_free(rawjson); } return( (count > 0) ? TRUE : FALSE); } static gchar *api_fixerio_query_build(void) { GList *list; GString *node; Currency *base; Currency *item; gint i; DB( g_print("\n[currency] api fixerio query build\n") ); base = da_cur_get (GLOBALS->kcur); node = g_string_sized_new(512); //g_string_append_printf(node, "https://api.frankfurter.app/latest?base=%s&symbols=", base->iso_code); //2017410 + 5.7 base url from prefs //g_string_append_printf(node, "%s/latest?", PREFS->api_rate_url); //5.7.2 get full hostname from prefs g_string_append_printf(node, "%s?", PREFS->api_rate_url); //2017410 + 5.7 key from prefs if( PREFS->api_rate_key != NULL && strlen(PREFS->api_rate_key) > 8 ) g_string_append_printf(node, "access_key=%s&", PREFS->api_rate_key); //base currency g_string_append_printf(node, "base=%s&symbols=", base->iso_code); list = g_hash_table_get_values(GLOBALS->h_cur); i = g_list_length (list); while (list != NULL) { item = list->data; if( (item->key != GLOBALS->kcur) && (strlen(item->iso_code) == 3) ) { g_string_append_printf(node, "%s", item->iso_code); if(i > 1) { g_string_append(node, ","); } } i--; list = g_list_next(list); } g_list_free(list); return g_string_free(node, FALSE); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ gboolean currency_online_sync(GError **error, GString *node) { SoupSession *session; SoupMessage *msg; GBytes *body; gchar *query; guint status; gboolean retval = TRUE; DB( g_printf("\n[currency] sync online\n") ); query = api_fixerio_query_build(); DB( g_printf(" query: '%s'\n", query) ); /* //test API retval = api_fixerio_parse(fixeriojson, error); */ if( node != NULL ) { g_string_append(node, query); g_string_append(node, "\n"); } session = soup_session_new (); msg = soup_message_new ("GET", query); if(msg != NULL) { //soup_session_send_message (session, msg); //DB( g_print("status_code: %d %d\n", msg->status_code, SOUP_STATUS_IS_SUCCESSFUL(msg->status_code) ) ); body = soup_session_send_and_read (session, msg, NULL, error); status = soup_message_get_status (msg); DB( g_print(" status_code: %d %d\n", status, SOUP_STATUS_IS_SUCCESSFUL(status) ) ); DB( g_print(" reason: '%s'\n", soup_message_get_reason_phrase(msg)) ); DB( g_print(" datas: '%s'\n", (gchar *)g_bytes_get_data(body, NULL)) ); if( node != NULL ) { g_string_append_printf(node, "status_code: %d\n", status); g_string_append_printf(node, "reason: '%s'\n", soup_message_get_reason_phrase(msg)); g_string_append_printf(node, "datas: '%s'\n", (gchar *)g_bytes_get_data(body, NULL)); } //if( SOUP_STATUS_IS_SUCCESSFUL(msg->status_code) == TRUE ) if( SOUP_STATUS_IS_SUCCESSFUL(status) == TRUE ) { //#1750426 ignore the retval here (false when no rate was found, as we don't care) //api_fixerio_parse(msg->response_body->data, error); api_fixerio_parse(body, error); //#2066110 update euro minor rate if(PREFS->euro_active == TRUE) { euro_country_notmceii_rate_update(PREFS->euro_country); } } else { //*error = g_error_new_literal(1, msg->status_code, msg->reason_phrase); *error = g_error_new_literal(1, status, soup_message_get_reason_phrase(msg) ); retval = FALSE; } g_bytes_unref (body); g_object_unref (msg); } else { *error = g_error_new_literal(1, 0, "cannot parse URI"); retval = FALSE; } g_free(query); soup_session_abort (session); g_object_unref(session); return retval; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ //struct iso_4217_currency iso_4217_currencies[]; /*debug testing static void fill_currency(void) { gint i; struct iso_4217_currency cur; Currency *item; for (i = 0; i< 500; i++) { cur = iso_4217_currencies[i]; if(cur.iso_code == NULL) break; item = da_cur_malloc(); //no mem alloc here item->key = i; item->name = cur.currency; item->country = cur.country; item->iso_code = cur.iso_code; da_cur_insert(item); } }*/ //https://en.wikipedia.org/wiki/ISO_4217 Currency4217 iso4217cur[] = { { "AED", 2, ".", ",", TRUE, "د.إ.‏", "UAE Dirham" }, { "AFN", 2, ",", ",", TRUE, "؋", "Afghani" }, { "ALL", 2, ",", " ", FALSE, "Lekë", "Lek" }, { "AMD", 2, ".", ",", FALSE, "֏", "Armenian Dram" }, { "ANG", 2, ",", ",", TRUE, "NAf.", "Netherlands Antillian Guilder" }, { "AOA", 2, ",", " ", FALSE, "Kz", "Kwanza" }, { "ARS", 2, ",", ".", TRUE, "$", "Argentine Peso" }, { "AUD", 2, ".", ",", TRUE, "$", "Australian Dollar" }, { "AWG", 2, ",", ".", TRUE, "Afl.", "Aruban Guilder" }, { "AZN", 2, ",", " ", TRUE, "₼", "Azerbaijanian Manat" }, { "BAM", 2, ",", ".", FALSE, "KM", "Convertible Marks" }, { "BBD", 2, ".", ",", TRUE, "$", "Barbados Dollar" }, { "BDT", 2, ".", ",", TRUE, "৳", "Taka" }, { "BGN", 2, ",", " ", FALSE, "лв.", "Bulgarian Lev" }, { "BHD", 3, ".", ",", TRUE, "د.ب.‏", "Bahraini Dinar" }, { "BIF", 0, ",", " ", FALSE, "FBu", "Burundi Franc" }, { "BMD", 2, ".", ",", TRUE, "$", "Bermudian Dollar" }, { "BND", 2, ",", ".", TRUE, "$", "Brunei Dollar" }, { "BOB", 2, ",", ".", TRUE, "Bs", "Boliviano" }, { "BOV", 2, ".", "", FALSE, "BOV", "Mvdol" }, { "BRL", 2, ",", ".", TRUE, "R$", "Brazilian Real" }, { "BSD", 2, ".", ",", TRUE, "$", "Bahamian Dollar" }, { "BTN", 2, ".", ",", TRUE, "Nu.", "Ngultrum" }, { "BWP", 2, ".", " ", TRUE, "P", "Pula" }, { "BYN", 0, ",", " ", FALSE, "Br", "Belarussian Ruble" }, { "BYR", 0, ",", " ", FALSE, "Br", "Old Belarussian Ruble" }, { "BZD", 2, ".", ",", TRUE, "$", "Belize Dollar" }, { "CAD", 2, ",", " ", TRUE, "$", "Canadian Dollar" }, { "CDF", 2, ",", " ", TRUE, "FC", "Congolese Franc" }, { "CHE", 2, ".", "", FALSE, "CHE", "WIR Euro" }, { "CHF", 2, ",", "'", TRUE, "CHF", "Swiss Franc" }, { "CHW", 2, ".", "", FALSE, "CHW", "WIR Franc" }, { "CLF", 4, ".", "", FALSE, "CLF", "Unidades de fomento" }, { "CLP", 0, ",", ".", TRUE, "$", "Chilean Peso" }, { "CNY", 2, ".", ",", TRUE, "¥", "Yuan Renminbi" }, { "COP", 2, ",", ".", TRUE, "$", "Colombian Peso" }, { "COU", 2, ".", "", FALSE, "COU", "Unidad de Valor Real" }, { "CRC", 0, ",", ".", TRUE, "₡", "Costa Rican Colon" }, { "CUP", 2, ".", ",", TRUE, "$", "Cuban Peso" }, { "CVE", 2, "$", " ", FALSE, "​", "Cape Verde Escudo" }, { "CYP", 2, ".", "", FALSE, "CYP", "Cyprus Pound" }, { "CZK", 2, ",", " ", FALSE, "Kč", "Czech Koruna" }, { "DJF", 0, ",", " ", TRUE, "Fdj", "Djibouti Franc" }, { "DKK", 2, ",", ".", TRUE, "kr", "Danish Krone" }, { "DOP", 2, ".", ",", TRUE, "$", "Dominican Peso" }, { "DZD", 2, ",", " ", FALSE, "DA", "Algerian Dinar" }, { "EEK", 2, ".", "", FALSE, "EEK", "Kroon" }, { "EGP", 2, ".", ",", TRUE, "ج.م.‏", "Egyptian Pound" }, { "ERN", 2, ".", ",", TRUE, "Nfk", "Nakfa" }, { "ETB", 2, ".", ",", TRUE, "Br", "Ethiopian Birr" }, { "EUR", 2, ",", " ", TRUE, "€", "Euro" }, { "FJD", 2, ".", ",", TRUE, "$", "Fiji Dollar" }, { "FKP", 2, ".", ",", TRUE, "£", "Falkland Islands Pound" }, { "GBP", 2, ".", ",", TRUE, "£", "Pound Sterling" }, { "GEL", 2, ",", " ", TRUE, "₾", "Lari" }, { "GHS", 2, ".", ",", TRUE, "GH₵", "Ghana Cedi" }, { "GIP", 2, ".", ",", TRUE, "£", "Gibraltar Pound" }, { "GMD", 2, ".", ",", TRUE, "D", "Dalasi" }, { "GNF", 0, ",", " ", TRUE, "FG", "Guinea Franc" }, { "GTQ", 2, ".", ",", TRUE, "Q", "Quetzal" }, { "GYD", 2, ".", ",", TRUE, "$", "Guyana Dollar" }, { "HKD", 2, ".", ",", TRUE, "$", "Hong Kong Dollar" }, { "HNL", 2, ".", ",", TRUE, "L", "Lempira" }, { "HRK", 2, ",", ".", FALSE, "kn", "Croatian Kuna" }, { "HTG", 2, ",", " ", FALSE, "G", "Gourde" }, { "HUF", 2, ",", " ", FALSE, "HUF", "Forint" }, { "IDR", 2, ",", ".", TRUE, "Rp", "Rupiah" }, { "ILS", 2, ".", ",", TRUE, "₪", "New Israeli Sheqel" }, { "INR", 2, ".", ",", TRUE, "₹", "Indian Rupee" }, { "IQD", 3, ".", ",", TRUE, "د.ع.‏", "Iraqi Dinar" }, { "IRR", 2, "/", ",", TRUE, "ريال", "Iranian Rial" }, { "ISK", 0, ",", ".", FALSE, "ISK", "Iceland Krona" }, { "JMD", 2, ".", ",", TRUE, "$", "Jamaican Dollar" }, { "JOD", 3, ".", ",", TRUE, "د.ا.‏", "Jordanian Dinar" }, { "JPY", 0, ".", ",", TRUE, "¥", "Yen" }, { "KES", 2, ".", ",", TRUE, "Ksh", "Kenyan Shilling" }, { "KGS", 2, ",", " ", FALSE, "сом", "Som" }, { "KHR", 2, ".", ",", FALSE, "៛", "Riel" }, { "KMF", 0, ",", " ", TRUE, "CF", "Comoro Franc" }, { "KPW", 2, ".", "", FALSE, "KPW", "North Korean Won" }, { "KRW", 0, ".", ",", TRUE, "₩", "Won" }, { "KWD", 3, ".", ",", TRUE, "د.ك.‏", "Kuwaiti Dinar" }, { "KYD", 2, ".", ",", TRUE, "$", "Cayman Islands Dollar" }, { "KZT", 2, ",", " ", FALSE, "₸", "Tenge" }, { "LAK", 2, ",", ".", TRUE, "₭", "Kip" }, { "LBP", 2, ".", ",", TRUE, "ل.ل.‏", "Lebanese Pound" }, { "LKR", 2, ".", ",", TRUE, "Rs.", "Sri Lanka Rupee" }, { "LRD", 2, ".", ",", TRUE, "$", "Liberian Dollar" }, { "LSL", 2, ".", "", FALSE, "LSL", "Loti" }, { "LTL", 2, ".", "", FALSE, "LTL", "Lithuanian Litas" }, { "LVL", 2, ".", "", FALSE, "LVL", "Latvian Lats" }, { "LYD", 3, ".", ",", TRUE, "د.ل.‏", "Libyan Dinar" }, { "MAD", 2, ",", " ", FALSE, "DH", "Moroccan Dirham" }, { "MDL", 2, ",", " ", FALSE, "L", "Moldovan Leu" }, { "MGA", 2, ",", " ", TRUE, "Ar", "Malagasy Ariary" }, { "MKD", 2, ",", " ", TRUE, "den", "Denar" }, { "MMK", 2, ".", ",", TRUE, "K", "Kyat" }, { "MNT", 2, ".", ",", TRUE, "₮", "Tugrik" }, { "MOP", 2, ",", " ", TRUE, "MOP", "Pataca" }, { "MRO", 0, ",", " ", TRUE, "UM", "Ouguiya" }, { "MTL", 2, ".", "", FALSE, "MTL", "Maltese Lira" }, { "MUR", 2, ",", " ", TRUE, "Rs", "Mauritius Rupee" }, { "MVR", 2, ".", ",", FALSE, "ރ.", "Rufiyaa" }, { "MWK", 2, ".", ",", TRUE, "MK", "Kwacha" }, { "MXN", 2, ".", ",", TRUE, "$", "Mexican Peso" }, { "MXV", 2, ".", "", FALSE, "MXV", "Mexican Unidad de Inversion (UDI)" }, { "MYR", 2, ".", ",", TRUE, "RM", "Malaysian Ringgit" }, { "MZN", 2, ",", " ", FALSE, "MTn", "Metical" }, { "NAD", 2, ",", " ", TRUE, "$", "Namibia Dollar" }, { "NGN", 2, ".", ",", TRUE, "₦", "Naira" }, { "NIO", 2, ".", ",", TRUE, "C$", "Cordoba Oro" }, { "NOK", 2, ",", " ", TRUE, "kr", "Norwegian Krone" }, { "NPR", 2, ".", ",", TRUE, "रु", "Nepalese Rupee" }, { "NZD", 2, ".", ",", TRUE, "$", "New Zealand Dollar" }, { "OMR", 3, ".", ",", TRUE, "ر.ع.‏", "Rial Omani" }, { "PAB", 2, ".", ",", TRUE, "B/.", "Balboa" }, { "PEN", 2, ".", ",", TRUE, "S/.", "Nuevo Sol" }, { "PGK", 2, ".", ",", TRUE, "K", "Kina" }, { "PHP", 2, ",", ",", TRUE, "₱", "Philippine Peso" }, { "PKR", 2, ".", ",", TRUE, "Rs", "Pakistan Rupee" }, { "PLN", 2, ",", " ", FALSE, "zł", "Zloty" }, { "PYG", 0, ",", ".", TRUE, "₲", "Guarani" }, { "QAR", 2, ".", ",", TRUE, "ر.ق.‏", "Qatari Rial" }, { "RON", 2, ",", ".", FALSE, "RON", "New Leu" }, { "RSD", 2, ",", ".", FALSE, "RSD", "Serbian Dinar" }, { "RUB", 2, ",", " ", TRUE, "₽", "Russian Ruble" }, { "RWF", 0, ",", " ", TRUE, "RF", "Rwanda Franc" }, { "SAR", 2, ".", ",", TRUE, "ر.س.‏", "Saudi Riyal" }, { "SBD", 2, ".", ",", TRUE, "$", "Solomon Islands Dollar" }, { "SCR", 2, ",", " ", TRUE, "SR", "Seychelles Rupee" }, { "SDG", 2, ".", ",", TRUE, "SDG", "Sudanese Pound" }, { "SEK", 2, ",", ".", FALSE, "kr", "Swedish Krona" }, { "SGD", 2, ".", ",", TRUE, "$", "Singapore Dollar" }, { "SHP", 2, ".", ",", TRUE, "£", "Saint Helena Pound" }, { "SLL", 2, ".", ",", TRUE, "Le", "Leone" }, { "SOS", 2, ".", ",", TRUE, "S", "Somali Shilling" }, { "SRD", 2, ",", ".", TRUE, "$", "Surinam Dollar" }, { "STD", 0, ",", " ", FALSE, "Db", "Dobra" }, { "SVC", 2, ".", "", FALSE, "SVC", "El Salvador Colon" }, { "SYP", 2, ",", " ", TRUE, "LS", "Syrian Pound" }, { "SZL", 2, ",", " ", TRUE, "E", "Lilangeni" }, { "THB", 2, ".", ",", TRUE, "฿", "Baht" }, { "TJS", 2, ",", " ", FALSE, "смн", "Somoni" }, { "TMM", 2, ".", "", FALSE, "TMM", "Manat" }, { "TND", 3, ",", " ", TRUE, "DT", "Tunisian Dinar" }, { "TOP", 2, ".", ",", TRUE, "T$", "Pa'anga" }, { "TRY", 2, ",", ".", FALSE, "₺", "New Turkish Lira" }, { "TTD", 2, ".", ",", TRUE, "$", "Trinidad and Tobago Dollar" }, { "TWD", 2, ".", ",", TRUE, "NT$", "New Taiwan Dollar" }, { "TZS", 2, ".", ",", TRUE, "TSh", "Tanzanian Shilling" }, { "UAH", 2, ",", " ", FALSE, "₴", "Hryvnia" }, { "UGX", 0, ".", ",", TRUE, "USh", "Uganda Shilling" }, { "USD", 2, ",", " ", TRUE, "$", "US Dollar" }, { "USN", 2, ".", "", FALSE, "USN", "US Dollar (Next day)" }, { "USS", 2, ".", "", FALSE, "USS", "US Dollar (Same day)" }, { "UYI", 0, ".", "", FALSE, "UYI", "Uruguay Peso en Unidades Indexadas" }, { "UYU", 2, ",", ".", TRUE, "$", "Peso Uruguayo" }, { "UZS", 2, ",", " ", TRUE, "soʻm", "Uzbekistan Sum" }, { "VEF", 2, ",", ".", TRUE, "Bs.", "Bolivar Fuerte" }, { "VND", 0, ",", ".", FALSE, "₫", "Dong" }, { "VUV", 0, ",", " ", TRUE, "VT", "Vatu" }, { "WST", 2, ".", ",", TRUE, "WS$", "Tala" }, { "XAF", 0, ",", " ", TRUE, "FCFA", "CFA Franc BEAC" }, { "XAG", 2, ".", "", FALSE, "XAG", "Silver" }, { "XAU", 2, ".", "", FALSE, "XAU", "Gold" }, { "XBA", 2, ".", "", FALSE, "XBA", "European Composite Unit (EURCO)" }, { "XBB", 2, ".", "", FALSE, "XBB", "European Monetary Unit (E.M.U.-6)" }, { "XBC", 2, ".", "", FALSE, "XBC", "European Unit of Account 9 (E.U.A.-9)" }, { "XBD", 2, ".", "", FALSE, "XBD", "European Unit of Account 17 (E.U.A.-17)" }, { "XCD", 2, ",", " ", TRUE, "$", "East Caribbean Dollar" }, { "XDR", 2, ",", " ", TRUE, "XDR", "Special Drawing Rights" }, { "XFO", 0, ".", "", FALSE, "XFO", "Gold-Franc" }, { "XFU", 2, ".", "", FALSE, "XFU", "UIC-Franc" }, { "XOF", 0, ",", " ", TRUE, "CFA", "CFA Franc BCEAO" }, { "XPD", 2, ".", "", FALSE, "XPD", "Palladium" }, { "XPF", 0, ",", " ", FALSE, "FCFP", "CFP Franc" }, { "XPT", 2, ".", "", FALSE, "XPT", "Platinum" }, { "XTS", 2, ".", "", FALSE, "XTS", "Code for testing purposes" }, { "XXX", 2, ".", "", FALSE, "XXX", "No currency" }, { "YER", 2, ".", ",", TRUE, "ر.ي.‏", "Yemeni Rial" }, { "ZAR", 2, ",", " ", TRUE, "R", "Rand" }, { "ZMK", 2, ".", "", FALSE, "ZMK", "Zambian Kwacha" }, { "ZWD", 2, ".", "", FALSE, "ZWD", "Zimbabwe Dollar" } }; guint n_iso4217cur = G_N_ELEMENTS (iso4217cur); homebank-5.9.1/src/gtk-dateentry.h0000644000175000017500000000534714736461415012541 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __GTK_DATE_ENTRY_H__ #define __GTK_DATE_ENTRY_H__ G_BEGIN_DECLS #define GTK_TYPE_DATE_ENTRY (gtk_date_entry_get_type ()) #define GTK_DATE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_DATE_ENTRY, GtkDateEntry)) #define GTK_DATE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_DATE_ENTRY, GtkDateEntryClass) #define GTK_IS_DATE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_DATE_ENTRY)) #define GTK_IS_DATE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_DATE_ENTRY)) #define GTK_DATE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DATE_ENTRY, GtkDateEntryClass)) typedef struct _GtkDateEntry GtkDateEntry; typedef struct _GtkDateEntryClass GtkDateEntryClass; typedef struct _GtkDateEntryPrivate GtkDateEntryPrivate; #define HB_MINDATE 693596 //01/01/1900 #define HB_MAXDATE 803533 //31/12/2200 struct _GtkDateEntry { GtkBox box; /*< private >*/ GtkDateEntryPrivate *priv; }; struct _GtkDateEntryClass { GtkBoxClass parent_class; /* signals */ void (* changed) (GtkDateEntry *dateentry); /* Padding for future expansion */ void (*_gtk_reserved0) (void); void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); }; struct _GtkDateEntryPrivate { GtkWidget *entry; GtkWidget *button; GtkWidget *arrow; GtkWidget *popover; GtkWidget *calendar; GtkWidget *BT_today; GDate *date; guint32 lastdate; GDate nowdate, mindate, maxdate; gulong hid_dayselect; }; GType gtk_date_entry_get_type(void) G_GNUC_CONST; GtkWidget *gtk_date_entry_new(GtkWidget *label); void gtk_date_entry_set_error(GtkDateEntry *dateentry, gboolean error); guint32 gtk_date_entry_get_date(GtkDateEntry * dateentry); void gtk_date_entry_set_date(GtkDateEntry * dateentry, guint32 julian_days); GDateWeekday gtk_date_entry_get_weekday(GtkDateEntry *dateentry); G_END_DECLS #endif /* __GTK_DATE_ENTRY_H__ */ homebank-5.9.1/src/hb-assign.h0000644000175000017500000000452014736461415011622 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_ASSIGN_H__ #define __HB_ASSIGN_H__ #include "hb-types.h" struct _assign { guint32 key; gushort flags; gushort field; //0:memo / 1:payee gchar *search; gchar *notes; guint32 kpay; //dst payee guint32 kcat; //dst category gushort paymode; //dst_payment mode guint32 pos; //position gdouble amount; //5.6 #1710085 assignment based on amount guint32 *tags; //5.8 #1674016 }; #define ASGF_EXACT (1<<0) #define ASGF_DOPAY (1<<1) #define ASGF_DOCAT (1<<2) #define ASGF_DOMOD (1<<3) #define ASGF_DOTAG (1<<4) //5.8 #define ASGF_PREFILLED (1<<5) #define ASGF_AMOUNT (1<<7) //5.6 #define ASGF_REGEX (1<<8) #define ASGF_OVWPAY (1<<9) #define ASGF_OVWCAT (1<<10) #define ASGF_OVWMOD (1<<11) #define ASGF_OVWTAG (1<<12) //5.8 void da_asg_free(Assign *item); Assign *da_asg_malloc(void); void da_asg_destroy(void); void da_asg_new(void); guint da_asg_length(void); gboolean da_asg_create_none(void); gboolean da_asg_remove(guint32 key); gboolean da_asg_insert(Assign *asg); gboolean da_asg_append(Assign *asg); Assign *da_asg_duplicate(Assign *srcitem); guint32 da_asg_get_max_key(void); Assign *da_asg_get_by_name(gchar *name); Assign *da_asg_get(guint32 key); void da_asg_consistency(Assign *item); Assign *da_asg_init_from_transaction(Assign *asg, Transaction *txn); void da_asg_update_position(void); gchar *assign_get_target_payee(Assign *asgitem); gchar *assign_get_target_category(Assign *asgitem); GList *assign_glist_sorted(gint column); guint transaction_auto_assign(GList *ope_list, guint32 key, gboolean lockrecon); #endif homebank-5.9.1/src/hb-export.h0000644000175000017500000000266414736461415011666 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_EXPORT_H__ #define __HB_EXPORT_H__ #include #define PDF_NUMCOL 6 + 1 typedef struct _pdfprintcontext PdfPrintContext; struct _pdfprintcontext { gdouble w, h; gdouble mt, mb, ml, mr; gdouble column_width[PDF_NUMCOL]; gchar *column_txt[PDF_NUMCOL]; PangoFontDescription *desc; }; void hb_export_qif_account_all(gchar *filename); void hb_export_qif_account_single(gchar *filename, Account *acc); void hb_export_pdf_listview(GtkTreeView *treeview, gchar *filepath, gchar *accname); void hb_print_listview(GtkWindow *parent, gchar *tabtext, gint8 *leftcols, gchar *title, gchar *filepat, gboolean statement); #endif homebank-5.9.1/src/rep-balance.c0000644000175000017500000013654215005633616012117 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "rep-balance.h" #include "list-operation.h" #include "gtk-chart.h" #include "gtk-dateentry.h" #include "ui-account.h" #include "dsp-mainwindow.h" #include "ui-transaction.h" #include "ui-widgets.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; /* prototypes */ static GtkWidget *lst_repbal_create(void); static void lst_repbal_set_cur(GtkTreeView *treeview, guint32 kcur); static GString *lst_repbal_to_string(ToStringMode mode, GtkTreeView *treeview, gchar *title); //extern gchar *CYA_REPORT_MODE[]; extern HbKvData CYA_REPORT_INTVL[]; /* = = = = = = = = = = = = = = = = */ static gchar * repbalance_compute_title(gint intvl) { gchar *title; //TRANSLATORS: example 'Balance by Month' title = g_strdup_printf(_("Balance by %s"), hbtk_get_label(CYA_REPORT_INTVL, intvl) ); return title; } static void repbalance_sensitive(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; gboolean visible; gint page; DB( g_print(" \n[rep-bal] sensitive\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); visible = page == 0 ? TRUE : FALSE; hb_widget_visible (data->BT_detail, visible); //sensitive = gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report)), NULL, NULL); //gtk_action_set_sensitive(action, sensitive); visible = page == 0 ? FALSE : TRUE; //5.7 //hb_widget_visible (data->BT_print, visible); hb_widget_visible(data->LB_zoomx, visible); hb_widget_visible(data->RG_zoomx, visible); } static void repbalance_update_daterange(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; gchar *daterange; DB( g_print("\n[rep-bal] update daterange\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); daterange = filter_daterange_text_get(data->filter); gtk_label_set_markup(GTK_LABEL(data->TX_daterange), daterange); g_free(daterange); } static void repbalance_update_info(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; gchar *info; gchar buf[128]; DB( g_print("\n[rep-bal] update info\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); gboolean minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); hb_strfmon(buf, 127, data->minimum, data->usrkcur, minor); ////TRANSLATORS: count of transaction in overdrawn / count of total transaction under overdrawn amount threshold info = g_strdup_printf(_("%d/%d under %s"), data->nbovrdraft, data->nbope, buf); gtk_label_set_text(GTK_LABEL(data->TX_info), info); g_free(info); } static void repbalance_detail(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; guint active = GPOINTER_TO_INT(user_data); guint tmpintvl; GList *list; GtkTreeModel *model; GtkTreeIter iter, child; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[rep-bal] detail\n") ); tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); /* clear and detach our model */ model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_detail)); gtk_tree_store_clear (GTK_TREE_STORE(model)); if(data->detail && data->txn_queue) { g_object_ref(model); /* Make sure the model stays with us after the tree view unrefs it */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_detail), NULL); /* Detach model from view */ /* fill in the model */ list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; guint i, pos; if( (ope->date >= data->filter->mindate) && (ope->date <= data->filter->maxdate) ) { //#1907699 date is wrong //pos = report_interval_get_pos(tmpintvl, data->jbasedate, ope); //#1970020 but with #1958001 fix, it is pos = report_interval_get_pos(tmpintvl, data->filter->mindate, ope); DB( g_print(" get '%s', pos=%d act=%d\n", ope->memo, pos, active) ); //filter here //if( pos == active && (ope->kacc == acckey || selectall) ) if( pos == active ) { DB( g_print(" insert\n") ); gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &iter, NULL, -1, MODEL_TXN_POINTER, ope, MODEL_TXN_SPLITAMT, ope->amount, -1); //#1875801 show split detail if( ope->flags & OF_SPLIT ) { guint nbsplit = da_splits_length(ope->splits); for(i=0;isplits, i); gtk_tree_store_insert_with_values (GTK_TREE_STORE(model), &child, &iter, -1, MODEL_TXN_POINTER, ope, MODEL_TXN_SPLITPTR, split, -1); } } } } list = g_list_next(list); } /* Re-attach model to view */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_detail), model); g_object_unref(model); gtk_tree_view_columns_autosize( GTK_TREE_VIEW(data->LV_detail) ); } } static guint32 _data_compute_currency(struct repbalance_data *data) { GList *lst_acc, *lnk_acc; guint32 lastcurr = GLOBALS->kcur; guint count = 0; lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *accitem = lnk_acc->data; if( da_flt_status_acc_get(data->filter, accitem->key) == TRUE ) { if( count == 0 ) lastcurr = accitem->kcur; else if( accitem->kcur != lastcurr ) { lastcurr = GLOBALS->kcur; goto end; } count++; } lnk_acc = g_list_next(lnk_acc); } end: g_list_free(lst_acc); return lastcurr; } static void _data_collect_txn(struct repbalance_data *data) { GList *lst_acc, *lnk_acc; GList *lnk_txn; gboolean inclxfer; guint usrnbacc; DB( g_print("\n- - - - - - - -\n[rep-bal] collect txn\n") ); //clear all if(data->txn_queue != NULL) g_queue_free (data->txn_queue); data->txn_queue = NULL; data->firstbalance = 0.0; //#2019876 return is invalid date range if( data->filter->maxdate < data->filter->mindate ) return; //grab user selection inclxfer = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_inclxfer)); //as it is not the filter dialog, count //todo, we could count into filter other func da_flt_count_item(data->filter); usrnbacc = data->filter->n_item[FLT_GRP_ACCOUNT]; //todo: find another way to define mono/multi currency data->usrkcur = _data_compute_currency(data); if(usrnbacc == 1) inclxfer = TRUE; //5.8 fake filter filter_preset_type_set(data->filter, FLT_TYPE_ALL, FLT_OFF); if( inclxfer == FALSE ) filter_preset_type_set(data->filter, FLT_TYPE_INTXFER, FLT_EXCLUDE); DB( g_print(" usr: n_acc=%d, kcur=%d, incxfer=%d\n", usrnbacc, data->usrkcur, inclxfer) ); if( (usrnbacc == 0) ) goto end; //collect DB( g_print(" -- collect txn\n") ); data->txn_queue = g_queue_new (); //grab data from user selected account //+ compute sum of initialbalance lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; gdouble amount = 0.0; DB( g_print(" eval acc=%d '%s' >> fltincl=%d\n", acc->key, acc->name, da_flt_status_acc_get(data->filter, acc->key) ) ); // avoid unselected and noreport (maybe already filtered into list) if( (acc->flags & (AF_NOREPORT)) || (da_flt_status_acc_get(data->filter, acc->key) == FALSE) ) goto next_acc; // set minimum (only used when 1 account is selected) data->minimum = acc->minimum; // if more than 1 cur get amount as base currency if( (data->usrkcur != acc->kcur) ) amount = hb_amount_base(acc->initial, acc->kcur); else amount = acc->initial; data->firstbalance += amount; DB( g_print(" - stored initial %.2f for account %d:%s\n", amount, acc->key, acc->name) ); //collect every txn for account lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; //5.5 forgot to filter... //#1886123 include remind based on user prefs if( !transaction_is_balanceable(txn) ) goto next_txn; //#2045514 xclude xfer from selected account //if( usrnbacc > 1 && da_flt_status_acc_get(data->filter, txn->kacc) != 0 && data->tmp_acckeys[txn->kxferacc] != 0 ) if( (inclxfer == FALSE) && (da_flt_status_acc_get(data->filter, txn->kacc) == TRUE ) && (da_flt_status_acc_get(data->filter, txn->kxferacc) == TRUE) ) goto next_txn; //#2104162 compute 1stbalance here // if more than 1 cur get amount as base currency if( (data->usrkcur != txn->kcur) ) amount = hb_amount_base(txn->amount, txn->kcur); else amount = txn->amount; // cumulate pre-date range balance if( (txn->date < data->filter->mindate) ) data->firstbalance += amount; g_queue_push_head (data->txn_queue, txn); next_txn: lnk_txn = g_list_next(lnk_txn); } next_acc: lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); end: DB( g_print(" - first balance %.2f\n", data->firstbalance) ); } static void repbalance_compute(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; gint tmpintvl; gboolean showempty; guint32 i; GtkTreeModel *model; GtkTreeIter iter; //Account *acc; gint usrnbacc; DB( g_print("\n- - - - - - - -\n[rep-bal] compute\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //clear all model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report)); gtk_list_store_clear (GTK_LIST_STORE(model)); gtk_chart_set_datas_none(GTK_CHART(data->RE_chart)); //reset our data data->nbope = 0; data->nbovrdraft = 0; repbalance_update_info(widget, user_data); //test 5.8 da_flt_count_item(data->filter); usrnbacc = data->filter->n_item[FLT_GRP_ACCOUNT]; gchar *txt = filter_text_summary_get(data->filter); ui_label_set_integer(GTK_LABEL(data->TX_fltactive), data->filter->n_active); gtk_widget_set_tooltip_text(data->TT_fltactive, txt); g_free(txt); //compute if( (!data->txn_queue) || g_queue_get_length(data->txn_queue) == 0) goto end; DB( g_print(" -- compute\n") ); //grab user selection tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); showempty = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_showempty)); // grab nb result and allocate memory //#1958001 data->n_result = report_interval_count(tmpintvl, data->filter->mindate, data->filter->maxdate); data->tmp_income = g_malloc0((data->n_result+2) * sizeof(gdouble)); data->tmp_expense = g_malloc0((data->n_result+2) * sizeof(gdouble)); DB( g_print(" %d days in selection\n", data->filter->maxdate - data->filter->mindate)); DB( hb_print_date(data->filter->mindate, "min") ); DB( hb_print_date(data->filter->maxdate, "max") ); if(data->tmp_income && data->tmp_expense) { GList *list; gdouble amount; /* sort by date & compute the balance */ list = g_queue_peek_head_link(data->txn_queue); while (list != NULL) { Transaction *ope = list->data; if( (da_flt_status_acc_get(data->filter, ope->kacc) == TRUE) ) { // if more than 1 cur get amount as base currency if( (data->usrkcur != ope->kcur) ) amount = hb_amount_base(ope->amount, ope->kcur); else amount = ope->amount; //check: this should be useless as filtered in collect_txn if( (ope->date >= data->filter->mindate) && (ope->date <= data->filter->maxdate) ) { gint pos = report_interval_get_pos(tmpintvl, data->filter->mindate, ope); //deal with transactions if(amount < 0) data->tmp_expense[pos] += amount; else data->tmp_income[pos] += amount; } } list = g_list_next(list); } } // set currency lst_repbal_set_cur(GTK_TREE_VIEW(data->LV_report), data->usrkcur); gtk_chart_set_currency(GTK_CHART(data->RE_chart), data->usrkcur); //populate DB( g_print(" -- populate\n") ); // ref and detach model for speed g_object_ref(model); gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), NULL); DB( g_print(" inserting %d results\n", data->n_result) ); gdouble balance = data->firstbalance; //#1958001 for(i=0;in_result;i++) { gboolean is_ovrdraft = FALSE; gchar intvlname[64]; balance += data->tmp_expense[i]; balance += data->tmp_income[i]; if( !showempty && (data->tmp_expense[i] == 0 && data->tmp_income[i] == 0) ) continue; if(usrnbacc == 1) is_ovrdraft = (balance < data->minimum) ? TRUE : FALSE; //#1907699 date is wrong report_interval_snprint_name(intvlname, sizeof(intvlname)-1, tmpintvl, data->filter->mindate, i); //report_interval_snprint_name(intvlname, sizeof(intvlname)-1, tmpintvl, jmindate, i); DB( g_print(" %3d: %s %f %f\n", i, intvlname, data->tmp_expense[i], data->tmp_income[i]) ); /* column 0: pos (gint) */ /* not used: column 1: key (gint) */ /* column 2: name (gchar) */ /* column x: values (double) */ gtk_list_store_insert_with_values (GTK_LIST_STORE(model), &iter, -1, LST_OVER_POS, i, LST_OVER_KEY, i, LST_OVER_LABEL, intvlname, LST_OVER_EXPENSE, data->tmp_expense[i], LST_OVER_INCOME , data->tmp_income[i], LST_OVER_TOTAL, balance, LST_OVER_FLAGS, (is_ovrdraft == TRUE) ? REPORT_FLAG_OVER : 0, -1); data->nbope++; if(is_ovrdraft == TRUE) data->nbovrdraft++; } gboolean visible = (usrnbacc > 1) ? FALSE : TRUE; gtk_widget_set_visible (GTK_WIDGET(data->CM_inclxfer), !visible); gtk_widget_set_visible (GTK_WIDGET(data->TX_info), visible); gtk_chart_show_overdrawn(GTK_CHART(data->RE_chart), visible); if( visible == TRUE ) { repbalance_update_info(widget, NULL); gtk_chart_set_overdrawn(GTK_CHART(data->RE_chart), data->minimum); } //5.8.6 update column 0 title GtkTreeViewColumn *column = gtk_tree_view_get_column( GTK_TREE_VIEW(data->LV_report), 0); if(column) gtk_tree_view_column_set_title(column, hbtk_get_label(CYA_REPORT_INTVL, tmpintvl) ); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); /* Re-attach model to view */ gtk_tree_view_set_model(GTK_TREE_VIEW(data->LV_report), model); g_object_unref(model); /* update bar chart */ gchar *title = repbalance_compute_title(tmpintvl); gtk_chart_set_datas_total(GTK_CHART(data->RE_chart), model, LST_OVER_TOTAL, LST_OVER_TOTAL, title, NULL); //gtk_chart_set_line_datas(GTK_CHART(data->RE_chart), model, LST_OVER_TOTAL, LST_OVER_DATE); g_free(title); end: g_free(data->tmp_expense); g_free(data->tmp_income); data->tmp_expense = NULL; data->tmp_income = NULL; } //reset the filter static void repbalance_filter_setup(struct repbalance_data *data) { guint32 accnum; DB( g_print("\n[rep-bal] filter setup\n") ); filter_reset(data->filter); filter_preset_daterange_set(data->filter, PREFS->date_range_rep, 0); data->filter->option[FLT_GRP_ACCOUNT] = 1; //5.6 set default account accnum = data->accnum; if(!accnum) { accnum = da_acc_get_first_key(); } DB( g_print(" accnum=%d\n", accnum) ); ui_acc_listview_set_active(GTK_TREE_VIEW(data->LV_acc), accnum); ui_acc_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_acc), data->filter); } /* = = = = = = = = = = = = = = = = */ //beta #if PRIV_FILTER static void repbalance_action_filter(GtkWidget *toolbutton, gpointer user_data) { struct repbalance_data *data = user_data; //debug //create_deffilter_window(data->filter, TRUE); if(ui_flt_manage_dialog_new(GTK_WINDOW(data->window), data->filter, TRUE, FALSE) != GTK_RESPONSE_REJECT) { //repbalance_compute(data->window, NULL); //ui_repdtime_update_date_widget(data->window, NULL); //ui_repdtime_update_daterange(data->window, NULL); //hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_ALLDATE); } } #endif static void repbalance_action_viewlist(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data = user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 0); repbalance_sensitive(data->window, NULL); } /*static void repbalance_action_mode_changed(GtkWidget *toolbutton, gpointer user_data) { struct repbalance_data *data = user_data; gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(data->BT_list), TRUE); repbalance_action_viewlist(toolbutton, data); } */ static void repbalance_action_viewline(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data = user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(data->GR_result), 1); repbalance_sensitive(data->window, NULL); } static void repbalance_action_print(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data = user_data; gint tmpintvl, page; gchar *title, *name; tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_intvl)); page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result)); name = g_strdup_printf("hb-repbalance_%s.csv", hbtk_get_label(CYA_REPORT_INTVL, tmpintvl) ); if( page == 0 ) { GString *node; title = repbalance_compute_title(tmpintvl); node = lst_repbal_to_string(HB_STRING_PRINT, GTK_TREE_VIEW(data->LV_report), title); hb_print_listview(GTK_WINDOW(data->window), node->str, NULL, title, name, FALSE); g_string_free(node, TRUE); g_free(title); } else { gtk_chart_print(GTK_CHART(data->RE_chart), GTK_WINDOW(data->window), NULL, name); } } static void repbalance_cb_filter_changed(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; DB( g_print("\n[rep-bal] cb filter changed\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); _data_collect_txn(data); repbalance_compute(data->window, NULL); } static void repbalance_action_filter_reset(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; DB( g_print("\n[rep-bal] filter reset\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //TODO: to review: clean selection ui_acc_listview_quick_select(GTK_TREE_VIEW(data->LV_acc), "non"); repbalance_filter_setup(data); g_signal_handler_block(data->CY_range, data->hid[HID_REPBALANCE_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), PREFS->date_range_rep); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPBALANCE_RANGE]); repbalance_cb_filter_changed(widget, user_data); } static void repbalance_date_change(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; DB( g_print("\n[rep-bal] date minmax change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->filter->mindate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_mindate)); data->filter->maxdate = gtk_date_entry_get_date(GTK_DATE_ENTRY(data->PO_maxdate)); // set min/max date for both widget //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), ( data->filter->mindate > data->filter->maxdate ) ? TRUE : FALSE); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), ( data->filter->maxdate < data->filter->mindate ) ? TRUE : FALSE); g_signal_handler_block(data->CY_range, data->hid[HID_REPBALANCE_RANGE]); hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), FLT_RANGE_MISC_CUSTOM); g_signal_handler_unblock(data->CY_range, data->hid[HID_REPBALANCE_RANGE]); repbalance_update_daterange(widget, NULL); repbalance_cb_filter_changed(widget, user_data); } static void repbalance_range_change(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; gint range; DB( g_print("\n[rep-bal] date range change\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); range = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_range)); //should never happen if(range != FLT_RANGE_MISC_CUSTOM) { filter_preset_daterange_set(data->filter, range, 0); } //#2046032 set min/max date for both widget //5.8 check for error gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_mindate), ( data->filter->mindate > data->filter->maxdate ) ? TRUE : FALSE); gtk_date_entry_set_error(GTK_DATE_ENTRY(data->PO_maxdate), ( data->filter->maxdate < data->filter->mindate ) ? TRUE : FALSE); g_signal_handler_block(data->PO_mindate, data->hid[HID_REPBALANCE_MINDATE]); g_signal_handler_block(data->PO_maxdate, data->hid[HID_REPBALANCE_MAXDATE]); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_mindate), data->filter->mindate); gtk_date_entry_set_date(GTK_DATE_ENTRY(data->PO_maxdate), data->filter->maxdate); g_signal_handler_unblock(data->PO_mindate, data->hid[HID_REPBALANCE_MINDATE]); g_signal_handler_unblock(data->PO_maxdate, data->hid[HID_REPBALANCE_MAXDATE]); repbalance_update_daterange(widget, NULL); repbalance_cb_filter_changed(widget, user_data); } static void repbalance_cb_acc_changed(GtkCellRendererToggle *cell, gchar *path_str, gpointer user_data) { struct repbalance_data *data = user_data; ui_acc_listview_toggle_to_filter(GTK_TREE_VIEW(data->LV_acc), data->filter); repbalance_cb_filter_changed(data->window, user_data); } static gboolean repbalance_cb_acc_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { struct repbalance_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(label), GTK_TYPE_WINDOW)), "inst_data"); ui_acc_listview_quick_select(GTK_TREE_VIEW(data->LV_acc), uri); repbalance_cb_acc_changed(NULL, NULL, data); return TRUE; } static void repbalance_detail_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { struct repbalance_data *data; Transaction *active_txn; gboolean result; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print ("\n[rep-bal] A detail row has been double-clicked!\n") ); active_txn = list_txn_get_active_transaction(GTK_TREE_VIEW(data->LV_detail)); if(active_txn) { Transaction *old_txn, *new_txn; //#1909749 skip reconciled if lock is ON if( PREFS->safe_lock_recon == TRUE && active_txn->status == TXN_STATUS_RECONCILED ) return; old_txn = da_transaction_clone (active_txn); new_txn = active_txn; result = deftransaction_external_edit(GTK_WINDOW(data->window), old_txn, new_txn); if(result == GTK_RESPONSE_ACCEPT) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path = NULL; //1936806 keep the selection treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_report)); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { path = gtk_tree_model_get_path(model, &iter); } //#1640885 GLOBALS->changes_count++; repbalance_compute (data->window, NULL); if( path != NULL ) { gtk_tree_selection_select_path(treeselection, path); gtk_tree_path_free(path); } } da_transaction_free (old_txn); } } static void repbalance_update_detail(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); //#2018039 list_txn_set_lockreconciled(GTK_TREE_VIEW(data->LV_detail), PREFS->safe_lock_recon); if(data->detail) { GtkTreeSelection *treeselection; GtkTreeModel *model; GtkTreeIter iter; guint key; treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW(data->LV_report)); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_OVER_KEY, &key, -1); DB( g_print(" - active is %d\n", key) ); repbalance_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key)); } gtk_widget_show(data->GR_detail); } else gtk_widget_hide(data->GR_detail); } static void repbalance_toggle_detail(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->detail ^= 1; DB( g_print("\n[rep-bal] toggledetail to %d\n", (int)data->detail) ); repbalance_update_detail(widget, user_data); } static void repbalance_cb_zoomx_changed(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; gdouble value; DB( g_print("(\n[rep-bal] zoomx\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); value = gtk_range_get_value(GTK_RANGE(data->RG_zoomx)); DB( g_print(" + scale is %.2f\n", value) ); gtk_chart_set_barw(GTK_CHART(data->RE_chart), value); } static void repbalance_toggle_minor(GtkWidget *widget, gpointer user_data) { struct repbalance_data *data; DB( g_print("\n[rep-bal] toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); GLOBALS->minor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_minor)); repbalance_update_info(widget,NULL); gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report)); gtk_chart_show_minor(GTK_CHART(data->RE_chart), GLOBALS->minor); gtk_chart_queue_redraw(GTK_CHART(data->RE_chart)); } static void repbalance_selection(GtkTreeSelection *treeselection, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; guint key = -1; DB( g_print("\n[rep-bal] selection\n") ); if (gtk_tree_selection_get_selected(treeselection, &model, &iter)) { gtk_tree_model_get(model, &iter, LST_OVER_KEY, &key, -1); } DB( g_print(" - active is %d\n", key) ); repbalance_detail(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(key)); } /* = = = = = = = = = = = = = = = = */ static GtkWidget * repbalance_toolbar_create(struct repbalance_data *data) { GtkWidget *toolbar, *button; toolbar = gtk_toolbar_new(); button = (GtkWidget *)gtk_radio_tool_button_new(NULL); data->BT_list = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_LIST, "label", _("List"), NULL); gtk_widget_set_tooltip_text(button, _("View results as list")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = (GtkWidget *)gtk_radio_tool_button_new_from_widget(GTK_RADIO_TOOL_BUTTON(button)); data->BT_line = button; g_object_set (button, "icon-name", ICONNAME_HB_VIEW_LINE, "label", _("Line"), NULL); gtk_widget_set_tooltip_text(button, _("View results as lines")); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), gtk_separator_tool_item_new(), -1); button = gtk_widget_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "icon-name", ICONNAME_HB_OPE_SHOW, "label", _("Detail"), "tooltip-text", _("Toggle detail"), NULL); data->BT_detail = button; gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(button), -1); button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_REFRESH, _("Refresh"), _("Refresh results")); data->BT_refresh = button; button = hbtk_toolbar_add_toolbutton(GTK_TOOLBAR(toolbar), ICONNAME_HB_PRINT, _("Print"), _("Print")); data->BT_print = button; return toolbar; } static void repbalance_window_setup(struct repbalance_data *data) { DB( g_print("\n[rep-bal] setup\n") ); DB( g_print(" init data\n") ); DB( g_print(" populate\n") ); ui_acc_listview_populate(data->LV_acc, ACC_LST_INSERT_REPORT, NULL); repbalance_filter_setup(data); DB( g_print(" set widgets default\n") ); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_minor),GLOBALS->minor); g_object_set_data(G_OBJECT(gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_report))), "minor", (gpointer)data->CM_minor); gtk_chart_show_legend(GTK_CHART(data->RE_chart), FALSE, FALSE); gtk_chart_show_xval(GTK_CHART(data->RE_chart), TRUE); gtk_chart_set_smallfont (GTK_CHART(data->RE_chart), PREFS->rep_smallfont); DB( g_print(" connect widgets signals\n") ); //display signals g_signal_connect (data->CY_intvl, "changed", G_CALLBACK (repbalance_compute), NULL); g_signal_connect (data->CM_showempty,"toggled", G_CALLBACK (repbalance_compute), NULL); g_signal_connect (data->CM_minor, "toggled", G_CALLBACK (repbalance_toggle_minor), NULL); g_signal_connect (data->RG_zoomx, "value-changed", G_CALLBACK (repbalance_cb_zoomx_changed), NULL); //filter signals #if PRIV_FILTER g_signal_connect (G_OBJECT (data->BT_filter), "clicked", G_CALLBACK (repbalance_action_filter), (gpointer)data); #endif g_signal_connect (data->BT_reset , "clicked", G_CALLBACK (repbalance_action_filter_reset), NULL); data->hid[HID_REPBALANCE_RANGE] = g_signal_connect (data->CY_range, "changed", G_CALLBACK (repbalance_range_change), NULL); data->hid[HID_REPBALANCE_MINDATE] = g_signal_connect (data->PO_mindate, "changed", G_CALLBACK (repbalance_date_change), (gpointer)data); data->hid[HID_REPBALANCE_MAXDATE] = g_signal_connect (data->PO_maxdate, "changed", G_CALLBACK (repbalance_date_change), (gpointer)data); g_signal_connect (data->BT_all, "activate-link", G_CALLBACK (repbalance_cb_acc_activate_link), NULL); g_signal_connect (data->BT_non, "activate-link", G_CALLBACK (repbalance_cb_acc_activate_link), NULL); g_signal_connect (data->BT_inv, "activate-link", G_CALLBACK (repbalance_cb_acc_activate_link), NULL); g_signal_connect (data->CM_inclxfer, "toggled", G_CALLBACK (repbalance_cb_filter_changed), NULL); //item filter GtkCellRendererToggle *renderer = g_object_get_data(G_OBJECT(data->LV_acc), "togrdr_data"); g_signal_connect_after (G_OBJECT(renderer), "toggled", G_CALLBACK (repbalance_cb_acc_changed), (gpointer)data); //toolbar signals g_signal_connect (data->BT_list, "clicked", G_CALLBACK (repbalance_action_viewlist), (gpointer)data); g_signal_connect (data->BT_line, "clicked", G_CALLBACK (repbalance_action_viewline), (gpointer)data); g_signal_connect (data->BT_detail, "clicked", G_CALLBACK (repbalance_toggle_detail), (gpointer)data); g_signal_connect (data->BT_refresh, "clicked", G_CALLBACK (repbalance_cb_filter_changed), (gpointer)data); g_signal_connect (data->BT_print, "clicked", G_CALLBACK (repbalance_action_print), (gpointer)data); //treeview signals g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_report)), "changed", G_CALLBACK (repbalance_selection), NULL); g_signal_connect (GTK_TREE_VIEW(data->LV_detail), "row-activated", G_CALLBACK (repbalance_detail_onRowActivated), NULL); } static gboolean repbalance_window_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct repbalance_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n[rep-bal] window mapped\n") ); //setup, init and show window repbalance_window_setup(data); //trigger update hbtk_combo_box_set_active_id(GTK_COMBO_BOX(data->CY_range), PREFS->date_range_rep); data->mapped_done = TRUE; return FALSE; } static gboolean repbalance_window_dispose(GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct repbalance_data *data = user_data; struct WinGeometry *wg; DB( g_print("\n[rep-bal] window dispose\n") ); if(data->txn_queue != NULL) g_queue_free (data->txn_queue); da_flt_free(data->filter); g_free(data); //store position and size wg = &PREFS->ove_wg; gtk_window_get_position(GTK_WINDOW(widget), &wg->l, &wg->t); gtk_window_get_size(GTK_WINDOW(widget), &wg->w, &wg->h); DB( g_print(" window: l=%d, t=%d, w=%d, h=%d\n", wg->l, wg->t, wg->w, wg->h) ); //enable define windows GLOBALS->define_off--; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); //unref window to our open window list GLOBALS->openwindows = g_slist_remove(GLOBALS->openwindows, widget); return FALSE; } //allocate our object/memory static void repbalance_window_acquire(struct repbalance_data *data) { DB( g_print("\n[rep-bal] acquire\n") ); data->filter = da_flt_malloc(); data->detail = 0; } // the window creation GtkWidget *repbalance_window_new(guint accnum) { struct repbalance_data *data; struct WinGeometry *wg; GtkWidget *window, *mainbox, *hbox, *vbox, *fbox, *bbox, *notebook, *vpaned, *scrollwin; GtkWidget *label, *widget, *table, *treebox, *treeview; gint row; DB( g_print("\n[rep-bal] window new\n") ); data = g_malloc0(sizeof(struct repbalance_data)); if(!data) return NULL; data->accnum = accnum; repbalance_window_acquire (data); //disable define windows GLOBALS->define_off++; ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE)); /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); data->window = window; //ref window to our open window list GLOBALS->openwindows = g_slist_prepend(GLOBALS->openwindows, window); //store our window private data g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)data); DB( g_print(" - new window=%p, inst_data=%p\n", window, data) ); gtk_window_set_title (GTK_WINDOW (window), _("Balance report")); //window contents mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); hb_widget_set_margin(GTK_WIDGET(mainbox), SPACING_SMALL); gtk_window_set_child(GTK_WINDOW(window), mainbox); //control part table = gtk_grid_new (); gtk_widget_set_hexpand (GTK_WIDGET(table), FALSE); gtk_box_prepend (GTK_BOX (mainbox), table); gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM); row = 0; //label = make_label_group(_("Display")); //gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); //row++; fbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_grid_attach (GTK_GRID (table), fbox, 0, row, 3, 1); label = make_label_group(_("Display")); //gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); gtk_box_prepend (GTK_BOX (fbox), label); //5.5 row++; label = make_label_widget(_("Inter_val:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_REPORT_INTVL); data->CY_intvl = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Show empty line")); data->CM_showempty = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; widget = gtk_check_button_new_with_mnemonic (_("Euro _minor")); data->CM_minor = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); row++; label = make_label_widget(_("_Zoom X:")); data->LB_zoomx = label; gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); widget = make_scale(label); data->RG_zoomx = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); //-- filter row++; widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_margin_top(widget, SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (table), widget, 0, row, 3, 1); //5.8 test row++; fbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_grid_attach (GTK_GRID (table), fbox, 0, row, 3, 1); label = make_label_group(_("Filter")); //gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); gtk_box_prepend (GTK_BOX (fbox), label); // active label = make_label_widget(_("Active:")); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (fbox), label); label = make_label(NULL, 0.0, 0.5); gtk_widget_set_margin_start(label, SPACING_SMALL); data->TX_fltactive = label; gtk_box_prepend (GTK_BOX (fbox), label); widget = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_QUICKTIPS); data->TT_fltactive = fbox; gtk_box_prepend (GTK_BOX (fbox), widget); //test button bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (bbox), GTK_STYLE_CLASS_LINKED); gtk_box_append (GTK_BOX (fbox), bbox); widget = make_image_button(ICONNAME_HB_CLEAR, _("Clear filter")); data->BT_reset = widget; gtk_box_prepend (GTK_BOX (bbox), widget); row++; //label = make_label_group(_("Date filter")); label = make_label_group(_("Date")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 2, 1); row++; label = make_label_widget(_("_Range:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->CY_range = make_daterange(label, DATE_RANGE_FLAG_CUSTOM_DISABLE); gtk_grid_attach (GTK_GRID (table), data->CY_range, 2, row, 1, 1); row++; label = make_label_widget(_("_From:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->PO_mindate = gtk_date_entry_new(label); gtk_grid_attach (GTK_GRID (table), data->PO_mindate, 2, row, 1, 1); row++; label = make_label_widget(_("_To:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); data->PO_maxdate = gtk_date_entry_new(label); gtk_grid_attach (GTK_GRID (table), data->PO_maxdate, 2, row, 1, 1); //row++; //widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); //gtk_grid_attach (GTK_GRID (table), widget, 0, row, 3, 1); row++; //label = make_label_group(_("Account filter")); label = make_label_group(_("Account")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 2, 1); row++; treebox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_grid_attach (GTK_GRID (table), treebox, 1, row, 2, 1); label = make_label (_("Select:"), 0, 0.5); gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("all", _("All")); data->BT_all = label; gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("non", _("None")); data->BT_non = label; gtk_box_prepend (GTK_BOX (treebox), label); label = make_clicklabel("inv", _("Invert")); data->BT_inv = label; gtk_box_prepend (GTK_BOX (treebox), label); row++; scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); data->SW_acc = scrollwin; treeview = ui_acc_listview_new(TRUE); data->LV_acc = treeview; gtk_widget_set_vexpand (treeview, TRUE); gtk_widget_set_size_request(treeview, HB_MINWIDTH_LIST, -1); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_grid_attach (GTK_GRID (table), scrollwin, 1, row, 2, 1); //#2083175 option for xfer row++; widget = gtk_check_button_new_with_mnemonic (_("Include _transfer")); data->CM_inclxfer = widget; gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); //part: info + report vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_margin_start (vbox, SPACING_SMALL); hbtk_box_prepend (GTK_BOX (mainbox), vbox); //toolbar widget = repbalance_toolbar_create(data); data->TB_bar = widget; gtk_box_prepend (GTK_BOX (vbox), widget); //infos hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL); gtk_widget_set_margin_bottom (hbox, SPACING_SMALL); gtk_box_prepend (GTK_BOX (vbox), hbox); widget = make_label(NULL, 0.5, 0.5); gimp_label_set_attributes (GTK_LABEL (widget), PANGO_ATTR_SCALE, PANGO_SCALE_SMALL, -1); data->TX_daterange = widget; gtk_box_prepend (GTK_BOX (hbox), widget); label = gtk_label_new(NULL); data->TX_info = label; gtk_box_append (GTK_BOX (hbox), label); /* report area */ notebook = gtk_notebook_new(); data->GR_result = notebook; gtk_widget_show(notebook); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); hbtk_box_prepend (GTK_BOX (vbox), notebook); //page: list vpaned = gtk_paned_new(GTK_ORIENTATION_VERTICAL); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vpaned, NULL); scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); treeview = lst_repbal_create(); data->LV_report = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_paned_pack1 (GTK_PANED(vpaned), scrollwin, TRUE, TRUE); //detail scrollwin = make_scrolled_window(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); data->GR_detail = scrollwin; //gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW (scrollwin), GTK_CORNER_TOP_RIGHT); treeview = create_list_transaction(LIST_TXN_TYPE_DETAIL, PREFS->lst_det_columns); data->LV_detail = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_paned_pack2 (GTK_PANED(vpaned), scrollwin, TRUE, TRUE); list_txn_set_save_column_width(GTK_TREE_VIEW(treeview), TRUE); //page: lines widget = gtk_chart_new(CHART_TYPE_LINE); data->RE_chart = widget; //gtk_chart_set_minor_prefs(GTK_CHART(widget), PREFS->euro_value, PREFS->minor_cur.suffix_symbol); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL); // connect dialog signals g_signal_connect (window, "delete-event", G_CALLBACK (repbalance_window_dispose), (gpointer)data); g_signal_connect (window, "map-event" , G_CALLBACK (repbalance_window_mapped), NULL); // setup, init and show window wg = &PREFS->ove_wg; if( wg->l && wg->t ) gtk_window_move(GTK_WINDOW(window), wg->l, wg->t); gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h); // toolbar if(PREFS->toolbar_style == 0) gtk_toolbar_unset_style(GTK_TOOLBAR(data->TB_bar)); else gtk_toolbar_set_style(GTK_TOOLBAR(data->TB_bar), PREFS->toolbar_style-1); gtk_widget_show_all (window); //hide start widget hb_widget_visible(data->LB_zoomx, FALSE); hb_widget_visible(data->RG_zoomx, FALSE); hb_widget_visible(data->CM_minor, PREFS->euro_active); hb_widget_visible(data->CM_inclxfer, FALSE); hb_widget_visible(data->GR_detail, data->detail); return window; } /* = = = = = = = = = = = = = = = = */ static GString *lst_repbal_to_string(ToStringMode mode, GtkTreeView *treeview, gchar *title) { GString *node; GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gchar sep; node = g_string_new(NULL); sep = (mode == HB_STRING_EXPORT) ? ';' : '\t'; // header g_string_append (node, _("Date") ); g_string_append_c (node, sep ); g_string_append (node, _("Expense") ); g_string_append_c (node, sep ); g_string_append (node, _("Income") ); g_string_append_c (node, sep ); g_string_append (node, _("Balance") ); g_string_append (node, "\n" ); // lines model = gtk_tree_view_get_model(treeview); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { gchar *intvlname; gdouble values[4]; gtk_tree_model_get (model, &iter, LST_OVER_LABEL, &intvlname, LST_OVER_EXPENSE, &values[0], LST_OVER_INCOME, &values[1], LST_OVER_TOTAL, &values[2], -1); g_string_append (node, intvlname ); for(guint i=0;i<3;i++) { g_string_append_c(node, sep); _format_decimal(node, mode, values[i]); } g_string_append_c(node, '\n'); //leak g_free(intvlname); valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } //DB( g_print("text is:\n%s", node->str) ); return node; } static void lst_repbal_cell_data_function_date (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gchar *datestr; gint flags; gchar *color; gint weight; gtk_tree_model_get(model, iter, LST_OVER_LABEL, &datestr, LST_OVER_FLAGS, &flags, -1); color = NULL; weight = PANGO_WEIGHT_NORMAL; if( flags & REPORT_FLAG_OVER ) { if(PREFS->custom_colors == TRUE) color = PREFS->color_warn; weight = PANGO_WEIGHT_BOLD; } g_object_set(renderer, "weight", weight, "foreground", color, "text", datestr, NULL); //leak g_free(datestr); } static void lst_repbal_cell_cell_data_function_amount (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { gdouble value; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; gint flags; gchar *color; //gint weight; guint32 kcur = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(gtk_tree_view_column_get_tree_view(col)), "kcur_data")); //get datas gtk_tree_model_get(model, iter, LST_OVER_FLAGS, &flags, GPOINTER_TO_INT(user_data), &value, -1); //fix: 400483 if( value == 0.0 ) g_object_set(renderer, "text", NULL, NULL); else { hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, value, kcur, GLOBALS->minor); color = NULL; //weight = PANGO_WEIGHT_NORMAL; if(value != 0.0 && PREFS->custom_colors == TRUE) color = (value > 0.0) ? PREFS->color_inc : PREFS->color_exp; if( flags & REPORT_FLAG_OVER ) { if(PREFS->custom_colors == TRUE) color = PREFS->color_warn; //weight = PANGO_WEIGHT_BOLD; } g_object_set(renderer, //"weight", weight, "foreground", color, "text", buf, NULL); } } static GtkTreeViewColumn *lst_repbal_column_amount_create(gchar *name, gint id) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, name); renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_repbal_cell_cell_data_function_amount, GINT_TO_POINTER(id), NULL); //#2004631 date and column title alignement gtk_tree_view_column_set_alignment (column, 1.0); //gtk_tree_view_column_set_sort_column_id (column, id); return column; } static void lst_repbal_set_cur(GtkTreeView *treeview, guint32 kcur) { g_object_set_data(G_OBJECT(treeview), "kcur_data", GUINT_TO_POINTER(kcur)); } /* ** create our statistic list */ static GtkWidget *lst_repbal_create(void) { GtkListStore *store; GtkWidget *view; GtkCellRenderer *renderer; GtkTreeViewColumn *column; /* create list store */ store = gtk_list_store_new( NUM_LST_OVER, G_TYPE_INT, //pos G_TYPE_INT, //key G_TYPE_STRING, //label G_TYPE_DOUBLE, //exp G_TYPE_DOUBLE, //inc G_TYPE_DOUBLE, //total G_TYPE_INT //flags ); //treeview view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), PREFS->grid_lines); /* column: Label */ column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Date")); renderer = gtk_cell_renderer_text_new(); //#2004631 date and column title alignement //g_object_set(renderer, "xalign", 1.0, NULL); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, lst_repbal_cell_data_function_date, NULL, NULL); //gtk_tree_view_column_add_attribute(column, renderer, "text", LST_OVER_DATE); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Expense */ column = lst_repbal_column_amount_create(_("Expense"), LST_OVER_EXPENSE); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Income */ column = lst_repbal_column_amount_create(_("Income"), LST_OVER_INCOME); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column: Total/Balance */ column = lst_repbal_column_amount_create(_("Balance"), LST_OVER_TOTAL); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); /* column last: empty */ column = gtk_tree_view_column_new(); gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(view), FALSE); return(view); } homebank-5.9.1/src/hub-account.h0000664000175000017500000000225314736461415012162 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "dsp-mainwindow.h" #ifndef __HUB_ACCOUNT_H__ #define __HUB_ACCOUNT_H__ void ui_hub_account_populate(GtkWidget *widget, gpointer user_data); void ui_hub_account_compute(GtkWidget *widget, gpointer user_data); void ui_hub_account_setup(struct hbfile_data *data); void ui_hub_account_dispose(struct hbfile_data *data); GtkWidget *ui_hub_account_create(struct hbfile_data *data); #endifhomebank-5.9.1/src/gtk-chart.c0000644000175000017500000027463215005625261011632 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include #include #include "homebank.h" #include "ui-widgets.h" #include "gtk-chart-colors.h" #include "gtk-chart.h" //TODO: move this #include "list-report.h" extern gchar *CHART_CATEGORY; /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif //data #define DBDT(x); //#define DBDT(x) (x); //calculation #define DBC(x); //#define DBC(x) (x); //scale #define DBS(x); //#define DBS(x) (x); //legend #define DBL(x); //#define DBL(x) (x); //graph #define DBG(x); //#define DBG(x) (x); //DB dynamics #define DBD(x); //#define DBD(x) (x); //tooltip #define DBT(x); //#define DBT(x) (x); //TODO: ugly hack for total line #define LST_REPORT_POS_TOTAL G_MAXINT #define DYNAMICS TRUE #define DBGDRAW_RECT FALSE #define DBGDRAW_TEXT FALSE #define DBGDRAW_ITEM FALSE static GtkBoxClass *gtk_chart_parent_class = NULL; const double dashed3[] = {3.0}; //static void chart_set_font_size(GtkChart *chart, PangoLayout *layout, gint font_size); static gchar *chart_print_int(GtkChart *chart, gdouble value); static gchar *chart_print_scalerate(GtkChart *chart, gdouble value); static gboolean drawarea_full_redraw(GtkWidget *widget, gpointer user_data); static void chart_clear(GtkChart *chart); /* = = = = = = = = = = = = = = = = */ //5.7 to secure &g_array_index(chart->items, ChartItem, i); static ChartItem *chart_chartitem_get(GtkChart *chart, guint index) { GArray *array; ChartItem *retval = NULL; g_return_val_if_fail (GTK_IS_CHART (chart), NULL); array = chart->items; if( index < array->len ) { retval = &g_array_index(array, ChartItem, index); } else g_warning(" chartitem out of bound %d of %d", index, array->len); return retval; } static void chart_set_font_size(GtkChart *chart, PangoLayout *layout, gint font_size) { PangoAttrList *attrs; PangoAttribute *attr; double scale = PANGO_SCALE_MEDIUM; //PANGO_SCALE_MEDIUM = normal size //DB( g_print("\n[chart] set font size\n") ); switch(font_size) { case CHART_FONT_SIZE_TITLE: //size = chart->pfd_size + 3; scale = PANGO_SCALE_X_LARGE; break; case CHART_FONT_SIZE_SUBTITLE: //size = chart->pfd_size + 1; scale = PANGO_SCALE_LARGE; break; //case CHART_FONT_SIZE_NORMAL: //size = chart->pfd_size - 1; // break; case CHART_FONT_SIZE_SMALL: if(chart->smallfont == TRUE) //size = chart->pfd_size - 2; scale = PANGO_SCALE_SMALL; else //size = chart->pfd_size - 1; scale = PANGO_SCALE_MEDIUM; break; } //DB( g_print(" size=%d\n", size) ); attrs = pango_attr_list_new (); attr = pango_attr_scale_new(scale); pango_attr_list_insert (attrs, attr); pango_layout_set_attributes (layout, attrs); pango_layout_set_font_description (layout, chart->pfd); //pango_attribute_destroy(attr); pango_attr_list_unref (attrs); } /* bar section */ //https://stackoverflow.com/questions/326679/choosing-an-attractive-linear-scale-for-a-graphs-y-axis static float CalculateStepSize(float range, float targetSteps) { // calculate an initial guess at step size float tempStep = range/targetSteps; // get the magnitude of the step size float mag = (float)floor(log10(tempStep)); float magPow = (float)pow(10, mag); // calculate most significant digit of the new step size float magMsd = (int)(tempStep/magPow + 0.5); // promote the MSD to either 1, 2, or 5 if (magMsd > 5.0) magMsd = 10.0f; else if (magMsd > 2.0) magMsd = 5.0f; else if (magMsd >= 1.0) magMsd = 2.0f; return magMsd*magPow; } static void colchart_compute_range(GtkChart *chart, HbtkDrawContext *drawctx) { double lobound, hibound; DBC( g_print("\n[column] compute range\n") ); lobound=chart->rawmin; hibound=chart->rawmax; /* compute max ticks */ drawctx->range = chart->rawmax - chart->rawmin; gint maxticks = MIN(10,floor(drawctx->graph.height / (drawctx->font_h * 2))); if( chart->type == CHART_TYPE_STACK100 ) { lobound = 0; hibound = 100; drawctx->range = 100; } DBC( g_print(" raw :: [%.2f - %.2f] range=%.2f\n", chart->rawmin, chart->rawmax, drawctx->range) ); DBC( g_print(" raw :: maxticks=%d (%g / (%g*2))\n", maxticks, drawctx->graph.height, drawctx->font_h) ); DBC( g_print("\n") ); drawctx->unit = CalculateStepSize((hibound-lobound), maxticks); drawctx->min = -drawctx->unit * ceil(-lobound/drawctx->unit); drawctx->max = drawctx->unit * ceil(hibound/drawctx->unit); drawctx->range = drawctx->max - drawctx->min; drawctx->div = drawctx->range / drawctx->unit; DBC( g_print(" end :: interval=%.2f, ticks=%d\n", drawctx->unit, drawctx->div) ); DBC( g_print(" end :: [%.2f - %.2f], range=%.2f\n", drawctx->min, drawctx->max, drawctx->range) ); DBC( g_print("[column] end compute range\n\n") ); } static void colchart_calculation(GtkChart *chart, HbtkDrawContext *drawctx) { gint blkw, maxvisi; gint nb_items; DBC( g_print("\n[colchart] calculation\n") ); nb_items = chart->nb_items; if( chart->type == CHART_TYPE_STACK || chart->type == CHART_TYPE_STACK100) nb_items = chart->nb_cols; /* from fusionchart the bar has a default width of 41 min space is 3 and min barw is 8 */ // new computing if( chart->usrbarw > 0.0 ) { blkw = chart->usrbarw; drawctx->barw = blkw - 3; } else { //minvisi = floor(chart->graph.width / (GTK_CHART_MINBARW+3) ); maxvisi = floor(drawctx->graph.width / (GTK_CHART_MAXBARW+3) ); //DBC( g_print(" width=%.2f, nb=%d, minvisi=%d, maxvisi=%d\n", chart->graph.width, nb_items, minvisi, maxvisi) ); if( nb_items <= maxvisi ) { drawctx->barw = GTK_CHART_MAXBARW; blkw = GTK_CHART_MAXBARW + ( drawctx->graph.width - (nb_items*GTK_CHART_MAXBARW) ) / nb_items; } else { blkw = MAX(GTK_CHART_MINBARW, floor(drawctx->graph.width / nb_items)); drawctx->barw = blkw - 3; } } if(chart->dual) drawctx->barw = drawctx->barw / 2; DBC( g_print(" blkw=%d, barw=%2.f\n", blkw, drawctx->barw) ); drawctx->blkw = blkw; drawctx->visible = drawctx->graph.width / blkw; drawctx->visible = MIN(drawctx->visible, nb_items); DBC( g_print(" blkw=%.2f, barw=%.2f, visible=%d\n", drawctx->blkw, drawctx->barw, drawctx->visible) ); drawctx->ox = drawctx->l; drawctx->oy = drawctx->t + drawctx->h; if(drawctx->range > 0) drawctx->oy = floor(drawctx->graph.y + (drawctx->max/drawctx->range) * drawctx->graph.height); DBC( g_print(" + ox=%.2f oy=%.2f\n", drawctx->ox, drawctx->oy) ); } /* ** draw the scale */ static void colchart_draw_scale(cairo_t *cr, GtkChart *chart, HbtkDrawContext *drawctx) { double x, y, y2; gdouble curxval; gint i, first; PangoLayout *layout; gchar *valstr, *miscstr; int tw, th; DBS( g_print("\n[column] draw scale\n") ); first = gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); /* clip */ //cairo_rectangle(cr, CHART_MARGIN, 0, chart->w, chart->h + CHART_MARGIN); //cairo_clip(cr); layout = pango_cairo_create_layout (cr); chart_set_font_size(chart, layout, CHART_FONT_SIZE_SMALL); cairo_set_line_width(cr, 1.0); // Y-scale element (horiz lines + labels (amounts)) DBS( g_print("\n -- scale-y: [%d - %d]\n", 0, drawctx->div) ); curxval = drawctx->max; cairo_set_dash(cr, 0, 0, 0); for(i=0 ; i <= drawctx->div ; i++) { y = 0.5 + floor (drawctx->graph.y + ((i * drawctx->unit) / drawctx->range) * drawctx->graph.height); //DB( g_print(" + i=%d :: y=%f (%f / %f) * %f\n", i, y, i*chart->unit, chart->range, chart->graph.height) ); //y-horiz line if(!drawctx->isprint) cairo_user_set_rgbacol (cr, &global_colors[THTEXT], ( curxval == 0.0 ) ? 0.8 : 0.1); else cairo_user_set_rgbacol (cr, &global_colors[BLACK], ( curxval == 0.0 ) ? 0.8 : 0.1); cairo_move_to (cr, drawctx->graph.x, y); cairo_line_to (cr, drawctx->graph.x + drawctx->graph.width, y); cairo_stroke (cr); //y-axis label if( chart->type != CHART_TYPE_STACK100 ) valstr = chart_print_int(chart, curxval); else valstr = chart_print_scalerate(chart, curxval * 100 / drawctx->range ); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); if(!drawctx->isprint) cairo_user_set_rgbacol (cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol (cr, &global_colors[BLACK], 0.78); cairo_move_to (cr, drawctx->graph.x - (tw / PANGO_SCALE) - 2, y - ((th / PANGO_SCALE)*0.8) ); pango_cairo_show_layout (cr, layout); curxval -= drawctx->unit; } // X-scale element (vert line + label (item name) if( chart->dual == TRUE || chart->show_xval == TRUE ) { gint lstr = drawctx->l; double tx; x = drawctx->graph.x + (drawctx->blkw/2) + 1; y = drawctx->graph.y + drawctx->graph.height + 3; DBS( g_print("\n -- scale-x: [%d - %d] visi %d\n", first, first+drawctx->visible, drawctx->visible) ); for(i=first ; i<(first+drawctx->visible) ; i++) { /*if( chart->dual == TRUE ) { tx = 0.5 + x + (drawctx->blkw/2); cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.8); cairo_move_to(cr, tx, y0+2); cairo_line_to(cr, tx, y0-2); cairo_stroke(cr); }*/ if( chart->show_xval == TRUE ) { DataCol *dcol; gshort flags = 0; valstr = ""; miscstr = ""; //TODO: we miss a vertical line here switch(chart->type) { case CHART_TYPE_COL: case CHART_TYPE_LINE: //case CHART_TYPE_PIE: { //ChartItem *item = &g_array_index(chart->items, ChartItem, i); ChartItem *item = chart_chartitem_get(chart, i); if( item ) { valstr = item->label; //5.7 //valstr = item->xlabel; //flags = item->flags; //miscstr = item->misclabel; } } break; case CHART_TYPE_STACK: case CHART_TYPE_STACK100: if( chart->cols != NULL ) { dcol = chart->cols[i]; flags = dcol->flags; valstr = dcol->xlabel; miscstr = dcol->misclabel; } //failover else valstr = chart->collabel[i]; break; } DBS( g_print(" x: %2d '%s'", i, valstr) ); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); tx = x - ((tw / PANGO_SCALE)/2); if( tx >= lstr ) { DBS( g_print(" drawed") ); if(!drawctx->isprint) cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol(cr, &global_colors[BLACK], 0.78); cairo_move_to(cr, tx, y); pango_cairo_show_layout (cr, layout); lstr = x + ((tw / PANGO_SCALE)/2) + CHART_SPACING; // draw a marker tx = 0.5 + x; cairo_move_to(cr, tx, drawctx->graph.y + drawctx->graph.height+3); cairo_line_to(cr, tx, drawctx->graph.y + drawctx->graph.height); cairo_stroke(cr); } //5.7 draw a line before current blk if( flags & RF_NEWYEAR ) { if(!drawctx->isprint) cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.3); else cairo_user_set_rgbacol(cr, &global_colors[BLACK], 0.3); tx = 0.5 + x - (drawctx->blkw/2); cairo_move_to(cr, tx, drawctx->graph.y - 3); cairo_line_to(cr, tx, drawctx->graph.y + drawctx->graph.height + 3); cairo_stroke(cr); //draw misc label if(!drawctx->isprint) cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol(cr, &global_colors[BLACK], 0.78); pango_layout_set_text (layout, miscstr, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, tx + 2, drawctx->graph.y - (th / PANGO_SCALE)); pango_cairo_show_layout (cr, layout); } DBS( g_print("\n") ); } x += drawctx->blkw; } } /* average */ if( chart->show_average ) { if( chart->average < 0 ) { y = 0.5 + drawctx->oy + (ABS(chart->average)/drawctx->range) * drawctx->graph.height; } else { y = 0.5 + drawctx->oy - (ABS(chart->average)/drawctx->range) * drawctx->graph.height; } DBS( g_print(" -- average: x%d, y%f, w%d\n", drawctx->l, y, drawctx->w) ); if(!drawctx->isprint) cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 1.0); else cairo_user_set_rgbacol(cr, &global_colors[BLACK], 1.0); cairo_set_dash (cr, dashed3, 1, 0); cairo_move_to(cr, drawctx->graph.x, y); cairo_line_to(cr, drawctx->graph.x + drawctx->graph.width, y); cairo_stroke(cr); } /* overdrawn */ if( chart->show_over ) { //if(chart->minimum != 0 && chart->minimum >= chart->min) if(chart->minimum >= drawctx->min) { DBS( g_print(" -- minimum: min=%.2f range=%.2f\n", drawctx->min, drawctx->range) ); if( chart->minimum < 0 ) { y = 0.5 + drawctx->oy + (ABS(chart->minimum)/drawctx->range) * drawctx->graph.height; } else { y = 0.5 + drawctx->oy - (ABS(chart->minimum)/drawctx->range) * drawctx->graph.height; } y2 = (ABS(drawctx->min)/drawctx->range) * drawctx->graph.height - (y - drawctx->oy) + 1; cairo_set_source_rgba(cr, COLTOCAIRO(255), COLTOCAIRO(0), COLTOCAIRO(0), AREA_ALPHA / 2); DBS( g_print(" draw over: x%d, y%f, w%d, h%f\n", drawctx->l, y, drawctx->w, y2) ); cairo_rectangle(cr, drawctx->graph.x, y, drawctx->graph.width, y2 ); cairo_fill(cr); cairo_set_source_rgb(cr, COLTOCAIRO(255), COLTOCAIRO(0), COLTOCAIRO(0)); cairo_set_dash (cr, dashed3, 1, 0); cairo_move_to(cr, drawctx->graph.x, y); cairo_line_to(cr, drawctx->graph.x + drawctx->graph.width, y); cairo_stroke(cr); } } g_object_unref (layout); } /* = = = = = = = = = = = = = = = = */ /* line section */ /* ** draw all visible lines */ static void linechart_draw_plot(cairo_t *cr, double x, double y, double r, GtkChart *chart, gboolean isprint) { cairo_set_line_width(cr, r / 2); if(!isprint) cairo_user_set_rgbcol(cr, &global_colors[THBASE]); else cairo_user_set_rgbcol(cr, &global_colors[WHITE]); cairo_arc(cr, x, y, r, 0, 2*M_PI); cairo_stroke_preserve(cr); //cairo_set_source_rgb(cr, COLTOCAIRO(0), COLTOCAIRO(119), COLTOCAIRO(204)); cairo_user_set_rgbcol(cr, &chart->color_scheme.colors[chart->color_scheme.cs_blue]); cairo_fill(cr); } static void linechart_draw_lines(cairo_t *cr, GtkChart *chart, HbtkDrawContext *drawctx) { double x, y, x2, y2, firstx, lastx, linew; gint first, i; DBG( g_print("\n[line] draw lines\n") ); x = drawctx->graph.x; y = drawctx->oy; first = (gint)gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); /* clip */ //cairo_rectangle(cr, CHART_MARGIN, 0, chart->w, chart->h + CHART_MARGIN); //cairo_clip(cr); #if DBGDRAW_ITEM == 1 x2 = x + 0.5; cairo_set_line_width(cr, 1.0); double dashlength = 4; cairo_set_dash (cr, &dashlength, 1, 0); cairo_set_source_rgb(cr, 1.0, 0.0, 1.0); // violet for(i=first; i<=(first+drawctx->visible) ;i++) { cairo_move_to(cr, x2, drawctx->graph.y); cairo_line_to(cr, x2, drawctx->graph.x + drawctx->graph.height); x2 += drawctx->blkw; } cairo_stroke(cr); cairo_set_dash (cr, &dashlength, 0, 0); #endif //todo: it should be possible to draw line & plot together using surface and composite fill, or sub path ?? lastx = x; firstx = x; linew = 4.0; if(drawctx->barw < 24) { linew = 1 + (drawctx->barw / 8.0); } cairo_set_line_join(cr, CAIRO_LINE_JOIN_BEVEL); cairo_set_line_width(cr, linew); cairo_set_dash(cr, 0, 0, 0); for(i=first; i<(first+drawctx->visible) ;i++) { //ChartItem *item = &g_array_index(chart->items, ChartItem, i); ChartItem *item = chart_chartitem_get(chart, i); if( item) { x2 = x + (drawctx->blkw)/2; y2 = drawctx->oy - (item->serie1 / drawctx->range) * drawctx->graph.height; if( i == first) { firstx = x2; cairo_move_to(cr, x2, y2); } else { if( i < (chart->nb_items) ) { cairo_line_to(cr, x2, y2); lastx = x2; } else lastx = x2 - drawctx->barw; } x += drawctx->blkw; } } cairo_user_set_rgbcol(cr, &chart->color_scheme.colors[chart->color_scheme.cs_blue]); cairo_stroke_preserve(cr); cairo_line_to(cr, lastx, y); cairo_line_to(cr, firstx, y); cairo_close_path(cr); cairo_user_set_rgbacol(cr, &chart->color_scheme.colors[chart->color_scheme.cs_blue], AREA_ALPHA); cairo_fill(cr); x = drawctx->graph.x; y = drawctx->oy; first = (gint)gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); // draw plots for(i=first; i<(first+drawctx->visible) ;i++) { //ChartItem *item = &g_array_index(chart->items, ChartItem, i); ChartItem *item = chart_chartitem_get(chart, i); if( item) { x2 = x + (drawctx->blkw)/2; y2 = drawctx->oy - (item->serie1 / drawctx->range) * drawctx->graph.height; //test draw vertical selection line if( i == chart->hover ) { if(!drawctx->isprint) cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.1); else cairo_user_set_rgbacol(cr, &global_colors[BLACK], 0.1); //cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); //blue cairo_set_line_width(cr, 1.0); cairo_move_to(cr, x2, drawctx->graph.y); cairo_line_to(cr, x2, drawctx->t + drawctx->h - drawctx->font_h); cairo_stroke(cr); } linechart_draw_plot(cr, x2, y2, i == chart->hover ? linew+1 : linew, chart, drawctx->isprint); x += drawctx->blkw; } } } /* ** draw all visible bars */ static void colchart_draw_bars(cairo_t *cr, GtkChart *chart, HbtkDrawContext *drawctx) { double x, x2, y2, h; gint i, first; DBG( g_print("\n[column] draw bars\n") ); x = drawctx->graph.x; first = (gint)gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); DBG( g_print(" x=%.2f first=%d, blkw=%.2f, barw=%.2f\n", x, first, drawctx->blkw, drawctx->barw ) ); #if DBGDRAW_ITEM == 1 x2 = x + 0.5; cairo_set_line_width(cr, 1.0); double dashlength; dashlength = 4; cairo_set_dash (cr, &dashlength, 1, 0); cairo_set_source_rgb(cr, 1.0, 0.0, 1.0); // violet for(i=first; i<=(first+drawctx->visible) ;i++) { cairo_move_to(cr, x2, drawctx->graph.y); cairo_line_to(cr, x2, drawctx->graph.x + drawctx->graph.height); x2 += drawctx->blkw; } cairo_stroke(cr); cairo_set_dash (cr, &dashlength, 0, 0); #endif for(i=first; i<(first+drawctx->visible) ;i++) { //ChartItem *item = &g_array_index(chart->items, ChartItem, i); ChartItem *item = chart_chartitem_get(chart, i); gint color; gint barw = drawctx->barw; //if(!chart->datas1[i]) goto nextbar; if( item ) { if(!chart->show_mono) color = i % chart->color_scheme.nb_cols; else color = chart->color_scheme.cs_green; cairo_user_set_rgbcol_over(cr, &chart->color_scheme.colors[color], i == chart->hover); x2 = x + (drawctx->blkw/2) - 1; x2 = !chart->dual ? x2 - (barw/2) : x2 - barw - 1; //exp/inc/bal if(item->serie1) { h = floor((item->serie1 / drawctx->range) * drawctx->graph.height); y2 = drawctx->oy - h; if(item->serie1 < 0.0) { y2 += 1; if(chart->show_mono) { color = chart->color_scheme.cs_red; cairo_user_set_rgbcol_over(cr, &chart->color_scheme.colors[color], i == chart->hover); } } //DBG( g_print(" + i=%d :: y2=%f h=%f (%f / %f) * %f\n", i, y2, h, chart->datas1[i], chart->range, chart->graph.height ) ); cairo_rectangle(cr, x2+2, y2, barw, h); cairo_fill(cr); } if( chart->dual && item->serie2) { x2 = x2 + barw + 1; h = floor((item->serie2 / drawctx->range) * drawctx->graph.height); y2 = drawctx->oy - h; cairo_rectangle(cr, x2+2, y2, barw, h); cairo_fill(cr); } x += drawctx->blkw; } } } /* ** get the bar under the mouse pointer */ static gint colchart_get_hover(GtkWidget *widget, gint x, gint y, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); HbtkDrawContext *drawctx = &chart->context; gint retval = -1; gint index, first, px; if( x <= (drawctx->l+drawctx->w) && x >= drawctx->graph.x && y >= drawctx->graph.y && y <= (drawctx->t+drawctx->h) ) { px = (x - drawctx->graph.x); //py = (y - chart->oy); first = gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); index = first + (px / drawctx->blkw); if(index < chart->nb_items) { //ChartItem *item = &g_array_index(chart->items, ChartItem, index); ChartItem *item = chart_chartitem_get(chart, index); if( item ) { retval = index; if( item->n_child > 0 ) chart->drillable = TRUE; } } } return(retval); } static void colchart_first_changed( GtkAdjustment *adj, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); //gint first; DB( g_print("\n[column] first changed\n") ); //first = gtk_adjustment_get_value(GTK_ADJUSTMENT(adj)); //DB( g_print(" first=%d\n", first) ); /* DB( g_print(" scrollbar\n adj=%8x, low=%.2f upp=%.2f val=%.2f step=%.2f page=%.2f size=%.2f\n", adj, adj->lower, adj->upper, adj->value, adj->step_increment, adj->page_increment, adj->page_size) ); */ /* Set the number of decimal places to which adj->value is rounded */ //gtk_scale_set_digits (GTK_SCALE (hscale), (gint) adj->value); //gtk_scale_set_digits (GTK_SCALE (vscale), (gint) adj->value); drawarea_full_redraw (chart->drawarea, chart); DB( g_print(" gtk_widget_queue_draw\n") ); gtk_widget_queue_draw(chart->drawarea); } /* ** scrollbar set values for upper, page size, and also show/hide */ static void colchart_scrollbar_setvalues(GtkChart *chart) { HbtkDrawContext *drawctx = &chart->context; GtkAdjustment *adj = chart->adjustment; gboolean visible = FALSE; g_return_if_fail (GTK_IS_ADJUSTMENT (adj)); DB( g_print("\n[column] sb_set_values\n") ); g_object_freeze_notify(G_OBJECT(adj)); DB( g_print(" chart->nb_items=%d\n", chart->nb_items) ); if( chart->nb_items <= 0 ) { DB( g_print(" set default and hide\n") ); gtk_adjustment_configure(GTK_ADJUSTMENT(adj), 0.0, 0.0, 1.0, 1.0, 1.0, 1.0); } else { gint first, nb_items; first = gtk_adjustment_get_value(GTK_ADJUSTMENT(adj)); nb_items = chart->nb_items; if( chart->type == CHART_TYPE_STACK || chart->type == CHART_TYPE_STACK100 ) nb_items = chart->nb_cols - 1; DB( g_print(" nb_items = %d\n", nb_items) ); DB( g_print(" entries=%d, visible=%d\n", nb_items, drawctx->visible) ); DB( g_print(" first=%d, upper=%d, pagesize=%d\n", first, nb_items, drawctx->visible) ); gtk_adjustment_set_upper(adj, (gdouble)nb_items); gtk_adjustment_set_page_size(adj, (gdouble)drawctx->visible); gtk_adjustment_set_page_increment(adj, (gdouble)drawctx->visible); if(first + drawctx->visible > nb_items) { DB( g_print(" set value to %d\n", nb_items - drawctx->visible) ); gtk_adjustment_set_value(adj, (gdouble)nb_items - drawctx->visible); } // value, lower, upper, step, page, pagesize //gtk_adjustment_new (0.0, 0.0, 1.0, 1.0, 1.0, 1.0) if( drawctx->visible < nb_items ) visible = TRUE; } #if( (GTK_MAJOR_VERSION == 3) && (GTK_MINOR_VERSION < 18) ) gtk_adjustment_changed (adj); #endif g_object_thaw_notify(G_OBJECT(adj)); DB( g_print(" visible=%d\n", visible) ); if( visible == FALSE ) gtk_widget_hide(GTK_WIDGET(chart->scrollbar)); else gtk_widget_show(GTK_WIDGET(chart->scrollbar)); } /* = = = = = = = = = = = = = = = = */ /* stack section */ // used for stack chart static void chart_data_series(GtkChart *chart, gint indice) { GtkTreeModel *model; GtkTreeIter iter, firstiter; gboolean valid; gdouble tmpmin, tmpmax; guint nbrows, nbcols; guint rowid, colid; DBDT( g_print("------\n[chart] time data series\n") ); model = chart->model; nbcols = chart->nb_cols; //future with indice, which is a position into the treeview DBDT( g_print(" time: initial row=%d\n", indice) ); //DBDT( g_print(" time: model %p\n", model) ); chart->show_breadcrumb = FALSE; chart->colindice = indice; if( indice < 0 ) { valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(model), &firstiter); chart->nb_items = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), NULL); gtk_widget_hide(chart->breadcrumb); } else { GtkTreePath *path = gtk_tree_path_new_from_indices(indice, -1); gchar *pathstr, *itrlabel; chart->show_breadcrumb = TRUE; pathstr = gtk_tree_path_to_string(path); DBDT( g_print(" time: path: %s\n", pathstr) ); gtk_tree_model_get_iter(model, &firstiter, path); chart->nb_items = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), &firstiter); // update the breadcrumb gtk_tree_model_get (GTK_TREE_MODEL(model), &firstiter, LST_REPORT2_LABEL, &itrlabel, -1); gchar *bc = g_markup_printf_escaped("%s > %s", _(CHART_CATEGORY), itrlabel); gtk_label_set_markup(GTK_LABEL(chart->breadcrumb), bc); g_free(bc); gtk_widget_show(chart->breadcrumb); // move to xx:0 gtk_tree_path_append_index(path, 0); valid = gtk_tree_model_get_iter(model, &firstiter, path); DBDT( g_print(" time: path: %s\n", pathstr) ); gtk_tree_path_free(path); g_free(pathstr); } //5.7 override //chart->nb_items = nbrows; //nbrows = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), NULL); //TODO: crappy here //if( chart->nb_items > 0 ) //substract TOTAL row // chart->nb_items--; nbrows = chart->nb_items; chart->colsum = g_malloc0(sizeof(gdouble)*nbcols); chart->items = g_array_sized_new(FALSE, FALSE, sizeof(ChartItem), chart->nb_items); DBDT( g_print(" time: malloc for %d rows\n", chart->nb_items) ); tmpmin = tmpmax = 0.0; // foreach column for(colid=0 ; coliditems, &item, 1); DBDT( g_print(" append chartiem for colid0: '%s' n_child:%d\n", item.label, item.n_child) ); } value = da_datarow_get_cell_sum (dr, colid); /*if( chart->type == CHART_TYPE_STACK100 ) { value = ABS(value); }*/ chart->colsum[colid] += ABS(value); DBDT( g_print(" row=%p pos(row)=%d col=%d '%s', amt=%.2f colsum=%.2f\n", dr, pos, colid, label, value, chart->colsum[colid]) ); if( value < 0.0 ) colmin += value; else colmax += value; next: valid = gtk_tree_model_iter_next (model, &iter); rowid++; } DBDT( g_print(" col colmin=%.2f colmax=%.2f\n", colmin, colmax) ); tmpmin = MIN(tmpmin, colmin); tmpmax = MAX(tmpmax, colmax); } // ensure rawmin rawmax not equal if(tmpmin == tmpmax) { tmpmin = 0; tmpmax = 100; } DBDT( g_print(" time: rawmin=%.2f rawmax=%.2f\n", tmpmin, tmpmax) ); chart->rawmin = tmpmin; chart->rawmax = tmpmax; } static gboolean colchart_draw_stacks_get_top_level (GtkTreeModel *model, gint indice, GtkTreeIter *return_iter) { GtkTreeIter iter; gboolean valid; if( indice < 0 ) { valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(model), &iter); *return_iter = iter; } else { GtkTreePath *path = gtk_tree_path_new_from_indices(indice, 0, -1); valid = gtk_tree_model_get_iter(model, &iter, path); *return_iter = iter; gtk_tree_path_free(path); } return valid; } static void colchart_draw_stacks(cairo_t *cr, GtkChart *chart, HbtkDrawContext *drawctx) { double x, x2, y2, h, ypos, yneg, rate, srate; gint i, r, first; GtkTreeModel *model = chart->model; GtkTreeIter iter; gboolean valid; DBG( g_print("\n[column] draw stacks\n") ); x = drawctx->graph.x; first = (gint)gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); rate = 0; cairo_set_line_width(cr, 1.0); DBG( g_print(" x=%.2f first=%d, blkw=%.2f, barw=%.2f\n", x, first, drawctx->blkw, drawctx->barw ) ); DBG( g_print(" mono=%d\n", chart->show_mono ) ); x2 = floor(x + (drawctx->blkw - drawctx->barw)/2); DBG( g_print(" x2=%.0f, height=%.0f\n", x2, drawctx->graph.height) ); //foreach cols for(i=first; i<(first+drawctx->visible) ;i++) //for(i=0; inb_items ;i++) { y2 = floor(drawctx->oy); ypos = y2; yneg = y2; DBG( g_print("\ndraw blk/col %d\n", i) ); //foreach rows //valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(model), &iter); valid = colchart_draw_stacks_get_top_level(GTK_TREE_MODEL(model), chart->colindice, &iter); r = 0; srate = 0; while (valid) { DataRow *dr; gdouble value; gint id, color; gboolean hover; gtk_tree_model_get (GTK_TREE_MODEL(model), &iter, LST_REPORT2_POS, &id, LST_REPORT2_ROW, &dr, -1); if( id != LST_REPORT_POS_TOTAL ) { value = da_datarow_get_cell_sum (dr, i); if( value == 0.0 ) goto nextrow; //for stacked //pre 5.7 //rate = ABS(value/drawctx->range); if(chart->type == CHART_TYPE_STACK) rate = value/drawctx->range; else if(chart->type == CHART_TYPE_STACK100) { value = ABS(value); rate = value / chart->colsum[i]; DBG( g_print(" row=%2d value=%7.2f / %7.2f = %7.2f\n", r, value, chart->colsum[i], rate) ); } //h = 0.5 + floor(rate * drawctx->graph.height); h = rate * drawctx->graph.height; //debug sum of rate srate += h; color = chart->color_scheme.cs_green; if( value > 0 ) { DBG( g_print(" row %2d value=%7.2f x2=%7.2f, ypos=%7.2f rate=%f height=%7.2f sheight=%f\n", r, value, x2+2, ypos, 100*rate, h, srate) ); cairo_rectangle(cr, x2+2, ypos-h, drawctx->barw, h); ypos = ypos - h; } else { DBG( g_print(" row %2d value=%7.2f x2=%7.2f, yneg=%7.2f rate=%f height=%7.2f sheight=%f\n", r, value, x2+2, yneg, 100*rate, h, srate) ); cairo_rectangle(cr, x2+2, yneg-h+1, drawctx->barw, h); yneg = yneg - h; color = chart->color_scheme.cs_red; } //overwrite color if(!chart->show_mono) { color = r % chart->color_scheme.nb_cols; } hover = (i == chart->colhover) && (r == chart->hover) ? TRUE : FALSE; cairo_user_set_rgbcol_over(cr, &chart->color_scheme.colors[color], hover); //5.7 test forecast fill //TODO: future DataCol *dcol; gshort flags = 0; if( chart->cols != NULL ) { dcol = chart->cols[i]; flags = dcol->flags; } if( !(flags & RF_FORECAST) ) cairo_fill(cr); else { double dashlength = 3; cairo_set_dash (cr, &dashlength, 1, 0); cairo_stroke_preserve(cr); cairo_user_set_rgbacol_over(cr, &chart->color_scheme.colors[color], hover, 0.5); cairo_fill(cr); } } nextrow: valid = gtk_tree_model_iter_next (model, &iter); r++; } x2 += drawctx->blkw; } } /* ** get the bar under the mouse pointer */ static gint colchart_stack_get_hover(GtkWidget *widget, gint x, gint y, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); HbtkDrawContext *drawctx = &chart->context; gint retval; gint index, first, px, r; double y2, h, ypos, yneg, rate; GtkTreeModel *model = chart->model; GtkTreeIter iter; gboolean valid; retval = -1; if( x <= (drawctx->l+drawctx->w) && x >= drawctx->graph.x && y >= drawctx->graph.y && y <= (drawctx->t+drawctx->h) ) { px = (x - drawctx->graph.x); //py = (drawctx->oy - y); first = gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); index = first + (px / drawctx->blkw); rate = 0; DBD( g_print(" x=%d y=%d px=%d oy=%f\n", x, y, px, drawctx->oy) ); //we are hover column 'index' if(index < chart->nb_cols) { y2 = 0.5 + floor(drawctx->oy); ypos = y2; yneg = y2+1; chart->colhover = index; //Each rows //valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(model), &iter); valid = colchart_draw_stacks_get_top_level(GTK_TREE_MODEL(model), chart->colindice, &iter); r = 0; while (valid) { DataRow *dr; gdouble value; gint id; gtk_tree_model_get (GTK_TREE_MODEL(model), &iter, LST_REPORT2_POS, &id, LST_REPORT2_ROW, &dr, -1); if( id != LST_REPORT_POS_TOTAL ) { value = da_datarow_get_cell_sum (dr, index); if( value == 0.0 ) goto nextrow; //for stacked //pre 5.7 //rate = ABS(value/drawctx->range); if(chart->type == CHART_TYPE_STACK) rate = value/drawctx->range; else if(chart->type == CHART_TYPE_STACK100) { value = ABS(value); rate = value/chart->colsum[index]; } //h = 0.5 + floor(rate * drawctx->graph.height); h = rate * drawctx->graph.height; if( value > 0 ) { DBD( g_print(" col=%02d row=%2d ymin=%.0f ymax=%.0f height=%.0f\n", index, r, ypos-h, ypos, h) ); if( y > ypos - h && y < ypos ) { retval = r; DBD( g_print(" ** match\n") ); //5.7 drill down if( gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), &iter) > 0 ) chart->drillable = TRUE; break; } ypos = ypos - h; } else { DBD( g_print(" col=%02d row=%2d ymin=%.0f ymax=%.0f height=%.0f\n", index, r, yneg, yneg-h, h) ); if( y > yneg && y < yneg - h) { retval = r; DBD( g_print(" ** match\n") ); //5.7 drill down if( gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), &iter) > 0 ) chart->drillable = TRUE; break; } yneg = yneg - h; } } nextrow: valid = gtk_tree_model_iter_next (model, &iter); r++; } } } DBD( g_print(" stack active=%d\n", retval) ); return(retval); } /* = = = = = = = = = = = = = = = = */ /* pie section */ static void piechart_draw_slices(cairo_t *cr, GtkChart *chart, HbtkDrawContext *drawctx) { if(chart->nb_items <= 0 || chart->total == 0.0) return; DBG( g_print("\n[pie] draw slices\n") ); //cairo drawing double a1 = 0 * (M_PI / 180); double a2 = 360 * (M_PI / 180); //g_print("angle1=%.2f angle2=%.2f\n", a1, a2); double cx = drawctx->ox; double cy = drawctx->oy; double radius = drawctx->rayon/2; gint i; double dx, dy; double sum = 0.0; gint color; DBG( g_print("rayon=%d\n", drawctx->rayon) ); DBG( g_print("total=%.f\n", chart->total) ); for(i=0; i< chart->nb_items ;i++) { //ChartItem *item = &g_array_index(chart->items, ChartItem, i); ChartItem *item = chart_chartitem_get(chart, i); if( item ) { a1 = ((360 * (sum / chart->total)) - 90) * (M_PI / 180); sum += ABS(item->serie1); a2 = ((360 * (sum / chart->total)) - 90) * (M_PI / 180); //if(i < chart->nb_items-1) a2 += 0.0175; dx = cx; dy = cy; DBG( g_print("- s%2d: %.2f%% a1=%.2f a2=%.2f | %s %.f\n", i, sum / chart->total, a1, a2, item->label, item->serie1) ); cairo_move_to(cr, dx, dy); cairo_arc(cr, dx, dy, radius, a1, a2); #if CHART_PARAM_PIE_LINE == TRUE cairo_set_line_width(cr, 2.0); cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); cairo_line_to(cr, cx, cy); cairo_stroke_preserve(cr); #endif //g_print("color : %f %f %f\n", COLTOCAIRO(colors[i].r), COLTOCAIRO(colors[i].g), COLTOCAIRO(colors[i].b)); color = i % chart->color_scheme.nb_cols; cairo_user_set_rgbcol_over(cr, &chart->color_scheme.colors[color], i == chart->hover); cairo_fill(cr); } } #if CHART_PARAM_PIE_DONUT == TRUE a1 = 0; a2 = 2 * M_PI; //original //radius = (gint)((chart->rayon/3) * (1 / PHI)); //5.1 //radius = (gint)((chart->rayon/2) * 2 / 3); //ynab //piehole value from 0.4 to 0.6 will look best on most charts radius = (gint)(drawctx->rayon/2) * CHART_PARAM_PIE_HOLEVALUE; if(!drawctx->isprint) cairo_user_set_rgbcol(cr, &global_colors[THBASE]); else cairo_user_set_rgbcol(cr, &global_colors[WHITE]); cairo_arc(cr, cx, cy, radius, a1, a2); cairo_fill(cr); #endif } static gint piechart_get_hover(GtkWidget *widget, gint x, gint y, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); HbtkDrawContext *drawctx = &chart->context; gint retval, px, py; gint index; double radius, h; DBD( g_print("\n[pie] get hover\n") ); retval = -1; px = x - drawctx->ox; py = y - drawctx->oy; h = sqrt( pow(px,2) + pow(py,2) ); radius = drawctx->rayon / 2; if(h <= radius && h >= (radius * CHART_PARAM_PIE_HOLEVALUE) ) { double angle, b; b = (acos(px / h) * 180) / M_PI; angle = py > 0 ? b : 360 - b; angle += 90; if(angle > 360) angle -= 360; //angle = 360 - angle; //todo optimize gdouble cumul = 0; for(index=0; index< chart->nb_items ;index++) { //ChartItem *item = &g_array_index(chart->items, ChartItem, index); ChartItem *item = chart_chartitem_get(chart, index); if( item ) { cumul += ABS(item->serie1/chart->total)*360; if( cumul > angle ) { retval = index; if( item->n_child > 0 ) chart->drillable = TRUE; break; } } } //DBD( g_print(" inside: x=%d, y=%d\n", x, y) ); //DBD( g_print(" inside: b=%f angle=%f, slice is %d\n", b, angle, index) ); } return(retval); } static void piechart_calculation(GtkChart *chart, HbtkDrawContext *drawctx) { //GtkWidget *drawarea = chart->drawarea; gint w, h; DBC( g_print("\n[pie] calculation\n") ); w = drawctx->graph.width; h = drawctx->graph.height; drawctx->rayon = MIN(w, h); drawctx->mark = 0; #if CHART_PARAM_PIE_MARK == TRUE gint m = floor(drawctx->rayon / 100); m = MAX(2, m); drawctx->rayon -= (m * 2); drawctx->mark = m; #endif drawctx->ox = drawctx->graph.x + (w / 2); drawctx->oy = drawctx->graph.y + (drawctx->rayon / 2); DBC( g_print(" center: %g, %g - R=%d, mark=%d\n", drawctx->ox, drawctx->oy, drawctx->rayon, drawctx->mark) ); } /* = = = = = = = = = = = = = = = = */ /* ** print a integer number */ static gchar *chart_print_int(GtkChart *chart, gdouble value) { hb_strfmon_int(chart->buffer1, CHART_BUFFER_LENGTH-1, (gdouble)value, chart->kcur, chart->minor); return chart->buffer1; } /* ** print a scale rate number */ static gchar *chart_print_scalerate(GtkChart *chart, gdouble value) { g_snprintf (chart->buffer1, CHART_BUFFER_LENGTH-1, "%.0f%%", value); return chart->buffer1; } /* ** print a rate number */ static gchar *chart_print_rate(GtkChart *chart, gdouble value) { g_snprintf (chart->buffer1, CHART_BUFFER_LENGTH-1, "%.2f%%", value); return chart->buffer1; } /* ** print a double number */ static gchar *chart_print_double(GtkChart *chart, gchar *buffer, gdouble value) { hb_strfmon(buffer, CHART_BUFFER_LENGTH-1, value, chart->kcur, chart->minor); return buffer; } static void chart_clear_items(GtkChart *chart) { GArray *array = chart->items; guint i; DBDT( g_print("\n[gtkchart] %p clear items\n", chart) ); if(array != NULL) { DBDT( g_print(" n_items: %d\n", array->len) ); for(i=0;ilen;i++) { //no need to secure access here ChartItem *item = &g_array_index(array, ChartItem, i); //DBDT( g_print(" free item %3d: %p: '%s' %p\n", i, item, item->label, item->legend) ); DBDT( g_print(" free item %3d: %p: '%s'\n", i, item, item->label) ); g_free(item->label); //we free label as it comes from a model_get into setup_with_model //g_free(item->xlabel); //g_free(item->misclabel); } g_array_free(chart->items, TRUE); chart->items = NULL; } g_free(chart->colsum); chart->colsum = NULL; chart->nb_items = 0; chart->colindice = -1; chart->total = 0; chart->rawmin = 0; chart->rawmax = 0; } extern HbKvData CYA_REPORT_SRC[]; /* ** clear any allocated memory */ static void chart_clear(GtkChart *chart) { HbtkDrawContext *drawctx = &chart->context; DBDT( g_print("\n[gtkchart] %p clear\n", chart) ); DBDT( g_print(" type: %d %s\n", chart->type, hbtk_get_label(CYA_REPORT_SRC, chart->type)) ); //free & clear any previous allocated datas if(chart->title != NULL) { g_free(chart->title); chart->title = NULL; } if(chart->subtitle != NULL) { g_free(chart->subtitle); chart->subtitle = NULL; } chart_clear_items(chart); chart->totmodel = NULL; drawctx->range = 0; g_free(chart->collabel); chart->collabel = NULL; chart->hover = -1; chart->lasthover = -1; chart->colhover = -1; chart->lastcolhover = -1; } /* ** setup our chart with a model and column */ static void chart_setup_with_model(GtkChart *chart, gint indice) { GtkTreeModel *totmodel; GtkTreeIter iter; guint column1; guint column2; gint rowid, i; gboolean valid = FALSE; DBDT( g_print("\n[chart] total data series\n") ); totmodel = chart->totmodel; column1 = chart->column1; column2 = chart->column2; //future with indice, which is a position into the treeview DBDT( g_print(" total: indice: %d\n", indice) ); chart->show_breadcrumb = FALSE; if( indice < 0 ) { valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(totmodel), &iter); chart->nb_items = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(totmodel), NULL); gtk_widget_hide(chart->breadcrumb); } else { GtkTreePath *path = gtk_tree_path_new_from_indices(indice, -1); gchar *pathstr, *itrlabel, *valstr; gdouble value1; chart->show_breadcrumb = TRUE; pathstr = gtk_tree_path_to_string(path); DBDT( g_print(" total: path: %s\n", pathstr) ); gtk_tree_model_get_iter(totmodel, &iter, path); chart->nb_items = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(totmodel), &iter); // update the breadcrumb gtk_tree_model_get (GTK_TREE_MODEL(totmodel), &iter, LST_REPORT_LABEL, &itrlabel, column1, &value1, -1); //5.7.3 // 2042699 valstr = chart_print_double(chart, chart->buffer1, value1); gchar *bc = g_markup_printf_escaped("%s > %s %s", _(CHART_CATEGORY), itrlabel, valstr); gtk_label_set_markup(GTK_LABEL(chart->breadcrumb), bc); g_free(bc); gtk_widget_show(chart->breadcrumb); // move to xx:0 gtk_tree_path_append_index(path, 0); valid = gtk_tree_model_get_iter(totmodel, &iter, path); DBDT( g_print(" total: path: %s\n", pathstr) ); gtk_tree_path_free(path); g_free(pathstr); } //#1870390 add total into listview & exclude from charts chart->items = g_array_sized_new(FALSE, FALSE, sizeof(ChartItem), chart->nb_items); DBDT( g_print(" total: nbitems=%d, struct=%d\n", chart->nb_items, (gint)sizeof(ChartItem)) ); chart->dual = (column1 == column2) ? FALSE : TRUE; rowid = 0; while (valid) { //DataRow *row; gint pos; gchar *label; gdouble value1, value2; ChartItem item; /* column 0: pos (gint) */ /* column 1: key (gint) */ /* column 2: label (gchar) */ /* column x: values (double) */ gtk_tree_model_get (GTK_TREE_MODEL(totmodel), &iter, LST_REPORT_POS, &pos, //hold total LST_REPORT_LABEL, &label, //LST_REPORT_ROW, &row, column1, &value1, column2, &value2, -1); //#1870390 add total into listview & exclude from charts if( pos == LST_REPORT_POS_TOTAL ) { //subtract the LST_REPORT_POS_TOTAL line not to be drawed chart->nb_items--; //5.8 fix leak g_free(label); goto next; } if(chart->dual || chart->abs) { value1 = ABS(value1); value2 = ABS(value2); } /* data1 value storage & min, max compute */ chart->rawmin = MIN(chart->rawmin, value1); chart->rawmax = MAX(chart->rawmax, value1); if( chart->dual ) { /* data2 value storage & min, max compute */ chart->rawmin = MIN(chart->rawmin, value2); chart->rawmax = MAX(chart->rawmax, value2); } item.label = label; //5.7 /*if( row != NULL ) { if( row->xlabel ) item.xlabel = g_strdup(row->xlabel); if( row->misclabel ) item.misclabel = g_strdup(row->misclabel); item.flags = row->flags; }*/ //item.legend = NULL; item.serie1 = value1; item.serie2 = value2; //add for drill down item.n_child = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(totmodel), &iter); g_array_append_vals(chart->items, &item, 1); DBDT( g_print(" total: append item %3d: '%s' %.2f %2f : %d\n", rowid, label, value1, value2, item.n_child) ); /* ensure rawmin rawmax not equal */ if(chart->rawmin == chart->rawmax) { chart->rawmin = 0; chart->rawmax = 100; } /* pie chart total sum */ chart->total += ABS(value1); //leak //don't g_free(label); here done into chart_clear next: valid = gtk_tree_model_iter_next (totmodel, &iter); rowid++; } // compute rate for legend for bar/pie for(i=0;inb_items;i++) { //ChartItem *item = &g_array_index(chart->items, ChartItem, i); ChartItem *item = chart_chartitem_get(chart, i); //gchar *strval; if( item ) { DBDT( g_print(" total: preset legend %3d: %p : item '%s'\n", i, item, item->label) ); //strval = chart_print_double(chart, chart->buffer1, item->serie1); item->rate = ABS(item->serie1*100/chart->total); //item->legend = g_markup_printf_escaped("%s\n%s (%.f%%)", item->label, strval, item->rate); } } //g_print("total is %.2f\n", total); //ensure the widget is mapped //gtk_widget_map(chart); } static void chart_layout_area(cairo_t *cr, GtkChart *chart, HbtkDrawContext *drawctx) { PangoLayout *layout; gchar *valstr; int tw, th, bch; gint i, n_legend; DBC( g_print("----------\n[gtkchart] layout area\n") ); DBC( g_print(" drawctx: %p\n", drawctx) ); DBC( g_print(" area : %d %d %d %d\n", drawctx->l, drawctx->t, drawctx->w, drawctx->h ) ); DBC( g_print(" is print: %d\n", drawctx->isprint) ); /* Create a PangoLayout, set the font and text */ layout = pango_cairo_create_layout (cr); DBC( g_print(" -- compute header\n") ); // compute title drawctx->title_zh = 0; if(chart->title != NULL) { chart_set_font_size(chart, layout, CHART_FONT_SIZE_TITLE); pango_layout_set_text (layout, chart->title, -1); pango_layout_get_size (layout, &tw, &th); drawctx->title_zh = (th / PANGO_SCALE); DBC( g_print(" - title: %s w=%d h=%d\n", chart->title, tw, th) ); } // compute subtitle drawctx->subtitle_zh = 0; if(chart->subtitle != NULL) { chart_set_font_size(chart, layout, CHART_FONT_SIZE_SUBTITLE); pango_layout_set_text (layout, chart->subtitle, -1); pango_layout_get_size (layout, &tw, &th); drawctx->subtitle_zh = (th / PANGO_SCALE); DBC( g_print(" - subtitle: %s w=%d h=%d\n", chart->subtitle, tw, th) ); } drawctx->subtitle_y = drawctx->t + drawctx->title_zh; //breadcrumb top et position bch = 0; if( chart->show_breadcrumb ) { chart_set_font_size(chart, layout, CHART_FONT_SIZE_NORMAL); pango_layout_set_text (layout, _(CHART_CATEGORY), -1); pango_layout_get_size (layout, &tw, &th); bch = (th / PANGO_SCALE); gtk_widget_set_margin_top(chart->breadcrumb, drawctx->t + drawctx->title_zh + drawctx->subtitle_zh); } //graph top & height drawctx->graph.y = drawctx->t + drawctx->title_zh + drawctx->subtitle_zh + bch; drawctx->graph.height = drawctx->h - drawctx->title_zh - drawctx->subtitle_zh - bch; if(drawctx->title_zh > 0 || drawctx->subtitle_zh > 0) { drawctx->graph.y += CHART_MARGIN; drawctx->graph.height -= CHART_MARGIN; } // compute other text chart_set_font_size(chart, layout, CHART_FONT_SIZE_NORMAL); DBC( g_print(" -- compute y-scale\n") ); // y-axis labels (amounts) drawctx->scale_w = 0; colchart_compute_range(chart, drawctx); valstr = chart_print_int(chart, drawctx->min); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); drawctx->scale_w = (tw / PANGO_SCALE); valstr = chart_print_int(chart, drawctx->max); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); drawctx->scale_w = MAX(drawctx->scale_w, (tw / PANGO_SCALE)); DBC( g_print(" scale : %d,%d %g,%g\n", drawctx->l, 0, drawctx->scale_w, 0.0) ); // compute font height drawctx->font_h = (th / PANGO_SCALE); // compute graph region switch(chart->type) { case CHART_TYPE_LINE: case CHART_TYPE_COL: case CHART_TYPE_STACK: case CHART_TYPE_STACK100: drawctx->graph.x = drawctx->l + drawctx->scale_w + 2; drawctx->graph.width = drawctx->w - drawctx->scale_w - 2; break; case CHART_TYPE_PIE: drawctx->graph.x = drawctx->l; drawctx->graph.width = drawctx->w; break; } DBC( g_print(" - graph : %g,%g %g,%g\n", drawctx->graph.x, drawctx->graph.y, drawctx->graph.width, drawctx->graph.height) ); if( chart->type != CHART_TYPE_PIE ) { drawctx->graph.y += drawctx->font_h; drawctx->graph.height -= drawctx->font_h; if( chart->show_xval ) drawctx->graph.height -= (drawctx->font_h + CHART_SPACING); } DBC( g_print(" -- compute legend (if > 1 item)\n") ); //TODO: should not happen check why ? if( chart->items ) { //5.7 test aspect ratio gint ratio; if( drawctx->graph.width > drawctx->graph.height ) ratio = GTK_ORIENTATION_HORIZONTAL; else ratio = GTK_ORIENTATION_VERTICAL; DBC( g_print(" raw ratio=%d %s :: w=%f h=%f\n", ratio, ratio == GTK_ORIENTATION_HORIZONTAL ? "Horiz" : "Vert", drawctx->graph.width, drawctx->graph.height) ); n_legend = chart->items->len; DBC( g_print(" n_legend=%d\n", n_legend) ); // compute: each legend column width, and legend width if(chart->show_legend) { double label_w = 0; double label_wide_w = 0; chart_set_font_size(chart, layout, CHART_FONT_SIZE_SMALL); for(i=0 ; i < n_legend ; i++) { //ChartItem *item = &g_array_index(chart->items, ChartItem, i); ChartItem *item = chart_chartitem_get(chart, i); if( item ) { // label width pango_layout_set_text (layout, item->label, -1); pango_layout_get_size (layout, &tw, &th); label_w = MAX(label_w, (tw / PANGO_SCALE)); } //DBC( g_print(" %d '%s' %f\n", i, item->label, label_w) ); } DBC( g_print(" raw label width:%f\n", label_w) ); drawctx->legend_font_h = (th / PANGO_SCALE); //force ratio to avoid legend at bottom with too much items if( floor(n_legend * drawctx->legend_font_h * CHART_LINE_SPACING) > drawctx->graph.height / 2 ) { ratio = GTK_ORIENTATION_HORIZONTAL; DBC( g_print(" ratio forced to horiz\n") ); } // labels not much than 1/4 of width graph if( ratio == GTK_ORIENTATION_HORIZONTAL ) { gdouble lw = floor(drawctx->graph.width / 4); drawctx->legend_label_w = MIN(label_w, lw); DBC( g_print(" clamp label width:%f\n", drawctx->legend_label_w) ); } //#2037597 else { gdouble lw = floor((drawctx->graph.width - drawctx->legend_font_h - CHART_SPACING)*3/4); drawctx->legend_label_w = MIN(label_w, lw); } drawctx->legend.width = drawctx->legend_font_h + CHART_SPACING + drawctx->legend_label_w; drawctx->legend.height = MIN(floor(n_legend * drawctx->legend_font_h * CHART_LINE_SPACING), drawctx->graph.height); if(chart->show_legend_wide ) { //get rate width pango_layout_set_text (layout, "00.00 %", -1); pango_layout_get_size (layout, &tw, &th); drawctx->legend_rate_w = (tw / PANGO_SCALE); //#1921741 text overlap //get value width drawctx->legend_value_w = 0; valstr = chart_print_double(chart, chart->buffer1, drawctx->min); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); drawctx->legend_value_w = (tw / PANGO_SCALE); valstr = chart_print_double(chart, chart->buffer1, drawctx->max); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); drawctx->legend_value_w = MAX(drawctx->legend_value_w, (tw / PANGO_SCALE)); label_wide_w = CHART_SPACING + drawctx->legend_value_w + CHART_SPACING + drawctx->legend_rate_w; //drawctx->legend.width += CHART_SPACING + drawctx->legend_value_w + CHART_SPACING + drawctx->legend_rate_w; } //5.7 hide legend if not enough room //#1964434 maximize chart size chart->legend_visible = FALSE; chart->legend_wide_visible = FALSE; if(chart->show_legend) { double tmp_legend_w = drawctx->legend.width + label_wide_w; if( ratio == GTK_ORIENTATION_HORIZONTAL ) { DBC( g_print(" right : %f < %d \n", drawctx->legend.width , (drawctx->w/2)) ); chart->legend_visible = TRUE; //room for wide labels ? if( (drawctx->graph.width - tmp_legend_w) > tmp_legend_w ) { drawctx->legend.width += label_wide_w; chart->legend_wide_visible = TRUE; } drawctx->graph.width -= (drawctx->legend.width + CHART_MARGIN); drawctx->legend.x = drawctx->graph.x + drawctx->graph.width + CHART_MARGIN; drawctx->legend.y = drawctx->graph.y; } else { //bottom DBC( g_print(" bottom : %f < %d \n", drawctx->legend.width , (drawctx->w/2)) ); chart->legend_visible = TRUE; if( (drawctx->w - tmp_legend_w) > 0 ) { drawctx->legend.width += label_wide_w; chart->legend_wide_visible = TRUE; } drawctx->graph.height -= (drawctx->legend.height + CHART_MARGIN); drawctx->legend.x = drawctx->graph.x + drawctx->graph.width - drawctx->legend.width; drawctx->legend.y = drawctx->graph.y + drawctx->graph.height + CHART_MARGIN; // add x-scale room if( chart->type != CHART_TYPE_PIE ) drawctx->legend.y += drawctx->font_h + 3; } } } } DBC( g_print(" graph : %g %g %g %g\n", drawctx->graph.x, drawctx->graph.y, drawctx->graph.width, drawctx->graph.height ) ); DBC( g_print(" legend : %g %g %g %g\n", drawctx->legend.x, drawctx->legend.y, drawctx->legend.width, drawctx->legend.height ) ); // compute graph region switch(chart->type) { case CHART_TYPE_LINE: case CHART_TYPE_COL: case CHART_TYPE_STACK: case CHART_TYPE_STACK100: colchart_calculation(chart, drawctx); break; case CHART_TYPE_PIE: piechart_calculation(chart, drawctx); break; } g_object_unref (layout); } static void chart_recompute(GtkChart *chart) { HbtkDrawContext *drawctx = &chart->context; //GdkWindow *gdkwindow; cairo_surface_t *surf = NULL; cairo_t *cr; GtkAllocation allocation; DB( g_print("\n[gtkchart] recompute layout\n") ); if( !gtk_widget_get_realized(chart->drawarea) || chart->surface == NULL ) return; gtk_widget_get_allocation(chart->drawarea, &allocation); /* //removed deprecated call to gdk_cairo_create gdkwindow = gtk_widget_get_window(chart->drawarea); if(!gdkwindow) { surf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, allocation.width, allocation.height); cr = cairo_create (surf); } else cr = gdk_cairo_create (gdkwindow); */ cr = cairo_create (chart->surface); drawctx->l = CHART_MARGIN; drawctx->t = CHART_MARGIN; drawctx->w = allocation.width - (CHART_MARGIN*2); drawctx->h = allocation.height - (CHART_MARGIN*2); DB( g_print(" raw dimension: l=%d, t=%d : w=%d, h=%d\n", drawctx->l, drawctx->t, drawctx->w, drawctx->h) ); chart_layout_area(cr, chart, drawctx); cairo_destroy(cr); cairo_surface_destroy(surf); //TODO: simplify this switch(chart->type) { case CHART_TYPE_LINE: case CHART_TYPE_COL: case CHART_TYPE_STACK: case CHART_TYPE_STACK100: gtk_adjustment_set_value(chart->adjustment, 0); colchart_scrollbar_setvalues(chart); break; case CHART_TYPE_PIE: gtk_widget_hide(chart->scrollbar); break; } } /* = = = = = = = = = = = = = = = = */ static void chart_draw_part_static(cairo_t *cr, GtkChart *chart, HbtkDrawContext *drawctx) { PangoLayout *layout; guint n_legend; int tw, th; /*debug help draws */ #if DBGDRAW_RECT == 1 //clip area cairo_set_line_width(cr, 1.0); cairo_set_source_rgb(cr, 0.0, 1.0, 0.0); //green cairo_rectangle(cr, drawctx->l+0.5, drawctx->t+0.5, drawctx->w, drawctx->h); cairo_stroke(cr); //graph area cairo_set_source_rgb(cr, 1.0, 0.5, 0.0); //orange cairo_rectangle(cr, drawctx->graph.x+0.5, drawctx->graph.y+0.5, drawctx->graph.width, drawctx->graph.height); cairo_stroke(cr); #endif layout = pango_cairo_create_layout (cr); if(!drawctx->isprint) cairo_user_set_rgbcol(cr, &global_colors[THTEXT]); else cairo_user_set_rgbcol(cr, &global_colors[BLACK]); // draw title if(chart->title) { chart_set_font_size(chart, layout, CHART_FONT_SIZE_TITLE); pango_layout_set_text (layout, chart->title, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, drawctx->l, drawctx->t); pango_cairo_show_layout (cr, layout); #if DBGDRAW_TEXT == 1 double dashlength; cairo_set_source_rgb(cr, 0.0, 0.0, 1.0); //blue dashlength = 3; cairo_set_dash (cr, &dashlength, 1, 0); //cairo_move_to(cr, chart->l, chart->t); cairo_rectangle(cr, drawctx->l+0.5, drawctx->t+0.5, (tw / PANGO_SCALE), (th / PANGO_SCALE)); cairo_stroke(cr); #endif } // draw subtitle if(chart->subtitle) { chart_set_font_size(chart, layout, CHART_FONT_SIZE_SUBTITLE); pango_layout_set_text (layout, chart->subtitle, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, drawctx->l, drawctx->subtitle_y); pango_cairo_show_layout (cr, layout); #if DBGDRAW_TEXT == 1 double dashlength; cairo_set_source_rgb(cr, 0.0, 0.0, 1.0); //blue dashlength = 3; cairo_set_dash (cr, &dashlength, 1, 0); //cairo_move_to(cr, chart->l, chart->t); cairo_rectangle(cr, drawctx->l+0.5, drawctx->subtitle_y+0.5, (tw / PANGO_SCALE), (th / PANGO_SCALE)); cairo_stroke(cr); #endif } g_object_unref (layout); // draw legend n_legend = chart->items->len; if(chart->show_legend && chart->legend_visible ) { guint i; gchar *valstr; gint x, y; gint radius; gint color; DBL( g_print("\n[chart] draw legend\n") ); layout = pango_cairo_create_layout (cr); chart_set_font_size(chart, layout, CHART_FONT_SIZE_SMALL); pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END); x = drawctx->legend.x; y = drawctx->legend.y; radius = drawctx->legend_font_h; #if DBGDRAW_RECT == 1 double dashlength; cairo_set_source_rgb(cr, 1.0, 0.5, 0.0); //orange dashlength = 3; cairo_set_dash (cr, &dashlength, 1, 0); //cairo_move_to(cr, x, y); cairo_rectangle(cr, drawctx->legend.x+0.5, drawctx->legend.y+0.5, drawctx->legend.width, drawctx->legend.height); cairo_stroke(cr); #endif for(i=0; i< n_legend ;i++) { //ChartItem *item = &g_array_index(chart->items, ChartItem, i); ChartItem *item = chart_chartitem_get(chart, i); if(item) { DBL( g_print(" draw %2d of (%d) '%s' y=%d\n", i, n_legend, item->label, y) ); #if DBGDRAW_TEXT == 1 double dashlength; cairo_set_source_rgb(cr, 0.0, 0.0, 1.0); //blue dashlength = 3; cairo_set_dash (cr, &dashlength, 1, 0); //cairo_move_to(cr, x, y); cairo_rectangle(cr, x+0.5, y+0.5, drawctx->legend_font_h, drawctx->legend_font_h); cairo_stroke(cr); cairo_rectangle(cr, x+drawctx->legend_font_h + CHART_SPACING+0.5, y+0.5, drawctx->legend_label_w, drawctx->legend_font_h); cairo_stroke(cr); #endif // check if enough height to draw if( chart->nb_items - i > 1 ) { if( (y + floor(2 * radius * CHART_LINE_SPACING)) > (drawctx->t + drawctx->h) ) { DBL( g_print(" print ...\n\n") ); pango_layout_set_text (layout, "...", -1); cairo_move_to(cr, x + radius + CHART_SPACING, y); pango_cairo_show_layout (cr, layout); break; } } // 1: palette cairo_arc(cr, x + (radius/2), y + (radius/2), (radius/2), 0, 2 * M_PI); color = i % chart->color_scheme.nb_cols; cairo_user_set_rgbcol(cr, &chart->color_scheme.colors[color]); cairo_fill(cr); if(!drawctx->isprint) cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol(cr, &global_colors[BLACK], 0.78); // 2: label valstr = item->label; pango_layout_set_text (layout, valstr, -1); pango_layout_set_width(layout, drawctx->legend_label_w * PANGO_SCALE); cairo_move_to(cr, x + drawctx->legend_font_h + CHART_SPACING, y); pango_cairo_show_layout (cr, layout); if( chart->show_legend_wide && chart->legend_wide_visible ) { pango_layout_set_width(layout, -1); #if DBGDRAW_TEXT == 1 // 3: value double dashlength; cairo_set_source_rgb(cr, 0.0, 0.0, 1.0); //blue dashlength = 3; cairo_set_dash (cr, &dashlength, 1, 0); //cairo_move_to(cr, x, y); cairo_rectangle(cr, x + drawctx->legend_font_h + drawctx->legend_label_w + (CHART_SPACING*2), y+0.5, drawctx->legend_value_w, drawctx->legend_font_h); cairo_stroke(cr); // 4: rate cairo_set_dash (cr, &dashlength, 1, 0); //cairo_move_to(cr, x, y); cairo_rectangle(cr, x + drawctx->legend_font_h + drawctx->legend_label_w + drawctx->legend_value_w + (CHART_SPACING*3), y+0.5, drawctx->legend_rate_w, drawctx->legend_font_h); cairo_stroke(cr); #endif if(!drawctx->isprint) cairo_user_set_rgbacol(cr, &global_colors[THTEXT], 0.78); else cairo_user_set_rgbacol(cr, &global_colors[BLACK], 0.78); // 3: value valstr = chart_print_double(chart, chart->buffer1, item->serie1); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, x + drawctx->legend_font_h + drawctx->legend_label_w + (CHART_SPACING*2) + drawctx->legend_value_w - (tw/PANGO_SCALE), y); pango_cairo_show_layout (cr, layout); // 4: rate valstr = chart_print_rate(chart, item->rate); pango_layout_set_text (layout, valstr, -1); pango_layout_get_size (layout, &tw, &th); cairo_move_to(cr, x + drawctx->legend_font_h + drawctx->legend_label_w + drawctx->legend_value_w + drawctx->legend_rate_w + (CHART_SPACING*3) - (tw/PANGO_SCALE), y); pango_cairo_show_layout (cr, layout); } //the radius contains the font height here //y += floor(chart->font_h * CHART_LINE_SPACING); y += floor(radius * CHART_LINE_SPACING); } } g_object_unref (layout); } } static gboolean drawarea_full_redraw(GtkWidget *widget, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); HbtkDrawContext *drawctx = &chart->context; GtkAllocation allocation; cairo_t *cr; DBG( g_print("\n[gtkchart] drawarea full redraw\n") ); cr = cairo_create (chart->surface); gtk_widget_get_allocation (GTK_WIDGET (widget), &allocation); GtkStyleContext *context = gtk_widget_get_style_context (GTK_WIDGET (widget)); gtk_style_context_save (context); gtk_style_context_add_class (context, GTK_STYLE_CLASS_VIEW); gtk_render_background (context, cr, 0.0, 0.0, allocation.width, allocation.height); gtk_style_context_restore (context); if( (chart->type == CHART_TYPE_NONE) || (chart->nb_items == 0) ) goto end; chart_draw_part_static(cr, chart, drawctx); switch(chart->type) { case CHART_TYPE_COL: case CHART_TYPE_LINE: case CHART_TYPE_STACK: case CHART_TYPE_STACK100: { cairo_t *crs; crs = cairo_create (chart->surface); colchart_draw_scale(crs, chart, drawctx); cairo_destroy(crs); } break; } end: cairo_destroy(cr); return TRUE; } //TODO: we should not rely on this, but get the color in realtime // based on the widget state (to support backdrop & disable state) static void drawarea_get_style(GtkWidget *widget, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); GtkStyleContext *context; PangoFontDescription *desc; gboolean colfound; GdkRGBA color; DB( g_print("\n[gtkchart] drawarea get style \n") ); context = gtk_widget_get_style_context (widget); chart_color_global_default(); // get base color colfound = gtk_style_context_lookup_color(context, "theme_base_color", &color); if(!colfound) colfound = gtk_style_context_lookup_color(context, "base_color", &color); if( colfound ) { struct rgbcol *tcol = &global_colors[THBASE]; tcol->r = color.red * 255; tcol->g = color.green * 255; tcol->b = color.blue * 255; DB( g_print(" theme base col: %x %x %x\n", tcol->r, tcol->g, tcol->b) ); } //get text color colfound = gtk_style_context_lookup_color(context, "theme_text_color", &color); if(!colfound) //#1916932 colfound was not assigned colfound = gtk_style_context_lookup_color(context, "text_color", &color); if( colfound ) { struct rgbcol *tcol = &global_colors[THTEXT]; tcol->r = color.red * 255; tcol->g = color.green * 255; tcol->b = color.blue * 255; DB( g_print(" theme text (bg) col: %x %x %x\n", tcol->r, tcol->g, tcol->b) ); } //commented 5.1.5 //drawarea_full_redraw(widget, user_data); /* get and copy the font */ gtk_style_context_get(context, GTK_STATE_FLAG_NORMAL, "font", &desc, NULL); if(chart->pfd) { pango_font_description_free (chart->pfd); chart->pfd = NULL; } chart->pfd = pango_font_description_copy(desc); //#1919063 overwrite pango size with device unit taken from css GValue value = G_VALUE_INIT; gtk_style_context_get_property(context, "font-size", gtk_style_context_get_state(context), &value); DB( g_print(" font-size is: %f\n", g_value_get_double(&value) ) ); pango_font_description_set_absolute_size (chart->pfd, (gint)g_value_get_double(&value)*PANGO_SCALE); g_value_unset(&value); } static gboolean drawarea_configure_event_callback (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); GtkAllocation allocation; DB( g_print("\n[gtkchart] drawarea configure \n") ); gtk_widget_get_allocation (widget, &allocation); DB( g_print(" w=%d h=%d\n", allocation.width, allocation.height) ); if (chart->surface) cairo_surface_destroy (chart->surface); chart->surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), CAIRO_CONTENT_COLOR, allocation.width, allocation.height); if( gtk_widget_get_realized(widget)) { chart_recompute(chart); drawarea_full_redraw(widget, chart); } /* We've handled the configure event, no need for further processing. */ return TRUE; } static void drawarea_realize_callback(GtkWidget *widget, gpointer user_data) { //GtkChart *chart = GTK_CHART(user_data); DB( g_print("\n[gtkchart] drawarea realize\n") ); DB( g_print(" user_data=%p\n", user_data) ); //chart_recompute(chart); } static void drawarea_state_changed_callback(GtkWidget *widget, GtkStateFlags flags, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); DB( g_print("\n[gtkchart] drawarea state_changed\n") ); DB( g_print(" user_data=%p\n", user_data) ); drawarea_get_style(widget, chart); drawarea_full_redraw(widget, chart); gtk_widget_queue_draw( widget ); } static void drawarea_style_updated_callback(GtkWidget *widget, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); DB( g_print("\n[gtkchart] drawarea style updated\n") ); DB( g_print(" user_data=%p\n", user_data) ); drawarea_get_style(widget, chart); drawarea_full_redraw(widget, chart); gtk_widget_queue_draw( widget ); } static gboolean drawarea_draw_callback(GtkWidget *widget, cairo_t *cr, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); if( !gtk_widget_get_realized(widget) || chart->surface == NULL ) return FALSE; DB( g_print("\n[gtkchart] drawarea draw callback\n") ); DB( g_print(" state flags: %d\n", gtk_widget_get_state_flags(chart->drawarea)) ); cairo_set_source_surface (cr, chart->surface, 0, 0); cairo_paint (cr); //5.7 secure if( chart->nb_items == 0) { DB( g_print(" not item to draw !\n" ) ); goto end; } switch(chart->type) { case CHART_TYPE_COL: colchart_draw_bars(cr, chart, &chart->context); break; case CHART_TYPE_LINE: linechart_draw_lines(cr, chart, &chart->context); break; case CHART_TYPE_PIE: piechart_draw_slices(cr, chart, &chart->context); break; case CHART_TYPE_STACK: case CHART_TYPE_STACK100: colchart_draw_stacks(cr, chart, &chart->context); break; } end: // event handled return TRUE; } static gboolean drawarea_querytooltip_callback(GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); gchar *strval, *strval2; gchar *buffer = NULL; gboolean retval = FALSE; if(chart->surface == NULL) return FALSE; DBT( g_print("\n[gtkchart] drawarea querytooltip\n") ); DBT( g_print(" x=%d, y=%d kbm=%d\n", x, y, keyboard_mode) ); if(chart->lasthover != chart->hover) { goto end; } if(chart->hover >= 0) { //ChartItem *item = &g_array_index(chart->items, ChartItem, chart->hover); ChartItem *item = chart_chartitem_get(chart, chart->hover); if( item ) { gint colid = chart->colhover; DBT( g_print("\n rowid=%d colid=%d drill=%d\n", chart->hover, colid, chart->drillable) ); if( chart->type != CHART_TYPE_STACK && chart->type != CHART_TYPE_STACK100 ) { strval = chart_print_double(chart, chart->buffer1, item->serie1); if( !chart->dual ) { //#1420495 don't use g_markup_printf_escaped if( chart->type == CHART_TYPE_PIE ) buffer = g_strdup_printf("%s\n%s\n%.2f%%", item->label, strval, item->rate); else buffer = g_strdup_printf("%s\n%s", item->label, strval); } else { strval2 = chart_print_double(chart, chart->buffer2, item->serie2); buffer = g_strdup_printf("%s\n+%s\n%s", item->label, strval2, strval); } } else { GtkTreeIter iter; DataRow *dr; gdouble value, rate = 0.0; if( colid > -1 ) { GtkTreePath *path; gboolean valid; if( chart->colindice < 0 ) path = gtk_tree_path_new_from_indices(chart->hover, -1); else path = gtk_tree_path_new_from_indices(chart->colindice, chart->hover, -1); valid = gtk_tree_model_get_iter(chart->model, &iter, path); gtk_tree_path_free(path); DBT( g_print("\n get iter %d:%d valid=%d\n", chart->colindice, chart->hover, valid) ); if( valid ) { gtk_tree_model_get (GTK_TREE_MODEL(chart->model), &iter, //LST_STORE_TRENDROW=6 LST_REPORT2_ROW, &dr, -1); DBT( g_print(" row=%p\n", dr) ); value = da_datarow_get_cell_sum (dr, colid); strval = chart_print_double(chart, chart->buffer1, value); if( chart->show_mono == TRUE ) buffer = g_strdup_printf("%s\n%s", chart->collabel[colid], strval); else { if( chart->colsum[colid] > 0 ) rate = (value * 100) / chart->colsum[colid]; buffer = g_strdup_printf("%s\n%s\n%s\n%.2f%%", chart->collabel[colid], item->label, strval, rate); } DBT( g_print(" colid=%d value=%.2f sum=%.2f rate=%.2f%%\n", colid, value, chart->colsum[colid], rate) ); } } } } gtk_tooltip_set_text(tooltip, buffer); //gtk_label_set_markup(GTK_LABEL(chart->ttlabel), buffer); g_free(buffer); retval = TRUE; } end: chart->lasthover = chart->hover; return retval; } static gboolean drawarea_cb_root_activate_link (GtkWidget *label, const gchar *uri, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); DB( g_print("\n[chart] pie root breadcrumb clicked\n") ); chart_clear_items(chart); switch( chart->type ) { case CHART_TYPE_COL: case CHART_TYPE_LINE: case CHART_TYPE_PIE: chart_setup_with_model(chart, -1); break; case CHART_TYPE_STACK: case CHART_TYPE_STACK100: chart_data_series(chart, -1); break; } gtk_chart_queue_redraw(chart); return TRUE; } static gboolean drawarea_button_press_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); guint button = 0; if (chart->surface == NULL) return FALSE; /* paranoia check, in case we haven't gotten a configure event */ DBDT( g_print("\n[gtkchart] mouse button press event\n") ); gdk_event_get_button(event, &button); if (button == GDK_BUTTON_PRIMARY) { switch( chart->type ) { case CHART_TYPE_COL: case CHART_TYPE_LINE: case CHART_TYPE_PIE: if( chart->hover >= 0 ) { //ChartItem *item = &g_array_index(chart->items, ChartItem, chart->hover); ChartItem *item = chart_chartitem_get(chart, chart->hover); if( item && item->n_child > 0 ) { DBDT( g_print(" should init total with indice %d\n", chart->hover) ); chart_clear_items(chart); chart_setup_with_model(chart, chart->hover); gtk_chart_queue_redraw(chart); } } break; case CHART_TYPE_STACK: case CHART_TYPE_STACK100: if( chart->hover >= 0 ) { //ChartItem *item = &g_array_index(chart->items, ChartItem, chart->hover); ChartItem *item = chart_chartitem_get(chart, chart->hover); if( item && item->n_child > 0 ) { DBDT( g_print(" should init time with indice %d\n", chart->hover) ); chart_clear_items(chart); chart_data_series(chart, chart->hover); gtk_chart_queue_redraw(chart); } } break; } } /* We've handled the event, stop processing */ return TRUE; } static gboolean drawarea_motionnotifyevent_callback(GtkWidget *widget, GdkEvent *event, gpointer user_data) { GtkChart *chart = GTK_CHART(user_data); HbtkDrawContext *drawctx = &chart->context; gboolean retval = TRUE; gdouble x_win, y_win; gint x, y; if(chart->surface == NULL || chart->nb_items == 0) return FALSE; DBD( g_print("\n[gtkchart] drawarea motionnotifyevent\n") ); gdk_event_get_coords(event, &x_win, &y_win); x = x_win; y = y_win; //DBD( g_print(" x=%d, y=%d\n", x, y) ); chart->hover = -1; chart->colhover = -1; chart->drillable = FALSE; switch(chart->type) { case CHART_TYPE_COL: case CHART_TYPE_LINE: chart->hover = colchart_get_hover(widget, x, y, chart); break; case CHART_TYPE_STACK: case CHART_TYPE_STACK100: chart->hover = colchart_stack_get_hover(widget, x, y, chart); break; case CHART_TYPE_PIE: chart->hover = piechart_get_hover(widget, x, y, chart); break; } //test: eval legend if( chart->type != CHART_TYPE_STACK && chart->type != CHART_TYPE_STACK100 ) { if( chart->show_legend && chart->hover == - 1) { DBD( g_print(" hover legend\n") ); if( x >= drawctx->legend.x && (x <= (drawctx->legend.x+drawctx->legend.width )) && y >= drawctx->legend.y && (y <= (drawctx->legend.y+drawctx->legend.height )) ) { //use the radius a font height here chart->hover = (y - drawctx->legend.y) / floor(drawctx->legend_font_h * CHART_LINE_SPACING); DBD( g_print(" hover is %d\n", chart->hover) ); if( chart->hover > chart->nb_items - 1) { chart->hover = -1; } else { //TODO //ChartItem *item = &g_array_index(chart->items, ChartItem, chart->hover); ChartItem *item = chart_chartitem_get(chart, chart->hover); if( item ) { DBD( g_print(" hover is '%s'\n", item->label) ); if( item->n_child > 0 ) chart->drillable = TRUE; } } } } } //5.7 cursor change { GdkWindow *gdkwindow; GdkCursor *cursor; gdkwindow = gtk_widget_get_window (GTK_WIDGET(widget)); cursor = gdk_cursor_new_for_display(gdk_window_get_display(gdkwindow), (chart->drillable == TRUE) ? GDK_HAND2 : GDK_ARROW ); gdk_window_set_cursor (gdkwindow, cursor); if(GDK_IS_CURSOR(cursor)) g_object_unref(cursor); } // rollover redraw ? DBD( g_print(" hover: last=%d, curr=%d\n", chart->lasthover, chart->hover) ); if( (chart->lasthover != chart->hover) || (chart->lastcolhover != chart->colhover) ) { GdkRectangle update_rect; gint first; DBD( g_print(" motion rollover redraw :: hover=%d\n", chart->hover) ); first = (gint)gtk_adjustment_get_value(GTK_ADJUSTMENT(chart->adjustment)); switch( chart->type ) { case CHART_TYPE_PIE: case CHART_TYPE_STACK: case CHART_TYPE_STACK100: //invalidate all graph area update_rect.x = drawctx->graph.x; update_rect.y = drawctx->graph.y; update_rect.width = drawctx->graph.width; update_rect.height = drawctx->graph.height; /* Now invalidate the affected region of the drawing area. */ gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); break; case CHART_TYPE_COL: case CHART_TYPE_LINE: //invalidate last rollover block if(chart->lasthover != -1) { update_rect.x = drawctx->graph.x + (chart->lasthover - first) * drawctx->blkw; update_rect.y = drawctx->graph.y - 6; update_rect.width = drawctx->blkw; update_rect.height = drawctx->graph.height + 12; // Now invalidate the affected region of the drawing area gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); } //current item block update_rect.x = drawctx->graph.x + (chart->hover - first) * drawctx->blkw; update_rect.y = drawctx->graph.y - 6; update_rect.width = drawctx->blkw; update_rect.height = drawctx->graph.height + 12; /* Now invalidate the affected region of the drawing area. */ gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); break; } } DBD( g_print(" x=%d, y=%d, time=%d\n", x, y, gdk_event_get_time(event)) ); //if(inlegend != TRUE) // gtk_tooltip_trigger_tooltip_query(gtk_widget_get_display(chart->drawarea)); chart->lastcolhover = chart->colhover; return retval; } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* public functions */ /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, gpointer user_data) { GtkChartPrintData *data = user_data; HbtkDrawContext *drawctx; cairo_t *cr; gdouble t, b, l, r, w, h; if(data->chart->type == CHART_TYPE_NONE ) return; gtk_print_context_get_hard_margins(context, &t, &b, &l, &r); w = gtk_print_context_get_width(context); h = gtk_print_context_get_height(context); //TODO: test keeping a ratio and handle orientation myself /* settings = gtk_print_operation_get_print_settings(operation); ratio = (height < width) ? width/height : height/width; DB( g_print(" orientation: %d\n", gtk_print_settings_get_orientation(settings)) ); DB( g_print(" w=%g h=%g // ratio %g\n", width, height, ratio) ); if( height < width ) height = width * ratio; */ //setup our context drawctx = &data->drawctx; drawctx->isprint = TRUE; drawctx->l = l; drawctx->t = t; drawctx->w = w; drawctx->h = h; cr = gtk_print_context_get_cairo_context (context); cairo_rectangle (cr, l, t, w - r, h - b); cairo_clip(cr); cairo_set_line_width (cr, 1); //draw debug rectangle /* cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); //red cairo_rectangle(cr, 0, 0, width-r, height-b); cairo_stroke(cr); */ //save usrbarw gint tmpusrbar = data->chart->usrbarw; //hack it to -1 data->chart->usrbarw = 0.0; // to span chart_layout_area(cr, data->chart, drawctx); chart_draw_part_static(cr, data->chart, drawctx); if(data->chart->type != CHART_TYPE_PIE) colchart_draw_scale(cr, data->chart, drawctx); switch(data->chart->type) { case CHART_TYPE_COL: colchart_draw_bars(cr, data->chart, drawctx); break; case CHART_TYPE_PIE: piechart_draw_slices(cr, data->chart, drawctx); break; case CHART_TYPE_LINE: linechart_draw_lines(cr, data->chart, drawctx); break; case CHART_TYPE_STACK: case CHART_TYPE_STACK100: colchart_draw_stacks(cr, data->chart, drawctx); break; } //restore usrbarw data->chart->usrbarw = tmpusrbar; } void gtk_chart_print(GtkChart *chart, GtkWindow *parent, gchar *dirname, gchar *filename) { GtkChartPrintData *data; GtkPrintOperation *operation; GtkPrintSettings *settings; gchar *ext, *uri = NULL; GError *error = NULL; g_return_if_fail (GTK_IS_CHART (chart)); data = g_new0 (GtkChartPrintData, 1); data->chart = chart; settings = gtk_print_settings_new (); //TODO: this doesn't work for unknown reason... gtk_print_settings_set_orientation(settings, GTK_PAGE_ORIENTATION_LANDSCAPE); if( dirname != NULL && filename != NULL ) { if (g_strcmp0 (gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT), "ps") == 0) ext = ".ps"; else if (g_strcmp0 (gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT), "svg") == 0) ext = ".svg"; else ext = ".pdf"; uri = g_strconcat ("file://", dirname, "/", filename, ext, NULL); gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_URI, uri); } operation = gtk_print_operation_new (); gtk_print_operation_set_n_pages (operation, 1); gtk_print_operation_set_use_full_page (operation, FALSE); gtk_print_operation_set_unit (operation, GTK_UNIT_POINTS); gtk_print_operation_set_embed_page_setup (operation, TRUE); gtk_print_operation_set_print_settings (operation, settings); GtkPageSetup *ps = gtk_page_setup_new(); if( ps ) gtk_page_setup_set_orientation(ps, GTK_PAGE_ORIENTATION_LANDSCAPE); else g_print("pagesetup fail\n"); gtk_print_operation_set_default_page_setup(operation, ps); //g_signal_connect (G_OBJECT (operation), "begin-print", G_CALLBACK (begin_print), data); g_signal_connect (G_OBJECT (operation), "draw-page", G_CALLBACK (draw_page), data); //g_signal_connect (G_OBJECT (operation), "end-print", G_CALLBACK (end_print), data); gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (parent), &error); //to use with GTK_PRINT_OPERATION_ACTION_EXPORT //gtk_print_operation_set_export_filename(operation, "/home/max/Desktop/testpdffile.pdf"); //gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_EXPORT, GTK_WINDOW (window), &error); g_object_unref (operation); g_object_unref (settings); g_free (uri); if (error) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (parent), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } g_free(data); } void gtk_chart_queue_redraw(GtkChart *chart) { DB( g_print("\n[gtkchart] queue redraw\n") ); if( gtk_widget_get_realized(chart->drawarea) ) { chart_recompute(chart); drawarea_full_redraw(chart->drawarea, chart); DB( g_print(" gtk_widget_queue_draw\n") ); gtk_widget_queue_draw( chart->drawarea ); } } /* ** empty the chart */ void gtk_chart_set_datas_none(GtkChart *chart) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set datas none\n") ); chart_clear(chart); gtk_chart_queue_redraw(chart); } /* ** change the model and/or column ** set column1 == column2 will dual display */ void gtk_chart_set_datas_total(GtkChart *chart, GtkTreeModel *model, guint column1, guint column2, gchar *title, gchar *subtitle) { g_return_if_fail (GTK_IS_CHART (chart)); DBDT( g_print("\n[gtkchart] set datas total\n") ); chart_clear(chart); if( GTK_IS_TREE_MODEL(model) ) { DBDT( g_print(" store model %p and columns=%d:%d\n", model, column1, column2) ); chart->totmodel = model; chart->column1 = column1; chart->column2 = column2; if(title != NULL) chart->title = g_strdup(title); if(subtitle != NULL) chart->subtitle = g_strdup(subtitle); chart_setup_with_model(chart, -1); gtk_chart_queue_redraw(chart); } } void gtk_chart_set_datas_time(GtkChart *chart, GtkTreeView *treeview, DataTable *dt, guint nbrows, guint nbcols, gchar *title, gchar *subtitle) { GtkTreeModel *model; guint colid; g_return_if_fail (GTK_IS_CHART (chart)); DBDT( g_print("\n[gtkchart] set datas time\n") ); chart_clear(chart); model = gtk_tree_view_get_model(treeview); //#2039493 ensure datatable is set if( (dt != NULL) && (nbrows > 0) && (nbcols > 0) && GTK_IS_TREE_MODEL(model) ) { DBDT( g_print(" store model %p and n_cols=%d\n", model, nbcols) ); chart->model = model; chart->nb_cols = nbcols; if(title != NULL) chart->title = g_strdup(title); if(subtitle != NULL) chart->subtitle = g_strdup(subtitle); DBDT( g_print(" store columns x scale\n") ); chart->cols = dt->cols; //5.7 useless DBDT( g_print(" store column labels\n") ); chart->collabel = g_malloc0(sizeof(gpointer)*nbcols); if( chart->collabel != NULL ) { DBDT( g_print(" collabel: ") ); for(colid=0;colidcollabel[colid] = (gchar *)gtk_tree_view_column_get_title(column); DBDT( g_print("%s|", chart->collabel[colid]) ); } } DBDT( g_print("\n") ); } chart_data_series(chart, -1); gtk_chart_queue_redraw(chart); } } /* ** change the type dynamically */ void gtk_chart_set_type(GtkChart * chart, gint type) { g_return_if_fail (GTK_IS_CHART (chart)); //g_return_if_fail (type < CHART_TYPE_MAX); DB( g_print("\n[gtkchart] set type %d\n", type) ); chart->type = type; chart->dual = FALSE; if( type == CHART_TYPE_STACK || type == CHART_TYPE_STACK100 ) { chart_clear_items(chart); chart_data_series(chart, -1); } gtk_chart_queue_redraw(chart); } /* = = = = = = = = = = parameters = = = = = = = = = = */ void gtk_chart_set_color_scheme(GtkChart * chart, gint index) { colorscheme_init(&chart->color_scheme, index); } /* ** set the minor parameters */ void gtk_chart_set_minor_prefs(GtkChart * chart, gdouble rate, gchar *symbol) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set minor prefs\n") ); chart->minor_rate = rate; chart->minor_symbol = symbol; } void gtk_chart_set_absolute(GtkChart * chart, gboolean abs) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set absolute\n") ); chart->abs = abs; } void gtk_chart_set_currency(GtkChart * chart, guint32 kcur) { g_return_if_fail (GTK_IS_CHART (chart)); chart->kcur = kcur; } /* ** set the overdrawn minimum */ void gtk_chart_set_overdrawn(GtkChart * chart, gdouble minimum) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set overdrawn\n") ); chart->minimum = minimum; //if(chart->type == CHART_TYPE_LINE) // chart_recompute(chart); } /* ** set the barw */ void gtk_chart_set_barw(GtkChart * chart, gdouble barw) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set barw\n") ); if( barw >= GTK_CHART_MINBARW && barw <= GTK_CHART_MAXBARW ) chart->usrbarw = barw; else chart->usrbarw = 0; if(chart->type != CHART_TYPE_PIE) gtk_chart_queue_redraw(chart); } /* ** set the show mono (colors) */ void gtk_chart_set_showmono(GtkChart * chart, gboolean mono) { g_return_if_fail (GTK_IS_CHART (chart)); chart->show_mono = mono; //if(chart->type != CHART_TYPE_PIE) // gtk_chart_queue_redraw(chart); } void gtk_chart_set_smallfont(GtkChart * chart, gboolean small) { g_return_if_fail (GTK_IS_CHART (chart)); chart->smallfont = small; //if(chart->type != CHART_TYPE_PIE) // gtk_chart_queue_redraw(chart); } /* = = = = = = = = = = visibility = = = = = = = = = = */ /* ** change the legend visibility */ void gtk_chart_show_legend(GtkChart * chart, gboolean visible, gboolean showextracol) { g_return_if_fail (GTK_IS_CHART (chart)); chart->show_legend = visible; chart->show_legend_wide = showextracol; //gtk_chart_queue_redraw(chart); } /* ** change the x-value visibility */ void gtk_chart_show_xval(GtkChart * chart, gboolean visible) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set show xval\n") ); chart->show_xval = visible; //if(chart->type != CHART_TYPE_PIE) // gtk_chart_queue_redraw(chart); } void gtk_chart_show_average(GtkChart * chart, gdouble value, gboolean visible) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set show average %f\n", value) ); chart->average = value; chart->show_average = visible; //if(chart->type == CHART_TYPE_LINE) // chart_recompute(chart); } /* ** change the overdrawn visibility */ void gtk_chart_show_overdrawn(GtkChart * chart, gboolean visible) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set show overdrawn\n") ); chart->show_over = visible; //if(chart->type == CHART_TYPE_LINE) // chart_recompute(chart); } /* ** change the minor visibility */ void gtk_chart_show_minor(GtkChart * chart, gboolean minor) { g_return_if_fail (GTK_IS_CHART (chart)); DB( g_print("\n[gtkchart] set show minor\n") ); chart->minor = minor; //if(chart->type != CHART_TYPE_PIE) // gtk_chart_queue_redraw(chart); } /* = = = = = = = = = = = = = = = = */ static void gtk_chart_dispose (GObject *gobject) { //GtkChart *chart = GTK_CHART (object); DB( g_print("\n[gtkchart] dispose\n") ); /* In dispose(), you are supposed to free all types referenced from this * object which might themselves hold a reference to self. Generally, * the most simple solution is to unref all members on which you own a * reference. */ /* dispose() might be called multiple times, so we must guard against * calling g_object_unref() on an invalid GObject by setting the member * NULL; g_clear_object() does this for us, atomically. */ //g_clear_object (&self->priv->an_object); /* Always chain up to the parent class; there is no need to check if * the parent class implements the dispose() virtual function: it is * always guaranteed to do so */ G_OBJECT_CLASS (gtk_chart_parent_class)->dispose (gobject); } static void gtk_chart_init (GtkChart * chart) { GtkWidget *widget, *vbox, *frame, *overlay, *label; DB( g_print("\n[gtkchart] init\n") ); chart->surface = NULL; chart->items = NULL; chart->title = NULL; //TODO temp test chart->colsum = NULL; chart->collabel = NULL; chart->pfd = NULL; chart->abs = FALSE; chart->dual = FALSE; chart->usrbarw = 0.0; chart->show_legend = TRUE; chart->show_legend_wide = FALSE; chart->show_mono = FALSE; chart->hover = -1; chart->lasthover = -1; chart->colhover = -1; chart->lastcolhover = -1; chart->minor_rate = 1.0; chart->nb_items = 0; //TODO //chart->barw = GTK_CHART_BARW; gtk_chart_set_color_scheme(chart, CHART_COLMAP_HOMEBANK); widget = GTK_WIDGET(chart); gtk_box_set_homogeneous(GTK_BOX(widget), FALSE); frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); hbtk_box_prepend (GTK_BOX (widget), frame); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_frame_set_child(GTK_FRAME(frame), vbox); overlay = gtk_overlay_new (); chart->drawarea = gtk_drawing_area_new(); gtk_widget_set_size_request(chart->drawarea, 100, 100 ); #if DYNAMICS == 1 gtk_widget_set_has_tooltip(chart->drawarea, TRUE); #endif gtk_widget_show(chart->drawarea); gtk_overlay_set_child (GTK_OVERLAY(overlay), chart->drawarea); hbtk_box_prepend (GTK_BOX (vbox), overlay); //scrollbar chart->adjustment = GTK_ADJUSTMENT(gtk_adjustment_new (0.0, 0.0, 1.0, 1.0, 1.0, 1.0)); chart->scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (chart->adjustment)); //5.7 add gtk_style_context_add_class (gtk_widget_get_style_context (chart->scrollbar), GTK_STYLE_CLASS_BOTTOM); //gtk_style_context_add_class (gtk_widget_get_style_context (chart->scrollbar), "overlay-indicator"); gtk_box_append (GTK_BOX (vbox), chart->scrollbar); //gtk_widget_show(chart->scrollbar); //overlay label = gtk_label_new(NULL); chart->breadcrumb = label; gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_label_set_track_visited_links(GTK_LABEL(label), FALSE); gtk_overlay_add_overlay( GTK_OVERLAY(overlay), label ); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), label, TRUE); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_START); gtk_widget_set_margin_start(label, SPACING_MEDIUM); gtk_widget_set_margin_top(label, SPACING_MEDIUM*4); #if MYDEBUG == 1 /*GtkStyle *style; PangoFontDescription *font_desc; g_print("draw_area font\n"); style = gtk_widget_get_style(GTK_WIDGET(chart->drawarea)); font_desc = style->font_desc; g_print("family: %s\n", pango_font_description_get_family(font_desc) ); g_print("size: %d (%d)\n", pango_font_description_get_size (font_desc), pango_font_description_get_size (font_desc )/PANGO_SCALE ); */ #endif g_signal_connect( G_OBJECT(chart->drawarea), "configure-event", G_CALLBACK (drawarea_configure_event_callback), chart); g_signal_connect( G_OBJECT(chart->drawarea), "realize", G_CALLBACK(drawarea_realize_callback), chart ) ; g_signal_connect( G_OBJECT(chart->drawarea), "draw", G_CALLBACK(drawarea_draw_callback), chart ) ; g_signal_connect( G_OBJECT(chart->drawarea), "state-flags-changed", G_CALLBACK(drawarea_state_changed_callback), chart ) ; g_signal_connect( G_OBJECT(chart->drawarea), "style-updated", G_CALLBACK(drawarea_style_updated_callback), chart ) ; #if DYNAMICS == 1 gtk_widget_add_events(GTK_WIDGET(chart->drawarea), GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | //GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK //GDK_BUTTON_RELEASE_MASK ); g_signal_connect( G_OBJECT(chart->drawarea), "query-tooltip", G_CALLBACK(drawarea_querytooltip_callback), chart ); g_signal_connect( G_OBJECT(chart->drawarea), "motion-notify-event", G_CALLBACK(drawarea_motionnotifyevent_callback), chart ); #endif g_signal_connect (G_OBJECT(chart->adjustment), "value-changed", G_CALLBACK (colchart_first_changed), chart); g_signal_connect (G_OBJECT(chart->breadcrumb), "activate-link", G_CALLBACK (drawarea_cb_root_activate_link), chart); //g_signal_connect( G_OBJECT(chart->drawarea), "map-event", G_CALLBACK(chart_map), chart ) ; g_signal_connect( G_OBJECT(chart->drawarea), "button-press-event", G_CALLBACK(drawarea_button_press_event), chart ); //g_signal_connect( G_OBJECT(chart->drawarea), "button-release-event", G_CALLBACK(chart_button_release), chart ); } static void gtk_chart_finalize (GObject * object) { GtkChart *chart = GTK_CHART (object); DB( g_print("\n[gtkchart] finalize\n") ); chart_clear(chart); if(chart->pfd) { pango_font_description_free (chart->pfd); chart->pfd = NULL; } if (chart->surface) { cairo_surface_destroy (chart->surface); chart->surface = NULL; } G_OBJECT_CLASS (gtk_chart_parent_class)->finalize (object); } static void gtk_chart_class_init (GtkChartClass * class) { GObjectClass *gobject_class = G_OBJECT_CLASS (class); //GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); DB( g_print("\n[gtkchart] class init\n") ); //gobject_class->get_property = gtk_chart_get_property; //gobject_class->set_property = gtk_chart_set_property; gobject_class->dispose = gtk_chart_dispose; gobject_class->finalize = gtk_chart_finalize; //widget_class->size_allocate = gtk_chart_size_allocate; } static void gtk_chart_class_intern_init (gpointer klass) { gtk_chart_parent_class = g_type_class_peek_parent (klass); gtk_chart_class_init ((GtkChartClass *) klass); } GType gtk_chart_get_type () { static GType chart_type = 0; if (!chart_type) { static const GTypeInfo chart_info = { sizeof (GtkChartClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) gtk_chart_class_intern_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (GtkChart), 0, /* n_preallocs */ (GInstanceInitFunc) gtk_chart_init, NULL }; chart_type = g_type_register_static (GTK_TYPE_BOX, "GtkChart", &chart_info, 0); } return chart_type; } GtkWidget * gtk_chart_new (gint type) { GtkChart *chart; DB( g_print("\n======================================================\n") ); DB( g_print("\n[gtkchart] new\n") ); chart = g_object_new (GTK_TYPE_CHART, NULL); chart->type = type; return GTK_WIDGET(chart); } homebank-5.9.1/src/ui-transaction.h0000644000175000017500000000554314736461415012715 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_TRANSACTION_GTK_H__ #define __HB_TRANSACTION_GTK_H__ #include "hb-transaction.h" #include "ui-txn-split.h" /* official GTK_RESPONSE are negative */ #define HB_RESPONSE_ADD 1 #define HB_RESPONSE_ADDKEEP 2 enum { HID_AMOUNT, MAX_HID_AMOUNT }; struct deftransaction_data { GtkWidget *dialog; GtkWidget *RA_type; GtkWidget *LB_date, *GR_date; GtkWidget *PO_date; //5.7 removed *LB_wday; GtkWidget *LB_dateto, *PO_dateto; GtkWidget *PO_pay; GtkWidget *ST_memo; GtkWidget *ST_amount, *BT_split, *LB_curr; GtkWidget *ST_xferamt, *LB_xfercurr, *IM_xfernorate; GtkWidget *CM_cheque; GtkWidget *LB_mode, *NU_mode; GtkWidget *ST_number; GtkWidget *PO_cat; GtkWidget *LB_accfrom, *PO_acc; GtkWidget *LB_accto, *PO_accto; GtkWidget *ST_tags, *CY_tags; //GtkWidget *CY_status; GtkWidget *RA_status; GtkWidget *CM_remind; GtkWidget *IB_warnsign; GtkWidget *LB_msgadded; /* popover */ GtkWidget *MB_template; GtkTreeModel *model; GtkTreeModelFilter *modelfilter; GtkWidget *LV_arc; GtkWidget *CM_showsched; GtkWidget *CM_showallacc; GtkWidget *ST_search; HbTxnDlgAction action; HbTxnDlgType type; guint evtsrcid; gint accnum; guint32 kacc; gboolean showtemplate; gboolean isxferdst; //edit: true if this is a xfer target (amt > 0) Transaction *ope; }; enum { LST_DSPTPL_DATAS, LST_DSPTPL_NAME, NUM_LST_DSPTPL }; GtkWidget *create_deftransaction_window (GtkWindow *parent, HbTxnDlgAction action, HbTxnDlgType type, guint32 kacc); void deftransaction_set_amount(GtkWidget *widget, gdouble amount); void deftransaction_external_confirm(GtkWidget *dialog, Transaction *ope); gint deftransaction_external_edit(GtkWindow *parent, Transaction *old_txn, Transaction *new_txn); void deftransaction_set_transaction(GtkWidget *widget, Transaction *ope); void deftransaction_get (GtkWidget *widget, gpointer user_data); void deftransaction_add (GtkWidget *widget, gpointer user_data); void deftransaction_dispose(GtkWidget *widget, gpointer user_data); void deftransaction_set_amount_from_split(GtkWidget *widget, gdouble amount); #endif homebank-5.9.1/src/ui-assist-start.c0000644000175000017500000005507115005634020013005 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-assist-start.h" #include "dsp-mainwindow.h" #include "hub-account.h" #include "ui-currency.h" #include "ui-widgets.h" #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern HbKvData CYA_ACC_TYPE[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static GtkWidget * ui_newfile_page_intro_create (GtkWidget *assistant, struct assist_start_data *data) { GtkWidget *mainbox, *label; mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); //gtk_widget_set_halign(mainbox, GTK_ALIGN_CENTER); //gtk_widget_set_valign(mainbox, GTK_ALIGN_CENTER); //assistant box is 12, so add 6 hb_widget_set_margin(mainbox, SPACING_SMALL); label = make_label( _("This assistant will help you setup a minimum configuration\n" \ "for a new HomeBank file."), 0, 0); gtk_box_prepend (GTK_BOX (mainbox), label); //SPACING_SMALL label = make_label( _("All the elements you setup here can be changed later if required."), 0, 0); gtk_box_prepend (GTK_BOX (mainbox), label); //SPACING_SMALL label = make_label( _("No changes will be made until you click \"Apply\"\n" \ "at the end of this assistant."), 0., 0.0); gtk_box_prepend (GTK_BOX (mainbox), label); //SPACING_SMALL gtk_widget_show_all (mainbox); return mainbox; } /* = = = = = = = = = = = = = = = = */ static void ui_newfile_entry_changed (GtkWidget *widget, gpointer data) { GtkAssistant *assistant = GTK_ASSISTANT (data); GtkWidget *current_page; gint page_number; gchar *text; page_number = gtk_assistant_get_current_page (assistant); current_page = gtk_assistant_get_nth_page (assistant, page_number); //#1837838: complete space or leadin/trialin space is possible text = g_strdup(gtk_entry_get_text (GTK_ENTRY (widget))); g_strstrip(text); if (strlen(text) > 0) gtk_assistant_set_page_complete (assistant, current_page, TRUE); else gtk_assistant_set_page_complete (assistant, current_page, FALSE); g_free(text); } static void ui_newfile_page_general_fill (GtkWidget *assistant, struct assist_start_data *data) { Currency *cur; gchar label[128]; DB( g_print("\n[ui-start] property_fill\n") ); gtk_entry_set_text(GTK_ENTRY(data->ST_owner), g_get_real_name ()); cur = da_cur_get (GLOBALS->kcur); g_snprintf(label, 127, "%s (%s)", cur->iso_code, cur->name); gtk_label_set_text (GTK_LABEL(data->LB_cur_base), label); } static GtkWidget * ui_newfile_page_general_create (GtkWidget *assistant, struct assist_start_data *data) { GtkWidget *mainbox, *hbox, *label, *widget; mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); //gtk_widget_set_halign(mainbox, GTK_ALIGN_CENTER); //gtk_widget_set_valign(mainbox, GTK_ALIGN_CENTER); //assistant box is 12, so add 6 hb_widget_set_margin(mainbox, SPACING_SMALL); // 123456789012345678901234567890123456789012345678901234567890 label = make_label(_("HomeBank will display a title for the main window,\n" \ "it can be a free label or your name."), 0, 0.5); gtk_widget_set_margin_bottom(label, SPACING_LARGE); gtk_box_prepend (GTK_BOX (mainbox), label); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); //gtk_widget_set_halign(hbox, GTK_ALIGN_CENTER); gtk_box_prepend (GTK_BOX (mainbox), hbox); label = make_label_widget(_("_Title:")); gtk_box_prepend (GTK_BOX (hbox), label); widget = make_string(label); data->ST_owner = widget; hbtk_box_prepend (GTK_BOX (hbox), widget); //TODO: later we will let the user choose to use: //budget //cleared/validated ... //life energy g_signal_connect (G_OBJECT (data->ST_owner), "changed", G_CALLBACK (ui_newfile_entry_changed), assistant); gtk_widget_show_all (mainbox); return mainbox; } /* = = = = = = = = = = = = = = = = */ static void ui_newfile_page_currency_add_action(GtkWidget *widget, gpointer user_data) { struct assist_start_data *data; struct curSelectContext selectCtx; gint result; DB( g_print("\n[ui-start] property_add_action\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); result = ui_cur_select_dialog_new(GTK_WINDOW(data->dialog), CUR_SELECT_MODE_NOCUSTOM, &selectCtx); if( result == GTK_RESPONSE_ACCEPT ) { if( selectCtx.cur_4217 != NULL ) { Currency4217 *curfmt = selectCtx.cur_4217; DB( g_print(" adding '%s' (%s)\n", curfmt->curr_iso_code, curfmt->name) ); g_ptr_array_add(data->cur_arr, curfmt); //TODO: refresh the label GString *strcur = g_string_new(NULL); for(guint i=0;icur_arr->len;i++) { Currency4217 *elt = g_ptr_array_index(data->cur_arr, i); g_string_append_printf(strcur, "%s (%s)\r\n", elt->curr_iso_code, elt->name); } gtk_label_set_text (GTK_LABEL(data->LB_cur_others), strcur->str); g_string_free(strcur, TRUE); } } } static void ui_newfile_page_currency_change_action(GtkWidget *widget, gpointer user_data) { struct assist_start_data *data; struct curSelectContext selectCtx; DB( g_print("\n[ui-start] property_change_action\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->curfmt = NULL; ui_cur_select_dialog_new(GTK_WINDOW(data->dialog), CUR_SELECT_MODE_BASE, &selectCtx); if( selectCtx.cur_4217 != NULL ) { Currency4217 *curfmt; gchar label[128]; gchar *name; curfmt = selectCtx.cur_4217; DB( g_printf("- user selected: '%s' '%s'\n", curfmt->curr_iso_code, curfmt->name) ); data->curfmt = curfmt; name = curfmt->name; g_snprintf(label, 127, "%s (%s)", curfmt->curr_iso_code, name); gtk_label_set_text (GTK_LABEL(data->LB_cur_base), label); } } static void ui_newfile_page_currency_cb_toggle(GtkWidget *widget, gpointer user_data) { struct assist_start_data *data; gboolean sensitive; DB( g_print("\n[ui-start] property_cb_toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cur_add)); gtk_widget_set_sensitive(data->LB_cur_others, sensitive); gtk_widget_set_sensitive(data->BT_cur_add, sensitive); } static GtkWidget * ui_newfile_page_currency_create (GtkWidget *assistant, struct assist_start_data *data) { GtkWidget *mainbox, *hbox, *label, *widget; GtkWidget *scrollwin; mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); //assistant box is 12, so add 6 hb_widget_set_margin(mainbox, SPACING_SMALL); // 123456789012345678901234567890123456789012345678901234567890 label = make_label(_("HomeBank support multiple currencies. The base currency is\n" \ "the default for new accounts and reports."), 0, 0.5); gtk_widget_set_margin_bottom(label, SPACING_LARGE); gtk_box_prepend (GTK_BOX (mainbox), label); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (mainbox), hbox); label = make_label_widget(_("Base:")); gtk_box_prepend (GTK_BOX (hbox), label); widget = make_label (NULL, 0, 0.5); data->LB_cur_base = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = gtk_button_new_with_mnemonic (_("_Change")); data->BT_cur_change = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = gtk_check_button_new_with_mnemonic (_("Setup additional currencies")); data->CM_cur_add = widget; gtk_widget_set_margin_top(widget, SPACING_LARGE); gtk_box_prepend (GTK_BOX (mainbox), widget); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); hbtk_box_prepend (GTK_BOX (mainbox), scrollwin); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), 0.75*HB_MINHEIGHT_LIST); widget = make_label(NULL, 0.0, 0.0); data->LB_cur_others = widget; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), widget); widget = gtk_button_new_with_mnemonic (_("_Add")); gtk_widget_set_halign(widget, GTK_ALIGN_START); data->BT_cur_add = widget; gtk_box_prepend (GTK_BOX (mainbox), widget); gtk_widget_set_sensitive(data->LB_cur_others, FALSE); gtk_widget_set_sensitive(data->BT_cur_add, FALSE); g_signal_connect (G_OBJECT (data->BT_cur_change), "clicked", G_CALLBACK (ui_newfile_page_currency_change_action), data); g_signal_connect (G_OBJECT (data->CM_cur_add), "toggled", G_CALLBACK (ui_newfile_page_currency_cb_toggle), data); g_signal_connect (G_OBJECT (data->BT_cur_add), "clicked", G_CALLBACK (ui_newfile_page_currency_add_action), data); gtk_widget_show_all (mainbox); return mainbox; } /* = = = = = = = = = = = = = = = = */ static void hb_string_clean_csv_category(gchar *str) { gchar *s = str; gchar *d = str; if(str) { while( *s ) { if( !(*s==';' || *s=='1' || *s=='-' || *s=='+' || *s=='2') ) { *d++ = *s; } if( *s=='2' ) { *d++ = ' '; *d++ = '-'; *d++ = ' '; } s++; } *d = 0; } } static void ui_newfile_page_categories_cb_toggle(GtkWidget *widget, gpointer user_data) { struct assist_start_data *data; gboolean sensitive; DB( g_print("\n[ui-start] categories_cb_toggle\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_load)); gtk_widget_set_sensitive(data->GR_file, sensitive); gtk_widget_set_sensitive(data->TX_preview, sensitive); } static void ui_newfile_page_categories_fill (GtkWidget *assistant, struct assist_start_data *data) { gchar *lang; gchar *content; data->pathfilename = category_find_preset(&lang); //test no file //data->pathfilename = NULL; if(data->pathfilename != NULL) { gtk_label_set_label(GTK_LABEL(data->TX_file), lang); gtk_widget_show(data->CM_load); gtk_widget_show(data->ok_image); gtk_widget_hide(data->ko_image); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_load), TRUE); /* preview */ if( g_file_get_contents(data->pathfilename, &content, NULL, NULL) ) { hb_string_clean_csv_category(content); gtk_label_set_label(GTK_LABEL(data->TX_preview), content); g_free(content); } } else { gtk_widget_hide(data->CM_load); gtk_label_set_label(GTK_LABEL(data->TX_file), _("Not found")); gtk_widget_show(data->ko_image); gtk_widget_hide(data->ok_image); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_load), FALSE); } } static GtkWidget * ui_newfile_page_categories_create (GtkWidget *assistant, struct assist_start_data *data) { GtkWidget *mainbox, *hbox, *label, *widget; GtkWidget *scrollwin; mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); //assistant box is 12, so add 6 hb_widget_set_margin(mainbox, SPACING_SMALL); // 123456789012345678901234567890123456789012345678901234567890 label = make_label(_("HomeBank can prefill the categories for your language\n" \ "if a CSV file is available and provided by the community."), 0, 0.5); gtk_widget_set_margin_bottom(label, SPACING_LARGE); gtk_box_prepend (GTK_BOX (mainbox), label); widget = gtk_check_button_new_with_mnemonic (_("Setup categories for my language")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE); //gtk_widget_set_margin_bottom(widget, SPACING_LARGE); data->CM_load = widget; gtk_box_prepend (GTK_BOX (mainbox), widget); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); data->GR_file = hbox; gtk_box_prepend (GTK_BOX (mainbox), hbox); label = make_label_widget(_("Preset file:")); gtk_box_prepend (GTK_BOX (hbox), label); widget = hbtk_image_new_from_icon_name_24(ICONNAME_HB_FILE_VALID); data->ok_image = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = hbtk_image_new_from_icon_name_24(ICONNAME_HB_FILE_INVALID); data->ko_image = widget; gtk_box_prepend (GTK_BOX (hbox), widget); widget = make_label(NULL, 0.0, 0.5); data->TX_file = widget; gtk_box_prepend (GTK_BOX (hbox), widget); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), 0.75*HB_MINHEIGHT_LIST); hbtk_box_prepend (GTK_BOX (mainbox), scrollwin); widget = make_label(NULL, 0.0, 0.5); data->TX_preview = widget; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), widget); g_signal_connect (G_OBJECT (data->CM_load), "toggled", G_CALLBACK (ui_newfile_page_categories_cb_toggle), data); gtk_widget_show_all (mainbox); gtk_widget_hide(data->ok_image); gtk_widget_hide(data->ko_image); return mainbox; } /* = = = = = = = = = = = = = = = = */ static void ui_newfile_page_account_cb_eval(GtkWidget *widget, gpointer user_data) { struct assist_start_data *data; GtkWidget *current_page; gint page_number; gchar *text; gboolean sensitive, valid; DB( g_print("\n[ui-start] account_cb_eval\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); page_number = gtk_assistant_get_current_page (GTK_ASSISTANT(data->dialog)); //#1837838: complete space or leading/trailing space is possible text = g_strdup(gtk_entry_get_text (GTK_ENTRY (data->ST_name))); g_strstrip(text); valid = (strlen(text) > 0) ? TRUE : FALSE; g_free(text); sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_acc_add)); gtk_widget_set_sensitive(data->GR_acc, sensitive); if(!sensitive) valid = TRUE; current_page = gtk_assistant_get_nth_page (GTK_ASSISTANT(data->dialog), page_number); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->dialog), current_page, valid); } static GtkWidget * ui_newfile_page_account_create (GtkWidget *assistant, struct assist_start_data *data) { GtkWidget *mainbox, *group_grid, *label, *widget; mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL); //assistant box is 12, so add 6 hb_widget_set_margin(mainbox, SPACING_SMALL); // 123456789012345678901234567890123456789012345678901234567890 label = make_label(_("HomeBank enables to import your accounts from downloaded\n" \ "financial institution files, or you can create your account manually."), 0, 0.5); gtk_widget_set_margin_bottom(label, SPACING_LARGE); gtk_box_prepend (GTK_BOX (mainbox), label); widget = gtk_check_button_new_with_mnemonic (_("Create my first account")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE); //gtk_widget_set_margin_bottom(widget, SPACING_LARGE); data->CM_acc_add = widget; gtk_box_prepend (GTK_BOX (mainbox), widget); group_grid = gtk_grid_new (); data->GR_acc = group_grid; gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); hbtk_box_prepend (GTK_BOX (mainbox), group_grid); label = make_label_widget(_("_Name:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 1, 1); widget = make_string(label); gtk_widget_set_hexpand(widget, TRUE); data->ST_name = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, 0, 1, 1); label = make_label_widget(_("_Type:")); gtk_grid_attach (GTK_GRID (group_grid), label, 0, 1, 1, 1); widget = hbtk_combo_box_new_with_data(label, CYA_ACC_TYPE); gtk_widget_set_hexpand(widget, TRUE); data->CY_type = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 1, 1, 1, 1); gtk_widget_show_all (mainbox); g_signal_connect (G_OBJECT (data->ST_name), "changed", G_CALLBACK (ui_newfile_page_account_cb_eval), data); g_signal_connect (G_OBJECT (data->CM_acc_add), "toggled", G_CALLBACK (ui_newfile_page_account_cb_eval), data); return mainbox; } /* = = = = = = = = = = = = = = = = */ static GtkWidget * ui_newfile_page_confirmation_create (GtkWidget *assistant, struct assist_start_data *data) { GtkWidget *label; label = gtk_label_new (_("This is a confirmation page,\n\npress 'Apply' to apply changes")); gtk_widget_show (label); return label; } /* = = = = = = = = = = = = = = = = */ static void ui_newfile_assistant_prepare (GtkWidget *assistant, GtkWidget *page, gpointer user_data) { struct assist_start_data *data = user_data; gint current_page; //gint n_pages; DB( g_print("\n[ui-start] prepare\n") ); current_page = gtk_assistant_get_current_page (GTK_ASSISTANT (assistant)); //n_pages = gtk_assistant_get_n_pages (GTK_ASSISTANT (assistant)); switch( current_page ) { case PAGE_GENERAL: ui_newfile_page_general_fill(assistant, data); break; case PAGE_CATEGORIES: ui_newfile_page_categories_fill(assistant, data); break; } } static void ui_newfile_assistant_apply (GtkWidget *widget, gpointer user_data) { struct assist_start_data *data = user_data; Account *item; DB( g_print("\n[ui-start] apply\n") ); /* set owner */ gchar *owner = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_owner)); if (owner && *owner) { hbfile_change_owner(g_strdup(owner)); GLOBALS->changes_count++; } if( data->curfmt != NULL ) { hbfile_replace_basecurrency(data->curfmt); } // init other currencies if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cur_add))) { Currency *item = NULL; guint i; for(i=0;icur_arr->len;i++) { Currency4217 *curfmt = g_ptr_array_index(data->cur_arr, i); DB( g_printf("- curr creating: '%s' '%s'\n", curfmt->curr_iso_code, curfmt->name) ); item = da_cur_get_by_iso_code(curfmt->curr_iso_code); if( item == NULL ) { item = currency_add_from_user(curfmt); } } } /* load preset categories */ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_load))) { if(data->pathfilename != NULL) { gchar *error; category_load_csv(data->pathfilename, &error); //DB( g_print(" -> loaded=%d\n", ok) ); } } /* initialise an account */ // init other currencies if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_acc_add))) { item = da_acc_malloc(); gchar *txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_name)); if (txt && *txt) { item->name = g_strdup(txt); //#1837838 remove extra lead/tail space g_strstrip(item->name); } item->kcur = GLOBALS->kcur; item->type = hbtk_combo_box_get_active_id(GTK_COMBO_BOX(data->CY_type)); da_acc_append(item); GLOBALS->changes_count++; } //our global list has changed, so update the treeview ui_hub_account_populate(GLOBALS->mainwindow, NULL); ui_wallet_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_REFRESHALL)); } static void ui_newfile_assitant_close_cancel (GtkWidget *widget, gpointer user_data) { struct assist_start_data *data = user_data; DB( g_print("\n[ui-start] close/cancel\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); gtk_window_destroy (GTK_WINDOW(data->dialog)); g_free(data->pathfilename); g_ptr_array_free(data->cur_arr, TRUE); g_free(data); } GtkWidget* ui_newfile_assitant_new (void) { struct assist_start_data *data; GtkWidget *assistant, *page; //gint w, h, dw, dh; DB( g_print("\n[ui-start] new\n") ); data = g_malloc0(sizeof(struct assist_start_data)); if(!data) return NULL; data->cur_arr = g_ptr_array_new(); assistant = gtk_assistant_new (); data->dialog = assistant; //set a nice dialog size /* gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 2:3 dw = (dh * 2) / 3; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(assistant), dw, dh); */ //store our window private data g_object_set_data(G_OBJECT(assistant), "inst_data", (gpointer)data); //DB( g_print("** (import) window=%x, inst_data=%x\n", assistant, data) ); gtk_window_set_modal(GTK_WINDOW (assistant), TRUE); gtk_window_set_transient_for(GTK_WINDOW(assistant), GTK_WINDOW(GLOBALS->mainwindow)); page = ui_newfile_page_intro_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Start File Setup")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_INTRO); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), page, TRUE); page = ui_newfile_page_general_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("File Options")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_INTRO); page = ui_newfile_page_currency_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Choose Currencies")); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), page, TRUE); page = ui_newfile_page_categories_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Choose Categories")); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), page, TRUE); page = ui_newfile_page_account_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Create Account")); page = ui_newfile_page_confirmation_create (assistant, data); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), page, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, _("Finish File Setup")); g_signal_connect (G_OBJECT (assistant), "cancel", G_CALLBACK (ui_newfile_assitant_close_cancel), data); g_signal_connect (G_OBJECT (assistant), "close", G_CALLBACK (ui_newfile_assitant_close_cancel), data); g_signal_connect (G_OBJECT (assistant), "apply", G_CALLBACK (ui_newfile_assistant_apply), data); g_signal_connect (G_OBJECT (assistant), "prepare", G_CALLBACK (ui_newfile_assistant_prepare), data); #ifdef G_OS_WIN32 hbtk_assistant_hack_button_order(GTK_ASSISTANT(assistant)); #endif gtk_widget_show (assistant); return assistant; } homebank-5.9.1/src/rep-time.h0000644000175000017500000000513714736461415011476 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HOMEBANK_REPTIME_H__ #define __HOMEBANK_REPTIME_H__ enum { LST_HUBREPTIME_POS, LST_HUBREPTIME_KEY, LST_HUBREPTIME_LABEL, LST_HUBREPTIME_EXPENSE, LST_HUBREPTIME_INCOME, LST_HUBREPTIME_TOTAL, LST_HUBREPTIME_FLAGS, NUM_LST_HUBREPTIME }; /* for choose options */ enum { FOR_REPTIME_ACCOUNT, FOR_REPTIME_CATEGORY, FOR_REPTIME_PAYEE, NUM_FOR_REPTIME }; /* view by choose options */ enum { GROUPBY_REPTIME_DAY, GROUPBY_REPTIME_WEEK, GROUPBY_REPTIME_MONTH, GROUPBY_REPTIME_QUARTER, GROUPBY_REPTIME_YEAR, }; enum { HID_REPTIME_MINDATE, HID_REPTIME_MAXDATE, HID_REPTIME_RANGE, HID_REPTIME_VIEW, MAX_REPTIME_HID }; struct reptime_data { GQueue *txn_queue; Filter *filter; gdouble average; gboolean detail; guint32 accnum; gint charttype; gdouble *tmp_income; gdouble *tmp_expense; GtkWidget *window; GActionGroup *actions; gboolean mapped_done; GtkWidget *TB_bar; GtkWidget *BT_list; GtkWidget *BT_line; GtkWidget *BT_column; GtkWidget *BT_detail; GtkWidget *BT_filter; GtkWidget *BT_refresh; GtkWidget *BT_reset; GtkWidget *BT_print; GtkWidget *BT_export; GtkWidget *TX_info; GtkWidget *TX_fltactive, *TT_fltactive; GtkWidget *TX_daterange; GtkWidget *CY_mode; GtkWidget *CY_intvl; GtkWidget *RG_zoomx, *LB_zoomx; GtkWidget *CM_minor; GtkWidget *CM_cumul; GtkWidget *CM_balance; GtkWidget *LV_report; GtkWidget *GR_itemtype; GtkWidget *CY_src; GtkWidget *BT_all, *BT_non, *BT_inv; GtkWidget *SW_acc, *LV_acc; GtkWidget *SW_cat, *LV_cat; GtkWidget *SW_pay, *LV_pay; GtkWidget *SW_tag, *LV_tag; GtkWidget *CM_showempty; GtkWidget *PO_mindate, *PO_maxdate; GtkWidget *CY_range; GtkWidget *GR_result; GtkWidget *RE_chart; GtkWidget *GR_detail; GtkWidget *LV_detail; gulong hid[MAX_REPTIME_HID]; }; GtkWidget *reptime_window_new(guint32 accnum); #endif homebank-5.9.1/src/dsp-mainwindow.h0000644000175000017500000001042115005632540012671 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_MANWINDOW_GTK_H__ #define __HB_MANWINDOW_GTK_H__ typedef struct _pnlaccgrp PnlAccGrp; struct _pnlaccgrp { gchar *name; //gshort type; //gshort pos; //gboolean expanded; gboolean showtotal; gdouble bal_clear; gdouble bal_recon; gdouble bal_today; gdouble bal_future; GPtrArray *acclist; }; struct hbfile_data { GtkWidget *window; GtkWidget *dbgchange; GtkWidget *menubar; GtkWidget *ME_menufile, *ME_menuedit, *ME_menuview, *ME_menuman, *ME_menutxn, *ME_menurep, *ME_menutool, *ME_menuhelp; GtkWidget *MI_new, *MI_open, *MI_save, *MI_saveas, *MI_import, *MI_exportqif, *MI_revert, *MI_openbak, *MI_properties, *MI_close, *MI_quit; GtkWidget *MI_prefs, *MI_showtbar, *MI_showtotchart, *MI_showtimchart, *MI_showbotlist, *MI_eurominor; GtkWidget *MI_manwal, *MI_manacc, *MI_manpay, *MI_mancat, *MI_mantpl, *MI_manbud, *MI_manbudtable, *MI_manasg, *MI_mancur, *MI_mantag; GtkWidget *MI_txnadd, *MI_txnshow, *MI_txnshowall, *MI_scheduler, *MI_addscheduled; GtkWidget *MI_repstat, *MI_reptime, *MI_repbal, *MI_repbudg, *MI_repvehi; GtkWidget *MI_welcome, *MI_filestats, *MI_anonymise; GtkWidget *MI_contents, *MI_online, *MI_updates, *MI_relnote, *MI_problem, *MI_translate, *MI_about; GtkWidget *toolbar; GtkWidget *BT_new, *BT_open, *BT_save; GtkWidget *BT_manacc, *BT_manpay, *BT_mancat, *BT_mantpl, *BT_manbud, *BT_manasg; GtkWidget *BT_txnshow, *BT_txnadd; GtkWidget *BT_repstat, *BT_reptime, *BT_repbal, *BT_repbudg, *BT_repvehi; GtkWidget *BT_help, *BT_donate; GtkWidget *vpaned; GtkWidget *hpaned; /* panel: your account */ GtkWidget *LV_acc; GtkWidget *BT_browse; GtkWidget *BT_expandall; GtkWidget *BT_collapseall; gboolean showall; GSimpleActionGroup *action_group_acc; GHashTable *h_accgrp; PnlAccGrp *totaccgrp; //hub total Filter *hubtot_filter; //DataTable hobtot_dt; GtkWidget *GR_hubtot; GtkWidget *LB_hubtot; GtkWidget *LV_hubtot; gdouble hubtot_total; GtkWidget *CY_hubtot_range; GtkWidget *RE_hubtot_chart; GSimpleActionGroup *hubtot_action_group; //hub time Filter *hubtim_filter; DataTable *hubtim_dt; gint hubtim_rows; gint hubtim_cols; GtkWidget *GR_hubtim; GtkWidget *LB_hubtim; GtkWidget *LV_hubtim; gdouble hubtim_total; GtkWidget *CY_hubtim_range; GtkWidget *RE_hubtim_chart; GSimpleActionGroup *hubtim_action_group; //hub scheduled GtkWidget *GR_upc; GtkWidget *IM_info; GtkWidget *LV_upc; GtkWidget *BT_sched_skip; GtkWidget *BT_sched_post; GtkWidget *BT_sched_editpost; GtkWidget *CY_sched_range; GtkWidget *TX_selection; GtkWidget *stack; // max is 2=HUB_TXN_TYPE_REMIND, so 3 elt GtkWidget *LV_txn[3]; gchar *wintitle; Account *acc; gint busy; GtkRecentManager *recent_manager; GtkWidget *recent_menu; /* UBYTE accnum; UBYTE pad0; struct Account *acc; ULONG mindate, maxdate; ULONG change; ULONG keyvalue; UBYTE title[140]; UBYTE Filename[108]; UBYTE csvpath[108]; */ }; enum { HB_WELCOME_OPENLAST = 2, HB_WELCOME_CREATENEW, HB_WELCOME_OPENEXISTING, HB_WELCOME_OPENSAMPLE, HB_WELCOME_READMANUAL, HB_WELCOME_CONFIGPREF, }; //temporary ? void ui_wallet_defarchive(Archive *arc); GtkWidget *ui_wallet_window_new(GtkWidget *do_widget); void ui_wallet_populate_accounts(GtkWidget *widget, gpointer user_data); void ui_wallet_open_check(GtkWidget *widget, gchar *filepath); void ui_wallet_open_internal(GtkWidget *widget, gpointer user_data); void ui_wallet_update(GtkWidget *widget, gpointer user_data); gint ui_wallet_action_help_welcome(void); #endif /* __HB_MANWINDOW_GTK_H__ */ homebank-5.9.1/src/hbtk-switcher.c0000664000175000017500000002262714736461407012533 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //#include #include /* atoi, atof, atol */ #include /* gettext */ #include #include #include "ui-widgets.h" #include "hbtk-switcher.h" #define _(str) gettext (str) #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif enum { CHANGED, LAST_SIGNAL }; static guint switcher_signals[LAST_SIGNAL] = {0,}; //G_DEFINE_TYPE(HbtkSwitcher, hbtk_radio_switcher, GTK_TYPE_BOX) G_DEFINE_TYPE_WITH_CODE (HbtkSwitcher, hbtk_switcher, GTK_TYPE_BOX, G_ADD_PRIVATE (HbtkSwitcher)) /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void _radiotest_cb_button_toggled (GtkToggleButton *togglebutton, gpointer user_data); static GtkWidget * _radiotest_get_nth(GtkRadioButton *rbutton, gint nth) { GtkWidget *widget = NULL; GSList *list = gtk_radio_button_get_group(GTK_RADIO_BUTTON(rbutton)); gint nb = g_slist_length(list) - 1; if(nth <= nb) { widget = g_slist_nth_data(list, nb-nth); } return widget; } static void _radiotest_set_active(GtkRadioButton *rbutton, gint nth) { GtkWidget *widget = _radiotest_get_nth(rbutton, nth); if(widget != NULL) { g_signal_handlers_block_by_func (widget, G_CALLBACK(_radiotest_cb_button_toggled), NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE); g_signal_handlers_unblock_by_func (widget, G_CALLBACK(_radiotest_cb_button_toggled), NULL); } } static gint _radiotest_get_active(GtkRadioButton *rbutton) { GSList *list = gtk_radio_button_get_group(GTK_RADIO_BUTTON(rbutton)); gint nb, i = 0; gint active = -1; //list is build with prepend nb = g_slist_length(list) - 1; //g_print("-------- from %p, nb:%d\n", togglebutton, nb+1); while(nb >= 0 && list) { GtkToggleButton *tmp = g_slist_nth_data(list, nb); /*g_print("%d %d: %p %d %s\n", nb, i, tmp, gtk_toggle_button_get_active(tmp), gtk_button_get_label(GTK_BUTTON(tmp)) );*/ if( gtk_toggle_button_get_active(tmp) == TRUE ) { active = i; break; } i++; nb--; } //g_print(" get active:%d\n", active); return active; } static void _radiotest_cb_button_toggled (GtkToggleButton *togglebutton, gpointer user_data) { HbtkSwitcher *switcher = HBTK_SWITCHER (user_data); HbtkSwitcherPrivate *priv = switcher->priv; gint active; if(gtk_toggle_button_get_active(togglebutton) == FALSE) return; //g_print("\n--------\n button toggled (%p)\n", togglebutton); active = _radiotest_get_active(GTK_RADIO_BUTTON(togglebutton)); //g_print(" > active:%d\n", active); if(priv->active != active) { DB( g_print(" **emit 'changed' signal** %d\n", active) ); priv->active = active; g_signal_emit_by_name (switcher, "changed", NULL, NULL); } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ static void hbtk_switcher_destroy (GtkWidget *object) { //HbtkSwitcher *switcher = HBTK_SWITCHER (object); //HbtkSwitcherPrivate *priv = switcher->priv; g_return_if_fail(object != NULL); g_return_if_fail(HBTK_IS_SWITCHER(object)); DB( g_print("\n[switcher] destroy\n") ); DB( g_print(" free switcher: %p\n", object) ); GTK_WIDGET_CLASS (hbtk_switcher_parent_class)->destroy (object); } static void hbtk_switcher_dispose (GObject *gobject) { //HbtkSwitcher *self = HBTK_SWITCHER (gobject); DB( g_print("\n[switcher] dispose\n") ); //g_clear_object (&self->priv->an_object); G_OBJECT_CLASS (hbtk_switcher_parent_class)->dispose (gobject); } static void hbtk_switcher_finalize (GObject *gobject) { //HbtkSwitcher *self = HBTK_SWITCHER (gobject); DB( g_print("\n[switcher] finalize\n") ); //g_date_free(self->date); //g_free (self->priv->a_string); /* Always chain up to the parent class; as with dispose(), finalize() * is guaranteed to exist on the parent's class virtual function table */ G_OBJECT_CLASS(hbtk_switcher_parent_class)->finalize (gobject); } static void hbtk_switcher_class_init (HbtkSwitcherClass *class) { GObjectClass *object_class; GtkWidgetClass *widget_class; object_class = G_OBJECT_CLASS (class); widget_class = GTK_WIDGET_CLASS (class); DB( g_print("\n[switcher] class_init\n") ); //object_class->constructor = hbtk_switcher_constructor; //object_class->set_property = hbtk_switcher_set_property; //object_class->get_property = hbtk_switcher_get_property; object_class->dispose = hbtk_switcher_dispose; object_class->finalize = hbtk_switcher_finalize; widget_class->destroy = hbtk_switcher_destroy; switcher_signals[CHANGED] = g_signal_new ("changed", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (HbtkSwitcherClass, changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); //g_type_class_add_private (object_class, sizeof (HbtkSwitcherPrivate)); } static void hbtk_switcher_init (HbtkSwitcher *switcher) { HbtkSwitcherPrivate *priv; DB( g_print("\n[switcher] init\n") ); priv = switcher->priv = hbtk_switcher_get_instance_private(switcher); priv->active = 0; //TODO ?? } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ GtkWidget * hbtk_switcher_new (GtkOrientation orientation) { HbtkSwitcher *switcher; DB( g_print("\n[switcher] new\n") ); switcher = g_object_new (HBTK_TYPE_SWITCHER, "orientation", orientation, NULL); return GTK_WIDGET(switcher); } void hbtk_switcher_setup (HbtkSwitcher *switcher, gchar **items, gboolean buttonstyle) { HbtkSwitcherPrivate *priv = switcher->priv; GtkWidget *button, *newbutton; guint i; button = gtk_radio_button_new_with_label (NULL, _(items[0])); priv->first = GTK_RADIO_BUTTON(button); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), !buttonstyle); g_signal_connect(button, "toggled", G_CALLBACK(_radiotest_cb_button_toggled), switcher); gtk_box_prepend (GTK_BOX (switcher), button); for (i = 1; items[i] != NULL; i++) { newbutton = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (button), _(items[i])); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (newbutton), !buttonstyle); g_signal_connect(newbutton, "toggled", G_CALLBACK(_radiotest_cb_button_toggled), switcher); gtk_box_prepend (GTK_BOX (switcher), newbutton); } if(buttonstyle) { GtkStyleContext *context = gtk_widget_get_style_context (GTK_WIDGET(switcher)); gtk_style_context_add_class (context, GTK_STYLE_CLASS_LINKED); gtk_style_context_add_class (context, GTK_STYLE_CLASS_RAISED); } } void hbtk_switcher_setup_with_data (HbtkSwitcher *switcher, GtkWidget *label, HbKivData *kivdata, gboolean buttonstyle) { HbtkSwitcherPrivate *priv = switcher->priv; GtkWidget *button, *image, *newbutton; HbKivData *tmp = &kivdata[0]; guint i; //button = gtk_radio_button_new_with_label (NULL, _(items[0])); button = gtk_radio_button_new(NULL); priv->first = GTK_RADIO_BUTTON(button); image = hbtk_image_new_from_icon_name_16 (tmp->iconname); g_object_set (button, "image", image, "tooltip-text", _(tmp->name), NULL); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), !buttonstyle); //#2065592 g_signal_connect(button, "toggled", G_CALLBACK(_radiotest_cb_button_toggled), switcher); gtk_box_prepend (GTK_BOX (switcher), button); for (i = 1; ; i++) { tmp = &kivdata[i]; if( tmp->name == NULL ) break; //newbutton = gtk_radio_button_new_with_label_from_widget (GTK_BUTTON (button), _(items[i])); newbutton = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (button)); image = hbtk_image_new_from_icon_name_16 (tmp->iconname); g_object_set (newbutton, "image", image, "tooltip-text", _(tmp->name), NULL); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (newbutton), !buttonstyle); g_signal_connect(newbutton, "toggled", G_CALLBACK(_radiotest_cb_button_toggled), switcher); gtk_box_prepend (GTK_BOX (switcher), newbutton); } if(buttonstyle) { GtkStyleContext *context = gtk_widget_get_style_context (GTK_WIDGET(switcher)); gtk_style_context_add_class (context, GTK_STYLE_CLASS_LINKED); gtk_style_context_add_class (context, GTK_STYLE_CLASS_RAISED); } } gint hbtk_switcher_get_active (HbtkSwitcher *switcher) { HbtkSwitcherPrivate *priv = switcher->priv; //return _radiotest_get_active( return priv->active; } void hbtk_switcher_set_active (HbtkSwitcher *switcher, gint active) { HbtkSwitcherPrivate *priv = switcher->priv; _radiotest_set_active(priv->first, active); priv->active = active; } void hbtk_switcher_set_nth_sensitive (HbtkSwitcher *switcher, gint nth, gboolean sensitive) { HbtkSwitcherPrivate *priv = switcher->priv; GtkWidget *widget = _radiotest_get_nth(priv->first, nth); if(widget != NULL) { gtk_widget_set_sensitive(widget, sensitive); } } homebank-5.9.1/src/ui-pref.h0000644000175000017500000001051314765331301011305 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __HB_PREFERENCE_GTK_H__ #define __HB_PREFERENCE_GTK_H__ struct defpref_data { //-- common GtkWidget *dialog; GtkWidget *LV_page; GtkWidget *GR_page; GtkWidget *label; GtkWidget *image; GtkWidget *BT_clear; //-- general GtkWidget *CM_show_splash; GtkWidget *CM_load_last; GtkWidget *CM_append_scheduled; GtkWidget *CM_do_update_currency; //-- interface GtkWidget *CM_custom_colors; GtkWidget *CM_custom_bg_future; GtkWidget *CY_gridlines; GtkWidget *CM_rep_smallfont; GtkWidget *CY_toolbar; GtkWidget *CM_gtk_darktheme; GtkWidget *CY_icontheme; GtkWidget *CM_iconsymbolic; GtkWidget *CM_gtk_override; GtkWidget *LB_gtk_fontsize, *NB_gtk_fontsize; GtkWidget *CY_color_scheme; GtkWidget *DA_colors; GtkWidget *CM_use_palette; GtkWidget *CP_exp_color; GtkWidget *CP_inc_color; GtkWidget *CP_warn_color; GtkWidget *CP_fut_bg_color; //-- locale GtkWidget *CY_language; GtkWidget *LB_date, *ST_datefmt; GtkWidget *NB_fiscyearday; GtkWidget *CY_fiscyearmonth; GtkWidget *CM_unitismile; GtkWidget *CM_unitisgal; //-- transactions GtkWidget *CY_daterange_txn; GtkWidget *ST_datefuture_nbdays; GtkWidget *CM_hide_reconciled; GtkWidget *CM_show_remind; GtkWidget *CM_show_void; GtkWidget *CM_include_remind; GtkWidget *CM_lock_reconciled; GtkWidget *CM_safe_pend_recon; GtkWidget *CM_safe_pend_past; GtkWidget *ST_safe_pend_past_days; GtkWidget *CM_herit_date; GtkWidget *CM_herit_grpflg; GtkWidget *CM_memoacp; GtkWidget *ST_memoacp_days; GtkWidget *CM_show_confirm; GtkWidget *CM_show_template; GtkWidget *CM_xfer_showdialog; GtkWidget *ST_xfer_daygap; GtkWidget *CM_xfer_syncdate; GtkWidget *CM_xfer_syncstat; //5.8 paymode GtkWidget *LV_paymode; //-- import/export GtkWidget *CY_dtex_datefmt; GtkWidget *CY_dtex_ofxname; GtkWidget *CY_dtex_ofxmemo; GtkWidget *CM_dtex_qifmemo; GtkWidget *CM_dtex_qifswap; GtkWidget *CM_dtex_ucfirst; GtkWidget *CY_dtex_csvsep; //-- report //GtkWidget *CY_daterange_wal; GtkWidget *ST_maxspenditems; GtkWidget *CY_daterange_rep; GtkWidget *CM_stat_byamount; GtkWidget *CM_stat_showdetail; GtkWidget *CM_stat_showrate; GtkWidget *CM_stat_incxfer; GtkWidget *CM_budg_showdetail; GtkWidget *CM_budg_unexclsub; //-- forecast GtkWidget *CM_forecast; GtkWidget *LB_forecast_nbmonth; GtkWidget *ST_forecast_nbmonth; //-- backup GtkWidget *CM_bak_is_automatic; GtkWidget *GR_bak_freq; GtkWidget *LB_bak_max_num_copies, *NB_bak_max_num_copies; //-- folders GtkWidget *ST_path_hbfile, *BT_path_hbfile; GtkWidget *ST_path_hbbak, *BT_path_hbbak; GtkWidget *ST_path_import, *BT_path_import; GtkWidget *ST_path_export, *BT_path_export; //GtkWidget *ST_path_attach, *BT_path_attach; //-- euro gint country; GtkWidget *CM_euro_enable; GtkWidget *LB_euro_preset, *CY_euro_preset; GtkWidget *GRP_configuration; GtkWidget *ST_euro_country; GtkWidget *LB_euro_src; GtkWidget *NB_euro_value; GtkWidget *LB_euro_dst; GtkWidget *GRP_format; GtkWidget *LB_numbereuro; GtkWidget *ST_euro_symbol; GtkWidget *CM_euro_isprefix; GtkWidget *ST_euro_decimalchar; GtkWidget *NB_euro_fracdigits; GtkWidget *ST_euro_groupingchar; //-- advanced GtkWidget *ST_adv_apirate_url; GtkWidget *ST_adv_apirate_key; }; enum { PRF_PATH_WALLET, PRF_PATH_BACKUP, PRF_PATH_IMPORT, PRF_PATH_EXPORT, PRF_PATH_ATTACH, }; struct pref_list_datas { gshort level; gshort key; const gchar *iconname; const gchar *label; }; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ void free_pref_icons(void); void load_pref_icons(void); GtkWidget *defpref_dialog_new (void); #endif homebank-5.9.1/src/hb-report.c0000644000175000017500000012244614761067541011654 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "hb-report.h" /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define DB1(x); //#define DB1(x) (x); #define DB2(x); //#define DB2(x) (x); #define DB3(x); //#define DB3(x) (x); //date debug #define DBD(x); //#define DBD(x) (x); /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern gchar *CYA_ABMONTHS[]; static void _datatable_init_count_key_row(DataTable *dt, gint grpby, Filter *flt); /* = = = = = = = = = = = = = = = = = = = = */ /* CarCost */ void da_vehiclecost_free(CarCost *item) { if(item != NULL) { g_free(item); } } CarCost *da_vehiclecost_malloc(void) { return g_malloc0(sizeof(CarCost)); } void da_vehiclecost_destroy(GList *list) { GList *tmplist = g_list_first(list); while (tmplist != NULL) { CarCost *item = tmplist->data; da_vehiclecost_free(item); tmplist = g_list_next(tmplist); } g_list_free(list); } /* = = = = = = = = = = = = = = = = = = = = */ static void da_datacol_free(DataCol *col) { if(col) { g_free(col->label); g_free(col->xlabel); g_free(col->misclabel); //5.9 leak g_free(col); } } static DataCol *da_datacol_malloc(void) { return g_malloc0(sizeof(DataCol)); } static void da_datarow_free(DataRow *row) { if(row) { g_free(row->label); g_free(row->xlabel); g_free(row->misclabel); g_free(row->colexp); g_free(row->colinc); //5.9 leak g_free(row); } } static DataRow *da_datarow_malloc(guint32 nbcol) { DataRow *row; row = g_malloc0(sizeof(DataRow)); if(!row) return NULL; row->colexp = g_malloc0((nbcol) * sizeof(gdouble)); row->colinc = g_malloc0((nbcol) * sizeof(gdouble)); row->nbcols = nbcol; //5.9 check if( !row->colexp || !row->colinc ) { da_datarow_free(row); return NULL; } return row; } //hub-reptime/hub-reptotal/repstats void da_datatable_free(DataTable *dt) { guint i; DB1( g_print("\n[report] da_datatable_free: %p\n", dt) ); if(dt != NULL) { DB1( g_print(" free keylist\n") ); g_free(dt->keylist); dt->keylist = NULL; DB1( g_print(" free datacol\n") ); for(i=0;inbcols;i++) { da_datacol_free(dt->cols[i]); } g_free(dt->cols); dt->cols = NULL; DB1( g_print(" free datarow\n") ); for(i=0;inbrows;i++) { da_datarow_free(dt->rows[i]); } g_free(dt->rows); dt->rows = NULL; DB1( g_print(" free total datarow\n") ); da_datarow_free(dt->totrow); dt->totrow = NULL; DB1( g_print(" free keyindex\n") ); g_free(dt->keyindex); dt->keyindex = NULL; DB1( g_print(" free datatable\n") ); g_free(dt); DB1( g_print(" end free\n") ); } } static DataTable *da_datatable_malloc(gint grpby, gint intvl, Filter *flt) { DataTable *dt; gboolean okcols, okrows; guint i; DB1( g_print("\n[report] da_datatable_malloc: %p\n", dt) ); dt = g_malloc0(sizeof(DataTable)); if(!dt) return NULL; _datatable_init_count_key_row(dt, grpby, flt); dt->nbcols = report_interval_count(intvl, flt->mindate, flt->maxdate); //dt->nbkeys = maximum keys for acc/pay/cat/tag //dt->nbrows = nb of items //dt->nbcols = nb of cols DB1( g_print(" grpby:%d\n intvl:%d\n maxk:%d\n rows:%d\n cols:%d\n", grpby, intvl, dt->nbkeys, dt->nbrows, dt->nbcols) ); DB1( g_print(" alloc %d keyindex\n", dt->nbkeys) ); dt->keyindex = g_malloc0(dt->nbkeys * sizeof(gpointer)); //ordered list to insert cat before subcat DB1( g_print(" alloc %d keylist\n", dt->nbrows) ); dt->keylist = g_malloc0( dt->nbrows * sizeof(guint32) ); DB1( g_print(" alloc %d row vector\n", dt->nbrows) ); dt->rows = g_malloc0(dt->nbrows * sizeof(gpointer)); DB1( g_print(" alloc %d col vector\n", dt->nbcols) ); dt->cols = g_malloc0(dt->nbcols * sizeof(gpointer)); DB1( g_print(" alloc 1 total row\n") ); dt->totrow = da_datarow_malloc(dt->nbcols); //5.9 check if( !dt->keyindex || !dt->keylist || !dt->rows || !dt->cols || !dt->totrow ) { da_datatable_free(dt); return NULL; } okcols = okrows = TRUE; DB1( g_print(" alloc %d rows\n", dt->nbrows) ); for(i=0;inbrows;i++) { DataRow *dr = da_datarow_malloc(dt->nbcols); //5.9 check if( !dr ) { okcols = FALSE; break; } dt->rows[i] = dr; } DB1( g_print(" alloc %d cols\n", dt->nbcols) ); for(i=0;inbcols;i++) { DataCol *dc = da_datacol_malloc(); //5.9 check if( !dc ) { okrows = FALSE; break; } dt->cols[i] = dc; } if( !okcols || !okrows ) { da_datatable_free(dt); return NULL; } return dt; } /* = = = = = = = = = = = = = = = = = = = = */ // slide the date to monday of the week static void _hb_date_clamp_iso8601(GDate *date) { GDateWeekday wday; //ISO 8601 from must be monday, to slice in correct week wday = g_date_get_weekday(date); g_date_subtract_days (date, wday - G_DATE_MONDAY); } // slide the date to start quarter static void _hb_date_clamp_quarter_start(GDate *date) { guint quarternum = ((g_date_get_month(date)-1)/3)+1; DBD( g_print(" init=%02d/%d > Q%d\n", g_date_get_month(date), g_date_get_year(date), quarternum) ); g_date_set_day(date, 1); g_date_set_month(date, ((quarternum-1)*3)+1); DBD( g_print(" start=%02d/%d\n", g_date_get_month(date), g_date_get_year(date)) ); } // slide the date to start halfyear static void _hb_date_clamp_halfyear_start(GDate *date) { guint halfyearnum = ((g_date_get_month(date)-1)/6)+1; DBD( g_print(" init=%02d/%d > H%d\n", g_date_get_month(date), g_date_get_year(date), halfyearnum) ); g_date_set_day(date, 1); g_date_set_month(date, ((halfyearnum-1)*6)+1); DBD( g_print(" start=%02d/%d\n", g_date_get_month(date), g_date_get_year(date)) ); } static guint _date_in_week(guint32 from, guint32 opedate, guint days) { GDate *date1, *date2; gint pos; date1 = g_date_new_julian(from); date2 = g_date_new_julian(opedate); DBD( g_print(" from=%d %02d-%02d-%04d ", g_date_get_weekday(date1), g_date_get_day(date1), g_date_get_month(date1), g_date_get_year(date1)) ); //#1915643 week iso 8601 _hb_date_clamp_iso8601(date1); pos = (opedate - g_date_get_julian(date1)) / days; DBD( g_print(" shifted=%d %02d-%02d-%04d pos=%d\n", g_date_get_weekday(date1), g_date_get_day(date1), g_date_get_month(date1), g_date_get_year(date1), pos) ); g_date_free(date2); g_date_free(date1); return(pos); } /* ** return the week list position correponding to the passed date */ static guint DateInWeek(guint32 from, guint32 opedate) { return _date_in_week(from, opedate, 7); } /* ** return the FortNight list position correponding to the passed date */ static guint DateInFortNight(guint32 from, guint32 opedate) { return _date_in_week(from, opedate, 14); } /* ** return the month list position correponding to the passed date */ static guint DateInMonth(guint32 from, guint32 opedate) { GDate *date1, *date2; guint pos; DBD( g_print("DateInMonth %d ,%d\n", from, opedate) ); //todo // this return sometimes -1, -2 which is wrong date1 = g_date_new_julian(from); date2 = g_date_new_julian(opedate); pos = ((g_date_get_year(date2) - g_date_get_year(date1)) * 12) + g_date_get_month(date2) - g_date_get_month(date1); DBD( g_print(" from=%d-%d ope=%d-%d => %d\n", g_date_get_month(date1), g_date_get_year(date1), g_date_get_month(date2), g_date_get_year(date2), pos) ); g_date_free(date2); g_date_free(date1); return(pos); } //for fiscal sub gap between 1st fiscal and 1/1/year //int quarterNumber = (date.Month-1)/3+1; //DateTime firstDayOfQuarter = new DateTime(date.Year, (quarterNumber-1)*3+1,1); //DateTime lastDayOfQuarter = firstDayOfQuarter.AddMonths(3).AddDays(-1); static guint DateInQuarter(guint32 from, guint32 opedate) { GDate *date1, *date2; guint pos; date1 = g_date_new_julian(from); date2 = g_date_new_julian(opedate); //#1758532 slide quarter start _hb_date_clamp_quarter_start(date1); pos = (((g_date_get_year(date2) - g_date_get_year(date1)) * 12) + g_date_get_month(date2) - g_date_get_month(date1))/3; DBD( g_print("-- from=%02d/%d ope=%02d/%d => pos=%d\n", g_date_get_month(date1), g_date_get_year(date1), g_date_get_month(date2), g_date_get_year(date2), pos) ); g_date_free(date2); g_date_free(date1); return(pos); } static guint DateInHalfYear(guint32 from, guint32 opedate) { GDate *date1, *date2; guint pos; date1 = g_date_new_julian(from); date2 = g_date_new_julian(opedate); //#2034618 slide halfyear start _hb_date_clamp_halfyear_start(date1); pos = (((g_date_get_year(date2) - g_date_get_year(date1)) * 12) + g_date_get_month(date2) - g_date_get_month(date1))/6; DBD( g_print(" from=%d-%d ope=%d-%d => %d\n", g_date_get_month(date1), g_date_get_year(date1), g_date_get_month(date2), g_date_get_year(date2), pos) ); g_date_free(date2); g_date_free(date1); return(pos); } /* ** return the year list position correponding to the passed date */ static guint DateInYear(guint32 from, guint32 opedate) { GDate *date; guint year_from, year_ope, pos; date = g_date_new_julian(from); year_from = g_date_get_year(date); g_date_set_julian(date, opedate); year_ope = g_date_get_year(date); g_date_free(date); pos = year_ope - year_from; DBD( g_print(" from=%d ope=%d => %d\n", year_from, year_ope, pos) ); return(pos); } static guint32 _datatable_interval_get_jdate(gint intvl, guint32 jfrom, gint idx) { GDate *date = g_date_new_julian(jfrom); GDateWeekday wday; guint32 jdate; switch(intvl) { case REPORT_INTVL_DAY: g_date_add_days(date, idx); break; case REPORT_INTVL_WEEK: g_date_add_days(date, idx*7); //#1915643 week iso 8601 //ISO 8601 from must be monday, to slice in correct week wday = g_date_get_weekday(date); g_date_subtract_days (date, wday-G_DATE_MONDAY); g_date_add_days (date, G_DATE_WEDNESDAY); break; //#2000290 case REPORT_INTVL_FORTNIGHT: _hb_date_clamp_iso8601(date); g_date_add_days(date, idx*14); break; case REPORT_INTVL_MONTH: g_date_add_months(date, idx); break; case REPORT_INTVL_QUARTER: g_date_add_months(date, idx*3); break; case REPORT_INTVL_HALFYEAR: g_date_add_months(date, idx*6); break; case REPORT_INTVL_YEAR: g_date_add_years(date, idx); break; } jdate = g_date_get_julian(date); g_date_free(date); return jdate; } /* = = = = = = = = = = = = = = = = = = = = */ static void datatable_set_keylist(DataTable *dt, guint32 idx, guint32 key) { if( idx < dt->nbrows ) dt->keylist[idx] = key; else g_warning("datatable invalid set keylist %d of %d", idx , dt->nbrows); } static void datatable_set_keyindex(DataTable *dt, guint32 key, guint32 idx) { if( key < dt->nbkeys ) dt->keyindex[key] = idx; else g_warning("datatable invalid set keyindex %d of %d", key , dt->nbkeys); } static void _datatable_init_count_key_row(DataTable *dt, gint grpby, Filter *flt) { guint n_row, n_key; n_row = n_key = 0; if( grpby != REPORT_GRPBY_MONTH && grpby != REPORT_GRPBY_YEAR ) { switch(grpby) { case REPORT_GRPBY_NONE: n_row = 1; n_key = 1; break; case REPORT_GRPBY_TYPE: n_row = 2; n_key = 2; break; case REPORT_GRPBY_CATEGORY: n_row = da_cat_length(); n_key = da_cat_get_max_key(); break; case REPORT_GRPBY_PAYEE: n_row = da_pay_length(); n_key = da_pay_get_max_key(); break; //5.7: todo check this +1 case REPORT_GRPBY_ACCOUNT: n_row = da_acc_length(); n_key = da_acc_get_max_key(); break; case REPORT_GRPBY_ACCGROUP: n_row = da_grp_length(); n_key = da_grp_get_max_key(); break; case REPORT_GRPBY_TAG: n_row = da_tag_length(); n_key = da_tag_get_max_key(); break; } } else { GDate *date1 = g_date_new_julian(flt->mindate); GDate *date2 = g_date_new_julian(flt->maxdate); switch(grpby) { case REPORT_GRPBY_MONTH: n_row = ((g_date_get_year(date2) - g_date_get_year(date1)) * 12) + g_date_get_month(date2) - g_date_get_month(date1) + 1; n_key = n_row; break; case REPORT_GRPBY_YEAR: n_row = g_date_get_year(date2) - g_date_get_year(date1) + 1; n_key = n_row; break; } g_date_free(date2); g_date_free(date1); } //we add 1 to every key as 0 is an item dt->nbkeys = n_key + 1; dt->nbrows = n_row; } static void _datatable_init_items_cat(DataTable *dt) { GList *lcat, *l; guint idx = 0; lcat = l = category_glist_sorted(HB_GLIST_SORT_NAME); while (l != NULL ) { Category *cat = l->data; DataRow *dr = dt->rows[idx]; if( dr != NULL ) { dr->pos = idx; dr->label = g_strdup( (cat->key == 0) ? _("(no category)") : cat->name ); //dt->keyindex[cat->key] = idx; datatable_set_keyindex(dt, cat->key, idx); DB2( g_print(" +cat k:%d, idx:%d %s'%s'\n", cat->key, idx, cat->parent==0 ? "" : " +", dr->label) ); } l = g_list_next(l); idx++; } g_list_free(lcat); //init keylist DB2( g_print(" add cat keys") ); idx = 0; lcat = l = category_glist_sorted(HB_GLIST_SORT_KEY); while (l != NULL) { Category *cat = l->data; //dt->keylist[idx] = cat->key; datatable_set_keylist(dt, idx, cat->key); DB2( g_print(" %d", cat->key) ); l = g_list_next(l); idx++; } g_list_free(lcat); DB2( g_print("\n") ); } static void _datatable_init_items_pay(DataTable *dt) { GList *lpay, *l; guint idx = 0; lpay = l = payee_glist_sorted(HB_GLIST_SORT_NAME); while (l != NULL ) { Payee *pay = l->data; DataRow *dr = dt->rows[idx]; if( dr != NULL ) { dr->pos = idx; dr->label = g_strdup( (pay->key == 0) ? _("(no payee)") : pay->name ); DB2( g_print(" +pay k:%d, idx:%d '%s'\n", pay->key, idx, dr->label) ); //store transpose //dt->keyindex[pay->key] = idx; datatable_set_keyindex(dt, pay->key, idx); //store keylist //dt->keylist[idx] = pay->key; datatable_set_keylist(dt, idx, pay->key); } l = g_list_next(l); idx++; } g_list_free(lpay); } static void _datatable_init_items_acc(DataTable *dt) { GList *lacc, *l; guint idx = 0; lacc = l = account_glist_sorted(HB_GLIST_SORT_NAME); while (l != NULL ) { Account *acc = l->data; DataRow *dr = dt->rows[idx]; if( dr != NULL ) { dr->pos = idx; dr->label = g_strdup( acc->name ); DB2( g_print(" +acc k:%d, idx:%d '%s'\n", acc->key, idx, dr->label) ); //store transpose dt->keyindex[acc->key] = idx; //datatable_set_keyindex(dt, acc->key, idx); //store keylist dt->keylist[idx] = acc->key; //datatable_set_keylist(dt, idx, acc->key); } l = g_list_next(l); idx++; } g_list_free(lacc); } static void _datatable_init_items_accgrp(DataTable *dt) { GList *lgrp, *l; guint idx = 0; lgrp = l = group_glist_sorted(HB_GLIST_SORT_NAME); while (l != NULL ) { Group *grp = l->data; DataRow *dr = dt->rows[idx]; if( dr != NULL ) { dr->pos = idx; dr->label = g_strdup( (grp->key == 0) ? _("(no group)") : grp->name ); DB2( g_print(" +grp k:%d, idx:%d '%s'\n", grp->key, idx, dr->label) ); //store transpose dt->keyindex[grp->key] = idx; //datatable_set_keyindex(dt, acc->key, idx); //store keylist dt->keylist[idx] = grp->key; //datatable_set_keylist(dt, idx, acc->key); } l = g_list_next(l); idx++; } g_list_free(lgrp); } static void _datatable_init_items_tag(DataTable *dt) { GList *ltag, *l; guint idx = 0; ltag = l = tag_glist_sorted(HB_GLIST_SORT_NAME); while (l != NULL ) { Tag *tag = l->data; DataRow *dr = dt->rows[idx]; if( dr != NULL ) { dr->pos = idx; dr->label = g_strdup( (tag->key == 0) ? _("(no tag)") : tag->name ); DB2( g_print(" +tag k:%d, idx:%d '%s'\n", tag->key, idx, dr->label) ); //store transpose //dt->keyindex[tag->key] = idx; datatable_set_keyindex(dt, tag->key, idx); //store keylist //dt->keylist[idx] = tag->key; datatable_set_keylist(dt, idx, tag->key); } l = g_list_next(l); idx++; } g_list_free(ltag); } static void datatable_data_get_xlabel(GDate *date, guint intvl, gchar *intvlname, gsize slen) { intvlname[0] ='\0'; switch(intvl) { case REPORT_INTVL_DAY: case REPORT_INTVL_FORTNIGHT: g_date_strftime (intvlname, slen, "%b-%d", date); break; case REPORT_INTVL_WEEK: //TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 g_snprintf(intvlname, slen, _("w%02d"), g_date_get_iso8601_week_of_year(date)); break; case REPORT_INTVL_MONTH: g_snprintf(intvlname, slen, "%s", _(CYA_ABMONTHS[g_date_get_month(date)])); break; case REPORT_INTVL_QUARTER: //todo: will be innacurrate here if fiscal year start not 1/jan //TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 g_snprintf(intvlname, slen, _("q%d"), ((g_date_get_month(date)-1)/3)+1); break; case REPORT_INTVL_HALFYEAR: //#2007712 //TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 g_snprintf(intvlname, slen, _("h%d"), g_date_get_month(date) < 7 ? 1 : 2); break; case REPORT_INTVL_YEAR: g_snprintf(intvlname, slen, "%d", g_date_get_year(date)); break; } } static void datatable_init_items(DataTable *dt, gint grpby, guint32 jfrom) { GDate *date; gchar buffer[64], *name; guint32 jdate; guint idx, slen = 63; GDateYear prevyear = 0; DB1( g_print("\n-- datatable int rows --\n") ); if( grpby == REPORT_GRPBY_CATEGORY || grpby == REPORT_GRPBY_PAYEE || grpby == REPORT_GRPBY_ACCOUNT || grpby == REPORT_GRPBY_ACCGROUP || grpby == REPORT_GRPBY_TAG ) { switch(grpby) { case REPORT_GRPBY_CATEGORY: _datatable_init_items_cat(dt); break; case REPORT_GRPBY_PAYEE: _datatable_init_items_pay(dt); break; case REPORT_GRPBY_ACCOUNT: _datatable_init_items_acc(dt); break; case REPORT_GRPBY_ACCGROUP: _datatable_init_items_accgrp(dt); break; case REPORT_GRPBY_TAG: _datatable_init_items_tag(dt); break; } return; } date = g_date_new(); jdate = GLOBALS->today; for(idx=0;idxnbrows;idx++) { DataRow *dr = dt->rows[idx]; guint intvl = REPORT_INTVL_NONE; name = NULL; switch(grpby) { case REPORT_GRPBY_NONE: //technical label for sum name = "none"; DB2( g_print(" +none k:%d, idx:%d '%s'\n", idx, idx, name) ); break; case REPORT_GRPBY_TYPE: name = idx == 0 ? "exp" : "inc"; DB2( g_print(" +type k:%d, idx:%d '%s'\n", idx, idx, name) ); break; case REPORT_GRPBY_MONTH: intvl = REPORT_INTVL_MONTH; jdate = report_interval_snprint_name(buffer, sizeof(buffer)-1, intvl, jfrom, idx); name = buffer; DB2( g_print(" +month k:%d, idx:%d '%s'\n", idx, idx, name) ); break; case REPORT_GRPBY_YEAR: intvl = REPORT_INTVL_YEAR; jdate = report_interval_snprint_name(buffer, sizeof(buffer)-1, intvl, jfrom, idx); name = buffer; DB2( g_print(" +year k:%d, idx:%d '%s'\n", idx, idx, name) ); break; } dr->pos = idx; if( name != NULL ) dr->label = g_strdup(name); //store transpose //dt->keyindex[idx] = idx; datatable_set_keyindex(dt, idx, idx); //store keylist //dt->keylist[idx] = idx; datatable_set_keylist(dt, idx, idx); //manage xlabel g_date_set_julian(date, jdate); datatable_data_get_xlabel(date, intvl, buffer, slen); dr->xlabel = g_strdup(buffer); //set flags => moved into forecast //if( jdate > GLOBALS->today ) // dc->flags |= RF_FORECAST; if( (intvl != REPORT_INTVL_YEAR) && (g_date_get_year(date) > prevyear) && (g_date_get_month(date) == 1) ) { g_snprintf(buffer, slen, "%d", g_date_get_year(date)); dr->misclabel = g_strdup(buffer); dr->flags |= RF_NEWYEAR; } prevyear = g_date_get_year(date); } g_date_free(date); /*end: //debug keyindex g_print(" keyindex:"); for(idx=0;idxnbkeys;idx++) g_print(" %d", dt->keyindex[idx]); g_print("\n"); //debug keylist g_print(" keylist:"); for(idx=0;idxnbrows;idx++) g_print(" %d", dt->keylist[idx]); g_print("\n"); */ } static void datatable_init_columns(DataTable *dt, gint intvl, guint32 jfrom) { GDate *date; gchar intvlname[64]; guint32 jdate; guint idx, slen = 63; GDateYear prevyear = 0; date = g_date_new(); for(idx=0;idxnbcols;idx++) { DataCol *dc = dt->cols[idx]; //TODO: check report_interval_snprint_name(intvlname, sizeof(intvlname)-1, intvl, jfrom, idx); dc->label = g_strdup(intvlname); //new stuff jdate = _datatable_interval_get_jdate(intvl, jfrom, idx); g_date_set_julian(date, jdate); datatable_data_get_xlabel(date, intvl, intvlname, slen); dc->xlabel = g_strdup(intvlname); //set flags => moved into forecast if( jdate > GLOBALS->today ) dc->flags |= RF_FORECAST; if( (intvl != REPORT_INTVL_YEAR) && (g_date_get_year(date) > prevyear) && (g_date_get_month(date) == 1) ) { g_snprintf(intvlname, slen, "%d", g_date_get_year(date)); dc->misclabel = g_strdup(intvlname); dc->flags |= RF_NEWYEAR; } prevyear = g_date_get_year(date); } g_date_free(date); } static gint datatable_data_get_txnsign(DataTable *dt, guint32 kcat, gdouble amount) { gint txnsign = 0; //raw expense/income mode if( (dt->flags & REPORT_COMP_FLG_CATSIGN) ) { txnsign = category_root_type_get(kcat); //todo: fallback maybe ? //if( txnsign == 0 ) } else { txnsign = (amount < 0.0) ? -1 : 1; } return txnsign; } static void datatable_add(DataTable *dt, guint32 key, guint32 col, gdouble amount, gint sign, gboolean addtotal) { DataRow *dr; if( hb_amount_cmp(amount, 0.0) == 0 ) return; dr = report_data_get_row(dt, key); if( dr == NULL ) return; if( col < dt->nbcols ) { //total mode must filter opposite sign categories if( dt->intvl == REPORT_INTVL_NONE ) { if( (dt->flags & REPORT_COMP_FLG_SPENDING) && sign == 1 ) return; //future // if( (dt->flags & REPORT_COMP_FLG_REVENUE) && sign == -1 ) // return; } DB3( g_print(">>> add to k:%d c:%d %.2f sign=%d\n", key, col, amount, sign) ); if( sign == -1 ) { dr->colexp[col] += amount; dr->rowexp += amount; if( addtotal == TRUE ) { dt->totrow->colexp[col] += amount; dt->totrow->rowexp += amount; } } else if( sign == 1 ) { dr->colinc[col] += amount; dr->rowinc += amount; if( addtotal == TRUE ) { dt->totrow->colinc[col] += amount; dt->totrow->rowinc += amount; } } } else g_warning("datatable add invalid col %d of %d", col, dt->nbcols); } static void datatable_data_cols_cumulate(DataTable *dt, gint intvl, Filter *flt) { DB2( g_print("\n-- cumulate columns --\n") ); DB2( g_print(" n_row=%d n_col=%d\n", dt->nbrows, dt->nbcols) ); //cumulate columns if( dt->nbcols > 1 ) { guint row, col; for(row=0;rownbrows;row++) { DataRow *dr = dt->rows[row]; DB2( g_print(" row %d: ", row) ); for(col=1;colnbcols;col++) { guint32 jdate = _datatable_interval_get_jdate(intvl, flt->mindate, col); if( jdate < dt->maxpostdate) { DB2( g_print("%d, ", col) ); dr->colinc[col] += dr->colinc[col-1]; dr->colexp[col] += dr->colexp[col-1]; dt->totrow->colinc[col] += dr->colinc[col-1]; dt->totrow->colexp[col] += dr->colexp[col-1]; } } DB2( g_print("\n") ); } } } static void datatable_data_add_balance(DataTable *dt, gint grpby, gint intvl, Filter *flt) { GList *lst_acc, *lnk_acc; GList *lnk_txn; DB1( g_print(" -- try add balance\n") ); if( (grpby != REPORT_GRPBY_NONE) && (grpby != REPORT_GRPBY_ACCOUNT) && (grpby != REPORT_GRPBY_ACCGROUP) ) return; DB1( g_print(" -- add balance\n") ); //TODO: we should rely on rows... lst_acc = g_hash_table_get_values(GLOBALS->h_acc); lnk_acc = g_list_first(lst_acc); while (lnk_acc != NULL) { Account *acc = lnk_acc->data; guint32 pos = 0, txnsign; gdouble amount; //#1674045 ony rely on nosummary if( (acc->flags & (AF_NOREPORT)) ) goto next_acc; //#2000294 enable account filtering if( filter_acc_match(flt, acc) == 0 ) goto next_acc; //add initial amount to col[0] amount = hb_amount_base(acc->initial, acc->kcur); //we can't use report_items_get_key here //for none, we only allocate the row[0], so pos is 0 pos = 0; switch(grpby) { case REPORT_GRPBY_ACCOUNT: pos = acc->key; break; case REPORT_GRPBY_ACCGROUP: pos = acc->kgrp; break; } txnsign = (amount < 0.0) ? -1 : 1; datatable_add(dt, pos, 0, amount, txnsign, TRUE); DB2( g_print(" ** add initbal %8.2f to row:%d, col:%d\n", amount, acc->key, 0) ); //add txn amount prior mindate to col[0] lnk_txn = g_queue_peek_head_link(acc->txn_queue); while (lnk_txn != NULL) { Transaction *txn = lnk_txn->data; //5.5 forgot to filter... //#1886123 include remind based on user prefs if( !transaction_is_balanceable(txn) ) goto next_txn; //enable filters : make no sense or not //if( (filter_txn_match(flt, txn) == 1) ) //{ pos = report_items_get_key(grpby, flt->mindate, txn); amount = report_txn_amount_get(flt, txn); amount = hb_amount_base(amount, txn->kcur); if( txn->date < flt->mindate ) { DB2( g_print(" **add %8.2f row:%d, col:%d\n", amount, pos, 0) ); txnsign = datatable_data_get_txnsign(dt, txn->kcat, amount); datatable_add(dt, pos, 0, amount, txnsign, TRUE); } //} next_txn: lnk_txn = g_list_next(lnk_txn); } next_acc: lnk_acc = g_list_next(lnk_acc); } g_list_free(lst_acc); } static void datatable_data_add_txn(DataTable *dt, gint grpby, gint intvl, Transaction *txn, Filter *flt) { guint i; guint key = 0; guint col = 0; gdouble amount; gint txnsign; amount = report_txn_amount_get(flt, txn); amount = hb_amount_base(amount, txn->kcur); txnsign = datatable_data_get_txnsign(dt, txn->kcat, amount); DB2( g_print("\n srctxn %.2f, sign=%d, split=%d, cat=%d, pay=%d, acc=%d\n", amount, txnsign, (txn->flags & OF_SPLIT), txn->kcat, txn->kpay, txn->kacc) ); col = report_interval_get_pos(intvl, flt->mindate, txn); DB2( g_print(" col=%d (max is %d)\n", col, dt->nbcols) ); switch( grpby ) { case REPORT_GRPBY_CATEGORY: //case REPORT_GRPBY_SUBCATEGORY: //for split, affect the amount to the category if( txn->flags & OF_SPLIT ) { guint nbsplit = da_splits_length(txn->splits); Split *split; gboolean status; gint sinsert; DB2( g_print(" %d splits\n", nbsplit) ); for(i=0;isplits, i); status = da_flt_status_cat_get(flt, split->kcat); sinsert = ( status == TRUE ) ? 1 : 0; if(flt->option[FLT_GRP_CATEGORY] == 2) sinsert ^= 1; if( (flt->option[FLT_GRP_CATEGORY] == 0) || sinsert) { Category *cat = da_cat_get(split->kcat); amount = hb_amount_base(split->amount, txn->kcur); if( cat != NULL ) { txnsign = datatable_data_get_txnsign(dt, split->kcat, amount); DB2( g_print(" cat split insert=%d, kcat=%d %.2f %d\n", sinsert, split->kcat, amount, txnsign) ); datatable_add(dt, cat->key, col, amount, txnsign, TRUE); if( cat->parent != 0 ) datatable_add(dt, cat->parent, col, amount, txnsign, FALSE); } } else { DB2( g_print(" >skipped, cat get=%d\n", sinsert) ); } } } else { Category *cat = da_cat_get(txn->kcat); if( cat != NULL ) { DB2( g_print(" cat normal kcat=%d %2.f\n", txn->kcat, amount) ); datatable_add(dt, cat->key, col, amount, txnsign, TRUE); if( cat->parent != 0 ) datatable_add(dt, cat->parent, col, amount, txnsign, FALSE); } } break; case REPORT_GRPBY_TAG: if(txn->tags != NULL) { guint32 *tptr = txn->tags; while(*tptr) { //#2031693 not -1 here key = *tptr; datatable_add(dt, key, col, amount, txnsign, TRUE); tptr++; } } //2031693 + add notags else datatable_add(dt, 0, col, amount, txnsign, TRUE); break; //5.8 define exp/inc by category type case REPORT_GRPBY_TYPE: if( txn->flags & OF_SPLIT ) { guint nbsplit = da_splits_length(txn->splits); Split *split; DB2( g_print(" %d splits\n", nbsplit) ); for(i=0;isplits, i); //we don't care cat filter here amount = hb_amount_base(split->amount, txn->kcur); txnsign = datatable_data_get_txnsign(dt, split->kcat, amount); DB2( g_print(" by type cat split add kcat=%d %.2f %d\n", split->kcat, amount, txnsign) ); if( (dt->flags & REPORT_COMP_FLG_SPENDING) && txnsign == -1 ) { DB2( g_print(" add exp\n") ); datatable_add(dt, 0, col, amount, txnsign, FALSE); //expense } if( (dt->flags & REPORT_COMP_FLG_REVENUE) && txnsign == 1 ) { DB2( g_print(" add inc\n") ); datatable_add(dt, 1, col, amount, txnsign, FALSE); //income } } } else { DB2( g_print(" by type: sign=%d\n", txnsign) ); if( (dt->flags & REPORT_COMP_FLG_SPENDING) && txnsign == -1 ) { DB2( g_print(" add exp\n") ); datatable_add(dt, 0, col, amount, txnsign, FALSE); //expense } if( (dt->flags & REPORT_COMP_FLG_REVENUE) && txnsign == 1 ) { DB2( g_print(" add inc\n") ); datatable_add(dt, 1, col, amount, txnsign, FALSE); //income } } break; //all others default: key = report_items_get_key(grpby, flt->mindate, txn); datatable_add(dt, key, col, amount, txnsign, TRUE); break; } } //5.7 forecast attempt static void report_compute_forecast(DataTable *dt, gint grpby, gint intvl, Filter *flt) { GList *list; gint nbinsert; guint32 curdate, maxpostdate; GDate *post_date; DB1( g_print("\n[report] compute_forecast\n") ); if( intvl == REPORT_INTVL_NONE ) { DB1( g_print(" no forecast for total mode\n") ); return; } post_date = g_date_new(); //TODO: change this maxpostdate = dt->maxpostdate; list = g_list_first(GLOBALS->arc_list); while (list != NULL) { Archive *arc = list->data; DB2( g_print("--------\n eval post of '%s' %.2f\n", arc->memo, arc->amount) ); if(scheduled_is_postable(arc) == TRUE) { Account *acc; Transaction *txn, *child; DB2( g_print(" is postable\n") ); nbinsert = 0; child = NULL; txn = da_transaction_malloc(); da_transaction_init_from_template(txn, arc); acc = da_acc_get(txn->kacc); if(acc) { //#5.7.3 don't forecast... if( acc->flags & (AF_NOREPORT|AF_CLOSED) ) goto nextarc; txn->kcur = acc->kcur; } txn->date = curdate = arc->nextdate; //#2048236 also add child xfer txn to computing if( txn->flags & OF_INTXFER ) { child = transaction_xfer_child_new_from_txn(txn); } //if arc->nexdate is prior flt->mindate, it will be filtered out if( (filter_txn_match(flt, txn) == 1) ) { while(curdate <= maxpostdate) { txn->date = curdate; DB3( hb_print_date(curdate, ">>> curdate=") ); datatable_data_add_txn(dt, grpby, intvl, txn, flt); //#2048236 also add child xfer txn to computing if( child != NULL ) { child->date = curdate; datatable_data_add_txn(dt, grpby, intvl, child, flt); } //mark column as forecast guint idx = report_interval_get_pos(intvl, flt->mindate, txn); DataCol *dc = report_data_get_col(dt, idx); if( dc != NULL ) dc->flags |= RF_FORECAST; curdate = scheduled_date_get_next_post(post_date, arc, curdate); nbinsert++; // break if over limit if( (arc->rec_flags & TF_LIMIT) && (nbinsert >= arc->limit) ) break; } } da_transaction_free (txn); da_transaction_free (child); } nextarc: list = g_list_next(list); } g_date_free(post_date); } /* = = = = = = = = = = = = = = = = = = = = */ DataTable *report_compute(gint grpby, gint intvl, Filter *flt, GQueue *txn_queue, gint flags) { DataTable *dt; GList *list; guint32 maxpostdate = flt->maxdate; DB1( g_print("\n[report] == report_compute ==\n") ); DB2( { gchar *txt = "??"; switch(grpby){ case REPORT_GRPBY_NONE: txt="none"; break; case REPORT_GRPBY_CATEGORY: txt="cat"; break; case REPORT_GRPBY_PAYEE: txt="pay"; break; case REPORT_GRPBY_ACCOUNT: txt="acc"; break; case REPORT_GRPBY_TAG: txt="tag"; break; case REPORT_GRPBY_MONTH: txt="month"; break; case REPORT_GRPBY_YEAR: txt="year"; break; case REPORT_GRPBY_ACCGROUP: txt="accgrp"; break; case REPORT_GRPBY_TYPE: txt="type"; break; } g_print(" grpby: %d %s\n", grpby, txt); } ); DB2( hb_print_date(maxpostdate, "maxdate") ); //set maxpostdate /*if( do_forecast ) { if( filter_preset_daterange_future_enable(flt, flt->range) ) { GDate *post_date = g_date_new(); g_date_set_time_t(post_date, time(NULL)); g_date_add_months(post_date, PREFS->rep_forecat_nbmonth); g_date_set_day(post_date, g_date_get_days_in_month(g_date_get_month(post_date), g_date_get_year(post_date))); maxpostdate = g_date_get_julian(post_date); DB2( hb_print_date(maxpostdate, "max forecast date") ); g_date_free(post_date); flt->maxdate = maxpostdate; } }*/ dt = da_datatable_malloc(grpby, intvl, flt); if( dt == NULL ) return dt; dt->flags = flags; dt->grpby = grpby; dt->intvl = intvl; dt->maxpostdate = maxpostdate; datatable_init_items(dt, grpby, flt->mindate); datatable_init_columns(dt, intvl, flt->mindate); //balance must keep xfer /*if( do_balance == TRUE ) { }*/ //process txn DB2( g_print("\n-- ventilate txn amount to row/col --\n") ); DB2( g_print(" option: signbycat=%d\n", flags & REPORT_COMP_FLG_CATSIGN) ); DB2( g_print(" option: spending =%d\n", flags & REPORT_COMP_FLG_SPENDING) ); DB2( g_print(" option: revenue =%d\n", flags & REPORT_COMP_FLG_REVENUE) ); list = g_queue_peek_head_link(txn_queue); while (list != NULL) { Transaction *txn = list->data; if( (filter_txn_match(flt, txn) == 1) ) { datatable_data_add_txn(dt, grpby, intvl, txn, flt); } list = g_list_next(list); } //TODO: add prefs //if( PREFS->xxx ) if( flags & REPORT_COMP_FLG_FORECAST ) { DB2( g_print("\n-- compute forecast --\n") ); report_compute_forecast(dt, grpby, intvl, flt); } //truncate in sign based category if( flags & REPORT_COMP_FLG_CATSIGN ) { DB2( g_print("\n-- typebycat post compute --\n") ); if( grpby == REPORT_GRPBY_TYPE ) { guint col; DataRow *dr1 = dt->rows[0]; //exp DataRow *dr2 = dt->rows[1]; //inc for(col=0;colnbcols;col++) { if( flags & REPORT_COMP_FLG_SPENDING && dr1->colexp[col] > 0.0 ) dr1->colexp[col] = 0.0; if( flags & REPORT_COMP_FLG_REVENUE && dr2->colinc[col] < 0.0 ) dr2->colinc[col] = 0.0; } DB2( g_print(" processed %d\n", col) ); } } //process balance mode if( flags & REPORT_COMP_FLG_BALANCE ) { DB2( g_print("\n-- compute balance --\n") ); datatable_data_add_balance(dt, grpby, intvl, flt); datatable_data_cols_cumulate(dt, intvl, flt); } return dt; } DataCol *report_data_get_col(DataTable *dt, guint32 idx) { DataCol *retval = NULL; if( idx < dt->nbcols ) { retval = dt->cols[idx]; } else g_warning("datatable invalid get col %d of %d", idx, dt->nbcols); return retval; } //get a specific row by key //hub-reptime/hub-reptotal/repstats DataRow *report_data_get_row(DataTable *dt, guint32 key) { DataRow *retval = NULL; guint32 idx; if( key < dt->nbkeys ) { //we should transpose here idx = dt->keyindex[key]; if( idx < dt->nbrows ) { DB3( g_print(">>> get row=%d for key=%d\n", idx, key) ); retval = dt->rows[idx]; } else g_warning("datatable invalid get row %d of %d", idx, dt->nbrows); } else g_warning("datatable invalid get row key %d of %d", key, dt->nbkeys); return retval; } //gtk-chart/list-report gdouble da_datarow_get_cell_sum(DataRow *dr, guint32 index) { if( index < dr->nbcols ) { return (dr->colexp[index] + dr->colinc[index]); } g_warning("invalid datarow column"); return 0; } //rep-stat guint report_items_get_key(gint grpby, guint jfrom, Transaction *txn) { Account *acc; guint key = 0; switch(grpby) { case REPORT_GRPBY_NONE: key = 0; break; case REPORT_GRPBY_CATEGORY: key = category_report_id(txn->kcat, FALSE); break; //case REPORT_GRPBY_SUBCATEGORY: // pos = txn->kcat; // break; case REPORT_GRPBY_PAYEE: key = txn->kpay; break; case REPORT_GRPBY_ACCOUNT: key = txn->kacc; break; case REPORT_GRPBY_ACCGROUP: acc = da_acc_get(txn->kacc); if( acc != NULL ) key = acc->kgrp; break; //TODO! miss TAG case REPORT_GRPBY_MONTH: key = DateInMonth(jfrom, txn->date); break; case REPORT_GRPBY_YEAR: key = DateInYear(jfrom, txn->date); break; } return key; } //rep- balance/budget/time gint report_interval_get_pos(gint intvl, guint jfrom, Transaction *txn) { gint pos = 0; switch(intvl) { case REPORT_INTVL_DAY: pos = txn->date - jfrom; break; case REPORT_INTVL_WEEK: //#1915643 week iso 8601 //pos = (txn->date - jfrom)/7; pos = DateInWeek(jfrom, txn->date); break; //#2000290 case REPORT_INTVL_FORTNIGHT: pos = DateInFortNight(jfrom, txn->date); break; case REPORT_INTVL_MONTH: pos = DateInMonth(jfrom, txn->date); break; case REPORT_INTVL_QUARTER: pos = DateInQuarter(jfrom, txn->date); break; case REPORT_INTVL_HALFYEAR: pos = DateInHalfYear(jfrom, txn->date); break; case REPORT_INTVL_YEAR: pos = DateInYear(jfrom, txn->date); break; default: //REPORT_INTVL_NONE pos = 0; break; } return pos; } //rep-stats //rep- balance/time gint report_interval_count(gint intvl, guint32 jfrom, guint32 jto) { GDate *date1, *date2; gint nbintvl = 0; date1 = g_date_new_julian(jfrom); date2 = g_date_new_julian(jto); switch(intvl) { case REPORT_INTVL_DAY: nbintvl = (jto - jfrom); break; case REPORT_INTVL_WEEK: //#2000292 weeknum iso 8601 as well _hb_date_clamp_iso8601(date1); nbintvl = (g_date_days_between(date1, date2) / 7); break; //#2000290 case REPORT_INTVL_FORTNIGHT: _hb_date_clamp_iso8601(date1); nbintvl = (g_date_days_between(date1, date2) / 14); break; case REPORT_INTVL_MONTH: nbintvl = ((g_date_get_year(date2) - g_date_get_year(date1)) * 12) + g_date_get_month(date2) - g_date_get_month(date1); break; case REPORT_INTVL_QUARTER: //#1758532 slide quarter start _hb_date_clamp_quarter_start(date1); nbintvl = (((g_date_get_year(date2) - g_date_get_year(date1)) * 12) + g_date_get_month(date2) - g_date_get_month(date1))/3; break; case REPORT_INTVL_HALFYEAR: //#2034618 slide halfyear start _hb_date_clamp_halfyear_start(date1); nbintvl = (((g_date_get_year(date2) - g_date_get_year(date1)) * 12) + g_date_get_month(date2) - g_date_get_month(date1))/6; break; case REPORT_INTVL_YEAR: nbintvl = g_date_get_year(date2) - g_date_get_year(date1); break; } g_date_free(date2); g_date_free(date1); //5.9 check if( nbintvl < 0 ) { g_warning("report: intvl<0"); #if MYDEBUG hb_print_date(jfrom, NULL); hb_print_date(jto, NULL); #endif nbintvl = 0; } return 1 + nbintvl; } //used in list-report / rep- balance/budget/time guint32 report_interval_snprint_name(gchar *s, gint slen, gint intvl, guint32 jfrom, gint idx) { GDate *date; guint32 jdate = _datatable_interval_get_jdate(intvl, jfrom, idx); date = g_date_new_julian(jdate); switch(intvl) { case REPORT_INTVL_DAY: g_date_strftime (s, slen, PREFS->date_format, date); break; case REPORT_INTVL_WEEK: //TRANSLATORS: printf string for year of week W, ex. 2019-W52 for week 52 of 2019 g_snprintf(s, slen, _("%d-w%02d"), g_date_get_year(date), g_date_get_iso8601_week_of_year(date)); break; //#2000290 case REPORT_INTVL_FORTNIGHT: g_date_strftime (s, slen, PREFS->date_format, date); break; case REPORT_INTVL_MONTH: g_snprintf(s, slen, "%d-%s", g_date_get_year(date), _(CYA_ABMONTHS[g_date_get_month(date)])); break; case REPORT_INTVL_QUARTER: //todo: will be innacurrate here if fiscal year start not 1/jan //TRANSLATORS: printf string for year of quarter Q, ex. 2019-Q4 for quarter 4 of 2019 g_snprintf(s, slen, _("%d-q%d"), g_date_get_year(date), ((g_date_get_month(date)-1)/3)+1); break; case REPORT_INTVL_HALFYEAR: //#2007712 //TRANSLATORS: printf string for half-year H, ex. 2019-H1 for 1st half-year of 2019 g_snprintf(s, slen, _("%d-h%d"), g_date_get_year(date), g_date_get_month(date) < 7 ? 1 : 2); break; case REPORT_INTVL_YEAR: g_snprintf(s, slen, "%d", g_date_get_year(date)); break; default: *s ='\0'; break; } g_date_free(date); return jdate; } //TODO: maybe migrate this to filter as well //#1562372 in case of a split we need to take amount for filter categories only //used in rep-time gdouble report_txn_amount_get(Filter *flt, Transaction *txn) { gdouble amount; amount = txn->amount; if( flt->option[FLT_GRP_CATEGORY] > 0 ) //not inactive { if( txn->flags & OF_SPLIT ) { guint i, nbsplit = da_splits_length(txn->splits); Split *split; gboolean status; gint sinsert; amount = 0.0; for(i=0;isplits, i); status = da_flt_status_cat_get(flt, split->kcat); sinsert = ( status == TRUE ) ? 1 : 0; if(flt->option[FLT_GRP_CATEGORY] == 2) sinsert ^= 1; DB2( g_print(" split insert=%d, kcat=%d\n", sinsert, split->kcat) ); if( (flt->option[FLT_GRP_CATEGORY] == 0) || sinsert) { amount += split->amount; } } } } return amount; } homebank-5.9.1/src/ui-budget.c0000644000175000017500000011357015005624341011622 /* HomeBank -- Free, easy, personal accounting for everyone. * Copyright (C) 1995-2025 Maxime DOYEN * * This file is part of HomeBank. * * HomeBank is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * HomeBank is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "homebank.h" #include "ui-dialogs.h" #include "ui-widgets.h" #include "hbtk-switcher.h" #include "ui-category.h" #include "ui-budget.h" extern gchar *CYA_CAT_TYPE[]; /****************************************************************************/ /* Debug macros */ /****************************************************************************/ #define MYDEBUG 0 #if MYDEBUG #define DB(x) (x); #else #define DB(x); #endif /* our global datas */ extern struct HomeBank *GLOBALS; extern struct Preferences *PREFS; extern gchar *CYA_ABMONTHS[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ /* ** ** The function should return: ** a negative integer if the first value comes before the second, ** 0 if they are equal, ** or a positive integer if the first value comes after the second. */ static gint ui_bud_listview_compare_funct (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gint retval = 0; Category *entry1, *entry2; gtk_tree_model_get(model, a, LST_DEFCAT_DATAS, &entry1, -1); gtk_tree_model_get(model, b, LST_DEFCAT_DATAS, &entry2, -1); retval = (entry1->flags & GF_INCOME) - (entry2->flags & GF_INCOME); if(!retval) { retval = hb_string_utf8_compare(entry1->name, entry2->name); } return retval; } /* ** */ static void ui_bud_listview_icon_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *item; gchar *iconname = NULL; // get the transaction gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &item, -1); //5.3 added if( item->flags & GF_FORCED ) iconname = ICONNAME_HB_ITEM_FORCED; else if( item->flags & GF_BUDGET ) iconname = ICONNAME_HB_ITEM_BUDGET; g_object_set(renderer, "icon-name", iconname, NULL); } /* ** draw some text from the stored data structure */ static void ui_bud_listview_cell_data_function_text (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *entry; gchar *name; gchar *string; gchar type; gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &entry, -1); if(entry->key == 0) name = g_strdup(_("(no category)")); else name = entry->name; type = category_get_type_char(entry); if(entry->key == 0) string = g_strdup(name); else { if(entry->flags & GF_BUDGET) { if( entry->parent == 0 ) string = g_markup_printf_escaped("%s [%c]", name, type); else string = g_markup_printf_escaped(" %c %s", type, name); } else { if( entry->parent == 0 ) string = g_markup_printf_escaped("%s [%c]", name, type); else string = g_markup_printf_escaped(" %c %s", type, name); } } g_object_set(renderer, "markup", string, NULL); g_free(string); } #if MYDEBUG == 1 static void ui_bud_listview_cell_data_function_debug (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { Category *entry; gchar *string; gchar type; gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &entry, -1); type = category_get_type_char(entry); string = g_markup_printf_escaped("[%d] f:%d t:%c", entry->key, entry->flags, type ); g_object_set(renderer, "markup", string, NULL); g_free(string); } #endif static gboolean ui_bud_listview_search_equal_func (GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) { gboolean retval = TRUE; gchar *normalized_string; gchar *normalized_key; gchar *case_normalized_string = NULL; gchar *case_normalized_key = NULL; Category *item; //gtk_tree_model_get_value (model, iter, column, &value); gtk_tree_model_get(model, iter, LST_DEFCAT_DATAS, &item, -1); if(item != NULL) { normalized_string = g_utf8_normalize (item->name, -1, G_NORMALIZE_ALL); normalized_key = g_utf8_normalize (key, -1, G_NORMALIZE_ALL); if (normalized_string && normalized_key) { case_normalized_string = g_utf8_casefold (normalized_string, -1); case_normalized_key = g_utf8_casefold (normalized_key, -1); if (strncmp (case_normalized_key, case_normalized_string, strlen (case_normalized_key)) == 0) retval = FALSE; } g_free (normalized_key); g_free (normalized_string); g_free (case_normalized_key); g_free (case_normalized_string); } return retval; } /* ** */ static GtkWidget *ui_bud_listview_new(void) { GtkTreeStore *store; GtkWidget *treeview; GtkCellRenderer *renderer; GtkTreeViewColumn *column; //store store = gtk_tree_store_new ( 3, //NUM_LST_DEFCAT, G_TYPE_BOOLEAN, G_TYPE_POINTER, G_TYPE_UINT ); //sortable gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store), LST_DEFCAT_DATAS, ui_bud_listview_compare_funct, NULL, NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DEFCAT_DATAS, GTK_SORT_ASCENDING); //treeview treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines); gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW (treeview), TRUE); #if MYDEBUG == 1 renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_bud_listview_cell_data_function_debug, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); #endif /* icon column */ column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new (); //gtk_cell_renderer_set_fixed_size(renderer, GLOBALS->lst_pixbuf_maxwidth, -1); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_bud_listview_icon_cell_data_function, NULL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); /* category name */ renderer = gtk_cell_renderer_text_new (); g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, //taken from nemo, not exactly a resize to content, but good compromise "width-chars", 40, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Category")); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(column, renderer, ui_bud_listview_cell_data_function_text, GINT_TO_POINTER(1), NULL); //#2004631 date and column title alignement //gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST); //gtk_tree_view_column_set_sort_column_id (column, LST_DEFACC_NAME); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column); gtk_tree_view_set_expander_column(GTK_TREE_VIEW(treeview), column); gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(treeview), ui_bud_listview_search_equal_func, NULL, NULL); //gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(treeview), FALSE); //gtk_tree_view_set_reorderable (GTK_TREE_VIEW(treeview), TRUE); return(treeview); } /* ** index 0 is all month, then 1 -> 12 are months */ static gchar *ui_bud_manage_getcsvbudgetstr(Category *item) { gchar *retval = NULL; char buf[G_ASCII_DTOSTR_BUF_SIZE]; //DB( g_print(" get budgetstr for '%s'\n", item->name) ); if( !(item->flags & GF_CUSTOM) ) { if( item->budget[0] ) { //g_ascii_dtostr (buf, sizeof (buf), item->budget[0]); //#1750257 use locale numdigit g_snprintf(buf, sizeof (buf), "%.2f", item->budget[0]); retval = g_strdup(buf); //DB( g_print(" => %d: %s\n", 0, retval) ); } } else { gint i; for(i=1;i<=12;i++) { //if( item->budget[i] ) //{ gchar *tmp = retval; //g_ascii_dtostr (buf, sizeof (buf), item->budget[i]); //#1750257 use locale numdigit g_snprintf(buf, sizeof (buf), "%.2f", item->budget[i]); if(retval != NULL) { retval = g_strconcat(retval, ";", buf, NULL); g_free(tmp); } else retval = g_strdup(buf); //DB( g_print(" => %d: %s\n", i, retval) ); //} } } return retval; } static gint ui_bud_manage_category_exists (GtkTreeModel *model, gchar *level, gchar *type, gchar *fullname, GtkTreeIter *return_iter) { GtkTreeIter iter, child; gboolean valid; Category *entry; gint pos = 0; if(model == NULL) return 0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { gtk_tree_model_get (model, &iter, LST_DEFCAT_DATAS, &entry, -1); if(*level == '1') { if(entry->fullname && g_ascii_strcasecmp(fullname, entry->fullname) == 0) { *return_iter = iter; return pos; } } else { if(*level == '2') { gint n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter); gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while(n_child > 0) { gtk_tree_model_get(GTK_TREE_MODEL(model), &child, LST_DEFCAT_DATAS, &entry, -1); if(entry->fullname && g_ascii_strcasecmp(fullname, entry->fullname) == 0) { *return_iter = child; return pos; } n_child--; gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); pos++; } } } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); pos++; } return 0; } static void ui_bud_manage_load_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_bud_manage_data *data = user_data; gchar *filename = NULL; GIOChannel *io; const gchar *encoding; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] load csv - data %p\n", data) ); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_OPEN, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); encoding = homebank_file_getencoding(filename); io = g_io_channel_new_file(filename, "r", NULL); if(io != NULL) { GtkTreeModel *model; GtkTreeIter iter; gboolean error = FALSE; gchar *tmpstr; gint io_stat; DB( g_print(" -> encoding should be %s\n", encoding) ); if( encoding != NULL ) { g_io_channel_set_encoding(io, encoding, NULL); } model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat)); for(;;) { io_stat = g_io_channel_read_line(io, &tmpstr, NULL, NULL, NULL); if( io_stat == G_IO_STATUS_EOF) break; if( io_stat == G_IO_STATUS_NORMAL) { if( tmpstr != NULL) { gchar **str_array; hb_string_strip_crlf(tmpstr); str_array = g_strsplit (tmpstr, ";", 15); // type; sign; name if( (g_strv_length (str_array) < 4 || *str_array[1] != '*') && (g_strv_length (str_array) < 15)) { error = TRUE; break; } DB( g_print(" csv read '%s : %s : %s ...'\n", str_array[0], str_array[1], str_array[2]) ); gint pos = ui_bud_manage_category_exists(model, str_array[0], str_array[1], str_array[2], &iter); DB( g_print(" pos=%d\n", pos) ); if( pos != 0 ) { gboolean budget; Category *tmpitem; gint i; gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, LST_DEFCAT_DATAS, &tmpitem, -1); DB( g_print(" found cat, updating '%s' '%s'\n", tmpitem->name, tmpitem->fullname) ); data->change++; tmpitem->flags &= ~(GF_CUSTOM); //delete flag if( *str_array[1] == '*' ) { //tmpitem->budget[0] = g_ascii_strtod(str_array[3], NULL); //#1750257 use locale numdigit tmpitem->budget[0] = g_strtod(str_array[3], NULL); DB( g_print(" monthly '%.2f'\n", tmpitem->budget[0]) ); } else { tmpitem->flags |= (GF_CUSTOM); for(i=1;i<=12;i++) { //tmpitem->budget[i] = g_ascii_strtod(str_array[2+i], NULL); //#1750257 use locale numdigit tmpitem->budget[i] = g_strtod(str_array[2+i], NULL); DB( g_print(" month %d '%.2f'\n", i, tmpitem->budget[i]) ); } } // if any value,set the flag to visual indicator budget = FALSE; tmpitem->flags &= ~(GF_BUDGET); //delete flag for(i=0;i<=12;i++) { if(tmpitem->budget[i]) { budget = TRUE; break; } } if(budget == TRUE) tmpitem->flags |= GF_BUDGET; } g_strfreev (str_array); } g_free(tmpstr); } } //update the treeview gtk_tree_selection_unselect_all (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat))); g_io_channel_unref (io); if( error == TRUE ) { ui_dialog_msg_infoerror(GTK_WINDOW(data->dialog), GTK_MESSAGE_ERROR, _("File format error"), _("The CSV file must contains the exact numbers of column,\nseparated by a semi-colon, please see the help for more details.") ); } } g_free( filename ); } } static void ui_bud_manage_save_csv(GSimpleAction *action, GVariant *parameter, gpointer user_data) { struct ui_bud_manage_data *data = user_data; gchar *filename = NULL; GtkTreeModel *model; GtkTreeIter iter, child; gboolean valid; GIOChannel *io; DB( g_print("\n[ui-budget] save csv\n") ); //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( ui_file_chooser_csv(GTK_WINDOW(data->dialog), GTK_FILE_CHOOSER_ACTION_SAVE, &filename, NULL) == TRUE ) { DB( g_print(" + filename is %s\n", filename) ); io = g_io_channel_new_file(filename, "w", NULL); if(io != NULL) { model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter); while (valid) { gchar *outstr, *outvalstr; Category *category; gchar type; gtk_tree_model_get (GTK_TREE_MODEL(model), &iter, LST_DEFCAT_DATAS, &category, -1); if( category->name != NULL ) { //level 1: category if( category->flags & GF_BUDGET ) { type = (category->flags & GF_CUSTOM) ? ' ' : '*'; outvalstr = ui_bud_manage_getcsvbudgetstr(category); outstr = g_strdup_printf("1;%c;%s;%s\n", type, category->fullname, outvalstr); DB( g_print("%s", outstr) ); g_io_channel_write_chars(io, outstr, -1, NULL, NULL); g_free(outstr); g_free(outvalstr); } //level 2: subcategory gint n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter); gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter); while(n_child > 0) { gtk_tree_model_get(GTK_TREE_MODEL(model), &child, LST_DEFCAT_DATAS, &category, -1); type = (category->flags & GF_CUSTOM) ? ' ' : '*'; outvalstr = ui_bud_manage_getcsvbudgetstr(category); if( outvalstr ) { outstr = g_strdup_printf("2;%c;%s;%s\n", type, category->fullname, outvalstr); DB( g_print("%s", outstr) ); g_io_channel_write_chars(io, outstr, -1, NULL, NULL); g_free(outstr); } g_free(outvalstr); n_child--; gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child); } } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); } g_io_channel_unref (io); } g_free( filename ); } } static void ui_bud_manage_expand_all(GtkWidget *widget, gpointer user_data) { struct ui_bud_manage_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] expand all (data=%p)\n", data) ); gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_cat)); } static void ui_bud_manage_collapse_all(GtkWidget *widget, gpointer user_data) { struct ui_bud_manage_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] collapse all (data=%p)\n", data) ); gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_cat)); } static void ui_bud_manage_update(GtkWidget *treeview, gpointer user_data) { struct ui_bud_manage_data *data; gboolean name, custom, sensitive; gint i; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] update %p\n", data) ); name = FALSE; if(data->cat != NULL) { name = data->cat->key == 0 ? FALSE : TRUE; } sensitive = name; gtk_widget_set_sensitive(data->label_budget, sensitive); gtk_widget_set_sensitive(data->CM_type[0], sensitive); gtk_widget_set_sensitive(data->CM_type[1], sensitive); gtk_widget_set_sensitive(data->label_options, sensitive); gtk_widget_set_sensitive(data->CM_force, sensitive); gtk_widget_set_sensitive(data->BT_clear, sensitive); #if MYDEBUG == 1 gint toto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_type[0])); DB( g_print(" monthly = %d\n", toto) ); #endif custom = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_type[1])); DB( g_print(" custom = %d\n", custom) ); sensitive = name == FALSE ? FALSE : custom == TRUE ? FALSE: TRUE; gtk_widget_set_sensitive(data->spinner[0], sensitive); sensitive = name == FALSE ? FALSE : custom; for(i=0;i<12;i++) { gtk_widget_set_sensitive(data->label[i+1], sensitive); gtk_widget_set_sensitive(data->spinner[i+1], sensitive); } DB( g_print(" -- end update %p\n", data) ); } static void ui_bud_manage_compute_total(GtkWidget *widget, gpointer user_data) { struct ui_bud_manage_data *data; GList *lcat, *list; gdouble value; gint j; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] compute total\n") ); data->totexp = 0; data->totinc = 0; lcat = list = category_glist_sorted(HB_GLIST_SORT_NAME); while (list != NULL) { Category *item = list->data; value = 0; if(!(item->flags & GF_CUSTOM)) { value += (12*item->budget[0]); } //otherwise sum each month from mindate month else { //#1859476 <= vs < for(j=1;j<=12;j++) { value += item->budget[j]; } } if( value <= 0.0 ) data->totexp += value; else data->totinc += value; list = g_list_next(list); } g_list_free(lcat); hb_label_set_colvalue(GTK_LABEL(data->TX_totexp), data->totexp, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_totinc), data->totinc, GLOBALS->kcur, GLOBALS->minor); hb_label_set_colvalue(GTK_LABEL(data->TX_totbal), data->totexp + data->totinc, GLOBALS->kcur, GLOBALS->minor); } static void ui_bud_manage_cb_forcemonitor_toggled(GtkWidget *widget, gpointer user_data) { struct ui_bud_manage_data *data; Category *item; DB( g_print("\n[ui-budget] forced toggled\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); item = data->cat; if( item ) { item->flags &= ~(GF_FORCED); if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_force)) && !(item->flags & GF_BUDGET) ) item->flags |= GF_FORCED; //#1918479 set chnage data->change++; hbtk_listview_redraw_selected_row (GTK_TREE_VIEW(data->LV_cat)); } } static void ui_bud_manage_toggle(GtkCheckButton *checkbutton, gpointer user_data) { //struct ui_bud_manage_data *data; //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(radiobutton), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] toggle\n") ); //ui_bud_manage_get(GTK_WIDGET(radiobutton), GINT_TO_POINTER(FIELD_TYPE)); //data->custom ^= 1; ui_bud_manage_update(GTK_WIDGET(checkbutton), NULL); } static void ui_bud_manage_get(struct ui_bud_manage_data *data, Category *item) { DB( g_print("\n[ui-budget] get\n") ); if( item != NULL ) { guint prvflg = item->flags; gdouble prvsum = 0.0; gdouble sum = 0.0; item->flags &= ~(GF_CUSTOM|GF_BUDGET|GF_FORCED); if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_type[0])) == FALSE) { item->flags |= GF_CUSTOM; } for(guint i=0;i<=12;i++) { prvsum += item->budget[i]; gtk_spin_button_update(GTK_SPIN_BUTTON(data->spinner[i])); //#2052304 ensure sign item->budget[i] = ABS(gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->spinner[i]))); if( !(item->flags & GF_INCOME) ) item->budget[i] *= -1; sum += item->budget[i]; if( item->budget[i] ) item->flags |= GF_BUDGET; } if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_force)) && !(item->flags & GF_BUDGET) ) { item->flags |= GF_FORCED; } //#1861008 count changes here if( (prvflg != item->flags) || (prvsum != sum) ) data->change++; } DB( g_print(" -- end get") ); } static gboolean ui_bud_manage_cb_budget_changed(GtkSpinButton *spinbutton, gpointer user_data) { struct ui_bud_manage_data *data; gboolean retval = FALSE; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(spinbutton), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] budget changed\n") ); ui_bud_manage_get(data, data->cat); hbtk_listview_redraw_selected_row (GTK_TREE_VIEW(data->LV_cat)); ui_bud_manage_compute_total(data->dialog, NULL); DB( g_print(" -- end budget changed\n") ); return retval; } static void ui_bud_manage_getlast(struct ui_bud_manage_data *data) { Category *item; DB( g_print("\n[ui-budget] getlast\n") ); item = data->lastcatitem; if( item != NULL ) { ui_bud_manage_get(data, item); hbtk_listview_redraw_selected_row (GTK_TREE_VIEW(data->LV_cat)); ui_bud_manage_compute_total(data->dialog, NULL); } DB( g_print(" -- end getlast") ); } static void ui_bud_manage_set(GtkWidget *widget, gpointer user_data) { struct ui_bud_manage_data *data; gint active; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] set\n") ); active = (data->cat->flags & GF_CUSTOM) ? 1 : 0; g_signal_handlers_block_by_func (data->CM_type[0], G_CALLBACK (ui_bud_manage_toggle), NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_type[active]), TRUE); g_signal_handlers_unblock_by_func (data->CM_type[0], G_CALLBACK (ui_bud_manage_toggle), NULL); for(guint i=0;i<=12;i++) { g_signal_handlers_block_by_func (data->spinner[i], G_CALLBACK (ui_bud_manage_cb_budget_changed), NULL); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->spinner[i]), data->cat->budget[i]); g_signal_handlers_unblock_by_func (data->spinner[i], G_CALLBACK (ui_bud_manage_cb_budget_changed), NULL); } g_signal_handlers_block_by_func (data->CM_force, G_CALLBACK (ui_bud_manage_cb_forcemonitor_toggled), NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_force), (data->cat->flags & GF_FORCED) ? 1 : 0); g_signal_handlers_unblock_by_func (data->CM_force, G_CALLBACK (ui_bud_manage_cb_forcemonitor_toggled), NULL); DB( g_print(" -- end set\n") ); } static void ui_bud_manage_clear(GtkWidget *widget, gpointer user_data) { struct ui_bud_manage_data *data; gchar *title; gchar *secondtext; gint result, i; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] clear\n") ); title = _("Are you sure you want to clear input?"); secondtext = _("If you proceed, every amount will be set to 0."); result = ui_dialog_msg_confirm_alert( GTK_WINDOW(data->dialog), title, secondtext, _("_Clear"), TRUE ); if( result == GTK_RESPONSE_OK ) { //g_signal_handler_block(data->CM_type[0], data->handler_id[HID_CUSTOM]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_type[0]), TRUE); //g_signal_handler_unblock(data->CM_type[0], data->handler_id[HID_CUSTOM]); for(i=0;i<=12;i++) { g_signal_handlers_block_by_func (data->spinner[i], G_CALLBACK (ui_bud_manage_cb_budget_changed), NULL); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->spinner[i]), 0); data->cat->budget[i] = 0; g_signal_handlers_unblock_by_func (data->spinner[i], G_CALLBACK (ui_bud_manage_cb_budget_changed), NULL); } data->cat->flags &= ~(GF_BUDGET); //delete flag data->change++; hbtk_listview_redraw_selected_row (GTK_TREE_VIEW(data->LV_cat)); ui_bud_manage_compute_total(data->dialog, NULL); } } static void ui_bud_manage_selection_change(GtkWidget *treeview, gpointer user_data) { struct ui_bud_manage_data *data; GtkTreeModel *model; GtkTreeIter iter; gchar *title; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(GTK_WIDGET(treeview), GTK_TYPE_WINDOW)), "inst_data"); DB( g_print("\n[ui-budget] selection changed\n") ); data->cat = NULL; if(gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)), &model, &iter)) { Category *item; gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, LST_DEFCAT_DATAS, &item, -1); DB( g_print(" selected %s\n", item->name) ); title = g_strdup_printf(_("Budget for %s"), item->fullname); gtk_label_set_text(GTK_LABEL(data->label_budget), title); g_free(title); if(data->lastcatitem != NULL && item != data->lastcatitem) { DB( g_print(" -> should do a get for last selected (%s)\n", data->lastcatitem->name) ); ui_bud_manage_getlast(data); } data->cat = item; data->lastcatitem = item; ui_bud_manage_set(treeview, NULL); } else { data->lastcatitem = NULL; gtk_label_set_text(GTK_LABEL(data->label_budget), NULL); } ui_bud_manage_update(treeview, NULL); DB( g_print(" -- end selection changed\n") ); } static void ui_bud_manage_populate_listview(struct ui_bud_manage_data *data) { gint type; DB( g_print("\n[ui-budget] populate listview\n") ); type = hbtk_switcher_get_active (HBTK_SWITCHER(data->RA_type)) == 1 ? CAT_TYPE_INCOME : CAT_TYPE_EXPENSE; ui_cat_listview_populate(data->LV_cat, type, NULL, TRUE); //gtk_tree_view_expand_all (GTK_TREE_VIEW(data->LV_cat)); DB( g_print(" -- end populate listview\n") ); } static void ui_bud_manage_selection(GtkTreeSelection *treeselection, gpointer user_data) { ui_bud_manage_selection_change(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), NULL); } static void ui_bud_manage_cb_type_changed (GtkToggleButton *button, gpointer user_data) { ui_bud_manage_populate_listview(user_data); //g_print(" toggle type=%d\n", gtk_toggle_button_get_active(button)); } static gboolean ui_bud_manage_cleanup(struct ui_bud_manage_data *data, gint result) { gboolean doupdate = FALSE; DB( g_print("\n[ui-budget] cleanup\n") ); if(data->lastcatitem != NULL) { DB( g_print(" -> should do a get for last selected (%s)\n", data->lastcatitem->name) ); ui_bud_manage_getlast(data); } //do_application_specific_something (); DB( g_print(" accept %d changes\n", data->change) ); GLOBALS->changes_count += data->change; DB( g_print(" free tmp_list\n") ); return doupdate; } static void ui_bud_manage_setup(struct ui_bud_manage_data *data) { DB( g_print("\n[ui-budget] setup\n") ); DB( g_print(" init data\n") ); data->tmp_list = NULL; data->change = 0; data->cat = NULL; data->lastcatitem = NULL; DB( g_print(" populate\n") ); ui_bud_manage_populate_listview(data); //DB( g_print(" set widgets default\n") ); DB( g_print(" connect widgets signals\n") ); g_signal_connect (data->RA_type, "changed", G_CALLBACK (ui_bud_manage_cb_type_changed), data); g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat)), "changed", G_CALLBACK (ui_bud_manage_selection), NULL); //g_signal_connect (GTK_TREE_VIEW(data->LV_cat), "row-activated", G_CALLBACK (ui_bud_manage_onRowActivated), NULL); g_signal_connect (G_OBJECT (data->BT_expand), "clicked", G_CALLBACK (ui_bud_manage_expand_all), NULL); g_signal_connect (G_OBJECT (data->BT_collapse), "clicked", G_CALLBACK (ui_bud_manage_collapse_all), NULL); g_signal_connect (data->CM_type[0], "toggled", G_CALLBACK (ui_bud_manage_toggle), NULL); g_signal_connect (G_OBJECT (data->BT_clear), "clicked", G_CALLBACK (ui_bud_manage_clear), NULL); g_signal_connect (data->CM_force, "toggled", G_CALLBACK (ui_bud_manage_cb_forcemonitor_toggled), NULL); } static gboolean ui_bud_manage_mapped (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct ui_bud_manage_data *data; data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); if( data->mapped_done == TRUE ) return FALSE; DB( g_print("\n(ui_bud_manage_mapped)\n") ); ui_bud_manage_setup(data); ui_bud_manage_compute_total(data->dialog, NULL); ui_bud_manage_update(data->dialog, NULL); data->mapped_done = TRUE; return FALSE; } static const GActionEntry win_actions[] = { { "imp" , ui_bud_manage_load_csv, NULL, NULL, NULL, {0,0,0} }, { "exp" , ui_bud_manage_save_csv, NULL, NULL, NULL, {0,0,0} }, // { "actioname" , not_implemented, NULL, NULL, NULL, {0,0,0} }, }; GtkWidget *ui_bud_manage_dialog (void) { struct ui_bud_manage_data *data; GtkWidget *dialog, *content_area; GtkWidget *content_grid, *group_grid, *scrollwin, *label; GtkWidget *treeview, *hpaned, *bbox, *vbox, *hbox; GtkWidget *widget, *image, *tbar; GList *fchain; guint i; gint w, h, dw, dh; gint crow, row; data = g_malloc0(sizeof(struct ui_bud_manage_data)); if(!data) return NULL; dialog = gtk_dialog_new_with_buttons (_("Manage Budget"), GTK_WINDOW(GLOBALS->mainwindow), 0, _("_Close"), GTK_RESPONSE_ACCEPT, NULL); data->dialog = dialog; //set a nice dialog size gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h); dh = (h*1.33/PHI); //ratio 3:2 dw = (dh * 3) / 2; DB( g_print(" main w=%d h=%d => diag w=%d h=%d\n", w, h, dw, dh) ); gtk_window_set_default_size (GTK_WINDOW(dialog), dw, dh); //store our window private data g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)data); DB( g_print("\n[ui-budget] window=%p, inst_data=%p\n", dialog, data) ); //window contents content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog)); // return a vbox hpaned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); hb_widget_set_margin(GTK_WIDGET(hpaned), SPACING_LARGE); hbtk_box_prepend (GTK_BOX (content_area), hpaned); /* left area */ //list vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_margin_end(vbox, SPACING_SMALL); gtk_paned_pack1 (GTK_PANED(hpaned), vbox, FALSE, FALSE); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_margin_bottom(hbox, SPACING_MEDIUM); gtk_box_prepend (GTK_BOX (vbox), hbox); widget = hbtk_switcher_new (GTK_ORIENTATION_HORIZONTAL); hbtk_switcher_setup(HBTK_SWITCHER(widget), CYA_CAT_TYPE, TRUE); data->RA_type = widget; gtk_widget_set_halign (widget, GTK_ALIGN_CENTER); hbtk_box_prepend (GTK_BOX (hbox), widget); //menubutton widget = gtk_menu_button_new(); image = hbtk_image_new_from_icon_name_16 (ICONNAME_HB_BUTTON_MENU); g_object_set (widget, "image", image, NULL); gtk_widget_set_halign (widget, GTK_ALIGN_END); gtk_box_append(GTK_BOX (hbox), widget); GMenu *menu = g_menu_new (); GMenu *section = g_menu_new (); g_menu_append_section(menu, NULL, G_MENU_MODEL(section)); g_menu_append (section, _("_Import CSV..."), "win.imp"); g_menu_append (section, _("E_xport CSV..."), "win.exp"); g_object_unref (section); GActionGroup *group = (GActionGroup*)g_simple_action_group_new (); data->actions = group; g_action_map_add_action_entries (G_ACTION_MAP (group), win_actions, G_N_ELEMENTS (win_actions), data); gtk_widget_insert_action_group (widget, "win", G_ACTION_GROUP(group)); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (widget), G_MENU_MODEL (menu)); scrollwin = make_scrolled_window(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), HB_MINHEIGHT_LIST); treeview = (GtkWidget *)ui_bud_listview_new(); data->LV_cat = treeview; gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview); gtk_widget_set_hexpand (scrollwin, TRUE); gtk_widget_set_vexpand (scrollwin, TRUE); hbtk_box_prepend (GTK_BOX(vbox), scrollwin); //list toolbar tbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM); gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_box_prepend (GTK_BOX (vbox), tbar); bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_append (GTK_BOX (tbar), bbox); widget = make_image_button(ICONNAME_HB_BUTTON_EXPAND, _("Expand all")); data->BT_expand = widget; gtk_box_prepend (GTK_BOX (bbox), widget); widget = make_image_button(ICONNAME_HB_BUTTON_COLLAPSE, _("Collapse all")); data->BT_collapse = widget; gtk_box_prepend (GTK_BOX (bbox), widget); /* right area */ content_grid = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE); gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL); gtk_widget_set_margin_start(content_grid, SPACING_SMALL); gtk_paned_pack2 (GTK_PANED(hpaned), content_grid, FALSE, FALSE); crow = 0; // group :: General group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); gtk_widget_set_halign(group_grid, GTK_ALIGN_END); //label = make_label_group(_("Budget total")); //gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; label = gtk_label_new(_("Expense:")); gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1); label = gtk_label_new(NULL); data->TX_totexp = label; gtk_grid_attach (GTK_GRID (group_grid), label, 2, row, 1, 1); label = gtk_label_new(_("Income:")); gtk_grid_attach (GTK_GRID (group_grid), label, 3, row, 1, 1); label = gtk_label_new(NULL); data->TX_totinc = label; gtk_grid_attach (GTK_GRID (group_grid), label, 4, row, 1, 1); label = gtk_label_new(_("Balance:")); gtk_grid_attach (GTK_GRID (group_grid), label, 5, row, 1, 1); label = gtk_label_new(NULL); data->TX_totbal = label; gtk_grid_attach (GTK_GRID (group_grid), label, 6, row, 1, 1); // group :: General crow++; group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(NULL); data->label_budget = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 5, 1); fchain = NULL; row = 1; widget = gtk_radio_button_new_with_label (NULL, _("is the same each month")); data->CM_type[0] = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1); fchain = g_list_append(fchain, widget); row++; widget = make_amount(label); data->spinner[0] = widget; gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1); fchain = g_list_append(fchain, widget); g_signal_connect (G_OBJECT (data->spinner[0]), "value-changed", G_CALLBACK (ui_bud_manage_cb_budget_changed), NULL); widget = gtk_button_new_with_mnemonic (_("_Clear input")); data->BT_clear = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_widget_set_halign(widget, GTK_ALIGN_START); gtk_grid_attach (GTK_GRID (group_grid), widget, 4, row, 1, 1); fchain = g_list_append(fchain, widget); // propagate button /*row++; button = gtk_button_new_with_label(_("Propagate")); gtk_grid_attach (GTK_GRID (group_grid), button, 1, 2, row, row+1); */ row++; widget = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON (data->CM_type[0]), _("is different per month")); data->CM_type[1] = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1); fchain = g_list_append(fchain, widget); row++; for(i=0;i<12;i++) { gint l, t; l = ((i<6) ? 1 : 3); t = row + ((i<6) ? i : i-6); //#1826659 budget dialog month widget label decay by one label = make_label_widget(_(CYA_ABMONTHS[i+1])); data->label[i+1] = label; gtk_grid_attach (GTK_GRID (group_grid), label, l, t, 1, 1); widget = make_amount(label); data->spinner[i+1] = widget; fchain = g_list_append(fchain, widget); gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, l+1, t, 1, 1); g_signal_connect (G_OBJECT (data->spinner[i+1]), "value-changed", G_CALLBACK (ui_bud_manage_cb_budget_changed), NULL); //DB( g_print("\n[ui-budget] %s, col=%d, row=%d", CYA_ABMONTHS[i], col, row) ); } gtk_container_set_focus_chain(GTK_CONTAINER(group_grid), fchain); g_list_free(fchain); // group :: Options group_grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL); gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM); gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, crow++, 1, 1); label = make_label_group(_("Options")); data->label_options = label; gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1); row = 1; widget = gtk_check_button_new_with_mnemonic (_("_Force monitoring this category")); data->CM_force = widget; gtk_widget_set_hexpand (widget, TRUE); gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1); // connect dialog signals g_signal_connect (dialog, "map-event", G_CALLBACK (ui_bud_manage_mapped), &dialog); // show & run dialog DB( g_print(" run dialog\n") ); gtk_widget_show_all (dialog); // wait for the user gint result = gtk_dialog_run (GTK_DIALOG (dialog)); // cleanup and destroy ui_bud_manage_cleanup(data, result); gtk_window_destroy (GTK_WINDOW(dialog)); g_free(data); return NULL; } homebank-5.9.1/mime/0000775000175000017500000000000015006374031010003 5homebank-5.9.1/mime/homebank.mime0000644000175000017500000000004111023413034012341 application/x-homebank ext: hxb homebank-5.9.1/mime/homebank.keys0000644000175000017500000000052511262177611012411 application/x-homebank icon_filename=homebank/homebank.svg category=Office description=Free, easy, personal accounting for everyone ! short_list_application_ids_for_novice_user_level=homebank short_list_application_ids_for_intermediate_user_level=homebank short_list_application_ids_for_advanced_user_level=homebank open=homebank %f homebank-5.9.1/mime/Makefile.am0000644000175000017500000000163611023413034011753 appdir = $(datadir)/application-registry app_DATA = homebank.applications mimedir = $(datadir)/mime-info mime_DATA = homebank.keys homebank.mime mimexmldir = $(datadir)/mime/packages mimexml_DATA = homebank.xml #mimeicondir = $(datadir)/icons/gnome/48x48/mimetypes #mimeicon_DATA = gnome-mime-application-x-homebank.png EXTRA_DIST = \ $(app_DATA) \ $(mime_DATA) \ $(mimexml_DATA) # $(mimeicon_DATA) ## Update mime only when system wide installation takes place install-data-local: install-mimexmlDATA if [ -f $(DESTDIR)$(datadir)/mime/packages/freedesktop.org.xml ] ; then \ if which update-mime-database>/dev/null 2>&1; then \ update-mime-database $(DESTDIR)$(datadir)/mime; \ fi \ fi uninstall-local: if [ -f $(DESTDIR)$(datadir)/mime/packages/freedesktop.org.xml ] ; then \ if which update-mime-database>/dev/null 2>&1; then \ update-mime-database $(DESTDIR)$(datadir)/mime; \ fi \ fi homebank-5.9.1/mime/homebank.applications0000644000175000017500000000027711262177641014133 homebank command=homebank name=Free, easy, personal accounting for everyone ! can_open_multiple_files=false expects_uris=false requires_terminal=false mime_types=application/x-homebank homebank-5.9.1/mime/homebank.xml0000644000175000017500000000070011262200530012214 HomeBank File Fichier HomeBank homebank-5.9.1/mime/Makefile.in0000664000175000017500000004154615006363044012004 # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = mime ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(appdir)" "$(DESTDIR)$(mimedir)" \ "$(DESTDIR)$(mimexmldir)" DATA = $(app_DATA) $(mime_DATA) $(mimexml_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ LIBSOUP_LIBS = @LIBSOUP_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ appdir = $(datadir)/application-registry app_DATA = homebank.applications mimedir = $(datadir)/mime-info mime_DATA = homebank.keys homebank.mime mimexmldir = $(datadir)/mime/packages mimexml_DATA = homebank.xml #mimeicondir = $(datadir)/icons/gnome/48x48/mimetypes #mimeicon_DATA = gnome-mime-application-x-homebank.png EXTRA_DIST = \ $(app_DATA) \ $(mime_DATA) \ $(mimexml_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign mime/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign mime/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-appDATA: $(app_DATA) @$(NORMAL_INSTALL) @list='$(app_DATA)'; test -n "$(appdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appdir)" || exit $$?; \ done uninstall-appDATA: @$(NORMAL_UNINSTALL) @list='$(app_DATA)'; test -n "$(appdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appdir)'; $(am__uninstall_files_from_dir) install-mimeDATA: $(mime_DATA) @$(NORMAL_INSTALL) @list='$(mime_DATA)'; test -n "$(mimedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(mimedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(mimedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mimedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mimedir)" || exit $$?; \ done uninstall-mimeDATA: @$(NORMAL_UNINSTALL) @list='$(mime_DATA)'; test -n "$(mimedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(mimedir)'; $(am__uninstall_files_from_dir) install-mimexmlDATA: $(mimexml_DATA) @$(NORMAL_INSTALL) @list='$(mimexml_DATA)'; test -n "$(mimexmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(mimexmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(mimexmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mimexmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mimexmldir)" || exit $$?; \ done uninstall-mimexmlDATA: @$(NORMAL_UNINSTALL) @list='$(mimexml_DATA)'; test -n "$(mimexmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(mimexmldir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(appdir)" "$(DESTDIR)$(mimedir)" "$(DESTDIR)$(mimexmldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-appDATA install-data-local install-mimeDATA \ install-mimexmlDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-appDATA uninstall-local uninstall-mimeDATA \ uninstall-mimexmlDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-appDATA \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-mimeDATA install-mimexmlDATA install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-appDATA uninstall-local uninstall-mimeDATA \ uninstall-mimexmlDATA .PRECIOUS: Makefile # $(mimeicon_DATA) install-data-local: install-mimexmlDATA if [ -f $(DESTDIR)$(datadir)/mime/packages/freedesktop.org.xml ] ; then \ if which update-mime-database>/dev/null 2>&1; then \ update-mime-database $(DESTDIR)$(datadir)/mime; \ fi \ fi uninstall-local: if [ -f $(DESTDIR)$(datadir)/mime/packages/freedesktop.org.xml ] ; then \ if which update-mime-database>/dev/null 2>&1; then \ update-mime-database $(DESTDIR)$(datadir)/mime; \ fi \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: